tenferro_internal_ad_surface/
lib.rs

1//! Internal implementation crate. Not a stable public API.
2//!
3//! `tenferro` now treats `tidu::Value<DynTensor>` as the only source of truth
4//! for reverse-mode metadata. This crate provides the thin dynamic tensor
5//! façade and surface-level `grad`/`backward` helpers built on top of that
6//! carrier.
7
8#![allow(clippy::multiple_bound_locations)]
9
10mod autograd_api;
11pub mod core;
12pub mod jvp;
13
14pub use autograd_api::{backward, grad, BackwardOptions, GradOptions};
15pub use core::dynamic::{
16    CholeskyExResult, EigResult, EighResult, InvExResult, LstsqResult, LuFactorExResult,
17    LuFactorResult, LuPivot, LuResult, QrResult, ScalarType, SlogdetResult, SolveExResult,
18    SvdResult, Tensor,
19};
20pub use jvp::{jvp, JvpResult};
21pub use tenferro_device::{ComputeDevice, LogicalMemorySpace};
22pub use tenferro_internal_ad_core::{
23    AdResult, AutodiffError, CheckpointHint, LinearizableOp, LinearizedOp, NodeId, Schema,
24    SlotSchema, Value,
25};
26pub use tenferro_internal_error::{Error, Result};
27pub use tenferro_internal_frontend_core::{
28    DynTensor, DynTensorTyped, ScalarValue, StructuredTensor,
29};
30pub use tenferro_internal_runtime::{
31    set_default_runtime, with_default_runtime, with_runtime, DefaultRuntimeGuard, RuntimeContext,
32};
33pub use tenferro_linalg::{MatrixNormOrd, NormKind, SvdOptions, VectorNormOrd};
34pub use tenferro_tensor::MemoryOrder;
35pub use tidu::{with_ad_policy, AdExecutionPolicy, CheckpointMode};
36
37pub mod snapshot {
38    pub use tenferro_internal_frontend_core::snapshot::*;
39}
40
41pub mod runtime {
42    pub mod contracts {
43        pub use tenferro_internal_runtime::contracts::*;
44    }
45
46    pub mod dispatch {
47        pub use tenferro_internal_runtime::dispatch::*;
48    }
49}
50
51pub mod structured {
52    pub use tenferro_internal_frontend_core::StructuredTensor;
53    pub use tenferro_tensor::structured_tensor::canonicalize_axis_classes;
54}