Description
Complete-array floating algorithms with statically supplied primitives.
AXPY
procedure AXPY (Y : in out F32_Array; A : F32; X : F32_Array)
Replace each binary32 Y element with A * X + Y. Multiplication occurs before addition and is not fused. Empty arrays are unchanged.
Parameters
- Y
The complete destination and addend array.
- A
The scalar multiplier applied to X.
- X
The complete source array with bounds matching Y.
AXPY
procedure AXPY (Y : in out F64_Array; A : F64; X : F64_Array)
Replace each binary64 Y element with A * X + Y. Multiplication occurs before addition and is not fused. Empty arrays are unchanged.
Parameters
- Y
The complete destination and addend array.
- A
The scalar multiplier applied to X.
- X
The complete source array with bounds matching Y.
Backend_F32_Add
function Backend_F32_Add (Left, Right : F32x4) return F32x4
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Left
- Right
Return value
Backend_F32_Extract
function Backend_F32_Extract (Value : F32x4; Lane : Lane_Index_32x4) return F32
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Value
- Lane
Return value
Backend_F32_Load_Partial
function Backend_F32_Load_Partial
(Data : F32_Array; Start : Natural; Count : Lane_Count_32x4) return F32x4
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check.
Parameters
- Data
The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
- Start
- Count
Return value
Backend_F32_Max_Number
function Backend_F32_Max_Number (Left, Right : F32x4) return F32x4
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Left
- Right
Return value
Backend_F32_Min_Number
function Backend_F32_Min_Number (Left, Right : F32x4) return F32x4
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Left
- Right
Return value
Backend_F32_Multiply
function Backend_F32_Multiply (Left, Right : F32x4) return F32x4
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Left
- Right
Return value
Backend_F32_Reduce_Add
function Backend_F32_Reduce_Add (Value : F32x4) return F32
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Value
Return value
Backend_F32_Reduce_Max_Number
function Backend_F32_Reduce_Max_Number (Value : F32x4) return F32
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Value
Return value
Backend_F32_Reduce_Min_Number
function Backend_F32_Reduce_Min_Number (Value : F32x4) return F32
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Value
Return value
Backend_F32_Splat
function Backend_F32_Splat (Value : F32) return F32x4
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Value
Return value
Backend_F32_Store_Partial
procedure Backend_F32_Store_Partial
(Data : in out F32_Array; Start : Natural; Count : Lane_Count_32x4; Value : F32x4)
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check.
Parameters
- Data
The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
- Start
- Count
- Value
Backend_F32_Zero
function Backend_F32_Zero return F32x4
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Return value
Backend_F64_Add
function Backend_F64_Add (Left, Right : F64x2) return F64x2
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Left
- Right
Return value
Backend_F64_Extract
function Backend_F64_Extract (Value : F64x2; Lane : Lane_Index_64x2) return F64
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Value
- Lane
Return value
Backend_F64_Load_Partial
function Backend_F64_Load_Partial
(Data : F64_Array; Start : Natural; Count : Lane_Count_64x2) return F64x2
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check.
Parameters
- Data
The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
- Start
- Count
Return value
Backend_F64_Max_Number
function Backend_F64_Max_Number (Left, Right : F64x2) return F64x2
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Left
- Right
Return value
Backend_F64_Min_Number
function Backend_F64_Min_Number (Left, Right : F64x2) return F64x2
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Left
- Right
Return value
Backend_F64_Multiply
function Backend_F64_Multiply (Left, Right : F64x2) return F64x2
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Left
- Right
Return value
Backend_F64_Reduce_Add
function Backend_F64_Reduce_Add (Value : F64x2) return F64
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Value
Return value
Backend_F64_Reduce_Max_Number
function Backend_F64_Reduce_Max_Number (Value : F64x2) return F64
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Value
Return value
Backend_F64_Reduce_Min_Number
function Backend_F64_Reduce_Min_Number (Value : F64x2) return F64
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Value
Return value
Backend_F64_Splat
function Backend_F64_Splat (Value : F64) return F64x2
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Parameters
- Value
Return value
Backend_F64_Store_Partial
procedure Backend_F64_Store_Partial
(Data : in out F64_Array; Start : Natural; Count : Lane_Count_64x2; Value : F64x2)
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check.
Parameters
- Data
The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
- Start
- Count
- Value
Backend_F64_Zero
function Backend_F64_Zero return F64x2
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check. @param Data The complete array to transform in place. @param Factor The scalar multiplier applied once to every element.
Return value
Clamp
procedure Clamp (Data : in out F32_Array; Low, High : F32)
Replace each element with Min_Number (Max_Number (Element, Low), High). Empty arrays are unchanged. NaNs, signed zeros, and inverted bounds follow that exact two-operation composition.
Parameters
- Data
The complete array to transform in place.
- Low
The lower operand supplied to Max_Number.
- High
The upper operand supplied to Min_Number.
Clamp
procedure Clamp (Data : in out F64_Array; Low, High : F64)
Replace each element with Min_Number (Max_Number (Element, Low), High). Empty arrays are unchanged. NaNs, signed zeros, and inverted bounds follow that exact two-operation composition.
Parameters
- Data
The complete array to transform in place.
- Low
The lower operand supplied to Max_Number.
- High
The upper operand supplied to Min_Number.
Dot_Product
function Dot_Product (Left, Right : F32_Array) return F32
Multiply corresponding binary32 elements and add the products. Accumulate products in four lane groups, then add the groups in ascending lane order from positive zero. Empty arrays return positive zero. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check.
Parameters
- Left
The left complete array.
- Right
The right complete array with matching bounds.
Return value
The lane-grouped sum of corresponding products.
Dot_Product
function Dot_Product (Left, Right : F64_Array) return F64
Multiply corresponding binary64 elements and add the products. Accumulate products in two lane groups, then add the groups in ascending lane order from positive zero. Empty arrays return positive zero. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check.
Parameters
- Left
The left complete array.
- Right
The right complete array with matching bounds.
Return value
The lane-grouped sum of corresponding products.
Max_Number
function Max_Number (Data : F32_Array) return F32
Return the number maximum of a nonempty binary32 array. Full blocks accumulate in four lane groups before reduction; the tail follows in source order.
Parameters
- Data
The nonempty complete array to reduce.
Return value
The maximum-number result.
Max_Number
function Max_Number (Data : F64_Array) return F64
Return the number maximum of a nonempty binary64 array. Full blocks accumulate in two lane groups before reduction; the tail follows in source order.
Parameters
- Data
The nonempty complete array to reduce.
Return value
The maximum-number result.
Min_Number
function Min_Number (Data : F32_Array) return F32
Return the number minimum of a nonempty binary32 array. Full blocks accumulate in four lane groups before reduction; the tail follows in source order.
Parameters
- Data
The nonempty complete array to reduce.
Return value
The minimum-number result.
Min_Number
function Min_Number (Data : F64_Array) return F64
Return the number minimum of a nonempty binary64 array. Full blocks accumulate in two lane groups before reduction; the tail follows in source order.
Parameters
- Data
The nonempty complete array to reduce.
Return value
The minimum-number result.
Scale
procedure Scale (Data : in out F32_Array; Factor : F32)
Multiply every binary32 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check.
Parameters
- Data
The complete array to transform in place.
- Factor
The scalar multiplier applied once to every element.
Scale
procedure Scale (Data : in out F64_Array; Factor : F64)
Multiply every binary64 element by Factor in place. Empty arrays are unchanged. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check.
Parameters
- Data
The complete array to transform in place.
- Factor
The scalar multiplier applied once to every element.
Sum
function Sum (Data : F32_Array) return F32
Add binary32 elements in four lane groups, then add the groups in ascending lane order from positive zero. Empty arrays return positive zero. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check.
Parameters
- Data
The complete array to sum.
Return value
The lane-grouped sum of all elements.
Sum
function Sum (Data : F64_Array) return F64
Add binary64 elements in two lane groups, then add the groups in ascending lane order from positive zero. Empty arrays return positive zero. Cross-platform support: The generic binds the complete loop to the supplied backend operations at compile time. It performs no runtime feature check.
Parameters
- Data
The complete array to sum.
Return value
The lane-grouped sum of all elements.