pub mod blas;
pub mod cache;
pub mod core;
pub mod gpu;
pub mod patterns;
pub mod utils;
pub use core::einsum;
pub use cache::{cache_optimized_contraction, execute_contraction_path};
pub use core::{extract_diagonal, infer_output_subscript, parse_einsum_equation};
pub use utils::{batch_transpose, cache_friendly_trace, compute_outer_product};
#[cfg(any(
all(
any(feature = "blas-openblas", feature = "blas-oxiblas"),
feature = "std"
),
all(feature = "blas-mkl", feature = "std"),
all(feature = "blas-accelerate", feature = "std")
))]
pub use blas::try_blas_optimized_patterns;
#[cfg(feature = "gpu")]
pub use gpu::{
gpu_einsum_batched_matmul, gpu_einsum_diagonal, gpu_einsum_matmul, gpu_einsum_outer_product,
gpu_einsum_trace, gpu_einsum_transpose, gpu_einsum_vector_dot,
};
pub use patterns::{try_optimize_common_patterns, try_optimize_gpu_patterns};