Expand description
Provides a generic one-dimensional Array
which wraps arrayfire::Array
and supports
all number_general::NumberType
variants. Array
and ArrayExt
support basic math like
Add
, Sub
, Mul
, Div
, and Rem
, with hardware acceleration on systems which support CUDA
or OpenCL. ArrayExt<bool>
supports common logical operations and
, not
, or
, and xor
.
N-dimensional array functionality can be implemented using Coords
and Offsets
, which
provide methods for indexing a one-dimensional Array
or ArrayExt
as an n-dimensional
tensor.
Array
supports (de)serialization without type hinting. ArrayExt<T>
supports serialization
for T: Serialize
and deserialization for T: Deserialize
.
Example usage:
let a = [1, 2, 3];
let b = [5];
let product = &Array::from(&a[..]) * &Array::from(&b[..]);
assert_eq!(product, Array::from_iter(vec![5, 10, 15]));
assert_eq!(product.sum(), Number::from(30))
This crate depends on ArrayFire version 3.8. You will have to install ArrayFire separately by following the instructions at https://arrayfire.org/docs/installing.htm in order to build this crate.
You can find detailed instructions for building the Rust arrayfire
crate from crates.io at
https://crates.io/crates/arrayfire.
Structs
CoordBlocks
streams.Coords
.ArrayTryStream::resize
method.Enums
NumberType
.Traits
ArrayExt
.abs
.any
and all
.ArrayExt
min
and max
.pow
.product
.round
.sum
.Stream
] of ArrayExt
s.Stream
] of ArrayExt
s.Stream
] of ArrayExt
s.Stream
] of ArrayExt
s.ArrayExt
.Functions
Type Definitions
num_complex::Complex
.Array
operation which may fail recoverably.