src/mapping/dataterm.rs

branch
dev
changeset 150
c4e394a9c84c
parent 128
f75bf34adda0
child 191
794833f18a05
--- a/src/mapping/dataterm.rs	Mon Sep 01 00:04:22 2025 -0500
+++ b/src/mapping/dataterm.rs	Mon Sep 01 13:51:03 2025 -0500
@@ -8,7 +8,7 @@
 use super::{DifferentiableImpl, DifferentiableMapping, LipschitzDifferentiableImpl, Mapping};
 use crate::convex::ConvexMapping;
 use crate::error::DynResult;
-use crate::instance::{Instance, Space};
+use crate::instance::{ClosedSpace, Instance, Space};
 use crate::linops::{BoundedLinear, Linear, Preadjointable};
 use crate::norms::{Normed, L2};
 use crate::types::Float;
@@ -41,11 +41,7 @@
     G: Mapping<A::Codomain, Codomain = F> + Clone,
 {
     fn clone(&self) -> Self {
-        DataTerm {
-            opA: self.opA.clone(),
-            b: self.b.clone(),
-            g: self.g.clone(),
-        }
+        DataTerm { opA: self.opA.clone(), b: self.b.clone(), g: self.g.clone() }
     }
 }
 
@@ -78,7 +74,7 @@
     X: Space,
     A: Mapping<X>,
     G: Mapping<A::Codomain, Codomain = F>,
-    A::Codomain: for<'a> Sub<&'a A::Codomain, Output = A::Codomain>,
+    A::Codomain: ClosedSpace + for<'a> Sub<&'a A::Codomain, Output = A::Codomain>,
 {
     type Codomain = F;
 
@@ -97,7 +93,7 @@
     X: Normed<F>,
     A: Linear<X>,
     G: ConvexMapping<A::Codomain, F>,
-    A::Codomain: Normed<F> + for<'a> Sub<&'a A::Codomain, Output = A::Codomain>,
+    A::Codomain: ClosedSpace + Normed<F> + for<'a> Sub<&'a A::Codomain, Output = A::Codomain>,
 {
 }
 
@@ -105,9 +101,11 @@
 where
     F: Float,
     X: Space,
-    Y: Space + for<'a> Sub<&'a Y, Output = Y>,
+    Y: Space + Instance<Y> + for<'a> Sub<&'a Y, Output = Y>,
     //<A as Mapping<X>>::Codomain: Euclidean<F>,
     A: Linear<X, Codomain = Y> + Preadjointable<X, G::DerivativeDomain>,
+    G::DerivativeDomain: Instance<G::DerivativeDomain>,
+    A::PreadjointCodomain: ClosedSpace,
     //<<A as Mapping<X>>::Codomain as Euclidean<F>>::Output: Instance<<A as Mapping<X>>::Codomain>,
     G: DifferentiableMapping<Y, Codomain = F>,
 {

mercurial