← Standard library

float64x2

struct float64x2

Available without an import.

A 128-bit SIMD value containing 2 float64 lanes. Arithmetic operates lane-wise. Lane and WithLane require constant indices; bracket indexing supports checked runtime indices. Comparisons return all-one/all-zero integer masks. Bit reinterpretation involving floating-point lanes canonicalizes NaNs.

Simd.wax:1714

Members

Splatmethod

public static fn Splat(double value) : float64x2

Copies one scalar value into every lane.

Simd.wax:1720

Zeromethod

public static fn Zero() : float64x2

Returns a vector whose lanes are all zero.

Simd.wax:1724

constructorconstructor

public constructor (double l0, double l1)

Creates a vector from scalar lanes in ascending index order.

Simd.wax:1728

Lanemethod

public fn Lane(int32 index) : double

Reads a compile-time constant lane index in [0, 2). Invalid or nonconstant indices are rejected; use bracket indexing for runtime indices.

Simd.wax:1733

ReduceSummethod

public fn ReduceSum() : double

Sums every lane into the scalar result. Uses a pairwise tree, so rounding can differ from a left-to-right scalar sum.

Simd.wax:1738

ReduceMinmethod

public fn ReduceMin() : double

Reduces all lanes to their minimum. Uses pairwise SIMD Min rules; ties and NaNs follow receiver preference, not scalar Math.Min.

Simd.wax:1743

ReduceMaxmethod

public fn ReduceMax() : double

Reduces all lanes to their maximum. Uses pairwise SIMD Max rules; ties and NaNs follow receiver preference, not scalar Math.Max.

Simd.wax:1748

Minmethod

public fn Min(float64x2 other) : float64x2

Selects the smaller value in each lane. Uses other < this ? other : this: ties and unordered NaN comparisons retain the receiver lane, unlike scalar Math.Min.

Simd.wax:1753

Maxmethod

public fn Max(float64x2 other) : float64x2

Selects the larger value in each lane. Uses this < other ? other : this: ties and unordered NaN comparisons retain the receiver lane, unlike scalar Math.Max.

Simd.wax:1758

Absmethod

public fn Abs() : float64x2

Clears each floating-point sign bit.

Simd.wax:1762

Sqrtmethod

public fn Sqrt() : float64x2

Computes a square root per lane; negative lanes produce NaN.

Simd.wax:1766

Rsqrtmethod

public fn Rsqrt() : float64x2

Computes 1/sqrt(value) per lane using square root and division, not a hardware approximation.

Simd.wax:1771

Floormethod

public fn Floor() : float64x2

Rounds each lane toward negative infinity.

Simd.wax:1775

Eqmethod

public fn Eq(float64x2 other) : int64x2

Compares corresponding lanes for equal, returning all-one bits for true and all-zero bits for false. NaN comparisons are false except Ne, which is true.

Simd.wax:1780

Nemethod

public fn Ne(float64x2 other) : int64x2

Compares corresponding lanes for unequal, returning all-one bits for true and all-zero bits for false. NaN comparisons are false except Ne, which is true.

Simd.wax:1785

Ltmethod

public fn Lt(float64x2 other) : int64x2

Compares corresponding lanes for less, returning all-one bits for true and all-zero bits for false. NaN comparisons are false except Ne, which is true.

Simd.wax:1790

Lemethod

public fn Le(float64x2 other) : int64x2

Compares corresponding lanes for less or equal, returning all-one bits for true and all-zero bits for false. NaN comparisons are false except Ne, which is true.

Simd.wax:1795

Gtmethod

public fn Gt(float64x2 other) : int64x2

Compares corresponding lanes for greater, returning all-one bits for true and all-zero bits for false. NaN comparisons are false except Ne, which is true.

Simd.wax:1800

Gemethod

public fn Ge(float64x2 other) : int64x2

Compares corresponding lanes for greater or equal, returning all-one bits for true and all-zero bits for false. NaN comparisons are false except Ne, which is true.

Simd.wax:1805

WithLanemethod

public fn WithLane(int32 index, double value) : float64x2

Returns a copy with one lane replaced. The index must be a compile-time constant in [0, 2); use bracket assignment for runtime indices.

Simd.wax:1812

Shufflemethod

public fn Shuffle(int32 l0, int32 l1) : float64x2

