summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdoardo Pasca <edo.paskino@gmail.com>2019-03-06 22:14:37 +0000
committerGitHub <noreply@github.com>2019-03-06 22:14:37 +0000
commitd9994f9e1576c82e92bfe2684e11d2d768e95046 (patch)
tree9df6d2e77e428d2904f3fe108e4cf165aeec530d
parent19ac4b3258adc33bb817cad5bdc4d7cd7799299b (diff)
downloadframework-d9994f9e1576c82e92bfe2684e11d2d768e95046.tar.gz
framework-d9994f9e1576c82e92bfe2684e11d2d768e95046.tar.bz2
framework-d9994f9e1576c82e92bfe2684e11d2d768e95046.tar.xz
framework-d9994f9e1576c82e92bfe2684e11d2d768e95046.zip
created ScaledOperator.py
-rw-r--r--Wrappers/Python/ccpi/optimisation/operators/ScaledOperator.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/Wrappers/Python/ccpi/optimisation/operators/ScaledOperator.py b/Wrappers/Python/ccpi/optimisation/operators/ScaledOperator.py
new file mode 100644
index 0000000..c29effc
--- /dev/null
+++ b/Wrappers/Python/ccpi/optimisation/operators/ScaledOperator.py
@@ -0,0 +1,14 @@
+from ccpi.optimisation.operators import LinearOperator
+from numbers import Number
+
+class ScaledOperator(LinearOperator):
+ def __init__(self, operator, scalar):
+ if not isinstance (scalar, Number):
+ raise TypeError('expected scalar: got {}'.format(type(scalar))
+ self.scalar = scalar
+ self.operator = operator
+ def direct(self, x, out=None):
+ return self.scalar * self.operator.direct(x, out=out)
+ def adjoint(self, x, out=None):
+ if self.operator.is_linear():
+ return self.scalar * self.operator.adjoint(x, out=out)