Class VectorNormalize
java.lang.Object
dev.frostlake.functions.BuiltInFunction
dev.frostlake.functions.scalar.vector.VectorNormalize
VECTOR_NORMALIZE(v) — the unit vector v / |v|, always a VECTOR(FLOAT, n).
Live-verified:
VECTOR_NORMALIZE([1,2,3]::VECTOR(FLOAT,3))is[0.26726124,0.5345225,0.80178374]— the quotients computed in float64 and then NARROWED to float32 elements, not the float640.2672612419124244;- the arithmetic really is float64:
[1e-30,2e-30,2e-30]normalizes to[0.33333334,0.6666667,0.6666667], which float32 could not compute (the squares underflow there); - an INT vector normalizes to a FLOAT one —
SYSTEM$TYPEOFofVECTOR_NORMALIZE([1,2,3]::VECTOR(INT,3))isVECTOR(FLOAT, 3); - the ZERO vector is NOT a division by zero:
VECTOR_NORMALIZE([0,0,0]::VECTOR(FLOAT,3))is[0.0,0.0,0.0], notNaN.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionComputes the function's result over its already-evaluated argument values.intThe most arguments a call to this function may pass;Integer.MAX_VALUEmarks a variadic function (seeBuiltInFunction.isVariadic()).intThe fewest arguments a call to this function may pass; fewer is an argument-count error.Methods inherited from class dev.frostlake.functions.BuiltInFunction
approximateRejection, binaryRejection, booleanRejection, evaluate, fileRejection, geoRejection, getName, getReturnType, isVariadic, refusesMissingArgumentsByType, semiStructuredRejection, structuredRejection, temporalRejection, temporalRejection, temporalRejection, textRejection, uuidRejection, vectorRejection
-
Constructor Details
-
VectorNormalize
public VectorNormalize()
-
-
Method Details
-
evaluate
Description copied from class:BuiltInFunctionComputes the function's result over its already-evaluated argument values. A SQL NULL argument arrives as Javanull, and returningnullmakes the SQL result NULL.- Specified by:
evaluatein classBuiltInFunction- Parameters:
args- the argument values, in call order- Returns:
- the function's value for these arguments, or
nullfor SQL NULL
-
getMinArgCount
public int getMinArgCount()Description copied from class:BuiltInFunctionThe fewest arguments a call to this function may pass; fewer is an argument-count error.- Specified by:
getMinArgCountin classBuiltInFunction- Returns:
- the minimum accepted argument count
-
getMaxArgCount
public int getMaxArgCount()Description copied from class:BuiltInFunctionThe most arguments a call to this function may pass;Integer.MAX_VALUEmarks a variadic function (seeBuiltInFunction.isVariadic()).- Specified by:
getMaxArgCountin classBuiltInFunction- Returns:
- the maximum accepted argument count
-