You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by le...@apache.org on 2020/04/15 19:31:43 UTC
[incubator-datasketches-java] 01/01: Simplified,
but did not eliminate the HLL union switch statement.
This is an automated email from the ASF dual-hosted git repository.
leerho pushed a commit to branch Refactor_HLL_Union_switch
in repository https://gitbox.apache.org/repos/asf/incubator-datasketches-java.git
commit 2006990c93c8847f81b8139c261f10d667d731f6
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Wed Apr 15 12:31:07 2020 -0700
Simplified, but did not eliminate the HLL union switch statement.
Removed the Out-of-order flag in the coupon classes. Corrected tests
that assumed the prior assumptions of OOO for sets.
---
.../apache/datasketches/hll/AbstractCoupons.java | 8 +
.../apache/datasketches/hll/AbstractHllArray.java | 2 +-
.../org/apache/datasketches/hll/BaseHllSketch.java | 2 +-
.../org/apache/datasketches/hll/Conversions.java | 6 +-
.../org/apache/datasketches/hll/CouponHashSet.java | 1 -
.../org/apache/datasketches/hll/CouponList.java | 20 +-
.../apache/datasketches/hll/DirectCouponList.java | 15 --
.../apache/datasketches/hll/DirectHllArray.java | 4 +-
.../java/org/apache/datasketches/hll/HllArray.java | 8 +-
.../org/apache/datasketches/hll/HllEstimators.java | 4 +-
.../org/apache/datasketches/hll/HllSketch.java | 11 +-
.../org/apache/datasketches/hll/HllSketchImpl.java | 4 +-
.../apache/datasketches/hll/ToByteArrayImpl.java | 4 +-
.../java/org/apache/datasketches/hll/Union.java | 253 ++++++++-------------
.../apache/datasketches/hll/DirectUnionTest.java | 6 +-
.../org/apache/datasketches/hll/UnionCaseTest.java | 30 +--
.../org/apache/datasketches/hll/UnionTest.java | 6 +-
17 files changed, 154 insertions(+), 230 deletions(-)
diff --git a/src/main/java/org/apache/datasketches/hll/AbstractCoupons.java b/src/main/java/org/apache/datasketches/hll/AbstractCoupons.java
index 3aef6a3..8e87667 100644
--- a/src/main/java/org/apache/datasketches/hll/AbstractCoupons.java
+++ b/src/main/java/org/apache/datasketches/hll/AbstractCoupons.java
@@ -102,6 +102,11 @@ abstract class AbstractCoupons extends HllSketchImpl {
}
@Override
+ boolean isOutOfOrder() {
+ return false;
+ }
+
+ @Override
boolean isRebuildCurMinNumKxQFlag() {
return false;
}
@@ -110,6 +115,9 @@ abstract class AbstractCoupons extends HllSketchImpl {
void putEmptyFlag(final boolean empty) {} //no-op for coupons
@Override
+ void putOutOfOrder(final boolean outOfOrder) {} //no-op for coupons
+
+ @Override
void putRebuildCurMinNumKxQFlag(final boolean rebuild) {} //no-op for coupons
@Override
diff --git a/src/main/java/org/apache/datasketches/hll/AbstractHllArray.java b/src/main/java/org/apache/datasketches/hll/AbstractHllArray.java
index 4db265c..cbefe43 100644
--- a/src/main/java/org/apache/datasketches/hll/AbstractHllArray.java
+++ b/src/main/java/org/apache/datasketches/hll/AbstractHllArray.java
@@ -87,7 +87,7 @@ abstract class AbstractHllArray extends HllSketchImpl {
@Override
double getEstimate() {
- if (isOutOfOrderFlag()) {
+ if (isOutOfOrder()) {
return getCompositeEstimate();
}
return getHipAccum();
diff --git a/src/main/java/org/apache/datasketches/hll/BaseHllSketch.java b/src/main/java/org/apache/datasketches/hll/BaseHllSketch.java
index 3a1ec80..252a3c2 100644
--- a/src/main/java/org/apache/datasketches/hll/BaseHllSketch.java
+++ b/src/main/java/org/apache/datasketches/hll/BaseHllSketch.java
@@ -175,7 +175,7 @@ abstract class BaseHllSketch {
* @return true if the current estimator is the non-HIP estimator, which is slightly less
* accurate than the HIP estimator.
*/
- abstract boolean isOutOfOrderFlag();
+ abstract boolean isOutOfOrder();
/**
* Returns true if the given Memory refers to the same underlying resource as this sketch.
diff --git a/src/main/java/org/apache/datasketches/hll/Conversions.java b/src/main/java/org/apache/datasketches/hll/Conversions.java
index 0f06ffe..fc28143 100644
--- a/src/main/java/org/apache/datasketches/hll/Conversions.java
+++ b/src/main/java/org/apache/datasketches/hll/Conversions.java
@@ -34,7 +34,7 @@ class Conversions {
static final Hll4Array convertToHll4(final AbstractHllArray srcAbsHllArr) {
final int lgConfigK = srcAbsHllArr.getLgConfigK();
final Hll4Array hll4Array = new Hll4Array(lgConfigK);
- hll4Array.putOutOfOrderFlag(srcAbsHllArr.isOutOfOrderFlag());
+ hll4Array.putOutOfOrder(srcAbsHllArr.isOutOfOrder());
//1st pass: compute starting curMin and numAtCurMin:
final int pair = curMinAndNum(srcAbsHllArr);
@@ -99,7 +99,7 @@ class Conversions {
static final Hll6Array convertToHll6(final AbstractHllArray srcAbsHllArr) {
final int lgConfigK = srcAbsHllArr.lgConfigK;
final Hll6Array hll6Array = new Hll6Array(lgConfigK);
- hll6Array.putOutOfOrderFlag(srcAbsHllArr.isOutOfOrderFlag());
+ hll6Array.putOutOfOrder(srcAbsHllArr.isOutOfOrder());
int numZeros = 1 << lgConfigK;
final PairIterator itr = srcAbsHllArr.iterator();
while (itr.nextAll()) {
@@ -117,7 +117,7 @@ class Conversions {
static final Hll8Array convertToHll8(final AbstractHllArray srcAbsHllArr) {
final int lgConfigK = srcAbsHllArr.lgConfigK;
final Hll8Array hll8Array = new Hll8Array(lgConfigK);
- hll8Array.putOutOfOrderFlag(srcAbsHllArr.isOutOfOrderFlag());
+ hll8Array.putOutOfOrder(srcAbsHllArr.isOutOfOrder());
int numZeros = 1 << lgConfigK;
final PairIterator itr = srcAbsHllArr.iterator();
while (itr.nextAll()) {
diff --git a/src/main/java/org/apache/datasketches/hll/CouponHashSet.java b/src/main/java/org/apache/datasketches/hll/CouponHashSet.java
index 4320ba7..b9824e5 100644
--- a/src/main/java/org/apache/datasketches/hll/CouponHashSet.java
+++ b/src/main/java/org/apache/datasketches/hll/CouponHashSet.java
@@ -79,7 +79,6 @@ class CouponHashSet extends CouponList {
final CurMode curMode = extractCurMode(mem);
final int memArrStart = (curMode == CurMode.LIST) ? LIST_INT_ARR_START : HASH_SET_INT_ARR_START;
final CouponHashSet set = new CouponHashSet(lgConfigK, tgtHllType);
- set.putOutOfOrderFlag(true);
final boolean memIsCompact = extractCompactFlag(mem);
final int couponCount = extractHashSetCount(mem);
int lgCouponArrInts = extractLgArr(mem);
diff --git a/src/main/java/org/apache/datasketches/hll/CouponList.java b/src/main/java/org/apache/datasketches/hll/CouponList.java
index 5a3c6e6..ee3eeb9 100644
--- a/src/main/java/org/apache/datasketches/hll/CouponList.java
+++ b/src/main/java/org/apache/datasketches/hll/CouponList.java
@@ -26,7 +26,6 @@ import static org.apache.datasketches.hll.PreambleUtil.LIST_INT_ARR_START;
import static org.apache.datasketches.hll.PreambleUtil.LIST_PREINTS;
import static org.apache.datasketches.hll.PreambleUtil.extractLgK;
import static org.apache.datasketches.hll.PreambleUtil.extractListCount;
-import static org.apache.datasketches.hll.PreambleUtil.extractOooFlag;
import static org.apache.datasketches.hll.PreambleUtil.extractTgtHllType;
import org.apache.datasketches.SketchesStateException;
@@ -38,7 +37,6 @@ import org.apache.datasketches.memory.WritableMemory;
* @author Kevin Lang
*/
class CouponList extends AbstractCoupons {
- boolean oooFlag = false; //Out-Of-Order Flag
int lgCouponArrInts;
int couponCount;
int[] couponIntArr;
@@ -53,11 +51,9 @@ class CouponList extends AbstractCoupons {
super(lgConfigK, tgtHllType, curMode);
if (curMode == CurMode.LIST) {
lgCouponArrInts = LG_INIT_LIST_SIZE;
- oooFlag = false;
} else { //SET
lgCouponArrInts = LG_INIT_SET_SIZE;
assert lgConfigK > 7;
- oooFlag = true;
}
couponIntArr = new int[1 << lgCouponArrInts];
couponCount = 0;
@@ -69,7 +65,6 @@ class CouponList extends AbstractCoupons {
*/
CouponList(final CouponList that) {
super(that.lgConfigK, that.tgtHllType, that.curMode);
- oooFlag = that.oooFlag;
lgCouponArrInts = that.lgCouponArrInts;
couponCount = that.couponCount;
couponIntArr = that.couponIntArr.clone();
@@ -82,7 +77,6 @@ class CouponList extends AbstractCoupons {
*/ //also used by CouponHashSet
CouponList(final CouponList that, final TgtHllType tgtHllType) {
super(that.lgConfigK, tgtHllType, that.curMode);
- oooFlag = that.oooFlag;
lgCouponArrInts = that.lgCouponArrInts;
couponCount = that.couponCount;
couponIntArr = that.couponIntArr.clone();
@@ -96,7 +90,6 @@ class CouponList extends AbstractCoupons {
final int couponCount = extractListCount(mem);
mem.getIntArray(LIST_INT_ARR_START, list.couponIntArr, 0, couponCount);
list.couponCount = couponCount;
- list.putOutOfOrderFlag(extractOooFlag(mem));
return list;
}
@@ -191,11 +184,6 @@ class CouponList extends AbstractCoupons {
}
@Override
- boolean isOutOfOrderFlag() {
- return oooFlag;
- }
-
- @Override
boolean isSameResource(final Memory mem) {
return false;
}
@@ -216,11 +204,6 @@ class CouponList extends AbstractCoupons {
}
@Override
- void putOutOfOrderFlag(final boolean oooFlag) {
- this.oooFlag = oooFlag;
- }
-
- @Override
CouponList reset() {
return new CouponList(lgConfigK, tgtHllType, CurMode.LIST);
}
@@ -232,7 +215,6 @@ class CouponList extends AbstractCoupons {
for (int i = 0; i < couponCount; i++) {
chSet.couponUpdate(arr[i]);
}
- chSet.putOutOfOrderFlag(true);
return chSet;
}
@@ -248,7 +230,7 @@ class CouponList extends AbstractCoupons {
}
tgtHllArr.putHipAccum(src.getEstimate());
- tgtHllArr.putOutOfOrderFlag(false);
+ tgtHllArr.putOutOfOrder(false);
return tgtHllArr;
}
diff --git a/src/main/java/org/apache/datasketches/hll/DirectCouponList.java b/src/main/java/org/apache/datasketches/hll/DirectCouponList.java
index 26b5572..7ef258c 100644
--- a/src/main/java/org/apache/datasketches/hll/DirectCouponList.java
+++ b/src/main/java/org/apache/datasketches/hll/DirectCouponList.java
@@ -28,13 +28,11 @@ import static org.apache.datasketches.hll.PreambleUtil.HASH_SET_PREINTS;
import static org.apache.datasketches.hll.PreambleUtil.HLL_PREINTS;
import static org.apache.datasketches.hll.PreambleUtil.LIST_INT_ARR_START;
import static org.apache.datasketches.hll.PreambleUtil.LIST_PREINTS;
-import static org.apache.datasketches.hll.PreambleUtil.OUT_OF_ORDER_FLAG_MASK;
import static org.apache.datasketches.hll.PreambleUtil.computeLgArr;
import static org.apache.datasketches.hll.PreambleUtil.extractCompactFlag;
import static org.apache.datasketches.hll.PreambleUtil.extractInt;
import static org.apache.datasketches.hll.PreambleUtil.extractLgArr;
import static org.apache.datasketches.hll.PreambleUtil.extractListCount;
-import static org.apache.datasketches.hll.PreambleUtil.extractOooFlag;
import static org.apache.datasketches.hll.PreambleUtil.insertCurMin;
import static org.apache.datasketches.hll.PreambleUtil.insertCurMode;
import static org.apache.datasketches.hll.PreambleUtil.insertEmptyFlag;
@@ -47,7 +45,6 @@ import static org.apache.datasketches.hll.PreambleUtil.insertLgK;
import static org.apache.datasketches.hll.PreambleUtil.insertListCount;
import static org.apache.datasketches.hll.PreambleUtil.insertModes;
import static org.apache.datasketches.hll.PreambleUtil.insertNumAtCurMin;
-import static org.apache.datasketches.hll.PreambleUtil.insertOooFlag;
import static org.apache.datasketches.hll.PreambleUtil.insertPreInts;
import static org.apache.datasketches.hll.PreambleUtil.insertSerVer;
@@ -207,11 +204,6 @@ class DirectCouponList extends AbstractCoupons {
}
@Override
- boolean isOutOfOrderFlag() {
- return extractOooFlag(mem);
- }
-
- @Override
boolean isSameResource(final Memory mem) {
return this.mem.isSameResource(mem);
}
@@ -234,12 +226,6 @@ class DirectCouponList extends AbstractCoupons {
}
}
- @Override //not used on the direct side
- void putOutOfOrderFlag(final boolean oooFlag) {
- assert wmem != null;
- insertOooFlag(wmem, oooFlag);
- }
-
@Override
DirectCouponList reset() {
if (wmem == null) {
@@ -269,7 +255,6 @@ class DirectCouponList extends AbstractCoupons {
insertPreInts(wmem, HASH_SET_PREINTS);
//SerVer, FamID, LgK should be OK
insertLgArr(wmem, LG_INIT_SET_SIZE);
- insertFlags(wmem, (byte) OUT_OF_ORDER_FLAG_MASK); //set oooFlag
insertCurMin(wmem, 0); //was list count
insertCurMode(wmem, CurMode.SET);
//tgtHllType should already be ok
diff --git a/src/main/java/org/apache/datasketches/hll/DirectHllArray.java b/src/main/java/org/apache/datasketches/hll/DirectHllArray.java
index 753abd4..185a013 100644
--- a/src/main/java/org/apache/datasketches/hll/DirectHllArray.java
+++ b/src/main/java/org/apache/datasketches/hll/DirectHllArray.java
@@ -179,7 +179,7 @@ abstract class DirectHllArray extends AbstractHllArray {
}
@Override
- boolean isOutOfOrderFlag() {
+ boolean isOutOfOrder() {
return extractOooFlag(mem);
}
@@ -248,7 +248,7 @@ abstract class DirectHllArray extends AbstractHllArray {
}
@Override //not used on the direct side
- void putOutOfOrderFlag(final boolean oooFlag) {
+ void putOutOfOrder(final boolean oooFlag) {
checkReadOnly(wmem);
insertOooFlag(wmem, oooFlag);
}
diff --git a/src/main/java/org/apache/datasketches/hll/HllArray.java b/src/main/java/org/apache/datasketches/hll/HllArray.java
index 8a0bab4..b23381b 100644
--- a/src/main/java/org/apache/datasketches/hll/HllArray.java
+++ b/src/main/java/org/apache/datasketches/hll/HllArray.java
@@ -71,7 +71,7 @@ abstract class HllArray extends AbstractHllArray {
*/
HllArray(final HllArray that) {
super(that.getLgConfigK(), that.getTgtHllType(), CurMode.HLL);
- oooFlag = that.isOutOfOrderFlag();
+ oooFlag = that.isOutOfOrder();
rebuildCurMinNumKxQ = that.isRebuildCurMinNumKxQFlag();
curMin = that.getCurMin();
numAtCurMin = that.getNumAtCurMin();
@@ -180,7 +180,7 @@ abstract class HllArray extends AbstractHllArray {
}
@Override
- boolean isOutOfOrderFlag() {
+ boolean isOutOfOrder() {
return oooFlag;
}
@@ -228,7 +228,7 @@ abstract class HllArray extends AbstractHllArray {
}
@Override
- void putOutOfOrderFlag(final boolean oooFlag) {
+ void putOutOfOrder(final boolean oooFlag) {
this.oooFlag = oooFlag;
}
@@ -255,7 +255,7 @@ abstract class HllArray extends AbstractHllArray {
//used by heapify by all Heap HLL
static final void extractCommonHll(final Memory srcMem, final HllArray hllArray) {
- hllArray.putOutOfOrderFlag(extractOooFlag(srcMem));
+ hllArray.putOutOfOrder(extractOooFlag(srcMem));
hllArray.putEmptyFlag(extractEmptyFlag(srcMem));
hllArray.putCurMin(extractCurMin(srcMem));
hllArray.putHipAccum(extractHipAccum(srcMem));
diff --git a/src/main/java/org/apache/datasketches/hll/HllEstimators.java b/src/main/java/org/apache/datasketches/hll/HllEstimators.java
index 78df59b..8ff18f6 100644
--- a/src/main/java/org/apache/datasketches/hll/HllEstimators.java
+++ b/src/main/java/org/apache/datasketches/hll/HllEstimators.java
@@ -52,7 +52,7 @@ class HllEstimators {
(absHllArr.getCurMin() == 0) ? configK - absHllArr.getNumAtCurMin() : configK;
final double estimate;
final double rseFactor;
- final boolean oooFlag = absHllArr.isOutOfOrderFlag();
+ final boolean oooFlag = absHllArr.isOutOfOrder();
if (oooFlag) {
estimate = absHllArr.getCompositeEstimate();
rseFactor = HLL_NON_HIP_RSE_FACTOR;
@@ -71,7 +71,7 @@ class HllEstimators {
final int configK = 1 << lgConfigK;
final double estimate;
final double rseFactor;
- final boolean oooFlag = absHllArr.isOutOfOrderFlag();
+ final boolean oooFlag = absHllArr.isOutOfOrder();
if (oooFlag) {
estimate = absHllArr.getCompositeEstimate();
rseFactor = HLL_NON_HIP_RSE_FACTOR;
diff --git a/src/main/java/org/apache/datasketches/hll/HllSketch.java b/src/main/java/org/apache/datasketches/hll/HllSketch.java
index 9d0197b..4efd0cb 100644
--- a/src/main/java/org/apache/datasketches/hll/HllSketch.java
+++ b/src/main/java/org/apache/datasketches/hll/HllSketch.java
@@ -368,8 +368,8 @@ public class HllSketch extends BaseHllSketch {
}
@Override
- boolean isOutOfOrderFlag() {
- return hllSketchImpl.isOutOfOrderFlag();
+ boolean isOutOfOrder() {
+ return hllSketchImpl.isOutOfOrder();
}
@Override
@@ -381,8 +381,9 @@ public class HllSketch extends BaseHllSketch {
hllSketchImpl.mergeTo(that);
}
- void putOutOfOrderFlag(final boolean oooFlag) {
- hllSketchImpl.putOutOfOrderFlag(oooFlag);
+ HllSketch putOutOfOrderFlag(final boolean oooFlag) {
+ hllSketchImpl.putOutOfOrder(oooFlag);
+ return this;
}
@Override
@@ -413,7 +414,7 @@ public class HllSketch extends BaseHllSketch {
sb.append(" LB : ").append(getLowerBound(1)).append(LS);
sb.append(" Estimate : ").append(getEstimate()).append(LS);
sb.append(" UB : ").append(getUpperBound(1)).append(LS);
- sb.append(" OutOfOrder Flag: ").append(isOutOfOrderFlag()).append(LS);
+ sb.append(" OutOfOrder Flag: ").append(isOutOfOrder()).append(LS);
if (getCurMode() == CurMode.HLL) {
final AbstractHllArray absHll = (AbstractHllArray) hllSketchImpl;
sb.append(" CurMin : ").append(absHll.getCurMin()).append(LS);
diff --git a/src/main/java/org/apache/datasketches/hll/HllSketchImpl.java b/src/main/java/org/apache/datasketches/hll/HllSketchImpl.java
index 1bb7d28..63b78c6 100644
--- a/src/main/java/org/apache/datasketches/hll/HllSketchImpl.java
+++ b/src/main/java/org/apache/datasketches/hll/HllSketchImpl.java
@@ -96,7 +96,7 @@ abstract class HllSketchImpl {
abstract boolean isOffHeap();
- abstract boolean isOutOfOrderFlag();
+ abstract boolean isOutOfOrder();
abstract boolean isRebuildCurMinNumKxQFlag();
@@ -108,7 +108,7 @@ abstract class HllSketchImpl {
abstract void putEmptyFlag(boolean empty);
- abstract void putOutOfOrderFlag(boolean oooFlag);
+ abstract void putOutOfOrder(boolean oooFlag);
abstract void putRebuildCurMinNumKxQFlag(boolean rebuild);
diff --git a/src/main/java/org/apache/datasketches/hll/ToByteArrayImpl.java b/src/main/java/org/apache/datasketches/hll/ToByteArrayImpl.java
index 2179ff7..131a53c 100644
--- a/src/main/java/org/apache/datasketches/hll/ToByteArrayImpl.java
+++ b/src/main/java/org/apache/datasketches/hll/ToByteArrayImpl.java
@@ -93,7 +93,7 @@ class ToByteArrayImpl {
insertLgK(tgtWmem, srcImpl.getLgConfigK());
insertEmptyFlag(tgtWmem, srcImpl.isEmpty());
insertCompactFlag(tgtWmem, compact);
- insertOooFlag(tgtWmem, srcImpl.isOutOfOrderFlag());
+ insertOooFlag(tgtWmem, srcImpl.isOutOfOrder());
insertCurMin(tgtWmem, srcImpl.getCurMin());
insertCurMode(tgtWmem, srcImpl.getCurMode());
insertTgtHllType(tgtWmem, srcImpl.getTgtHllType());
@@ -245,7 +245,7 @@ class ToByteArrayImpl {
insertLgK(wmem, impl.getLgConfigK());
insertLgArr(wmem, impl.getLgCouponArrInts());
insertEmptyFlag(wmem, impl.isEmpty());
- insertOooFlag(wmem, impl.isOutOfOrderFlag());
+ insertOooFlag(wmem, impl.isOutOfOrder());
insertCurMode(wmem, impl.getCurMode());
insertTgtHllType(wmem, impl.getTgtHllType());
}
diff --git a/src/main/java/org/apache/datasketches/hll/Union.java b/src/main/java/org/apache/datasketches/hll/Union.java
index 4dc7050..25c6381 100644
--- a/src/main/java/org/apache/datasketches/hll/Union.java
+++ b/src/main/java/org/apache/datasketches/hll/Union.java
@@ -254,8 +254,8 @@ public class Union extends BaseHllSketch {
}
@Override
- boolean isOutOfOrderFlag() {
- return gadget.isOutOfOrderFlag();
+ boolean isOutOfOrder() {
+ return gadget.isOutOfOrder();
}
@Override
@@ -336,13 +336,13 @@ public class Union extends BaseHllSketch {
/**
* Union the given source and destination sketches. This static method examines the state of
* the current internal gadget and the incoming sketch and determines the optimum way to
- * perform the union. This may involve swapping, downsampling, transforming, and / or
- * copying one of the arguments and may completely replace the internals of the union.
+ * perform the union. This may involve swapping the merge order, downsampling, transforming,
+ * and / or copying one of the arguments and may completely replace the internals of the union.
*
* <p>If the union gadget is empty, the source sketch is effectively copied to the union gadget
* after any required transformations.
*
- * <p>The direction of the update is required if the union gadget is in LIST or SET mode, and the
+ * <p>The direction of the merge is reversed if the union gadget is in LIST or SET mode, and the
* source sketch is in HLL mode. This is done to maintain maximum accuracy of the union process.
*
* <p>The source sketch is downsampled if the source LgK is larger than maxLgK and in HLL mode.
@@ -350,8 +350,8 @@ public class Union extends BaseHllSketch {
* <p>The union gadget is downsampled if both source and union gadget are in HLL mode
* and the source LgK <b>less than</b> the union gadget LgK.
*
- * @param source the given incoming sketch, which is not be modified.
- * @param gadget the given gadget sketch, which has a target of HLL_8 and may be modified.
+ * @param source the given incoming sketch, which cannot be modified.
+ * @param gadget the given gadget sketch, which has a target of HLL_8 and holds the result.
* @param lgMaxK the maximum value of log2 K for this union.
* @return the union of the two sketches in the form of the internal HllSketchImpl, which is
* always in HLL_8 form.
@@ -359,190 +359,129 @@ public class Union extends BaseHllSketch {
private static HllSketchImpl unionImpl(final HllSketch source, final HllSketch gadget,
final int lgMaxK) {
assert gadget.getTgtHllType() == HLL_8;
- if ((source == null) || source.isEmpty()) { return gadget.hllSketchImpl; }
+ if ((source == null) || source.isEmpty()) {
+ return gadget.hllSketchImpl;
+ }
+
+ final CurMode srcMode = source.getCurMode();
+ if (srcMode == CurMode.LIST ) {
+ source.mergeTo(gadget);
+ return gadget.hllSketchImpl;
+ }
+
final int srcLgK = source.getLgConfigK();
final int gadgetLgK = gadget.getLgConfigK();
final boolean srcIsMem = source.isMemory();
final boolean gdtIsMem = gadget.isMemory();
- //Source is either LIST or SET mode
- if (source.getCurMode() == CurMode.LIST ) {
- source.mergeTo(gadget);
- gadget.putOutOfOrderFlag(gadget.isOutOfOrderFlag() | source.isOutOfOrderFlag());
- return gadget.hllSketchImpl;
- }
- if (source.getCurMode() == CurMode.SET ) {
- if (gadget.isEmpty() && (!srcIsMem) && (!gdtIsMem) && (srcLgK == gadgetLgK)) {
+ final boolean gdtEmpty = gadget.isEmpty();
+
+ if (srcMode == CurMode.SET ) {
+ if (gdtEmpty && (srcLgK == gadgetLgK) && (!srcIsMem) && (!gdtIsMem)) {
gadget.hllSketchImpl = source.copyAs(HLL_8).hllSketchImpl;
return gadget.hllSketchImpl;
}
source.mergeTo(gadget);
- gadget.putOutOfOrderFlag(true);
return gadget.hllSketchImpl;
}
- //Hereafter, the srcImpl is in HLL mode.
+
+ //Hereafter, the source is in HLL mode.
final int bit0 = gdtIsMem ? 1 : 0;
- final int bits1_2 = (gadget.isEmpty() ? 3 : gadget.getCurMode().ordinal()) << 1;
+ final int bits1_2 = (gdtEmpty ? 3 : gadget.getCurMode().ordinal()) << 1;
final int bit3 = (srcLgK < gadgetLgK) ? 8 : 0;
final int bit4 = (srcLgK > lgMaxK) ? 16 : 0;
final int sw = bit4 | bit3 | bits1_2 | bit0;
HllSketchImpl hllSketchImpl = null; //never returned as null
switch (sw) {
- case 0: //src <= max, src >= gdt, gdtLIST, gdtHeap, reverse merge, no downsample, ooof=OR
- case 8: //src <= max, src < gdt, gdtLIST, gdtHeap, reverse merge, no downsample, ooof=OR
- {
- final HllSketch srcHll8Heap = source.copyAs(HLL_8); //copy src to Heap
- gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,heap,list) -> src(Hll8,heap,hll), autofold
- final HllSketch gdtTmp = srcHll8Heap; //replace gdt
- gdtTmp.putOutOfOrderFlag(gdtTmp.isOutOfOrderFlag() | source.isOutOfOrderFlag());
- hllSketchImpl = gdtTmp.hllSketchImpl;
+ case 0: //src <= max, src >= gdt, gdtLIST, gdtHeap
+ case 8: //src <= max, src < gdt, gdtLIST, gdtHeap
+ case 2: //src <= max, src >= gdt, gdtSET, gdtHeap
+ case 10://src <= max, src < gdt, gdtSET, gdtHeap
+ { //Action: copy src, reverse merge w/autofold, ooof=src
+ final HllSketch srcHll8Heap = source.copyAs(HLL_8);
+ gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,heap,list/set) -> src(Hll8,heap,hll)
+ hllSketchImpl = srcHll8Heap.hllSketchImpl;
break;
}
- case 1: //src <= max, src >= gdt, gdtLIST, gdtMemory, reverse merge, no downsample, ooof=OR
- case 9: //src <= max, src < gdt, gdtLIST, gdtMemory, reverse merge, no downsample, ooof=OR
- {
- final HllSketch srcHll8Heap = source.copyAs(HLL_8); //copy src to Heap
- gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,mem,list) -> src(Hll8,heap,hll), autofold
- final WritableMemory wmem = gadget.getWritableMemory(); //use the gdt wmem
- final byte[] byteArr = srcHll8Heap.toUpdatableByteArray(); //serialize srcCopy
- wmem.putByteArray(0, byteArr, 0, byteArr.length); //replace old data with new
- final HllSketch gdtTmp = HllSketch.writableWrap(wmem); //wrap & replace gdt
- gdtTmp.putOutOfOrderFlag(gdtTmp.isOutOfOrderFlag() | source.isOutOfOrderFlag());
- hllSketchImpl = gdtTmp.hllSketchImpl;
+ case 16://src > max, src >= gdt, gdtList, gdtHeap
+ case 18://src > max, src >= gdt, gdtSet, gdtHeap
+ { //Action: downsample src to MaxLgK, reverse merge w/autofold, ooof=src
+ final HllSketch srcHll8Heap = downsample(source, lgMaxK);
+ gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,heap,list/set) -> src(Hll8,heap,hll)
+ hllSketchImpl = srcHll8Heap.hllSketchImpl;
break;
}
- case 2: //src <= max, src >= gdt, gdtSET, gdtHeap, reverse merge, no downsample, ooof=True
- case 10: //src <= max, src < gdt, gdtSET, gdtHeap, reverse merge, no downsample, ooof=True
- {
- final HllSketch srcHll8Heap = source.copyAs(HLL_8); //copy src to Heap
- gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,heap,set) -> src(Hll8,heap,hll), autofold
- final HllSketch gdtTmp = srcHll8Heap; //replace gdt
- gdtTmp.putOutOfOrderFlag(true);
- hllSketchImpl = gdtTmp.hllSketchImpl;
+
+ case 1: //src <= max, src >= gdt, gdtLIST, gdtMemory
+ case 9: //src <= max, src < gdt, gdtLIST, gdtMemory
+ case 3: //src <= max, src >= gdt, gdtSET, gdtMemory
+ case 11://src <= max, src < gdt, gdtSET, gdtMemory
+ { //Action: copy src, reverse merge w/autofold, use gdt memory, ooof=src
+ final HllSketch srcHll8Heap = source.copyAs(HLL_8);
+ gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,mem,list/set) -> src(Hll8,heap,hll)
+ hllSketchImpl = useGadgetMemory(gadget, srcHll8Heap, false).hllSketchImpl;
break;
}
- case 3: //src <= max, src >= gdt, gdtSET, gdtMemory, reverse merge, no downsample, ooof=True
- case 11: //src <= max, src < gdt, gdtSET, gdtMemory, reverse merge, no downsample, ooof=True
- {
- final HllSketch srcHll8Heap = source.copyAs(HLL_8); //copy src to Heap
- gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,mem,set) -> src(Hll8,heap,hll), autofold
- final WritableMemory wmem = gadget.getWritableMemory(); //use the gdt wmem
- final byte[] byteArr = srcHll8Heap.toUpdatableByteArray(); //serialize srcCopy
- wmem.putByteArray(0, byteArr, 0, byteArr.length); //replace old data with new
- final HllSketch gdtTmp = HllSketch.writableWrap(wmem); //wrap & replace gdt
- gdtTmp.putOutOfOrderFlag(true);
- hllSketchImpl = gdtTmp.hllSketchImpl;
+ case 17://src > max, src >= gdt, gdtList, gdtMemory
+ case 19://src > max, src >= gdt, gdtSet, gdtMemory
+ { //Action: downsample src to MaxLgK, reverse merge w/autofold, use gdt memory, ooof=src
+ final HllSketch srcHll8Heap = downsample(source, lgMaxK);
+ gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,mem,list/set) -> src(Hll8,heap,hll), autofold
+ hllSketchImpl = useGadgetMemory(gadget, srcHll8Heap, false).hllSketchImpl;
break;
}
- case 4: //src <= max, src >= gdt, gdtHLL, gdtHeap, forward merge, no downsample, ooof=True
- case 20: //src > max, src >= gdt, gdtHLL, gdtHeap, forward merge, no downsample, ooof=True
- case 5: //src <= max, src >= gdt, gdtHLL, gdtMemory, forward merge, no downsample, ooof=True
- case 21: //src > max, src >= gdt, gdtHLL, gdtMemory, forward merge, no downsample, ooof=True
- {
- //merge src(Hll4,6,8,heap/mem,Mode=HLL) -> gdt(Hll8,heap,Mode=HLL), may autofold
+
+ case 4: //src <= max, src >= gdt, gdtHLL, gdtHeap
+ case 20://src > max, src >= gdt, gdtHLL, gdtHeap
+ case 5: //src <= max, src >= gdt, gdtHLL, gdtMemory
+ case 21://src > max, src >= gdt, gdtHLL, gdtMemory
+ { //Action: forward HLL merge w/autofold, ooof=True
+ //merge src(Hll4,6,8,heap/mem,Mode=HLL) -> gdt(Hll8,heap,Mode=HLL)
mergeHlltoHLLmode(source, gadget, srcLgK, gadgetLgK, srcIsMem, gdtIsMem);
- gadget.putOutOfOrderFlag(true);
- hllSketchImpl = gadget.hllSketchImpl;
+ hllSketchImpl = gadget.putOutOfOrderFlag(true).hllSketchImpl;
break;
}
- case 6: //src <= max, src >= gdt, gdtEmpty, gdtHeap, replace, no downsample, ooof=Src
- case 14: //src <= max, src < gdt, gdtEmpty, gdtHeap, replace, no downsample, ooof=Src
- {
- final HllSketch srcHll8Heap = source.copyAs(HLL_8); //copy src to Heap
- //ooof is already what source is.
- hllSketchImpl = srcHll8Heap.hllSketchImpl;
- break;
- }
- case 7: //src <= max, src >= gdt, gdtEmpty, gdtMemory, replace mem, no downsample, ooof=Src
- case 15: //src <= max, src < gdt, gdtEmpty, gdtMemory, replace mem, no downsample, ooof=Src
- {
- final HllSketch srcHll8Heap = source.copyAs(HLL_8); //copy src to Heap
- final WritableMemory wmem = gadget.getWritableMemory(); //use the gdt wmem
- final byte[] byteArr = srcHll8Heap.toUpdatableByteArray(); //serialize srcCopy
- wmem.putByteArray(0, byteArr, 0, byteArr.length); //replace old data with new
- final HllSketch gdtTmp = HllSketch.writableWrap(wmem); //wrap & replace gdt
- //ooof is already what source is.
- hllSketchImpl = gdtTmp.hllSketchImpl;
- break;
- }
- case 12: //src <= max, src < gdt, gdtHLL, gdtHeap, fwd merge/repl, downsample Gdt, ooof=True
- {
- final HllSketch gdtHll8Heap = downsample(gadget, srcLgK); //downsample gdt to srcLgK
+ case 12://src <= max, src < gdt, gdtHLL, gdtHeap
+ { //Action: downsample gdt to srcLgK, forward HLL merge w/autofold, ooof=True
+ final HllSketch gdtHll8Heap = downsample(gadget, srcLgK);
//merge src(Hll4,6,8;heap/mem,Mode=HLL) -> gdt(Hll8,heap,hll)
mergeHlltoHLLmode(source, gdtHll8Heap, srcLgK, gadgetLgK, srcIsMem, false);
- gdtHll8Heap.putOutOfOrderFlag(true);
- hllSketchImpl = gdtHll8Heap.hllSketchImpl;
+ hllSketchImpl = gdtHll8Heap.putOutOfOrderFlag(true).hllSketchImpl;
break;
}
- case 13: //src <= max, src < gdt, gdtHLL, gdtMemory, fwd merge/repl mem, downsample Gdt, ooof=True
- {
- final HllSketch gdtHll8Heap = downsample(gadget, srcLgK); //downsample gdt to srcLgK
+ case 13://src <= max, src < gdt, gdtHLL, gdtMemory
+ { //Action: downsample gdt to srcLgK, forward HLL merge w/autofold, use gdt memory, ooof=True
+ final HllSketch gdtHll8Heap = downsample(gadget, srcLgK);
//merge src(Hll4,6,8;heap/mem;Mode=HLL) -> gdt(Hll8,heap,Mode=HLL)
mergeHlltoHLLmode(source, gdtHll8Heap, srcLgK, gadgetLgK, srcIsMem, false);
- final WritableMemory wmem = gadget.getWritableMemory(); //use the gdt wmem
- final byte[] byteArr = gdtHll8Heap.toUpdatableByteArray(); //serialize gdtCopy
- wmem.putByteArray(0, byteArr, 0, byteArr.length); //replace old data with new
- final HllSketch gdtTmp = HllSketch.writableWrap(wmem); //wrap & replace gdt
- gdtTmp.putOutOfOrderFlag(true);
- hllSketchImpl = gdtTmp.hllSketchImpl;
- break;
- }
- case 16: //src > max, src >= gdt, gdtList, gdtHeap, reverse merge, downsample Src, ooof=OR
- {
- final HllSketch srcHll8Heap = downsample(source, lgMaxK); //downsample src to Max
- gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,heap,list) -> src(Hll8,heap,hll)
- final HllSketch gdtTmp = srcHll8Heap; //replace gdt
- gdtTmp.putOutOfOrderFlag(gdtTmp.isOutOfOrderFlag() | source.isOutOfOrderFlag());
- hllSketchImpl = gdtTmp.hllSketchImpl;
+ hllSketchImpl = useGadgetMemory(gadget, gdtHll8Heap, true).hllSketchImpl;
break;
}
- case 17: //src > max, src >= gdt, gdtList, gdtMemory, rev merge/repl mem, downsample Src, ooof=OR
- {
- final HllSketch srcHll8Heap = downsample(source, lgMaxK); //downsample src to Max
- gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,mem,list) -> src(Hll8,heap,hll)
- final WritableMemory wmem = gadget.getWritableMemory(); //use the gdt wmem
- final byte[] byteArr = srcHll8Heap.toUpdatableByteArray(); //serialize srcCopy
- wmem.putByteArray(0, byteArr, 0, byteArr.length); //replace old data with new
- final HllSketch gdtTmp = HllSketch.writableWrap(wmem); //wrap & replace gdt
- gdtTmp.putOutOfOrderFlag(gdtTmp.isOutOfOrderFlag() | source.isOutOfOrderFlag());
- hllSketchImpl = gdtTmp.hllSketchImpl;
- break;
- }
- case 18: //src > max, src >= gdt, gdtSet, gdtHeap, rev merge, downsample Src, ooof=True
- {
- final HllSketch srcHll8Heap = downsample(source, lgMaxK); //downsample src to Max
- gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,heap,set) -> src(Hll8,heap,hll)
- final HllSketch gdtTmp = srcHll8Heap; //replace gdt
- gdtTmp.putOutOfOrderFlag(true);
- hllSketchImpl = gdtTmp.hllSketchImpl;
+
+ case 6: //src <= max, src >= gdt, gdtEmpty, gdtHeap
+ case 14://src <= max, src < gdt, gdtEmpty, gdtHeap
+ { //Action: copy src, replace gdt, ooof=src
+ final HllSketch srcHll8Heap = source.copyAs(HLL_8);
+ hllSketchImpl = srcHll8Heap.hllSketchImpl;
break;
}
- case 19: //src > max, src >= gdt, gdtSet, gdtMemory, rev merge/rep mem, downsample Src, ooof=True
- {
- final HllSketch srcHll8Heap = downsample(source, lgMaxK); //downsample src to Max
- gadget.mergeTo(srcHll8Heap); //merge gdt(Hll8,mem,set) -> src(Hll8,heap,hll)
- final WritableMemory wmem = gadget.getWritableMemory(); //use the gdt wmem
- final byte[] byteArr = srcHll8Heap.toUpdatableByteArray(); //serialize srcCopy
- wmem.putByteArray(0, byteArr, 0, byteArr.length); //replace old data with new
- final HllSketch gdtTmp = HllSketch.writableWrap(wmem); //wrap & replace gdt
- gdtTmp.putOutOfOrderFlag(true);
- hllSketchImpl = gdtTmp.hllSketchImpl;
+ case 22://src > max, src >= gdt, gdtEmpty, gdtHeap
+ { //Action: downsample src to lgMaxK, replace gdt, ooof=src
+ final HllSketch srcHll8Heap = downsample(source, lgMaxK);
+ hllSketchImpl = srcHll8Heap.hllSketchImpl;
break;
}
- case 22: //src > max, src >= gdt, gdtEmpty, gdtHeap, replace, downsample Src, ooof=Src
- {
- final HllSketch srcHll8Heap = downsample(source, lgMaxK); //downsample src to Max
- hllSketchImpl = srcHll8Heap.hllSketchImpl; //replace gdt
- //ooof is already what source is.
+
+ case 7: //src <= max, src >= gdt, gdtEmpty, gdtMemory
+ case 15://src <= max, src < gdt, gdtEmpty, gdtMemory
+ { //Action: copy src, use gdt memory, ooof=src
+ final HllSketch srcHll8Heap = source.copyAs(HLL_8);
+ hllSketchImpl = useGadgetMemory(gadget, srcHll8Heap, false).hllSketchImpl;
break;
}
- case 23: //src > max, src >= gdt, gdtEmpty, gdtMemory, replace mem, downsample Src, ooof=Src
- {
- final HllSketch srcHll8Heap = downsample(source, lgMaxK); //downsample src to Max
- final WritableMemory wmem = gadget.getWritableMemory(); //use the gdt wmem
- final byte[] byteArr = srcHll8Heap.toUpdatableByteArray(); //serialize srcCopy
- wmem.putByteArray(0, byteArr, 0, byteArr.length); //replace old data with new
- hllSketchImpl = HllSketch.writableWrap(wmem).hllSketchImpl;//wrap & replace gdt
- //ooof is already what source is.
+ case 23://src > max, src >= gdt, gdtEmpty, gdtMemory, replace mem, downsample src, ooof=src
+ { //Action: downsample src to lgMaxK, use gdt memory, ooof=src
+ final HllSketch srcHll8Heap = downsample(source, lgMaxK);
+ hllSketchImpl = useGadgetMemory(gadget, srcHll8Heap, false).hllSketchImpl;
break;
}
//default: return gadget.hllSketchImpl; //not possible
@@ -550,7 +489,17 @@ public class Union extends BaseHllSketch {
return hllSketchImpl;
}
- private static void mergeHlltoHLLmode(final HllSketch src, final HllSketch tgt,
+ private static final HllSketch useGadgetMemory(
+ final HllSketch gadget, final HllSketch hll8Heap, final boolean setOooFlag) {
+ final WritableMemory wmem = gadget.getWritableMemory(); //use the gdt wmem
+ final byte[] byteArr = hll8Heap.toUpdatableByteArray(); //serialize srcCopy
+ wmem.putByteArray(0, byteArr, 0, byteArr.length); //replace old data with new
+ return (setOooFlag)
+ ? HllSketch.writableWrap(wmem).putOutOfOrderFlag(true) //wrap, set oooflag, return
+ : HllSketch.writableWrap(wmem); //wrap & return
+ }
+
+ private static final void mergeHlltoHLLmode(final HllSketch src, final HllSketch tgt,
final int srcLgK, final int tgtLgK, final boolean srcIsMem, final boolean tgtIsMem) {
final int sw = (tgtIsMem ? 1 : 0) | (srcIsMem ? 2 : 0)
| ((srcLgK > tgtLgK) ? 4 : 0) | ((src.getTgtHllType() != HLL_8) ? 8 : 0);
@@ -699,7 +648,7 @@ public class Union extends BaseHllSketch {
}
//both of these are required for isomorphism
tgtHllArr.putHipAccum(candArr.getHipAccum());
- tgtHllArr.putOutOfOrderFlag(candidate.isOutOfOrderFlag());
+ tgtHllArr.putOutOfOrder(candidate.isOutOfOrder());
tgtHllArr.putRebuildCurMinNumKxQFlag(false);
return new HllSketch(tgtHllArr);
}
diff --git a/src/test/java/org/apache/datasketches/hll/DirectUnionTest.java b/src/test/java/org/apache/datasketches/hll/DirectUnionTest.java
index 386dcf2..d967747 100644
--- a/src/test/java/org/apache/datasketches/hll/DirectUnionTest.java
+++ b/src/test/java/org/apache/datasketches/hll/DirectUnionTest.java
@@ -220,9 +220,9 @@ public class DirectUnionTest {
double controlEst = control.getEstimate();
double controlUb = control.getUpperBound(2);
double controlLb = control.getLowerBound(2);
- String h1ooo = h1.isOutOfOrderFlag() ? "T" : "F";
- String h2ooo = h2.isOutOfOrderFlag() ? "T" : "F";
- String resultooo = result.isOutOfOrderFlag() ? "T" : "F";
+ String h1ooo = h1.isOutOfOrder() ? "T" : "F";
+ String h2ooo = h2.isOutOfOrder() ? "T" : "F";
+ String resultooo = result.isOutOfOrder() ? "T" : "F";
String row = String.format(dataFmt,
n1, n2, tot,
lgMaxK, lgK1, lgK2, lgKR,
diff --git a/src/test/java/org/apache/datasketches/hll/UnionCaseTest.java b/src/test/java/org/apache/datasketches/hll/UnionCaseTest.java
index c6bf77c..35cc778 100644
--- a/src/test/java/org/apache/datasketches/hll/UnionCaseTest.java
+++ b/src/test/java/org/apache/datasketches/hll/UnionCaseTest.java
@@ -101,7 +101,7 @@ public class UnionCaseTest {
double estU = union.getEstimate();
double err = Math.abs((estU / totalU) - 1.0);
int gdtLgK = union.getLgConfigK();
- boolean uooof = union.isOutOfOrderFlag();
+ boolean uooof = union.isOutOfOrder();
double rseFactor = (uooof) ? HLL_NON_HIP_RSE_FACTOR : HLL_HIP_RSE_FACTOR;
double rse = (rseFactor * 3) / Math.sqrt(1 << gdtLgK); //99.7% conf
@@ -115,8 +115,8 @@ public class UnionCaseTest {
String gdtMem = Boolean.toString(union.isMemory());
String srcMode = source.getCurMode().toString();
String gdtMode = union.getCurMode().toString();
- String srcOoof = Boolean.toString(source.isOutOfOrderFlag());
- String gdtOoof = Boolean.toString(union.isOutOfOrderFlag());
+ String srcOoof = Boolean.toString(source.isOutOfOrder());
+ String gdtOoof = Boolean.toString(union.isOutOfOrder());
printf(hfmt, caseNumStr, srcLgKStr, gdtLgKStr, srcType, gdtType, srcMem, gdtMem,
srcMode, gdtMode, srcOoof, gdtOoof);
assertTrue(err < rse, "Err: " + err + ", RSE: " + rse);
@@ -192,8 +192,8 @@ public class UnionCaseTest {
println(u.toString());
assertEquals(u.getCurMode(), LIST);
assertEquals(u.getLgConfigK(), 12);
- assertFalse(u.isOutOfOrderFlag());
- double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrderFlag(), 3.0);
+ assertFalse(u.isOutOfOrder());
+ double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrder(), 3.0);
println("ErrToll: " + err);
assertEquals(u.getEstimate(), sum, err);
}
@@ -214,8 +214,8 @@ public class UnionCaseTest {
println(u.toString());
assertEquals(u.getCurMode(), SET);
assertEquals(u.getLgConfigK(), 12);
- assertTrue(u.isOutOfOrderFlag());
- double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrderFlag(), 3.0);
+ assertFalse(u.isOutOfOrder());
+ double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrder(), 3.0);
println("ErrToll: " + err);
assertEquals(u.getEstimate(), sum, err);
}
@@ -236,8 +236,8 @@ public class UnionCaseTest {
println(u.toString());
assertEquals(u.getCurMode(), SET);
assertEquals(u.getLgConfigK(), 12);
- assertTrue(u.isOutOfOrderFlag());
- double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrderFlag(), 3.0);
+ assertFalse(u.isOutOfOrder());
+ double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrder(), 3.0);
println("ErrToll: " + err);
assertEquals(u.getEstimate(), sum, err);
}
@@ -258,8 +258,8 @@ public class UnionCaseTest {
println(u.toString());
assertEquals(u.getCurMode(), SET);
assertEquals(u.getLgConfigK(), 12);
- assertTrue(u.isOutOfOrderFlag());
- double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrderFlag(), 3.0);
+ assertFalse(u.isOutOfOrder());
+ double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrder(), 3.0);
println("ErrToll: " + err);
assertEquals(u.getEstimate(), sum, err);
}
@@ -280,8 +280,8 @@ public class UnionCaseTest {
println(u.toString());
assertEquals(u.getCurMode(), LIST);
assertEquals(u.getLgConfigK(), 12);
- assertFalse(u.isOutOfOrderFlag());
- double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrderFlag(), 3.0);
+ assertFalse(u.isOutOfOrder());
+ double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrder(), 3.0);
println("ErrToll: " + err);
assertEquals(u.getEstimate(), sum, err);
}
@@ -302,8 +302,8 @@ public class UnionCaseTest {
println(u.toString());
assertEquals(u.getCurMode(), SET);
assertEquals(u.getLgConfigK(), 12);
- assertTrue(u.isOutOfOrderFlag());
- double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrderFlag(), 3.0);
+ assertFalse(u.isOutOfOrder());
+ double err = sum * errorFactor(u.getLgConfigK(), u.isOutOfOrder(), 3.0);
println("ErrToll: " + err);
assertEquals(u.getEstimate(), sum, err);
}
diff --git a/src/test/java/org/apache/datasketches/hll/UnionTest.java b/src/test/java/org/apache/datasketches/hll/UnionTest.java
index e465554..2d4bf5c 100644
--- a/src/test/java/org/apache/datasketches/hll/UnionTest.java
+++ b/src/test/java/org/apache/datasketches/hll/UnionTest.java
@@ -219,9 +219,9 @@ public class UnionTest {
double controlEst = control.getEstimate();
double controlUb = control.getUpperBound(2);
double controlLb = control.getLowerBound(2);
- String h1ooo = h1.isOutOfOrderFlag() ? "T" : "F";
- String h2ooo = h2.isOutOfOrderFlag() ? "T" : "F";
- String resultooo = result.isOutOfOrderFlag() ? "T" : "F";
+ String h1ooo = h1.isOutOfOrder() ? "T" : "F";
+ String h2ooo = h2.isOutOfOrder() ? "T" : "F";
+ String resultooo = result.isOutOfOrder() ? "T" : "F";
String row = String.format(dataFmt,
n1, n2, tot,
lgMaxK, lgK1, lgK2, lgKR,
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org