Returns lanes selected in argument order. Every index must be a compile-time constant in [0, 2); repeats are allowed.

Simd.wax:1817

AsInt8x16method

public fn AsInt8x16() : int8x16

Reinterprets this 128-bit value with the destination lane shape rather than converting numerically. Floating-point NaN lanes are canonicalized on either side of the reinterpretation; NaN payload bits are not preserved.

Simd.wax:1823

AsUint8x16method

public fn AsUint8x16() : uint8x16

Reinterprets this 128-bit value with the destination lane shape rather than converting numerically. Floating-point NaN lanes are canonicalized on either side of the reinterpretation; NaN payload bits are not preserved.

Simd.wax:1829

AsInt16x8method

public fn AsInt16x8() : int16x8

Reinterprets this 128-bit value with the destination lane shape rather than converting numerically. Floating-point NaN lanes are canonicalized on either side of the reinterpretation; NaN payload bits are not preserved.

Simd.wax:1835

AsUint16x8method

public fn AsUint16x8() : uint16x8

Reinterprets this 128-bit value with the destination lane shape rather than converting numerically. Floating-point NaN lanes are canonicalized on either side of the reinterpretation; NaN payload bits are not preserved.

Simd.wax:1841

AsInt32x4method

public fn AsInt32x4() : int32x4

Reinterprets this 128-bit value with the destination lane shape rather than converting numerically. Floating-point NaN lanes are canonicalized on either side of the reinterpretation; NaN payload bits are not preserved.

Simd.wax:1847

AsUint32x4method

public fn AsUint32x4() : uint32x4

Reinterprets this 128-bit value with the destination lane shape rather than converting numerically. Floating-point NaN lanes are canonicalized on either side of the reinterpretation; NaN payload bits are not preserved.

Simd.wax:1853

AsInt64x2method

public fn AsInt64x2() : int64x2

Reinterprets this 128-bit value with the destination lane shape rather than converting numerically. Floating-point NaN lanes are canonicalized on either side of the reinterpretation; NaN payload bits are not preserved.

Simd.wax:1859

AsUint64x2method

public fn AsUint64x2() : uint64x2

Reinterprets this 128-bit value with the destination lane shape rather than converting numerically. Floating-point NaN lanes are canonicalized on either side of the reinterpretation; NaN payload bits are not preserved.

Simd.wax:1865

AsFloat32x4method

public fn AsFloat32x4() : float32x4

Reinterprets this 128-bit value with the destination lane shape rather than converting numerically. Floating-point NaN lanes are canonicalized on either side of the reinterpretation; NaN payload bits are not preserved.

Simd.wax:1871

ToInt32x4method

public fn ToInt32x4() : int32x4

Truncates floating-point lanes toward zero with saturation to int32. NaNs become zero and out-of-range values clamp to integer bounds. Converts the two lanes to the low two results and zeros the high two lanes.

Simd.wax:1880

Loadmethod

public static fn Load(Span<uint8> data, int32 byteOffset) : float64x2

Reads 16 bytes starting at byteOffset as this lane type. The complete range must fit the span or the operation panics. No alignment requirement is imposed.

Simd.wax:1885

LoadAlignedmethod

public static fn LoadAligned(Span<uint8> data, int32 byteOffset) : float64x2

Reads 16 bytes with the same bounds checks and behavior as Load. Alignment is a hint; unaligned addresses are accepted.

Simd.wax:1890

Storemethod

public fn Store(Span<uint8> data, int32 byteOffset) : void

Writes all 16 bytes at byteOffset. The complete range must fit the span or the operation panics. Does not resize or retain the span.

Simd.wax:1895

LoadElemsmethod

public static fn LoadElems(Span<double> data, int32 elemIndex) : float64x2

Reads 2 consecutive elements starting at elemIndex. The whole element range must fit or the operation panics; indices count elements, not bytes.

Simd.wax:1900

StoreElemsmethod

public fn StoreElems(Span<double> data, int32 elemIndex) : void

Writes 2 consecutive elements starting at elemIndex. The whole element range must fit or the operation panics; indices count elements, not bytes.

Simd.wax:1905

ToStringmethod

public fn ToString() : string

Provided by the compiler.

ToStringBuffermethod

public fn ToStringBuffer(StringBuilder builder) : int32

Provided by the compiler.