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
dcd07812
Commit
dcd07812
authored
Dec 06, 2019
by
Philipp Arras
Committed by
Martin Reinecke
Dec 06, 2019
Browse files
Boost performance of correlated fields
parent
83feda90
Changes
1
Hide whitespace changes
Inline
Side-by-side
nifty6/library/correlated_fields.py
View file @
dcd07812
...
...
@@ -16,13 +16,16 @@
#
# NIFTy is being developed at the Max-Planck-Institut fuer Astrophysik.
from
functools
import
reduce
from
operator
import
mul
import
numpy
as
np
from
..logger
import
logger
from
..domain_tuple
import
DomainTuple
from
..domains.power_space
import
PowerSpace
from
..domains.unstructured_domain
import
UnstructuredDomain
from
..field
import
Field
from
..logger
import
logger
from
..multi_field
import
MultiField
from
..operators.adder
import
Adder
from
..operators.contraction_operator
import
ContractionOperator
...
...
@@ -447,21 +450,17 @@ class CorrelatedFieldMaker:
self
.
_position_spaces
[
0
][
amp_space
],
space
=
spaces
[
0
])
for
i
in
range
(
1
,
n_amplitudes
):
ht
=
(
HarmonicTransformOperator
(
ht
.
target
,
self
.
_position_spaces
[
i
][
amp_space
],
space
=
spaces
[
i
])
@
ht
)
pd
=
PowerDistributor
(
hspace
,
self
.
_a
[
0
].
target
[
amp_space
],
amp_space
)
for
i
in
range
(
1
,
n_amplitudes
):
pd
=
(
pd
@
PowerDistributor
(
pd
.
domain
,
self
.
_a
[
i
].
target
[
amp_space
],
space
=
spaces
[
i
]))
a
=
ContractionOperator
(
pd
.
domain
,
spaces
[
1
:]).
adjoint
@
self
.
_a
[
0
]
for
i
in
range
(
1
,
n_amplitudes
):
co
=
ContractionOperator
(
pd
.
domain
,
spaces
[:
i
]
+
spaces
[
i
+
1
:])
a
=
a
*
(
co
.
adjoint
@
self
.
_a
[
i
])
return
ht
(
azm
*
(
pd
@
a
)
*
ducktape
(
hspace
,
None
,
self
.
_prefix
+
'xi'
))
ht
=
HarmonicTransformOperator
(
ht
.
target
,
self
.
_position_spaces
[
i
][
amp_space
],
space
=
spaces
[
i
])
@
ht
a
=
[]
for
ii
in
range
(
n_amplitudes
):
co
=
ContractionOperator
(
hspace
,
spaces
[:
ii
]
+
spaces
[
ii
+
1
:])
pp
=
self
.
_a
[
ii
].
target
[
amp_space
]
pd
=
PowerDistributor
(
pp
.
harmonic_partner
,
pp
,
amp_space
)
a
.
append
(
co
.
adjoint
@
pd
@
self
.
_a
[
ii
])
corr
=
reduce
(
mul
,
a
)
return
ht
(
azm
*
corr
*
ducktape
(
hspace
,
None
,
self
.
_prefix
+
'xi'
))
def
finalize
(
self
,
offset
=
None
,
prior_info
=
100
):
"""
...
...
Write
Preview
Supports
Markdown
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