39 releases
| 0.15.1 | Jan 24, 2023 |
|---|---|
| 0.14.3 | Sep 3, 2022 |
| 0.14.2 | May 6, 2022 |
| 0.13.5 | Mar 11, 2022 |
| 0.1.1 | Jan 18, 2021 |
#2765 in Algorithms
187 downloads per month
Used in 2 crates
(via tc-tensor)
185KB
4.5K
SLoC
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.
afarray
Convenience methods for working with ArrayFire arrays in Rust, compatible with number-general.
Usage example:
use std::iter::FromIterator;
use afarray::Array;
use number_general::Number;
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))
Note that you must have ArrayFire installed in order to build this crate. The installation instructions are at http://arrayfire.org/docs/installing.htm.
You can find detailed instructions for building the Rust arrayfire crate from crates.io at: https://crates.io/crates/arrayfire.
Dependencies
~3.5–5MB
~92K SLoC