src/mapping.rs

branch
dev
changeset 42
b4d369698556
parent 39
dd144a972722
child 44
8de8a80852c2
equal deleted inserted replaced
41:121cf065e9ed 42:b4d369698556
116 self.components.iter() 116 self.components.iter()
117 } 117 }
118 } 118 }
119 119
120 120
121 impl<Domain : Copy, M> Apply<Domain> for Sum<Domain, M> 121 impl<Domain, M> Apply<Domain> for Sum<Domain, M>
122 where M : Mapping<Domain>, 122 where M : Mapping<Domain>,
123 M::Codomain : std::iter::Sum { 123 M::Codomain : std::iter::Sum {
124 type Output = M::Codomain; 124 type Output = M::Codomain;
125 125
126 fn apply(&self, x : Domain) -> Self::Output { 126 fn apply(&self, x : Domain) -> Self::Output {
127 self.components.iter().map(|c| c.apply(&x)).sum()
128 }
129 }
130
131 impl<'a, Domain, M> Apply<&'a Domain> for Sum<Domain, M>
132 where M : Mapping<Domain>,
133 M::Codomain : std::iter::Sum {
134 type Output = M::Codomain;
135
136 fn apply(&self, x : &'a Domain) -> Self::Output {
127 self.components.iter().map(|c| c.apply(x)).sum() 137 self.components.iter().map(|c| c.apply(x)).sum()
128 } 138 }
129 } 139 }
130 140
131 impl<Domain, M> Differentiable<Domain> for Sum<Domain, M> 141 impl<Domain, M> Differentiable<Domain> for Sum<Domain, M>

mercurial