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
f6b56291
Commit
f6b56291
authored
Aug 26, 2018
by
Martin Reinecke
Browse files
adjust to changes on NIFTy_5 branch
parent
3d526bfa
Changes
2
Hide whitespace changes
Inline
Side-by-side
nifty5/linearization.py
View file @
f6b56291
...
...
@@ -93,12 +93,16 @@ class Linearization(object):
def
__rsub__
(
self
,
other
):
return
(
-
self
).
__add__
(
other
)
def
__truediv__
(
self
,
other
):
if
isinstance
(
other
,
Linearization
):
return
self
.
__mul__
(
other
.
inverse
())
return
self
.
__mul__
(
1.
/
other
)
def
__rtruediv__
(
self
,
other
):
return
(
self
.
inverse
()
)
.
__mul__
(
other
)
return
self
.
inverse
().
__mul__
(
other
)
def
inverse
(
self
):
return
Linearization
(
1.
/
self
.
_val
,
makeOp
(
-
1.
/
(
self
.
_val
**
2
))(
self
.
_jac
))
return
self
.
new
(
1.
/
self
.
_val
,
makeOp
(
-
1.
/
(
self
.
_val
**
2
))(
self
.
_jac
))
def
__mul__
(
self
,
other
):
from
.sugar
import
makeOp
...
...
nifty5/operators/energy_operators.py
View file @
f6b56291
...
...
@@ -112,6 +112,7 @@ class PoissonianEnergy(EnergyOperator):
metric
=
SandwichOperator
.
make
(
x
.
jac
,
makeOp
(
1.
/
x
.
val
))
return
res
.
add_metric
(
metric
)
class
InverseGammaLikelihood
(
EnergyOperator
):
def
__init__
(
self
,
op
,
d
):
self
.
_op
,
self
.
_d
=
op
,
d
...
...
@@ -122,11 +123,12 @@ class InverseGammaLikelihood(EnergyOperator):
res
=
0.5
*
(
x
.
log
().
sum
()
+
(
0.5
/
x
).
vdot
(
self
.
_d
))
if
not
isinstance
(
x
,
Linearization
):
return
Field
.
scalar
(
res
)
if
not
x
.
want_metric
:
return
res
metric
=
SandwichOperator
.
make
(
x
.
jac
,
makeOp
(
0.5
/
(
x
.
val
**
2
)))
return
res
.
add_metric
(
metric
)
class
BernoulliEnergy
(
EnergyOperator
):
def
__init__
(
self
,
p
,
d
):
self
.
_p
=
p
...
...
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