#![forbid(unsafe_code)]
mod array;
mod batching;
mod buffer;
mod cast;
mod conv;
mod custom;
mod derivatives;
mod device;
mod dtype;
mod error;
mod eval;
pub mod fast;
mod file;
#[cfg_attr(not(all(target_os = "macos", not(miri))), allow(dead_code))]
mod fused;
mod gpu;
mod indexing;
#[cfg_attr(not(all(target_os = "macos", not(miri))), allow(dead_code))]
mod kernel;
mod kernels;
mod ops;
mod primitive;
mod quantized;
pub mod random;
mod scalar;
mod shape;
mod sorting;
mod transforms;
mod view;
pub use array::Array;
pub use conv::conv1d;
pub use custom::{CustomCall, CustomFunction, checkpoint, custom_function};
pub use device::{Device, DeviceKind, Stream, default_device, default_stream, set_default_stream};
pub use dtype::{Category, Complex64, DType, Element, at_least_float, bf16, f16, promote_types};
pub use error::{Error, Result};
pub use eval::{Scheduled, async_eval, eval, schedule};
pub use file::MappedFile;
pub use fused::{Fused, FusedRef};
pub use indexing::{
concatenate, put_along_axis, scatter_add_along_axis, split, split_at, stack, take,
take_along_axis,
};
pub use ops::{
abs, add, addmm, all, any, arange, argmax, argmin, astype, broadcast_to, conjugate, contiguous,
cos, divide, equal, erfinv, exp, expand_dims, greater, greater_equal, less, less_equal, log,
logaddexp, logsumexp, matmul, max, maximum, mean, min, minimum, multiply, negative, not_equal,
ones, prod, repeat, reshape, sigmoid, sign, sin, slice, slice_update, softmax, sqrt, squeeze,
stop_gradient, subtract, sum, tanh, transpose, where_, zeros,
};
pub use primitive::{ArgReduceOp, BinaryOp, Primitive, ReduceOp, ScanOp, ScatterReduce, UnaryOp};
pub use quantized::{dequantize, gather_mm, gather_qmm, quantize, quantized_matmul};
pub use scalar::{Scalar, ScalarOperand, ScalarOrArray};
pub use shape::Flags;
pub use sorting::{
argpartition, argsort, cummax, cummin, cumprod, cumsum, logcumsumexp, partition, sort, topk,
};
pub use transforms::{grad, jvp, value_and_grad, vjp, vmap};
pub use view::SliceArg;
pub const VERSION: &str = env!("CARGO_PKG_VERSION");