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
779cae8b
Commit
779cae8b
authored
Mar 31, 2020
by
Rouven Lemmerz
Browse files
Added wrapper for safe usage
parent
a1fcf437
Pipeline
#71735
passed with stages
in 25 minutes and 21 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
nifty6/operators/operator_tree_optimiser.py
View file @
779cae8b
...
...
@@ -197,6 +197,21 @@ def optimize_operator(op):
# Insert trees before leaves
for
key
in
key_list_tree
:
op
=
op
.
partial_insert
(
same_tree
[
key
][
1
].
adjoint
(
same_tree
[
key
][
0
]))
for
key
in
reversed
(
key_list_op
)
:
for
key
in
key_list_op
:
op
=
op
.
partial_insert
(
same_op
[
key
][
1
].
adjoint
(
same_op
[
key
][
0
]))
return
op
from
copy
import
deepcopy
from
nifty6
import
from_random
,
MultiField
from
numpy
import
allclose
def
optimize_operator_safe
(
op
):
op_optimized
=
deepcopy
(
op
)
op_optimized
=
optimize_operator
(
op_optimized
)
test_field
=
from_random
(
'normal'
,
op
.
domain
)
if
isinstance
(
op
(
test_field
),
MultiField
):
for
key
in
op
(
test_field
).
keys
():
assert
allclose
(
op
(
test_field
).
val
[
key
],
op_optimized
(
test_field
).
val
[
key
])
else
:
assert
allclose
(
op
(
test_field
).
val
,
op_optimized
(
test_field
).
val
)
return
op_optimized
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