Skip to content

module simd

Source: stdlib/simd.codon


Vec[T,N] @tuple Class is named tuple (cannot write fields)

Fields

T: type

N: Literal[int]

Magic methods

__new__(x)

__new__(x: str, offset: int = 0)

__new__(x: List[T], offset: int = 0)

__copy__(self)

__neg__(self)

__getitem__(self, n: Literal[int]) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%0 = extractelement <{=N} x {=T}> %self, i32 {=n}
ret {=T} %0

__repr__(self)

__eq__(self, other: Vec[T, N])

__eq__(self, other: T)

__ne__(self: Vec[T, N], other: Vec[T, N])

__ne__(self, other: T)

__and__(self, other: Vec[T, N])

__or__(self, other: Vec[T, N])

__xor__(self, other: Vec[T, N])

__lshift__(self, other: Vec[T, N])

__rshift__(self, other: Vec[T, N])

__add__(self, other: Vec[T, N])

__add__(self, other: T)

__sub__(self, other: Vec[T, N])

__sub__(self, other: T)

__mul__(self, other: Vec[T, N])

__mul__(self, other: T)

__truediv__(self, other: Vec[T, N])

__truediv__(self, other: T)

__floordiv__(self, other: Vec[T, N])

__floordiv__(self, other: T)

__mod__(self, other: Vec[T, N])

__mod__(self, other: T)

__lt__(self, other: Vec[T, N])

__lt__(self, other: T)

__le__(self, other: Vec[T, N])

__le__(self, other: T)

__gt__(self, other: Vec[T, N])

__gt__(self, other: T)

__ge__(self, other: Vec[T, N])

__ge__(self, other: T)

__abs__(self)

Methods

cast(self, T2: type)

cast_ptr(ptr: Ptr[T], T: type, T2: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret ptr %ptr

lsh(self, other: Literal[int])

rsh(self, other: Literal[int])

sqrt(self)

log(self)

sin(self)

cos(self)

min(self, other: Vec[T, N])

max(self, other: Vec[T, N])

mask(self, other: Vec[T, N], mask)

add(self, other: Vec[T, N], overflow: Literal[bool] = False)

sub(self, other: Vec[T, N], overflow: Literal[bool] = False)

sum(self)

scatter(self: Vec[T, N])

bitflip(self)