src/loc.rs

branch
dev
changeset 80
f802ddbabcfc
parent 64
4f6ca107ccb1
equal deleted inserted replaced
68:c5f70e767511 80:f802ddbabcfc
10 use crate::maputil::{FixedLength,FixedLengthMut,map1,map2,map1_mut,map2_mut}; 10 use crate::maputil::{FixedLength,FixedLengthMut,map1,map2,map1_mut,map2_mut};
11 use crate::euclidean::*; 11 use crate::euclidean::*;
12 use crate::norms::*; 12 use crate::norms::*;
13 use crate::linops::{AXPY, Mapping, Linear}; 13 use crate::linops::{AXPY, Mapping, Linear};
14 use crate::instance::{Instance, BasicDecomposition}; 14 use crate::instance::{Instance, BasicDecomposition};
15 use crate::mapping::Space; 15 use crate::mapping::{Space, ArithmeticFalse};
16 use serde::ser::{Serialize, Serializer, SerializeSeq}; 16 use serde::ser::{Serialize, Serializer, SerializeSeq};
17 17
18 18
19 /// A container type for (short) `N`-dimensional vectors of element type `F`. 19 /// A container type for (short) `N`-dimensional vectors of element type `F`.
20 /// 20 ///
695 type Decomp = BasicDecomposition; 695 type Decomp = BasicDecomposition;
696 } 696 }
697 697
698 impl<F : Float, const N : usize> Mapping<Loc<F, N>> for Loc<F, N> { 698 impl<F : Float, const N : usize> Mapping<Loc<F, N>> for Loc<F, N> {
699 type Codomain = F; 699 type Codomain = F;
700 type ArithmeticOptIn = ArithmeticFalse;
700 701
701 fn apply<I : Instance<Loc<F, N>>>(&self, x : I) -> Self::Codomain { 702 fn apply<I : Instance<Loc<F, N>>>(&self, x : I) -> Self::Codomain {
702 x.eval(|x̃| self.dot(x̃)) 703 x.eval(|x̃| self.dot(x̃))
703 } 704 }
704 } 705 }

mercurial