src/bisection_tree/btfn.rs

branch
dev
changeset 80
f802ddbabcfc
parent 63
f7b87d84864d
equal deleted inserted replaced
68:c5f70e767511 80:f802ddbabcfc
4 use std::marker::PhantomData; 4 use std::marker::PhantomData;
5 use std::sync::Arc; 5 use std::sync::Arc;
6 use crate::types::Float; 6 use crate::types::Float;
7 use crate::mapping::{ 7 use crate::mapping::{
8 Instance, Mapping, DifferentiableImpl, DifferentiableMapping, Space, 8 Instance, Mapping, DifferentiableImpl, DifferentiableMapping, Space,
9 BasicDecomposition, 9 BasicDecomposition, ArithmeticFalse,
10 }; 10 };
11 //use crate::linops::{Apply, Linear}; 11 //use crate::linops::{Apply, Linear};
12 use crate::sets::Set; 12 use crate::sets::Set;
13 use crate::sets::Cube; 13 use crate::sets::Cube;
14 use crate::loc::Loc; 14 use crate::loc::Loc;
413 G::SupportType : LocalAnalysis<F, BT::Agg, N> + Mapping<Loc<F, N>, Codomain = V>, 413 G::SupportType : LocalAnalysis<F, BT::Agg, N> + Mapping<Loc<F, N>, Codomain = V>,
414 V : Sum + Space, 414 V : Sum + Space,
415 { 415 {
416 416
417 type Codomain = V; 417 type Codomain = V;
418 type ArithmeticOptIn = ArithmeticFalse;
418 419
419 fn apply<I : Instance<Loc<F,N>>>(&self, x : I) -> Self::Codomain { 420 fn apply<I : Instance<Loc<F,N>>>(&self, x : I) -> Self::Codomain {
420 let xc = x.cow(); 421 let xc = x.cow();
421 self.bt.iter_at(&*xc) 422 self.bt.iter_at(&*xc)
422 .map(|&d| self.generator.support_for(d).apply(&*xc)).sum() 423 .map(|&d| self.generator.support_for(d).apply(&*xc)).sum()

mercurial