Skip to main content

strided_rs/
lib.rs

1#![doc = include_str!("../README.md")]
2
3/// Shared scalar and element-operation traits.
4pub mod traits {
5    pub use strided_traits::*;
6}
7
8/// Strided view and owned strided array types.
9pub mod view {
10    pub use strided_view::*;
11}
12
13/// Cache-efficient tensor permutation and transpose routines.
14pub mod perm {
15    pub use strided_perm::*;
16}
17
18/// Cache-optimized map, reduce, and elementwise kernels.
19pub mod kernel {
20    pub use strided_kernel::*;
21}
22
23/// Binary einsum contractions on strided views.
24#[cfg(any(feature = "faer", feature = "blas", feature = "blas-inject"))]
25pub mod einsum2 {
26    pub use strided_einsum2::*;
27}
28
29/// N-ary optimized einsum frontend.
30#[cfg(any(feature = "faer", feature = "blas", feature = "blas-inject"))]
31pub mod opteinsum {
32    pub use strided_opteinsum::*;
33}
34
35/// `mdarray` einsum frontend.
36#[cfg(feature = "mdarray")]
37pub mod mdarray {
38    pub use mdarray_opteinsum::*;
39}
40
41/// `ndarray` einsum frontend.
42#[cfg(feature = "ndarray")]
43pub mod ndarray {
44    pub use ndarray_opteinsum::*;
45}
46
47pub use strided_kernel::{
48    add, axpy, copy_conj, copy_into, copy_into_col_major, copy_scale, copy_transpose_scale_into,
49    dot, fma, map_into, mul, reduce, reduce_axis, sum, symmetrize_conj_into, symmetrize_into,
50    zip_map2_into, zip_map3_into, zip_map4_into, MaybeSimdOps,
51};
52#[cfg(any(feature = "faer", feature = "blas", feature = "blas-inject"))]
53pub use strided_opteinsum::{
54    einsum, einsum_into, einsum_into_with_pool, einsum_with_pool, BufferPool, EinsumCode,
55    EinsumError, EinsumNode, EinsumOperand, EinsumScalar, StridedData, TypedTensor,
56};
57pub use strided_traits::{
58    Adjoint, ComposableElementOp, Compose, Conj, ElementOp, ElementOpApply, Identity, ScalarBase,
59    Transpose,
60};
61pub use strided_view::{
62    col_major_strides, row_major_strides, StridedArray, StridedError, StridedView, StridedViewMut,
63};