src/convex.rs

branch
dev
changeset 124
6aa955ad8122
parent 112
ed8124f1af1d
child 129
d2994e34a5f5
equal deleted inserted replaced
122:495448cca603 124:6aa955ad8122
96 { 96 {
97 } 97 }
98 98
99 impl<F, E, Domain> Mapping<Domain> for NormConstraint<F, E> 99 impl<F, E, Domain> Mapping<Domain> for NormConstraint<F, E>
100 where 100 where
101 Domain: Space + Norm<F, E>, 101 Domain: Space + Norm<E, F>,
102 F: Float, 102 F: Float,
103 E: NormExponent, 103 E: NormExponent,
104 { 104 {
105 type Codomain = F; 105 type Codomain = F;
106 106
124 124
125 impl<E, F, Domain> Conjugable<Domain, F> for NormMapping<F, E> 125 impl<E, F, Domain> Conjugable<Domain, F> for NormMapping<F, E>
126 where 126 where
127 E: HasDualExponent, 127 E: HasDualExponent,
128 F: Float, 128 F: Float,
129 Domain: HasDual<F> + Norm<F, E> + Normed<F>, 129 Domain: HasDual<F> + Norm<E, F> + Normed<F>,
130 <Domain as HasDual<F>>::DualSpace: Norm<F, E::DualExp>, 130 <Domain as HasDual<F>>::DualSpace: Norm<E::DualExp, F>,
131 { 131 {
132 type Conjugate<'a> 132 type Conjugate<'a>
133 = NormConstraint<F, E::DualExp> 133 = NormConstraint<F, E::DualExp>
134 where 134 where
135 Self: 'a; 135 Self: 'a;
145 impl<C, E, F, Domain> Conjugable<Domain, F> for Weighted<NormMapping<F, E>, C> 145 impl<C, E, F, Domain> Conjugable<Domain, F> for Weighted<NormMapping<F, E>, C>
146 where 146 where
147 C: Constant<Type = F>, 147 C: Constant<Type = F>,
148 E: HasDualExponent, 148 E: HasDualExponent,
149 F: Float, 149 F: Float,
150 Domain: HasDual<F> + Norm<F, E> + Space, 150 Domain: HasDual<F> + Norm<E, F> + Space,
151 <Domain as HasDual<F>>::DualSpace: Norm<F, E::DualExp>, 151 <Domain as HasDual<F>>::DualSpace: Norm<E::DualExp, F>,
152 { 152 {
153 type Conjugate<'a> 153 type Conjugate<'a>
154 = NormConstraint<F, E::DualExp> 154 = NormConstraint<F, E::DualExp>
155 where 155 where
156 Self: 'a; 156 Self: 'a;
163 } 163 }
164 } 164 }
165 165
166 impl<Domain, E, F> Prox<Domain> for NormConstraint<F, E> 166 impl<Domain, E, F> Prox<Domain> for NormConstraint<F, E>
167 where 167 where
168 Domain: Space + Norm<F, E>, 168 Domain: Space + Norm<E, F>,
169 E: NormExponent, 169 E: NormExponent,
170 F: Float, 170 F: Float,
171 NormProjection<F, E>: Mapping<Domain, Codomain = Domain>, 171 NormProjection<F, E>: Mapping<Domain, Codomain = Domain>,
172 { 172 {
173 type Prox<'a> 173 type Prox<'a>

mercurial