#[cfg(feature = "math-linalg")]
pub mod linalg;
#[cfg(feature = "math-scan")]
pub mod scan;
#[cfg(feature = "math-broadcast")]
pub mod broadcast;
#[cfg(feature = "math-algebra")]
pub mod algebra;
#[cfg(feature = "math-succinct")]
pub mod succinct;
pub mod atomic;
pub mod avg_floor;
mod bit_count_ops;
mod bit_count_u32;
pub mod clamp_u32;
pub mod conv;
pub mod fft;
pub mod reduce_mean;
pub mod reduce_variance;
pub mod square;
pub mod weighted_sum;
pub mod welford;
pub mod wrapping_neg;
pub(crate) mod elementwise;
fn invalid_f32_reduction_program(
op_id: &'static str,
input: &str,
output: &str,
fix: &'static str,
) -> vyre_foundation::ir::Program {
use vyre_foundation::ir::{BufferAccess, BufferDecl, DataType, Expr, Node, Program};
Program::wrapped(
vec![
BufferDecl::storage(input, 0, BufferAccess::ReadOnly, DataType::F32).with_count(1),
BufferDecl::output(output, 1, DataType::F32).with_count(1),
],
[1, 1, 1],
vec![crate::region::wrap_anonymous(
op_id,
vec![Node::trap(Expr::u32(0), fix)],
)],
)
}
pub use atomic::{
atomic_add_u32, atomic_and_u32, atomic_compare_exchange_u32, atomic_exchange_u32,
atomic_max_u32, atomic_min_u32, atomic_or_u32, atomic_xor_u32,
};
pub use bit_count_ops::lzcnt_u32::lzcnt_u32;
pub use bit_count_ops::tzcnt_u32::tzcnt_u32;
pub use bit_count_ops::{lzcnt_u32, tzcnt_u32};
pub use clamp_u32::clamp_u32;
pub use reduce_mean::reduce_mean;
pub use reduce_variance::reduce_variance;
pub use square::square;
pub use welford::welford_sum_of_squares;