--- a/src/bisection_tree/btfn.rs Fri Apr 28 09:03:21 2023 +0300 +++ b/src/bisection_tree/btfn.rs Fri Apr 28 13:42:03 2023 +0300 @@ -4,7 +4,7 @@ use std::marker::PhantomData; use std::sync::Arc; use crate::types::Float; -use crate::mapping::{Apply, Mapping, Differentiate}; +use crate::mapping::{Apply, Mapping, Differentiable}; //use crate::linops::{Apply, Linear}; use crate::sets::Set; use crate::sets::Cube; @@ -420,11 +420,11 @@ } } -impl<'a, F : Float, G, BT, V, const N : usize> Differentiate<&'a Loc<F, N>> +impl<'a, F : Float, G, BT, V, const N : usize> Differentiable<&'a Loc<F, N>> for BTFN<F, G, BT, N> where BT : BTImpl<F, N>, G : SupportGenerator<F, N, Id=BT::Data>, - G::SupportType : LocalAnalysis<F, BT::Agg, N> + Differentiate<&'a Loc<F, N>, Output = V>, + G::SupportType : LocalAnalysis<F, BT::Agg, N> + Differentiable<&'a Loc<F, N>, Output = V>, V : Sum { type Output = V; @@ -436,11 +436,11 @@ } } -impl<F : Float, G, BT, V, const N : usize> Differentiate<Loc<F, N>> +impl<F : Float, G, BT, V, const N : usize> Differentiable<Loc<F, N>> for BTFN<F, G, BT, N> where BT : BTImpl<F, N>, G : SupportGenerator<F, N, Id=BT::Data>, - G::SupportType : LocalAnalysis<F, BT::Agg, N> + Differentiate<Loc<F, N>, Output = V>, + G::SupportType : LocalAnalysis<F, BT::Agg, N> + Differentiable<Loc<F, N>, Output = V>, V : Sum { type Output = V;