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
a29abca8
Commit
a29abca8
authored
Mar 09, 2020
by
Philipp Arras
Browse files
Cosmetics
parent
d159522a
Pipeline
#70453
failed with stages
in 9 minutes
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
nifty6/operators/energy_operators.py
View file @
a29abca8
...
...
@@ -19,17 +19,17 @@ import numpy as np
from
..
import
utilities
from
..domain_tuple
import
DomainTuple
from
..multi_domain
import
MultiDomain
from
..field
import
Field
from
..multi_field
import
MultiField
from
..linearization
import
Linearization
from
..sugar
import
makeDomain
,
makeOp
,
full
from
..multi_domain
import
MultiDomain
from
..multi_field
import
MultiField
from
..sugar
import
makeDomain
,
makeOp
from
.linear_operator
import
LinearOperator
from
.operator
import
Operator
from
.sampling_enabler
import
SamplingEnabler
from
.sandwich_operator
import
SandwichOperator
from
.scaling_operator
import
ScalingOperator
from
.simple_linear_operators
import
VdotOperator
,
FieldAdapte
r
from
.simple_linear_operators
import
FieldAdapter
,
VdotOperato
r
class
EnergyOperator
(
Operator
):
...
...
@@ -130,14 +130,12 @@ class VariableCovarianceGaussianEnergy(EnergyOperator):
def
apply
(
self
,
x
):
self
.
_check_input
(
x
)
from
.contraction_operator
import
ContractionOperator
lin
=
isinstance
(
x
,
Linearization
)
r
=
FieldAdapter
(
self
.
_domain
[
self
.
_r
],
self
.
_r
)
icov
=
FieldAdapter
(
self
.
_domain
[
self
.
_icov
],
self
.
_icov
)
res0
=
r
.
vdot
(
r
*
icov
).
real
res1
=
icov
.
log
().
sum
()
res
=
0.5
*
(
res0
-
res1
)
res
=
res
(
x
)
res
=
(
res0
-
res1
).
scale
(
0.5
)(
x
)
if
not
lin
:
return
Field
.
scalar
(
res
)
if
not
x
.
want_metric
:
...
...
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