Skip to main content

tidu/rules/
mod.rs

1//! Primitive AD rule contract consumed by `tidu`.
2//!
3//! This module defines the graph-level rule surface used by
4//! [`crate::try_linearize`], [`crate::try_linear_transpose`], and eager transpose
5//! helpers. It is intentionally narrower than Julia ChainRules: downstream
6//! primitive sets implement JVP and transpose emission for
7//! `computegraph` graph primitives.
8
9mod ad_key;
10mod ad_rule_error;
11mod primitive_builder;
12mod primitive_op;
13
14pub use ad_key::{ADKey, DiffPassId};
15pub use ad_rule_error::{ADRuleError, ADRuleKind, ADRuleResult};
16pub(crate) use primitive_builder::GraphPrimitiveBuilder;
17pub use primitive_builder::{PrimitiveBuilder, PrimitiveValue};
18pub use primitive_op::Primitive;