| 144         self.base_fn.apply(x - &self.shift) | 144         self.base_fn.apply(x - &self.shift) | 
| 145     } | 145     } | 
| 146 } | 146 } | 
| 147 | 147 | 
| 148 impl<'a, T, V, F : Float, const N : usize> Differentiable<&'a Loc<F, N>> for Shift<T,F,N> | 148 impl<'a, T, V, F : Float, const N : usize> Differentiable<&'a Loc<F, N>> for Shift<T,F,N> | 
| 149 where T : Differentiable<Loc<F, N>, Output=V> { | 149 where T : Differentiable<Loc<F, N>, Derivative=V> { | 
| 150     type Output = V; | 150     type Derivative = V; | 
| 151     #[inline] | 151     #[inline] | 
| 152     fn differential(&self, x : &'a Loc<F, N>) -> Self::Output { | 152     fn differential(&self, x : &'a Loc<F, N>) -> Self::Derivative { | 
| 153         self.base_fn.differential(x - &self.shift) | 153         self.base_fn.differential(x - &self.shift) | 
| 154     } | 154     } | 
| 155 } | 155 } | 
| 156 | 156 | 
| 157 impl<'a, T, V, F : Float, const N : usize> Differentiable<Loc<F, N>> for Shift<T,F,N> | 157 impl<'a, T, V, F : Float, const N : usize> Differentiable<Loc<F, N>> for Shift<T,F,N> | 
| 158 where T : Differentiable<Loc<F, N>, Output=V> { | 158 where T : Differentiable<Loc<F, N>, Derivative=V> { | 
| 159     type Output = V; | 159     type Derivative = V; | 
| 160     #[inline] | 160     #[inline] | 
| 161     fn differential(&self, x : Loc<F, N>) -> Self::Output { | 161     fn differential(&self, x : Loc<F, N>) -> Self::Derivative { | 
| 162         self.base_fn.differential(x - &self.shift) | 162         self.base_fn.differential(x - &self.shift) | 
| 163     } | 163     } | 
| 164 } | 164 } | 
| 165 | 165 | 
| 166 impl<'a, T, F : Float, const N : usize> Support<F,N> for Shift<T,F,N> | 166 impl<'a, T, F : Float, const N : usize> Support<F,N> for Shift<T,F,N> | 
| 249         self.base_fn.apply(x) * self.weight.value() | 249         self.base_fn.apply(x) * self.weight.value() | 
| 250     } | 250     } | 
| 251 } | 251 } | 
| 252 | 252 | 
| 253 impl<'a, T, V, F : Float, C, const N : usize> Differentiable<&'a Loc<F, N>> for Weighted<T, C> | 253 impl<'a, T, V, F : Float, C, const N : usize> Differentiable<&'a Loc<F, N>> for Weighted<T, C> | 
| 254 where T : for<'b> Differentiable<&'b Loc<F, N>, Output=V>, | 254 where T : for<'b> Differentiable<&'b Loc<F, N>, Derivative=V>, | 
| 255       V : std::ops::Mul<F, Output=V>, | 255       V : std::ops::Mul<F, Output=V>, | 
| 256       C : Constant<Type=F> { | 256       C : Constant<Type=F> { | 
| 257     type Output = V; | 257     type Derivative = V; | 
| 258     #[inline] | 258     #[inline] | 
| 259     fn differential(&self, x : &'a Loc<F, N>) -> Self::Output { | 259     fn differential(&self, x : &'a Loc<F, N>) -> Self::Derivative { | 
| 260         self.base_fn.differential(x) * self.weight.value() | 260         self.base_fn.differential(x) * self.weight.value() | 
| 261     } | 261     } | 
| 262 } | 262 } | 
| 263 | 263 | 
| 264 impl<'a, T, V, F : Float, C, const N : usize> Differentiable<Loc<F, N>> for Weighted<T, C> | 264 impl<'a, T, V, F : Float, C, const N : usize> Differentiable<Loc<F, N>> for Weighted<T, C> | 
| 265 where T : Differentiable<Loc<F, N>, Output=V>, | 265 where T : Differentiable<Loc<F, N>, Derivative=V>, | 
| 266       V : std::ops::Mul<F, Output=V>, | 266       V : std::ops::Mul<F, Output=V>, | 
| 267       C : Constant<Type=F> { | 267       C : Constant<Type=F> { | 
| 268     type Output = V; | 268     type Derivative = V; | 
| 269     #[inline] | 269     #[inline] | 
| 270     fn differential(&self, x : Loc<F, N>) -> Self::Output { | 270     fn differential(&self, x : Loc<F, N>) -> Self::Derivative { | 
| 271         self.base_fn.differential(x) * self.weight.value() | 271         self.base_fn.differential(x) * self.weight.value() | 
| 272     } | 272     } | 
| 273 } | 273 } | 
| 274 | 274 | 
| 275 impl<'a, T, F : Float, C, const N : usize> Support<F,N> for Weighted<T, C> | 275 impl<'a, T, F : Float, C, const N : usize> Support<F,N> for Weighted<T, C> |