← All compilation units

Flyology_SIMD.Algorithms.Generic_Floating

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.