ForwardRule

Trait ForwardRule 

Source
pub trait ForwardRule<V: Differentiable> {
    // Required method
    fn pushforward(
        &self,
        tangents: &[Option<&V::Tangent>],
    ) -> AdResult<V::Tangent>;
}
Expand description

Forward-mode AD rule interface (frule).

Named after Julia’s ChainRules.jl convention: frule computes pushforward.

The type parameter V is the differentiable value type (e.g., Tensor<f64>).

§Examples

use chainrules_core::{ForwardRule, Differentiable, AdResult};

struct MyFrule;
impl<V: Differentiable> ForwardRule<V> for MyFrule {
    fn pushforward(&self, tangents: &[Option<&V::Tangent>])
        -> AdResult<V::Tangent> {
        todo!()
    }
}

Required Methods§

Source

fn pushforward(&self, tangents: &[Option<&V::Tangent>]) -> AdResult<V::Tangent>

Computes output tangent from input tangents (pushforward).

Implementors§