SIMD module

operator*

procedure · 2 overloadsSource

Multiplies two vectors lane by lane.

Integer lanes wrap on overflow, with no overflow check.

ExampleOpen in playground ↗
a := set(4, cast(s32) 3);
assert((a * set(4, cast(s32) 5)).data[0] == 15);
assert((a * cast(s32) 2).data[3] == 6);
assert((cast(s32) 2 * a).data[3] == 6);
operator* :: (a: $T/SIMD_Array, b: T) -> T

Multiplies two vectors lane by lane.

Integer lanes wrap on overflow, with no overflow check.

Parameters

b: T

Returns

T
ExampleOpen in playground ↗
a := set(4, cast(s32) 3);
assert((a * set(4, cast(s32) 5)).data[0] == 15);
assert((a * cast(s32) 2).data[3] == 6);
assert((cast(s32) 2 * a).data[3] == 6);
operator* :: (a: $T/SIMD_Array, factor: a.type) -> T

Multiplies every lane by factor. The scalar can be on either side.

Parameters

factor: a.type

Returns

T

See also