Trait Diffable

Source
pub trait Diffable<StaticArgs> {
    type Input;
    type Output;
}

Required Associated Types§

Implementors§

Source§

impl<A: Diffable<StaticArgs>, B, StaticArgs> Diffable<StaticArgs> for ADConstantAdd<A, B>
where A::Output: Add<B>, B: Clone,

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <<A as Diffable<StaticArgs>>::Output as Add<B>>::Output

Source§

impl<A: Diffable<StaticArgs>, B, StaticArgs> Diffable<StaticArgs> for ADConstantDiv<A, B>
where A::Output: Div<B>, B: Clone,

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <<A as Diffable<StaticArgs>>::Output as Div<B>>::Output

Source§

impl<A: Diffable<StaticArgs>, B, StaticArgs> Diffable<StaticArgs> for ADConstantMul<A, B>
where A::Output: Mul<B>, B: Clone,

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <<A as Diffable<StaticArgs>>::Output as Mul<B>>::Output

Source§

impl<A: Diffable<StaticArgs>, B, StaticArgs> Diffable<StaticArgs> for ADConstantPow<A, B>
where A::Output: Pow<B>, B: Clone,

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <<A as Diffable<StaticArgs>>::Output as Pow<B>>::Output

Source§

impl<A: Diffable<StaticArgs>, B, StaticArgs> Diffable<StaticArgs> for ADConstantSub<A, B>
where A::Output: Sub<B>, B: Clone,

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <<A as Diffable<StaticArgs>>::Output as Sub<B>>::Output

Source§

impl<A: Diffable<StaticArgs>, B: Diffable<StaticArgs>, StaticArgs> Diffable<StaticArgs> for ADAdd<A, B>
where A::Output: Add<B::Output>,

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <<A as Diffable<StaticArgs>>::Output as Add<<B as Diffable<StaticArgs>>::Output>>::Output

Source§

impl<A: Diffable<StaticArgs>, B: Diffable<StaticArgs>, StaticArgs> Diffable<StaticArgs> for ADDiv<A, B>
where A::Output: Div<B::Output>,

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <<A as Diffable<StaticArgs>>::Output as Div<<B as Diffable<StaticArgs>>::Output>>::Output

Source§

impl<A: Diffable<StaticArgs>, B: Diffable<StaticArgs>, StaticArgs> Diffable<StaticArgs> for ADMul<A, B>
where A::Output: Mul<B::Output>,

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <<A as Diffable<StaticArgs>>::Output as Mul<<B as Diffable<StaticArgs>>::Output>>::Output

Source§

impl<A: Diffable<StaticArgs>, B: Diffable<StaticArgs>, StaticArgs> Diffable<StaticArgs> for ADSub<A, B>
where A::Output: Sub<B::Output>,

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <<A as Diffable<StaticArgs>>::Output as Sub<<B as Diffable<StaticArgs>>::Output>>::Output

Source§

impl<A: Diffable<StaticArgs>, NewInput, NewOutput, StaticArgs> Diffable<StaticArgs> for ADCoerce<A, NewInput, NewOutput>

Source§

type Input = NewInput

Source§

type Output = NewOutput

Source§

impl<A: Diffable<StaticArgs>, StaticArgs> Diffable<StaticArgs> for ADAbs<A>

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <A as Diffable<StaticArgs>>::Output

Source§

impl<A: Diffable<StaticArgs>, StaticArgs> Diffable<StaticArgs> for ADNeg<A>
where A::Output: Neg,

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <<A as Diffable<StaticArgs>>::Output as Neg>::Output

Source§

impl<A: Diffable<StaticArgs>, StaticArgs> Diffable<StaticArgs> for ADSignum<A>

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <A as Diffable<StaticArgs>>::Output

Source§

impl<A: Diffable<StaticArgs>, StaticArgs, NewStaticArgs> Diffable<(NewStaticArgs, StaticArgs)> for ADPrependStaticArgs<A, NewStaticArgs>

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <A as Diffable<StaticArgs>>::Output

Source§

impl<A: Diffable<StaticArgs>, StaticArgs, NewStaticArgs> Diffable<(StaticArgs, NewStaticArgs)> for ADAppendStaticArgs<A, NewStaticArgs>

Source§

type Input = <A as Diffable<StaticArgs>>::Input

Source§

type Output = <A as Diffable<StaticArgs>>::Output

Source§

impl<Outer, Inner, StaticArgs> Diffable<StaticArgs> for ADCompose<Outer, Inner>
where Outer: Diffable<StaticArgs>, Inner: Diffable<StaticArgs>,

Source§

type Input = <Inner as Diffable<StaticArgs>>::Input

Source§

type Output = <Outer as Diffable<StaticArgs>>::Output

Source§

impl<S, I> Diffable<S> for Identity<S, I>

Source§

type Input = I

Source§

type Output = I

Source§

impl<S, I, O> Diffable<S> for Polynomial<S, I, O>

Source§

type Input = I

Source§

type Output = O

Source§

impl<S, I, P> Diffable<S> for Monomial<S, I, P>

Source§

type Input = I

Source§

type Output = I

Source§

impl<StaticArgs, T> Diffable<StaticArgs> for AutoDiff<StaticArgs, T>
where T: Diffable<StaticArgs>,

Impl of Diffable<StaticArgs> for AutoDiff

Source§

type Input = <T as Diffable<StaticArgs>>::Input

Source§

type Output = <T as Diffable<StaticArgs>>::Output