Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ift
NIFTy
Commits
9840890e
Commit
9840890e
authored
Mar 12, 2019
by
Martin Reinecke
Browse files
Merge remote-tracking branch 'origin/NIFTy_5' into documentation_feedback
parents
67a2d129
9f8bd423
Pipeline
#45147
passed with stages
in 9 minutes and 25 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
nifty5/operators/scaling_operator.py
View file @
9840890e
...
@@ -35,6 +35,19 @@ class ScalingOperator(EndomorphicOperator):
...
@@ -35,6 +35,19 @@ class ScalingOperator(EndomorphicOperator):
-----
-----
:class:`Operator` supports the multiplication with a scalar. So one does
:class:`Operator` supports the multiplication with a scalar. So one does
not need instantiate :class:`ScalingOperator` explicitly in most cases.
not need instantiate :class:`ScalingOperator` explicitly in most cases.
Formally, this operator always supports all operation modes (times,
adjoint_times, inverse_times and inverse_adjoint_times), even if `factor`
is 0 or infinity. It is the user's responsibility to apply the operator
only in appropriate ways (e.g. call inverse_times only if `factor` is
nonzero).
Along with this behaviour comes the feature that it is possible to draw an
inverse sample from a :class:`ScalingOperator` (which is a zero-field).
This occurs if one draws an inverse sample of a positive definite sum of
two operators each of which are only positive semi-definite. However, it
is unclear whether this beviour does not lead to unwanted effects
somewhere else.
"""
"""
def
__init__
(
self
,
factor
,
domain
):
def
__init__
(
self
,
factor
,
domain
):
...
@@ -44,10 +57,7 @@ class ScalingOperator(EndomorphicOperator):
...
@@ -44,10 +57,7 @@ class ScalingOperator(EndomorphicOperator):
raise
TypeError
(
"Scalar required"
)
raise
TypeError
(
"Scalar required"
)
self
.
_factor
=
factor
self
.
_factor
=
factor
self
.
_domain
=
makeDomain
(
domain
)
self
.
_domain
=
makeDomain
(
domain
)
if
self
.
_factor
==
0.
:
self
.
_capability
=
self
.
_all_ops
self
.
_capability
=
self
.
TIMES
|
self
.
ADJOINT_TIMES
else
:
self
.
_capability
=
self
.
_all_ops
def
apply
(
self
,
x
,
mode
):
def
apply
(
self
,
x
,
mode
):
self
.
_check_input
(
x
,
mode
)
self
.
_check_input
(
x
,
mode
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment