sied (sied v0.1.1)

View Source

sied - SIMD operations for Erlang

High-performance vectorized operations using SIMD instructions via Rust NIF with simdeez. Provides runtime SIMD detection and automatic dispatch to SSE2, SSE4.1, AVX2, or NEON instructions.

Summary

Functions

Compute absolute value of an f32 vector

Compute absolute value of an f64 vector

Element-wise addition of two f32 vectors

Element-wise addition of two f64 vectors

Element-wise division of two f32 vectors

Element-wise division of two f64 vectors

Compute dot product of two f32 vectors Computes the scalar product: sum(A[i] * B[i])

Compute dot product of two f64 vectors Computes the scalar product: sum(A[i] * B[i])

Element-wise maximum of two f32 vectors

Element-wise maximum of two f64 vectors

Find maximum value in an f32 vector

Find maximum value in an f64 vector

Compute arithmetic mean of an f32 vector

Compute arithmetic mean of an f64 vector

Element-wise minimum of two f32 vectors

Element-wise minimum of two f64 vectors

Find minimum value in an f32 vector

Find minimum value in an f64 vector

Element-wise multiplication of two f32 vectors

Element-wise multiplication of two f64 vectors

Negate an f32 vector (multiply by -1)

Negate an f64 vector (multiply by -1)

Compute square root of an f32 vector

Compute square root of an f64 vector

Compute standard deviation of an f32 vector

Compute standard deviation of an f64 vector

Element-wise subtraction of two f32 vectors

Element-wise subtraction of two f64 vectors

Compute sum of all elements in an f32 vector

Compute sum of all elements in an f64 vector

Compute variance of an f32 vector

Compute variance of an f64 vector

Functions

abs_f32(A)

-spec abs_f32([float()]) -> {ok, [float()]} | {error, term()}.

Compute absolute value of an f32 vector

abs_f64(A)

-spec abs_f64([float()]) -> {ok, [float()]} | {error, term()}.

Compute absolute value of an f64 vector

add_f32(A, B)

-spec add_f32([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise addition of two f32 vectors

add_f64(A, B)

-spec add_f64([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise addition of two f64 vectors

divide_f32(A, B)

-spec divide_f32([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise division of two f32 vectors

divide_f64(A, B)

-spec divide_f64([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise division of two f64 vectors

dot_product_f32(A, B)

-spec dot_product_f32([float()], [float()]) -> {ok, float()} | {error, term()}.

Compute dot product of two f32 vectors Computes the scalar product: sum(A[i] * B[i])

dot_product_f64(A, B)

-spec dot_product_f64([float()], [float()]) -> {ok, float()} | {error, term()}.

Compute dot product of two f64 vectors Computes the scalar product: sum(A[i] * B[i])

max_elementwise_f32(A, B)

-spec max_elementwise_f32([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise maximum of two f32 vectors

max_elementwise_f64(A, B)

-spec max_elementwise_f64([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise maximum of two f64 vectors

max_f32(A)

-spec max_f32([float()]) -> {ok, float()} | {error, term()}.

Find maximum value in an f32 vector

max_f64(A)

-spec max_f64([float()]) -> {ok, float()} | {error, term()}.

Find maximum value in an f64 vector

mean_f32(A)

-spec mean_f32([float()]) -> {ok, float()} | {error, term()}.

Compute arithmetic mean of an f32 vector

mean_f64(A)

-spec mean_f64([float()]) -> {ok, float()} | {error, term()}.

Compute arithmetic mean of an f64 vector

min_elementwise_f32(A, B)

-spec min_elementwise_f32([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise minimum of two f32 vectors

min_elementwise_f64(A, B)

-spec min_elementwise_f64([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise minimum of two f64 vectors

min_f32(A)

-spec min_f32([float()]) -> {ok, float()} | {error, term()}.

Find minimum value in an f32 vector

min_f64(A)

-spec min_f64([float()]) -> {ok, float()} | {error, term()}.

Find minimum value in an f64 vector

multiply_f32(A, B)

-spec multiply_f32([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise multiplication of two f32 vectors

multiply_f64(A, B)

-spec multiply_f64([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise multiplication of two f64 vectors

negate_f32(A)

-spec negate_f32([float()]) -> {ok, [float()]} | {error, term()}.

Negate an f32 vector (multiply by -1)

negate_f64(A)

-spec negate_f64([float()]) -> {ok, [float()]} | {error, term()}.

Negate an f64 vector (multiply by -1)

sqrt_f32(A)

-spec sqrt_f32([float()]) -> {ok, [float()]} | {error, term()}.

Compute square root of an f32 vector

sqrt_f64(A)

-spec sqrt_f64([float()]) -> {ok, [float()]} | {error, term()}.

Compute square root of an f64 vector

std_dev_f32(A)

-spec std_dev_f32([float()]) -> {ok, float()} | {error, term()}.

Compute standard deviation of an f32 vector

std_dev_f64(A)

-spec std_dev_f64([float()]) -> {ok, float()} | {error, term()}.

Compute standard deviation of an f64 vector

subtract_f32(A, B)

-spec subtract_f32([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise subtraction of two f32 vectors

subtract_f64(A, B)

-spec subtract_f64([float()], [float()]) -> {ok, [float()]} | {error, term()}.

Element-wise subtraction of two f64 vectors

sum_f32(A)

-spec sum_f32([float()]) -> {ok, float()} | {error, term()}.

Compute sum of all elements in an f32 vector

sum_f64(A)

-spec sum_f64([float()]) -> {ok, float()} | {error, term()}.

Compute sum of all elements in an f64 vector

variance_f32(A)

-spec variance_f32([float()]) -> {ok, float()} | {error, term()}.

Compute variance of an f32 vector

variance_f64(A)

-spec variance_f64([float()]) -> {ok, float()} | {error, term()}.

Compute variance of an f64 vector