#![doc = include_str!("../README.md")]
mod block;
mod complex_div;
mod copy_plan;
mod dense_update;
mod erased;
mod erased_common;
mod exec_context;
pub mod execution;
mod execution_policy;
mod fuse;
mod kernel;
mod layout_check;
mod map_view;
mod maybe_sync;
mod ops_view;
mod order;
mod raw_ops;
mod reduce_view;
mod simd;
mod threading;
mod update_view;
pub use complex_div::{robust_complex_divide_f32, robust_complex_divide_f64};
pub use copy_plan::CopyPlan;
pub use dense_update::{axpby_accum, embed_diagonal_into_uninit, triangular_mask_into_uninit};
pub use erased::{
ArgReduceOp, ErasedArgReducePlan, ErasedConcatenatePlan, ErasedCopyPlan, ErasedNormPlan,
ErasedReducePlan, ErasedScanPlan, NormKind, NormSpec, ReduceOp, ScanOp, ScanOptions,
};
pub use exec_context::ExecContext;
pub use execution_policy::{with_execution_policy, ExecutionPolicy};
pub use map_view::{
broadcast_mul_into, broadcast_mul_into_uninit, compare_into, compare_into_uninit, map_into,
mul_into, mul_into_uninit, zip_map2_into, zip_map3_into, zip_map4_into, CompareOp,
};
pub use maybe_sync::{MaybeSend, MaybeSendSync, MaybeSync};
pub use ops_view::{
add, axpy, copy_conj, copy_into, copy_into_col_major, copy_into_uninit, copy_scale,
copy_transpose_scale_into, dot, fma, mul, sum, symmetrize_conj_into, symmetrize_into,
};
pub use raw_ops::{
axpy_conj_raw, axpy_raw, copy_scale_conj_raw, copy_scale_raw, RAW_FUSED_RANK_LIMIT,
};
pub use reduce_view::{reduce, reduce_axis};
pub use simd::MaybeSimdOps;
pub use strided_view::view;
pub use strided_view::*;
pub use update_view::{map_update_into, zip_update2_into, zip_update3_into};
pub const BLOCK_MEMORY_SIZE: usize = 32 * 1024;
pub const CACHE_LINE_SIZE: usize = 64;
mod gather_plan;
mod outer_product;
mod static_indexing_plan;
pub use gather_plan::{
DynamicSlicePlan, DynamicUpdateSlicePlan, GatherIndex, GatherPlan, GatherSpec, ScatterPlan,
ScatterSpec,
};
pub use outer_product::{
batched_outer_product_into, batched_outer_product_into_uninit, plan_lazy_outer_product,
LazyOuterProductLayout,
};
pub use static_indexing_plan::{ConcatenatePlan, PadPlan, ReversePlan, SlicePlan};