src/norms.rs

branch
dev
changeset 63
f7b87d84864d
parent 60
848ecc05becf
child 64
4f6ca107ccb1
equal deleted inserted replaced
62:d8305c9b6fdf 63:f7b87d84864d
219 219
220 pub trait HasDual<F : Num = f64> : Normed<F> { 220 pub trait HasDual<F : Num = f64> : Normed<F> {
221 type DualSpace : Normed<F>; 221 type DualSpace : Normed<F>;
222 } 222 }
223 223
224 /// Automatically implemented trait for reflexive spaces
224 pub trait Reflexive<F : Num = f64> : HasDual<F> 225 pub trait Reflexive<F : Num = f64> : HasDual<F>
225 where 226 where
226 Self::DualSpace : HasDual<F, DualSpace = Self> 227 Self::DualSpace : HasDual<F, DualSpace = Self>
227 { } 228 { }
228 229
230 impl<F : Num, X : HasDual<F>> Reflexive<F> for X
231 where
232 X::DualSpace : HasDual<F, DualSpace = X>
233 { }
229 234
230 pub trait HasDualExponent : NormExponent { 235 pub trait HasDualExponent : NormExponent {
231 type DualExp : NormExponent; 236 type DualExp : NormExponent;
232 237
233 fn dual_exponent(&self) -> Self::DualExp; 238 fn dual_exponent(&self) -> Self::DualExp;

mercurial