topos 0.13.0

An autodiff compiler stack in Rust.
Documentation
//! The differentiable operation set: the [`Op`] node vocabulary
//! the graph records and the executor replays, one file per
//! operation, each a pure forward/backward rule over the payload
//! traits.

mod add;
mod broadcast;
mod broadcast_along;
mod div;
mod fold;
mod gather;
mod input;
mod leaf;
mod log_softmax;
mod log_sum_exp;
mod map;
mod matmul;
mod maximum;
mod mul;
mod narrow;
mod neg;
// The module convention names each file after its main concept, and this
// module's main concept is the `Op` enum itself; the inception is
// deliberate.
#[allow(clippy::module_inception)]
mod op;
mod operation;
mod pad;
mod parameter;
mod permute;
mod powf;
mod reshape;
mod scatter;
mod slot;
mod step;
mod sub;
mod sum;
mod sum_along;
mod unfold;

pub(crate) use add::Add;
pub(crate) use broadcast::Broadcast;
pub(crate) use broadcast_along::BroadcastAlong;
pub(crate) use div::Div;
pub(crate) use fold::Fold;
pub(crate) use gather::Gather;
pub(crate) use input::Input;
pub(crate) use leaf::Leaf;
pub(crate) use log_softmax::LogSoftmax;
pub(crate) use log_sum_exp::LogSumExp;
pub(crate) use map::Map;
pub(crate) use matmul::MatMul;
pub(crate) use maximum::Maximum;
pub(crate) use mul::Mul;
pub(crate) use narrow::Narrow;
pub(crate) use neg::Neg;
pub(crate) use op::Op;
pub(crate) use operation::{Cotangents, Operation, Reads, binary, unary};
pub(crate) use pad::Pad;
pub(crate) use parameter::Parameter;
pub(crate) use permute::Permute;
pub(crate) use powf::Powf;
pub(crate) use reshape::Reshape;
pub(crate) use scatter::Scatter;
pub(crate) use slot::SlotId;
pub(crate) use step::Step;
pub(crate) use sub::Sub;
pub(crate) use sum::Sum;
pub(crate) use sum_along::SumAlong;
pub(crate) use unfold::Unfold;