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 } |