@Override public boolean applySV(float value) { return !_nonMatchingValues.contains(value); } }
@Override public void seal() { sealed = true; sortedFloatList = new float[rawFloatSet.size()]; rawFloatSet.toArray(sortedFloatList); Arrays.sort(sortedFloatList); if (sortedFloatList.length == 0) { min = null; max = null; return; } // Update min/max based on raw docs. min = sortedFloatList[0]; max = sortedFloatList[sortedFloatList.length - 1]; // Merge the raw and aggregated docs, so stats for dictionary creation are collected correctly. int numAggregated = aggregatedFloatSet.size(); if (numAggregated > 0) { rawFloatSet.addAll(aggregatedFloatSet); sortedFloatList = new float[rawFloatSet.size()]; rawFloatSet.toArray(sortedFloatList); Arrays.sort(sortedFloatList); } } }
FloatRawValueBasedNotInPredicateEvaluator(NotInPredicate notInPredicate) { String[] values = notInPredicate.getValues(); _nonMatchingValues = new FloatOpenHashSet(HashUtil.getMinHashSetSize(values.length)); for (String value : values) { _nonMatchingValues.add(Float.parseFloat(value)); } }
/** * Removes an element from this set. * * <p> * This method is inherited from the type-specific collection this type-specific * set is based on, but it should not used as this interface reinstates * {@code remove()} as removal method. * * @deprecated Please use {@code remove()} instead. */ @Deprecated @Override default boolean rem(float k) { return remove(k); } }
/** * Collect statistics for the given entry. * - Add it to the passed in set (which could be raw or aggregated) * - Update maximum number of values for Multi-valued entries * - Update Total number of entries * - Check if entry is sorted. * @param entry * @param set */ private void collectEntry(Object entry, FloatSet set) { if (entry instanceof Object[]) { for (final Object e : (Object[]) entry) { set.add(((Number) e).floatValue()); } if (maxNumberOfMultiValues < ((Object[]) entry).length) { maxNumberOfMultiValues = ((Object[]) entry).length; } updateTotalNumberOfEntries((Object[]) entry); } else { float value = ((Number) entry).floatValue(); addressSorted(value); updatePartition(value); set.add(value); totalNumberOfEntries++; } }
FloatRawValueBasedInPredicateEvaluator(InPredicate inPredicate) { String[] values = inPredicate.getValues(); _matchingValues = new FloatOpenHashSet(HashUtil.getMinHashSetSize(values.length)); for (String value : values) { _matchingValues.add(Float.parseFloat(value)); } }
@Override public boolean applySV(float value) { return _matchingValues.contains(value); } }
@Override public float[][] transformToFloatValuesMV(@Nonnull ProjectionBlock projectionBlock) { if (getResultMetadata().getDataType() != FieldSpec.DataType.FLOAT) { return super.transformToFloatValuesMV(projectionBlock); } if (_floatValueSet == null) { _floatValueSet = new FloatOpenHashSet(); for (String inValue : _stringValueSet) { _floatValueSet.add(Float.parseFloat(inValue)); } _floatValues = new float[DocIdSetPlanNode.MAX_DOC_PER_CALL][]; } float[][] unFilteredFloatValues = _mainTransformFunction.transformToFloatValuesMV(projectionBlock); int length = projectionBlock.getNumDocs(); for (int i = 0; i < length; i++) { _floatValues[i] = filterFloats(_floatValueSet, unFilteredFloatValues[i]); } return _floatValues; }
private static float[] filterFloats(FloatSet floatSet, float[] source) { FloatList floatList = new FloatArrayList(); for (float value : source) { if (floatSet.contains(value)) { floatList.add(value); } } if (floatList.size() == source.length) { return source; } else { return floatList.toFloatArray(); } }
@Override public FloatColumn unique() { final FloatSet values = new FloatOpenHashSet(); for (int i = 0; i < size(); i++) { if (!isMissing(i)) { values.add(getFloat(i)); } } final FloatColumn column = FloatColumn.create(name() + " Unique values"); for (float value : values) { column.append(value); } return column; }
@Override public FloatColumn unique() { final FloatSet values = new FloatOpenHashSet(); for (int i = 0; i < size(); i++) { if (!isMissing(i)) { values.add(getFloat(i)); } } final FloatColumn column = FloatColumn.create(name() + " Unique values"); for (float value : values) { column.append(value); } return column; }