--- a/src/bisection_tree/support.rs Wed Nov 06 15:34:17 2024 -0500 +++ b/src/bisection_tree/support.rs Sat Nov 09 20:36:23 2024 -0500 @@ -146,19 +146,19 @@ } impl<'a, T, V, F : Float, const N : usize> Differentiable<&'a Loc<F, N>> for Shift<T,F,N> -where T : Differentiable<Loc<F, N>, Output=V> { - type Output = V; +where T : Differentiable<Loc<F, N>, Derivative=V> { + type Derivative = V; #[inline] - fn differential(&self, x : &'a Loc<F, N>) -> Self::Output { + fn differential(&self, x : &'a Loc<F, N>) -> Self::Derivative { self.base_fn.differential(x - &self.shift) } } impl<'a, T, V, F : Float, const N : usize> Differentiable<Loc<F, N>> for Shift<T,F,N> -where T : Differentiable<Loc<F, N>, Output=V> { - type Output = V; +where T : Differentiable<Loc<F, N>, Derivative=V> { + type Derivative = V; #[inline] - fn differential(&self, x : Loc<F, N>) -> Self::Output { + fn differential(&self, x : Loc<F, N>) -> Self::Derivative { self.base_fn.differential(x - &self.shift) } } @@ -251,23 +251,23 @@ } impl<'a, T, V, F : Float, C, const N : usize> Differentiable<&'a Loc<F, N>> for Weighted<T, C> -where T : for<'b> Differentiable<&'b Loc<F, N>, Output=V>, +where T : for<'b> Differentiable<&'b Loc<F, N>, Derivative=V>, V : std::ops::Mul<F, Output=V>, C : Constant<Type=F> { - type Output = V; + type Derivative = V; #[inline] - fn differential(&self, x : &'a Loc<F, N>) -> Self::Output { + fn differential(&self, x : &'a Loc<F, N>) -> Self::Derivative { self.base_fn.differential(x) * self.weight.value() } } impl<'a, T, V, F : Float, C, const N : usize> Differentiable<Loc<F, N>> for Weighted<T, C> -where T : Differentiable<Loc<F, N>, Output=V>, +where T : Differentiable<Loc<F, N>, Derivative=V>, V : std::ops::Mul<F, Output=V>, C : Constant<Type=F> { - type Output = V; + type Derivative = V; #[inline] - fn differential(&self, x : Loc<F, N>) -> Self::Output { + fn differential(&self, x : Loc<F, N>) -> Self::Derivative { self.base_fn.differential(x) * self.weight.value() } }