Packages
Tensor library for Gleam/BEAM with a pure Gleam API, zero-copy views, and optional native acceleration
Current section
Files
Jump to
Current section
Files
src/viva_tensor@hdc.erl
-module(viva_tensor@hdc).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/viva_tensor/hdc.gleam").
-export([new/1, random/2, bind/2, similarity/2, permute/2, dim/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/viva_tensor/hdc.gleam", 37).
?DOC(false).
-spec new(integer()) -> {ok, viva_tensor@core@ffi:hdc_vector_ref()} |
{error, binary()}.
new(Dim) ->
viva_tensor@core@ffi:hdc_create(Dim).
-file("src/viva_tensor/hdc.gleam", 42).
?DOC(false).
-spec random(integer(), integer()) -> {ok,
viva_tensor@core@ffi:hdc_vector_ref()} |
{error, binary()}.
random(Dim, Seed) ->
viva_tensor@core@ffi:hdc_random(Dim, Seed).
-file("src/viva_tensor/hdc.gleam", 50).
?DOC(false).
-spec bind(
viva_tensor@core@ffi:hdc_vector_ref(),
viva_tensor@core@ffi:hdc_vector_ref()
) -> {ok, viva_tensor@core@ffi:hdc_vector_ref()} | {error, binary()}.
bind(A, B) ->
viva_tensor@core@ffi:hdc_bind(A, B).
-file("src/viva_tensor/hdc.gleam", 60).
?DOC(false).
-spec similarity(
viva_tensor@core@ffi:hdc_vector_ref(),
viva_tensor@core@ffi:hdc_vector_ref()
) -> {ok, float()} | {error, binary()}.
similarity(A, B) ->
viva_tensor@core@ffi:hdc_similarity(A, B).
-file("src/viva_tensor/hdc.gleam", 68).
?DOC(false).
-spec permute(viva_tensor@core@ffi:hdc_vector_ref(), integer()) -> {ok,
viva_tensor@core@ffi:hdc_vector_ref()} |
{error, binary()}.
permute(Vec, Shift) ->
viva_tensor@core@ffi:hdc_permute(Vec, Shift).
-file("src/viva_tensor/hdc.gleam", 73).
?DOC(false).
-spec dim(viva_tensor@core@ffi:hdc_vector_ref()) -> {ok, integer()} |
{error, binary()}.
dim(Vec) ->
viva_tensor@core@ffi:hdc_dim(Vec).