001/* 002 * Copyright (c) 2015-2020, Oracle and/or its affiliates. All rights reserved. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017package org.tribuo.util.infotheory.impl; 018 019/** 020 * An mutable tuple of a double and a long. 021 */ 022public final class WeightCountTuple { 023 024 public double weight; 025 public long count; 026 027 public WeightCountTuple() { 028 this.weight = 0.0; 029 this.count = 0; 030 } 031 032 public WeightCountTuple(double weight, long count) { 033 this.weight = weight; 034 this.count = count; 035 } 036 037 @Override 038 public int hashCode() { 039 int hash = 3; 040 hash = 47 * hash + (int) (Double.doubleToLongBits(this.weight) ^ (Double.doubleToLongBits(this.weight) >>> 32)); 041 hash = 47 * hash + (int) (this.count ^ (this.count >>> 32)); 042 return hash; 043 } 044 045 @Override 046 public boolean equals(Object obj) { 047 if (obj == null) { 048 return false; 049 } 050 if (!(obj instanceof WeightCountTuple)) { 051 return false; 052 } 053 final WeightCountTuple other = (WeightCountTuple) obj; 054 return (this.weight == other.weight) && (this.count == other.count); 055 } 056 057}