Package org.apache.druid.math.expr.vector
package org.apache.druid.math.expr.vector
-
ClassDescriptionBivariateFunctionVectorProcessor<TLeftInput,
TRightInput, TOutput> Basic vector processor that processes 2 inputs and works for both primitive value vectors and object vectors.BivariateObjectsFunctionVectorProcessor<TLeftInput,TRightInput, TOutput> BaseExprVectorProcessorfor expressions and functions with 2 'object' typed inputs (strings, arrays).CastToTypeVectorProcessor<TOutput>specializedDoubleBivariateFunctionVectorProcessorfor processing (double[], long[]) -> double[]specializedDoubleBivariateFunctionVectorProcessorfor processing (double[], double[]) -> double[]DoubleBivariateFunctionVectorProcessor<TLeftInput,TRightInput> common machinery for processing two input operators and functions, which should always treat null inputs as null output, and are backed by a primitive values instead of an object values (and need to use the null vectors instead of checking the vector themselves for nulls) this one is specialized for producing double[], seeLongBivariateFunctionVectorProcessorfor long[] primitives.specializedDoubleBivariateFunctionVectorProcessorfor processing (long[], double[]) -> double[]specializedDoubleBivariateFunctionVectorProcessorfor processing (long[], long[]) -> double[]specializedDoubleUnivariateFunctionVectorProcessorfor processing (double[]) -> double[]common machinery for processing single input operators and functions, which should always treat null input as null output, and are backed by a primitive value instead of an object value (and need to use the null vector instead of checking the vector itself for nulls) this one is specialized for producing double[], seeLongUnivariateFunctionVectorProcessorfor long[] primitives.specializedDoubleUnivariateFunctionVectorProcessorfor processing (long[]) -> double[]ExprEvalVectorbacked directly by an underlyingExpr.VectorInputBindingfor numeric type bindingsContainer to re-use a allocated objects across variousExprEvalNumericBindingVectorinstancesExprEvalVectorbacked directly by an underlyingExpr.VectorInputBindingfor object type bindingsContainer to re-use a allocated objects across variousExprEvalObjectBindingVectorinstancesResult ofExprVectorProcessor.evalVector(org.apache.druid.math.expr.Expr.VectorInputBinding)which wraps the actual evaluated results of the operation over the input vector(s).ExprVectorProcessor<TOutput>Interface describing vectorized expression processors, which can be specialized using input type information to produce optimized expression evaluators, which can operate on batches of primitive data with minimal object overheadImplementation ofExprVectorProcessorthat adapts non-vectorizedExpr.eval(Expr.ObjectBinding).Wrapper aroundExprVectorProcessorthat reports errors in the same style asFunctionExpr.specializedLongBivariateFunctionVectorProcessorfor processing (double[], long[]) -> long[]specializedLongBivariateFunctionVectorProcessorfor processing (double[], double[]) -> long[]LongBivariateFunctionVectorProcessor<TLeftInput,TRightInput> common machinery for processing two input operators and functions, which should always treat null inputs as null output, and are backed by a primitive values instead of an object values (and need to use the null vectors instead of checking the vector themselves for nulls) this one is specialized for producing long[], seeDoubleBivariateFunctionVectorProcessorfor double[] primitives.specializedLongBivariateFunctionVectorProcessorfor processing (long[], double[]) -> long[]specializedLongBivariateFunctionVectorProcessorfor processing (long[], long[]) -> long[]specializedLongUnivariateFunctionVectorProcessorfor processing (long[]) -> long[]common machinery for processing single input operators and functions, which should always treat null input as null output, and are backed by a primitive value instead of an object value (and need to use the null vector instead of checking the vector itself for nulls) this one is specialized for producing long[], seeDoubleUnivariateFunctionVectorProcessorfor double[] primitives.specializedLongUnivariateFunctionVectorProcessorfor processing (long[]) -> long[]specializedUnivariateObjectFunctionVectorProcessorfor processing (Object[]) -> long[]many objects enter, one object leaves...Make a 2 argument, math processor with the following type rules long, long -> double long, double -> double double, long -> double double, double -> doubleMake a 2 argument, math processor with the following type rules long, long -> long long, double -> long double, long -> long double, double -> longMake a 2 argument, math processor with the following type rules long, long -> long long, double -> double double, long -> double double, double -> doubleMake a 1 argument math processor with the following type rules long -> double double -> double using simple scalar functionsDoubleUnivariateLongFunctionandDoubleUnivariateDoubleFunctionMake a 1 argument math processor with the following type rules long -> long double -> long using simple scalar functionsLongUnivariateLongFunctionandLongUnivariateDoubleFunctionMake a 1 argument math processor with the following type rules long -> long double -> double using simple scalar functionsLongUnivariateLongFunctionandDoubleUnivariateDoubleFunctionUnivariateObjectFunctionVectorProcessor<TInput,TOutput> common machinery for processing single input operators and functions, which are backed by an object value instead of a primitive value (so do not need to use the null vector, and instead can check the value vector itself for nulls)Make a 2 argument, math processor with the following type rules long, long -> double long, double -> double double, long -> double double, double -> doubleMake a 2 argument, math processor with the following type rules long, long -> long long, double -> long double, long -> long double, double -> longMake a 2 argument, math processor with the following type rules long, long -> long long, double -> double double, long -> double double, double -> doubleVectorizized addition processor factoryMake a 1 argument math processor with the following type rules long -> double double -> double1 argument math processor with the following type rules long -> long double -> long1 argument math processor with the following type rules long -> long double -> double