All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.unimi.dsi.fastutil.booleans.Boolean2BooleanFunction.c Maven / Gradle / Ivy

Go to download

fastutil extends the Java Collections Framework by providing type-specific maps, sets, lists, and queues with a small memory footprint and fast access and insertion; it provides also big (64-bit) arrays, sets and lists, sorting algorithms, fast, practical I/O classes for binary and text files, and facilities for memory mapping large files. Note that if you have both this jar and fastutil-core.jar in your dependencies, fastutil-core.jar should be excluded.

There is a newer version: 8.5.13
Show newest version
/* Generic definitions */


#define PACKAGE it.unimi.dsi.fastutil.booleans
#define VALUE_PACKAGE it.unimi.dsi.fastutil.booleans
#define WIDENED_PACKAGE it.unimi.dsi.fastutil.booleans
/* Assertions (useful to generate conditional code) */
#define KEY_CLASS_Boolean 1
 #define KEYS_PRIMITIVE 1
#define VALUE_CLASS_Boolean 1
 #define VALUES_PRIMITIVE 1
/* Narrowing and widening */
#define KEY_NARROWING(x) x
#define KEY_LONG_NARROWING(x) it.unimi.dsi.fastutil.SafeMath.safeLongToBoolean(x)
#define VALUE_NARROWING(x) x
/* Current type and class (and size, if applicable) */
#define KEY_TYPE boolean
#define KEY_TYPE_CAP Boolean
#define VALUE_TYPE boolean
#define VALUE_TYPE_CAP Boolean
#define KEY_INDEX 0
#define KEY_TYPE_WIDENED boolean
#define VALUE_TYPE_WIDENED boolean
#define KEY_CLASS Boolean
#define VALUE_CLASS Boolean
#define VALUE_INDEX 0
#define KEY_CLASS_WIDENED Boolean
#define VALUE_CLASS_WIDENED Boolean
#define KEYS_USE_REFERENCE_EQUALITY KEY_CLASS_Reference
#define VALUES_USE_REFERENCE_EQUALITY VALUE_CLASS_Reference
#if KEYS_REFERENCE
#define KEY_GENERIC_CLASS K
#define KEY_GENERIC_TYPE K
#define KEY_GENERIC_CLASS_WIDENED K
#define KEY_GENERIC_TYPE_WIDENED K
#define KEY_GENERIC 
#define KEY_GENERIC_DIAMOND <>
#define KEY_GENERIC_WILDCARD 
#define KEY_EXTENDS_GENERIC 
#define KEY_SUPER_GENERIC 
#define KEY_CLASS_CAST (K)
#define KEY_GENERIC_CAST (K)
#define KEY_GENERIC_ARRAY_CAST (K[])
#define KEY_GENERIC_BIG_ARRAY_CAST (K[][])
#define DEPRECATED_IF_KEYS_REFERENCE @Deprecated
#define DEPRECATED_IF_KEYS_PRIMITIVE
#define SUPPRESS_WARNINGS_KEY_UNCHECKED @SuppressWarnings("unchecked")
#define SUPPRESS_WARNINGS_KEY_RAWTYPES @SuppressWarnings("rawtypes")
#define SUPPRESS_WARNINGS_KEY_UNCHECKED_RAWTYPES @SuppressWarnings({"unchecked","rawtypes"})
#define SAFE_VARARGS @SafeVarargs
#if defined(Custom)
#define SUPPRESS_WARNINGS_CUSTOM_KEY_UNCHECKED @SuppressWarnings("unchecked")
#else
#define SUPPRESS_WARNINGS_CUSTOM_KEY_UNCHECKED
#endif
#else
#define KEY_GENERIC_CLASS KEY_CLASS
#define KEY_GENERIC_TYPE KEY_TYPE
#define KEY_GENERIC_CLASS_WIDENED KEY_CLASS_WIDENED
#define KEY_GENERIC_TYPE_WIDENED KEY_TYPE_WIDENED
#define KEY_GENERIC
#define KEY_GENERIC_DIAMOND
#define KEY_GENERIC_WILDCARD
#define KEY_EXTENDS_GENERIC
#define KEY_SUPER_GENERIC
#define KEY_CLASS_CAST (KEY_CLASS)
#define KEY_GENERIC_CAST
#define KEY_GENERIC_ARRAY_CAST
#define KEY_GENERIC_BIG_ARRAY_CAST
#define DEPRECATED_IF_KEYS_REFERENCE
#define DEPRECATED_IF_KEYS_PRIMITIVE @Deprecated
#define SUPPRESS_WARNINGS_KEY_UNCHECKED
#define SUPPRESS_WARNINGS_KEY_RAWTYPES
#define SUPPRESS_WARNINGS_KEY_UNCHECKED_RAWTYPES
#define SUPPRESS_WARNINGS_CUSTOM_KEY_UNCHECKED
#define SAFE_VARARGS
#endif
#if VALUES_REFERENCE
#define VALUE_GENERIC_CLASS V
#define VALUE_GENERIC_TYPE V
#define VALUE_GENERIC_CLASS_WIDENED V
#define VALUE_GENERIC_TYPE_WIDENED V
#define VALUE_GENERIC 
#define VALUE_GENERIC_DIAMOND <>
#define VALUE_EXTENDS_GENERIC 
#define VALUE_SUPER_GENERIC 
#define VALUE_GENERIC_CAST (V)
#define VALUE_GENERIC_ARRAY_CAST (V[])
#define DEPRECATED_IF_VALUES_REFERENCE @Deprecated
#define DEPRECATED_IF_VALUES_PRIMITIVE
#define SUPPRESS_WARNINGS_VALUE_UNCHECKED @SuppressWarnings("unchecked")
#define SUPPRESS_WARNINGS_VALUE_RAWTYPES @SuppressWarnings("rawtypes")
#else
#define VALUE_GENERIC_CLASS VALUE_CLASS
#define VALUE_GENERIC_TYPE VALUE_TYPE
#define VALUE_GENERIC_CLASS_WIDENED VALUE_CLASS_WIDENED
#define VALUE_GENERIC_TYPE_WIDENED VALUE_TYPE_WIDENED
#define VALUE_GENERIC
#define VALUE_GENERIC_DIAMOND
#define VALUE_EXTENDS_GENERIC
#define VALUE_SUPER_GENERIC
#define VALUE_GENERIC_CAST
#define VALUE_GENERIC_ARRAY_CAST
#define DEPRECATED_IF_VALUES_REFERENCE
#define DEPRECATED_IF_VALUES_PRIMITIVE @Deprecated
#define SUPPRESS_WARNINGS_VALUE_UNCHECKED
#define SUPPRESS_WARNINGS_VALUE_RAWTYPES
#endif
#if KEYS_REFERENCE
#if VALUES_REFERENCE
#define KEY_VALUE_GENERIC 
#define KEY_VALUE_GENERIC_DIAMOND <>
#define KEY_VALUE_EXTENDS_GENERIC 
#define KEY_GENERIC_VALUE_EXTENDS_GENERIC 
#define KEY_SUPER_GENERIC_VALUE_EXTENDS_GENERIC 
#else
#define KEY_VALUE_GENERIC 
#define KEY_VALUE_GENERIC_DIAMOND <>
#define KEY_VALUE_EXTENDS_GENERIC 
#define KEY_GENERIC_VALUE_EXTENDS_GENERIC 
#define KEY_SUPER_GENERIC_VALUE_EXTENDS_GENERIC 
#endif
#else
#if VALUES_REFERENCE
#define KEY_VALUE_GENERIC 
#define KEY_VALUE_GENERIC_DIAMOND <>
#define KEY_VALUE_EXTENDS_GENERIC 
#define KEY_GENERIC_VALUE_EXTENDS_GENERIC 
#define KEY_SUPER_GENERIC_VALUE_EXTENDS_GENERIC 
#else
#define KEY_VALUE_GENERIC
#define KEY_VALUE_GENERIC_DIAMOND
#define KEY_VALUE_EXTENDS_GENERIC
#define KEY_GENERIC_VALUE_EXTENDS_GENERIC
#define KEY_SUPER_GENERIC_VALUE_EXTENDS_GENERIC
#endif
#endif
#if KEYS_REFERENCE || VALUES_REFERENCE
#define SUPPRESS_WARNINGS_KEY_VALUE_UNCHECKED @SuppressWarnings("unchecked")
#define SUPPRESS_WARNINGS_KEY_VALUE_RAWTYPES @SuppressWarnings("rawtypes")
#define SUPPRESS_WARNINGS_KEY_VALUE_UNCHECKED_RAWTYPES @SuppressWarnings({"rawtypes", "unchecked"})
#else
#define SUPPRESS_WARNINGS_KEY_VALUE_UNCHECKED
#define SUPPRESS_WARNINGS_KEY_VALUE_RAWTYPES
#define SUPPRESS_WARNINGS_KEY_VALUE_UNCHECKED_RAWTYPES
#endif
/* Value methods */
#define KEY_VALUE booleanValue
#define KEY_WIDENED_VALUE booleanValue
#define VALUE_VALUE booleanValue
#define VALUE_WIDENED_VALUE booleanValue
/* Interfaces (keys) */
#define COLLECTION BooleanCollection
#define STD_KEY_COLLECTION BooleanCollection
#define SET BooleanSet
#define HASH BooleanHash
#define SORTED_SET BooleanSortedSet
#define STD_SORTED_SET BooleanSortedSet
#define FUNCTION Boolean2BooleanFunction
#define MAP Boolean2BooleanMap
#define SORTED_MAP Boolean2BooleanSortedMap
#if KEY_CLASS_Object && VALUE_CLASS_Object
#define PAIR it.unimi.dsi.fastutil.Pair
#define SORTED_PAIR it.unimi.dsi.fastutil.SortedPair
#else
#define PAIR BooleanBooleanPair
#define SORTED_PAIR BooleanBooleanSortedPair
#endif
#define MUTABLE_PAIR BooleanBooleanMutablePair
#define IMMUTABLE_PAIR BooleanBooleanImmutablePair
#define IMMUTABLE_SORTED_PAIR BooleanBooleanImmutableSortedPair
#if KEYS_REFERENCE
#define STD_SORTED_MAP SortedMap
#define STRATEGY Strategy
#else
#define STD_SORTED_MAP Boolean2BooleanSortedMap
#define STRATEGY PACKAGE.BooleanHash.Strategy
#endif
#define LIST BooleanList
#define BIG_LIST BooleanBigList
#define STACK BooleanStack
#define ATOMIC_ARRAY AtomicBooleanArray
#define PRIORITY_QUEUE BooleanPriorityQueue
#define INDIRECT_PRIORITY_QUEUE BooleanIndirectPriorityQueue
#define INDIRECT_DOUBLE_PRIORITY_QUEUE BooleanIndirectDoublePriorityQueue
#define KEY_CONSUMER BooleanConsumer
#define KEY_PREDICATE BooleanPredicate
#define KEY_UNARY_OPERATOR BooleanUnaryOperator
#define KEY_BINARY_OPERATOR BooleanBinaryOperator
#define KEY_ITERATOR BooleanIterator
#define KEY_WIDENED_ITERATOR BooleanIterator
#define KEY_ITERABLE BooleanIterable
#define KEY_SPLITERATOR BooleanSpliterator
#define KEY_WIDENED_SPLITERATOR BooleanSpliterator
#define KEY_BIDI_ITERATOR BooleanBidirectionalIterator
#define KEY_BIDI_ITERABLE BooleanBidirectionalIterable
#define KEY_LIST_ITERATOR BooleanListIterator
#define KEY_BIG_LIST_ITERATOR BooleanBigListIterator
#define STD_KEY_ITERATOR BooleanIterator
#define STD_KEY_SPLITERATOR BooleanSpliterator
#define STD_KEY_ITERABLE BooleanIterable
#define KEY_COMPARATOR BooleanComparator
/* Interfaces (values) */
#define VALUE_COLLECTION BooleanCollection
#define VALUE_ARRAY_SET BooleanArraySet
#define VALUE_CONSUMER BooleanConsumer
#define VALUE_BINARY_OPERATOR BooleanBinaryOperator
#define VALUE_ITERATOR BooleanIterator
#define VALUE_SPLITERATOR BooleanSpliterator
#define VALUE_LIST_ITERATOR BooleanListIterator
/* Types and methods related to primitive-type support in the JDK */
#if KEYS_PRIMITIVE && ! KEY_CLASS_Boolean
#define JDK_PRIMITIVE_KEY_CONSUMER java.util.function.BooleanConsumer
#define JDK_PRIMITIVE_PREDICATE java.util.function.BooleanPredicate
#define JDK_PRIMITIVE_BINARY_OPERATOR java.util.function.BooleanBinaryOperator
#define JDK_PRIMITIVE_BINARY_OPERATOR_APPLY applyAsBoolean
#define JDK_PRIMITIVE_ITERATOR PrimitiveIterator.OfBoolean
#define JDK_PRIMITIVE_SPLITERATOR Spliterator.OfBoolean
#define JDK_PRIMITIVE_STREAM java.util.stream.BooleanStream
#define JDK_PRIMITIVE_UNARY_OPERATOR java.util.function.BooleanUnaryOperator
#define JDK_PRIMITIVE_KEY_APPLY applyAsBoolean
#define JDK_KEY_TO_GENERIC_FUNCTION java.util.function.BooleanFunction
#else
#define JDK_KEY_TO_GENERIC_FUNCTION java.util.function.Function
#endif
#if VALUES_PRIMITIVE && ! VALUE_CLASS_Boolean
#define JDK_PRIMITIVE_VALUE_CONSUMER java.util.function.BooleanConsumer
#define JDK_PRIMITIVE_VALUE_BINARY_OPERATOR java.util.function.BooleanBinaryOperator
#define JDK_PRIMITIVE_VALUE_OPERATOR_APPLY applyAsBoolean
#endif
#if KEYS_INT_LONG_DOUBLE
#define METHOD_ARG_KEY_CONSUMER JDK_PRIMITIVE_KEY_CONSUMER
#define METHOD_ARG_PREDICATE JDK_PRIMITIVE_PREDICATE
#define METHOD_ARG_KEY_UNARY_OPERATOR JDK_PRIMITIVE_UNARY_OPERATOR
#define METHOD_ARG_KEY_BINARY_OPERATOR JDK_PRIMITIVE_BINARY_OPERATOR
#define KEY_OPERATOR_APPLY applyAsBoolean
#else
#define METHOD_ARG_KEY_CONSUMER KEY_CONSUMER KEY_SUPER_GENERIC
#define METHOD_ARG_PREDICATE KEY_PREDICATE KEY_SUPER_GENERIC
#define METHOD_ARG_KEY_UNARY_OPERATOR KEY_UNARY_OPERATOR KEY_GENERIC
#define METHOD_ARG_KEY_BINARY_OPERATOR KEY_BINARY_OPERATOR KEY_GENERIC
#define KEY_OPERATOR_APPLY apply
#endif
#if VALUES_INT_LONG_DOUBLE
#define METHOD_ARG_VALUE_CONSUMER JDK_PRIMITIVE_VALUE_CONSUMER
#define METHOD_ARG_VALUE_BINARY_OPERATOR JDK_PRIMITIVE_VALUE_BINARY_OPERATOR
#define VALUE_OPERATOR_APPLY applyAsBoolean
#else
#define METHOD_ARG_VALUE_CONSUMER VALUE_CONSUMER VALUE_SUPER_GENERIC
#define METHOD_ARG_VALUE_BINARY_OPERATOR VALUE_PACKAGE.VALUE_BINARY_OPERATOR VALUE_GENERIC
#define VALUE_OPERATOR_APPLY apply
#endif
/* Abstract implementations (keys) */
#define ABSTRACT_COLLECTION AbstractBooleanCollection
#define ABSTRACT_SET AbstractBooleanSet
#define ABSTRACT_SORTED_SET AbstractBooleanSortedSet
#define ABSTRACT_FUNCTION AbstractBoolean2BooleanFunction
#define ABSTRACT_MAP AbstractBoolean2BooleanMap
#define ABSTRACT_FUNCTION AbstractBoolean2BooleanFunction
#define ABSTRACT_SORTED_MAP AbstractBoolean2BooleanSortedMap
#define ABSTRACT_LIST AbstractBooleanList
#define ABSTRACT_BIG_LIST AbstractBooleanBigList
#define SUBLIST BooleanSubList
#define SUBLIST_RANDOM_ACCESS BooleanRandomAccessSubList
#define ABSTRACT_PRIORITY_QUEUE AbstractBooleanPriorityQueue
#define ABSTRACT_STACK AbstractBooleanStack
#define KEY_ABSTRACT_ITERATOR AbstractBooleanIterator
#define KEY_ABSTRACT_SPLITERATOR AbstractBooleanSpliterator
#define KEY_ABSTRACT_BIDI_ITERATOR AbstractBooleanBidirectionalIterator
#define KEY_ABSTRACT_LIST_ITERATOR AbstractBooleanListIterator
#define KEY_ABSTRACT_BIG_LIST_ITERATOR AbstractBooleanBigListIterator
#if KEY_CLASS_Object
#define KEY_ABSTRACT_COMPARATOR Comparator
#else
#define KEY_ABSTRACT_COMPARATOR AbstractBooleanComparator
#endif
/* Abstract implementations (values) */
#define VALUE_ABSTRACT_COLLECTION AbstractBooleanCollection
#define VALUE_ABSTRACT_ITERATOR AbstractBooleanIterator
#define VALUE_ABSTRACT_BIDI_ITERATOR AbstractBooleanBidirectionalIterator
/* Static containers (keys) */
#define COLLECTIONS BooleanCollections
#define SETS BooleanSets
#define SORTED_SETS BooleanSortedSets
#define LISTS BooleanLists
#define BIG_LISTS BooleanBigLists
#define MAPS Boolean2BooleanMaps
#define FUNCTIONS Boolean2BooleanFunctions
#define SORTED_MAPS Boolean2BooleanSortedMaps
#define PRIORITY_QUEUES BooleanPriorityQueues
#define HEAPS BooleanHeaps
#define SEMI_INDIRECT_HEAPS BooleanSemiIndirectHeaps
#define INDIRECT_HEAPS BooleanIndirectHeaps
#define ARRAYS BooleanArrays
#define BIG_ARRAYS BooleanBigArrays
#define ITERABLES BooleanIterables
#define ITERATORS BooleanIterators
#define WIDENED_ITERATORS BooleanIterators
#define SPLITERATORS BooleanSpliterators
#define WIDENED_SPLITERATORS BooleanSpliterators
#define BIG_LIST_ITERATORS BooleanBigListIterators
#define BIG_SPLITERATORS BooleanBigSpliterators
#define COMPARATORS BooleanComparators
/* Static containers (values) */
#define VALUE_COLLECTIONS BooleanCollections
#define VALUE_SETS BooleanSets
#define VALUE_ARRAYS BooleanArrays
#define VALUE_ITERATORS BooleanIterators
#define VALUE_SPLITERATORS BooleanSpliterators
/* Implementations */
#define OPEN_HASH_SET BooleanOpenHashSet
#define OPEN_HASH_BIG_SET BooleanOpenHashBigSet
#define OPEN_DOUBLE_HASH_SET BooleanOpenDoubleHashSet
#define OPEN_HASH_MAP Boolean2BooleanOpenHashMap
#define OPEN_HASH_BIG_MAP Boolean2BooleanOpenHashBigMap
#define STRIPED_OPEN_HASH_MAP StripedBoolean2BooleanOpenHashMap
#define OPEN_DOUBLE_HASH_MAP Boolean2BooleanOpenDoubleHashMap
#define ARRAY_SET BooleanArraySet
#define ARRAY_MAP Boolean2BooleanArrayMap
#define LINKED_OPEN_HASH_SET BooleanLinkedOpenHashSet
#define AVL_TREE_SET BooleanAVLTreeSet
#define RB_TREE_SET BooleanRBTreeSet
#define AVL_TREE_MAP Boolean2BooleanAVLTreeMap
#define RB_TREE_MAP Boolean2BooleanRBTreeMap
#define ARRAY_LIST BooleanArrayList
#define IMMUTABLE_LIST BooleanImmutableList
#define BIG_ARRAY_BIG_LIST BooleanBigArrayBigList
#define MAPPED_BIG_LIST BooleanMappedBigList
#define ARRAY_FRONT_CODED_LIST BooleanArrayFrontCodedList
#define ARRAY_FRONT_CODED_BIG_LIST BooleanArrayFrontCodedBigList
#define HEAP_PRIORITY_QUEUE BooleanHeapPriorityQueue
#define HEAP_SEMI_INDIRECT_PRIORITY_QUEUE BooleanHeapSemiIndirectPriorityQueue
#define HEAP_INDIRECT_PRIORITY_QUEUE BooleanHeapIndirectPriorityQueue
#define HEAP_SESQUI_INDIRECT_DOUBLE_PRIORITY_QUEUE BooleanHeapSesquiIndirectDoublePriorityQueue
#define HEAP_INDIRECT_DOUBLE_PRIORITY_QUEUE BooleanHeapIndirectDoublePriorityQueue
#define ARRAY_FIFO_QUEUE BooleanArrayFIFOQueue
#define ARRAY_PRIORITY_QUEUE BooleanArrayPriorityQueue
#define ARRAY_INDIRECT_PRIORITY_QUEUE BooleanArrayIndirectPriorityQueue
#define ARRAY_INDIRECT_DOUBLE_PRIORITY_QUEUE BooleanArrayIndirectDoublePriorityQueue
#define KEY_BUFFER BooleanBuffer
/* Synchronized wrappers */
#define SYNCHRONIZED_COLLECTION SynchronizedBooleanCollection
#define SYNCHRONIZED_SET SynchronizedBooleanSet
#define SYNCHRONIZED_SORTED_SET SynchronizedBooleanSortedSet
#define SYNCHRONIZED_FUNCTION SynchronizedBoolean2BooleanFunction
#define SYNCHRONIZED_MAP SynchronizedBoolean2BooleanMap
#define SYNCHRONIZED_LIST SynchronizedBooleanList
/* Unmodifiable wrappers */
#define UNMODIFIABLE_COLLECTION UnmodifiableBooleanCollection
#define UNMODIFIABLE_SET UnmodifiableBooleanSet
#define UNMODIFIABLE_SORTED_SET UnmodifiableBooleanSortedSet
#define UNMODIFIABLE_FUNCTION UnmodifiableBoolean2BooleanFunction
#define UNMODIFIABLE_MAP UnmodifiableBoolean2BooleanMap
#define UNMODIFIABLE_LIST UnmodifiableBooleanList
#define UNMODIFIABLE_KEY_ITERATOR UnmodifiableBooleanIterator
#define UNMODIFIABLE_KEY_BIDI_ITERATOR UnmodifiableBooleanBidirectionalIterator
#define UNMODIFIABLE_KEY_LIST_ITERATOR UnmodifiableBooleanListIterator
/* Other wrappers */
#define KEY_READER_WRAPPER BooleanReaderWrapper
#define KEY_DATA_INPUT_WRAPPER BooleanDataInputWrapper
#define KEY_DATA_NIO_INPUT_WRAPPER BooleanDataNioInputWrapper
/* Methods (keys) */
#define NEXT_KEY nextBoolean
#define PREV_KEY previousBoolean
#define NEXT_KEY_WIDENED nextBoolean
#define PREV_KEY_WIDENED previousBoolean
#define KEY_WIDENED_ITERATOR_METHOD booleanIterator
#define KEY_WIDENED_SPLITERATOR_METHOD booleanSpliterator
#define KEY_WIDENED_STREAM_METHOD booleanStream
#define KEY_WIDENED_PARALLEL_STREAM_METHOD booleanParallelStream
#define FIRST_KEY firstBooleanKey
#define LAST_KEY lastBooleanKey
#define GET_KEY getBoolean
#define AS_KEY_BUFFER asBooleanBuffer
#define PAIR_LEFT leftBoolean
#define PAIR_FIRST firstBoolean
#define PAIR_KEY keyBoolean
#define REMOVE_KEY removeBoolean
#define READ_KEY readBoolean
#define WRITE_KEY writeBoolean
#define DEQUEUE dequeueBoolean
#define DEQUEUE_LAST dequeueLastBoolean
#define SINGLETON_METHOD booleanSingleton
#define FIRST firstBoolean
#define LAST lastBoolean
#define TOP topBoolean
#define PEEK peekBoolean
#define POP popBoolean
#define KEY_EMPTY_ITERATOR_METHOD emptyBooleanIterator
#define KEY_EMPTY_SPLITERATOR_METHOD emptyBooleanSpliterator
#define AS_KEY_ITERATOR asBooleanIterator
#define AS_KEY_SPLITERATOR asBooleanSpliterator
#define AS_KEY_COMPARATOR asBooleanComparator
#define AS_KEY_ITERABLE asBooleanIterable
#define AS_KEY_WIDENED_ITERATOR asBooleanIterator
#define AS_KEY_WIDENED_SPLITERATOR asBooleanSpliterator
#define TO_KEY_ARRAY toBooleanArray
#define ENTRY_GET_KEY getBooleanKey
#define REMOVE_FIRST_KEY removeFirstBoolean
#define REMOVE_LAST_KEY removeLastBoolean
#define PARSE_KEY parseBoolean
#define LOAD_KEYS loadBooleans
#define LOAD_KEYS_BIG loadBooleansBig
#define STORE_KEYS storeBooleans
#if KEYS_REFERENCE
#define MAP_TO_KEY map
#define MAP_TO_KEY_WIDENED map
#define RETURN_FALSE_IF_KEY_NULL(k) if (k == null) return false;
#define REQUIRE_KEY_NON_NULL(k) java.util.Objects.requireNonNull(k);
#else
#define MAP_TO_KEY mapToBoolean
#define MAP_TO_KEY_WIDENED mapToBoolean
#define REQUIRE_KEY_NON_NULL(k)
#define RETURN_FALSE_IF_KEY_NULL(k)
#endif
/* Methods (values) */
#define MERGE_VALUE mergeBoolean
#define NEXT_VALUE nextBoolean
#define PREV_VALUE previousBoolean
#define READ_VALUE readBoolean
#define WRITE_VALUE writeBoolean
#define ENTRY_GET_VALUE getBooleanValue
#define REMOVE_FIRST_VALUE removeFirstBoolean
#define REMOVE_LAST_VALUE removeLastBoolean
#define AS_VALUE_ITERATOR asBooleanIterator
#define AS_VALUE_SPLITERATOR asBooleanSpliterator
#define PAIR_RIGHT rightBoolean
#define PAIR_SECOND secondBoolean
#define PAIR_VALUE valueBoolean
#if VALUES_REFERENCE
#define REQUIRE_VALUE_NON_NULL(v) java.util.Objects.requireNonNull(v);
#else
#define REQUIRE_VALUE_NON_NULL(v)
#endif
/* Methods (keys/values) */
#define ENTRYSET boolean2BooleanEntrySet
/* Methods that have special names depending on keys (but the special names depend on values) */
#if KEYS_REFERENCE
#define GET_VALUE getBoolean
#define REMOVE_VALUE removeBoolean
#define COMPUTE_IF_ABSENT_JDK computeBooleanIfAbsent
#define COMPUTE_IF_ABSENT_NULLABLE computeBooleanIfAbsentNullable
#define COMPUTE_IF_ABSENT_PARTIAL computeBooleanIfAbsentPartial
#define COMPUTE computeBoolean
#define COMPUTE_IF_PRESENT computeBooleanIfPresent
#define MERGE mergeBoolean
#else
#define GET_VALUE get
#define REMOVE_VALUE remove
#define COMPUTE_IF_ABSENT_JDK computeIfAbsent
#define COMPUTE_IF_ABSENT_NULLABLE computeIfAbsentNullable
#define COMPUTE_IF_ABSENT_PARTIAL computeIfAbsentPartial
#define COMPUTE compute
#define COMPUTE_IF_PRESENT computeIfPresent
#endif
/* Equality */
#define KEY_EQUALS_NOT_NULL_CAST(x,y) KEY_EQUALS_NOT_NULL(x,y)
#define KEY2INTHASH_CAST(x) KEY2INTHASH(x)
#if KEY_CLASS_Object
#define KEY_EQUALS(x,y) java.util.Objects.equals(x, y)
#define KEY_EQUALS_NOT_NULL(x,y) ( (x).equals(y) )
#define KEY_IS_NULL(x) ( (x) == null )
#elif KEY_CLASS_Float
#define KEY_EQUALS(x,y) ( Float.floatToIntBits(x) == Float.floatToIntBits(y) )
#define KEY_EQUALS_NOT_NULL(x,y) ( Float.floatToIntBits(x) == Float.floatToIntBits(y) )
#define KEY_IS_NULL(x) ( Float.floatToIntBits(x) == 0 )
#elif KEY_CLASS_Double
#define KEY_EQUALS(x,y) ( Double.doubleToLongBits(x) == Double.doubleToLongBits(y) )
#define KEY_EQUALS_NOT_NULL(x,y) ( Double.doubleToLongBits(x) == Double.doubleToLongBits(y) )
#define KEY_IS_NULL(x) ( Double.doubleToLongBits(x) == 0 )
#else
#define KEY_EQUALS(x,y) ( (x) == (y) )
#define KEY_EQUALS_NOT_NULL(x,y) ( (x) == (y) )
#define KEY_IS_NULL(x) ( (x) == KEY_NULL )
#endif
#ifdef Custom
#undef KEY_EQUALS
#define KEY_EQUALS(x,y) ( strategy.equals( (x), (y) ) )
#undef KEY_EQUALS_NOT_NULL
#define KEY_EQUALS_NOT_NULL(x,y) ( strategy.equals( (x), (y) ) )
#undef KEY_EQUALS_NOT_NULL_CAST
#define KEY_EQUALS_NOT_NULL_CAST(x,y) ( strategy.equals(  KEY_GENERIC_CAST (x), (y) ) )
#define KEY_EQUALS_NULL(x) ( strategy.equals( (x), KEY_NULL ) )
#else
#define KEY_EQUALS_NULL(x) KEY_IS_NULL(x)
#endif
#define VALUE_EQUALS_NOT_NULL_CAST(x,y) VALUE_EQUALS_NOT_NULL(x,y)
#define VALUE2INTHASH_CAST(x) VALUE2INTHASH(x)
#if VALUE_CLASS_Object
#define VALUE_EQUALS(x,y) java.util.Objects.equals(x, y)
#define VALUE_EQUALS_NOT_NULL(x,y) ( (x).equals(y) )
#define VALUE_IS_NULL(x) ( (x) == null )
#elif VALUE_CLASS_Float
#define VALUE_EQUALS(x,y) ( Float.floatToIntBits(x) == Float.floatToIntBits(y) )
#define VALUE_EQUALS_NOT_NULL(x,y) ( Float.floatToIntBits(x) == Float.floatToIntBits(y) )
#define VALUE_IS_NULL(x) ( Float.floatToIntBits(x) == 0 )
#elif VALUE_CLASS_Double
#define VALUE_EQUALS(x,y) ( Double.doubleToLongBits(x) == Double.doubleToLongBits(y) )
#define VALUE_EQUALS_NOT_NULL(x,y) ( Double.doubleToLongBits(x) == Double.doubleToLongBits(y) )
#define VALUE_IS_NULL(x) ( Double.doubleToLongBits(x) == 0 )
#else
#define VALUE_EQUALS(x,y) ( (x) == (y) )
#define VALUE_EQUALS_NOT_NULL(x,y) ( (x) == (y) )
#define VALUE_IS_NULL(x) ( (x) == VALUE_NULL )
#endif
/* Object/Reference-only definitions (keys) */
#if KEYS_REFERENCE
#define REMOVE remove
#define KEY_OBJ2TYPE(x) (x)
#define KEY_CLASS2TYPE(x) (x)
#define KEY2OBJ(x) (x)
#ifdef Custom
#define KEY2JAVAHASH_NOT_NULL(x) ( strategy.hashCode(x) )
#define KEY2INTHASH(x) ( it.unimi.dsi.fastutil.HashCommon.mix( strategy.hashCode(x) ) )
#undef KEY2INTHASH_CAST
#define KEY2INTHASH_CAST(x) ( it.unimi.dsi.fastutil.HashCommon.mix( strategy.hashCode(  KEY_GENERIC_CAST  x) ) )
#define KEY2LONGHASH(x) ( it.unimi.dsi.fastutil.HashCommon.mix( (long)( strategy.hashCode(x)) ) ) )
#elif KEY_CLASS_Object
#define KEY2JAVAHASH_NOT_NULL(x) ( (x).hashCode() )
#define KEY2JAVAHASH(x) ( (x) == null ? 0 : (x).hashCode() )
#define KEY2INTHASH(x) ( it.unimi.dsi.fastutil.HashCommon.mix( (x).hashCode() ) )
#define KEY2LONGHASH(x) ( it.unimi.dsi.fastutil.HashCommon.mix( (long)( (x).hashCode() ) ) )
#else
#define KEY2JAVAHASH_NOT_NULL(x) ( System.identityHashCode(x) )
#define KEY2INTHASH(x) ( it.unimi.dsi.fastutil.HashCommon.mix( System.identityHashCode(x) ) )
#define KEY2LONGHASH(x) ( it.unimi.dsi.fastutil.HashCommon.mix( (long)( System.identityHashCode(x) ) ) )
#endif
#define KEY_CMP(x,y) ( ((Comparable)(x)).compareTo(y) )
#define KEY_CMP_EQ(x,y) ( ((Comparable)(x)).compareTo(y) == 0 )
#define KEY_LESS(x,y) ( ((Comparable)(x)).compareTo(y) < 0 )
#define KEY_LESSEQ(x,y) ( ((Comparable)(x)).compareTo(y) <= 0 )
#define KEY_NULL (null)
#else
/* Primitive-type-only definitions (keys) */
#define REMOVE rem
#define KEY_CLASS2TYPE(x) (x).KEY_VALUE()
#define KEY_OBJ2TYPE(x) KEY_CLASS2TYPE((KEY_CLASS)(x))
#define KEY2OBJ(x) KEY_CLASS.valueOf(x)
#if KEY_CLASS_Boolean
#define KEY_CMP_EQ(x,y) ( (x) == (y) )
#define KEY_NULL (false)
#define KEY_CMP(x,y) ( KEY_CLASS.compare((x),(y)) )
#define KEY_LESS(x,y) ( !(x) && (y) )
#define KEY_LESSEQ(x,y) ( !(x) || (y) )
#else
#if KEY_CLASS_Byte || KEY_CLASS_Short || KEY_CLASS_Character
#define KEY_NULL ((KEY_TYPE)0)
#else
#define KEY_NULL (0)
#endif
#if KEY_CLASS_Float || KEY_CLASS_Double
#define KEY_CMP_EQ(x,y) ( KEY_CLASS.compare((x),(y)) == 0 )
#define KEY_CMP(x,y) ( KEY_CLASS.compare((x),(y)) )
#define KEY_LESS(x,y) ( KEY_CLASS.compare((x),(y)) < 0 )
#define KEY_LESSEQ(x,y) ( KEY_CLASS.compare((x),(y)) <= 0 )
#else
#define KEY_CMP_EQ(x,y) ( (x) == (y) )
#define KEY_CMP(x,y) ( KEY_CLASS.compare((x),(y)) )
#define KEY_LESS(x,y) ( (x) < (y) )
#define KEY_LESSEQ(x,y) ( (x) <= (y) )
#endif
#if KEY_CLASS_Float
#define KEY2LEXINT(x) fixFloat(x)
#elif KEY_CLASS_Double
#define KEY2LEXINT(x) fixDouble(x)
#else
#define KEY2LEXINT(x) (x)
#endif
#endif
#ifdef Custom
#define KEY2JAVAHASH_NOT_NULL(x) ( strategy.hashCode(x) )
#define KEY2INTHASH(x) ( it.unimi.dsi.fastutil.HashCommon.mix( strategy.hashCode(x) ) )
#define KEY2LONGHASH(x) ( it.unimi.dsi.fastutil.HashCommon.mix( (long)( strategy.hashCode(x) ) ) )
#else
#if KEY_CLASS_Float
#define KEY2JAVAHASH_NOT_NULL(x) it.unimi.dsi.fastutil.HashCommon.float2int(x)
#define KEY2INTHASH(x) it.unimi.dsi.fastutil.HashCommon.mix( it.unimi.dsi.fastutil.HashCommon.float2int(x) )
#define KEY2LONGHASH(x) it.unimi.dsi.fastutil.HashCommon.mix( (long)( it.unimi.dsi.fastutil.HashCommon.float2int(x) ) )
#define INT(x) (x)
#elif KEY_CLASS_Double
#define KEY2JAVAHASH_NOT_NULL(x) it.unimi.dsi.fastutil.HashCommon.double2int(x)
#define KEY2INTHASH(x) (int)it.unimi.dsi.fastutil.HashCommon.mix( Double.doubleToRawLongBits(x) )
#define KEY2LONGHASH(x) it.unimi.dsi.fastutil.HashCommon.mix( Double.doubleToRawLongBits(x) )
#define INT(x) (int)(x)
#elif KEY_CLASS_Long
#define KEY2JAVAHASH_NOT_NULL(x) it.unimi.dsi.fastutil.HashCommon.long2int(x)
#define KEY2INTHASH(x) (int)it.unimi.dsi.fastutil.HashCommon.mix( (x) )
#define KEY2LONGHASH(x) it.unimi.dsi.fastutil.HashCommon.mix( (x) )
#define INT(x) (int)(x)
#elif KEY_CLASS_Boolean
#define KEY2JAVAHASH_NOT_NULL(x) ((x) ? 1231 : 1237)
#define KEY2INTHASH(x) ((x) ? 0xfab5368 : 0xcba05e7b)
#define KEY2LONGHASH(x) ((x) ? 0x74a19fc8b6428188L : 0xbaeca2031a4fd9ecL)
#else
#define KEY2JAVAHASH_NOT_NULL(x) (x)
#define KEY2INTHASH(x) ( it.unimi.dsi.fastutil.HashCommon.mix( (x) ) )
#define KEY2LONGHASH(x) ( it.unimi.dsi.fastutil.HashCommon.mix( (long)( (x) ) ) )
#define INT(x) (x)
#endif
#endif
#endif
#ifndef KEY2JAVAHASH
#define KEY2JAVAHASH(x) KEY2JAVAHASH_NOT_NULL(x)
#endif
/* Object/Reference-only definitions (values) */
#if VALUES_REFERENCE
#define VALUE_OBJ2TYPE(x) (x)
#define VALUE_CLASS2TYPE(x) (x)
#define VALUE2OBJ(x) (x)
#if VALUE_CLASS_Object
#define VALUE2JAVAHASH(x) ( (x) == null ? 0 : (x).hashCode() )
#else
#define VALUE2JAVAHASH(x) ( (x) == null ? 0 : System.identityHashCode(x) )
#endif
#define VALUE_NULL (null)
#else
/* Primitive-type-only definitions (values) */
#define VALUE_CLASS2TYPE(x) (x).VALUE_VALUE()
#define VALUE_OBJ2TYPE(x) VALUE_CLASS2TYPE((VALUE_CLASS)(x))
#define VALUE2OBJ(x) VALUE_CLASS.valueOf(x)
#if VALUE_CLASS_Float || VALUE_CLASS_Double || VALUE_CLASS_Long
#define VALUE_NULL (0)
#define VALUE2JAVAHASH(x) it.unimi.dsi.fastutil.HashCommon.boolean2int(x)
#elif VALUE_CLASS_Boolean
#define VALUE_NULL (false)
#define VALUE2JAVAHASH(x) (x ? 1231 : 1237)
#else
#if VALUE_CLASS_Integer
#define VALUE_NULL (0)
#else
#define VALUE_NULL ((VALUE_TYPE)0)
#endif
#define VALUE2JAVAHASH(x) (x)
#endif
#endif
/* START_OF_JAVA_SOURCE */
#include "drv/Function.drv"





© 2015 - 2024 Weber Informatics LLC | Privacy Policy