Skip to content
GitLab
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
9021e88f
Commit
9021e88f
authored
Feb 20, 2018
by
Martin Reinecke
Browse files
Distribution -> Distributor
parent
1314c2ac
Pipeline
#25217
passed with stages
in 5 minutes and 54 seconds
Changes
8
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
demos/critical_filtering.py
View file @
9021e88f
...
...
@@ -106,7 +106,7 @@ if __name__ == "__main__":
power0_energy
=
ift
.
library
.
NonlinearPowerEnergy
(
position
=
t0
,
d
=
d
,
N
=
N
,
xi
=
m0
,
D
=
D0
,
ht
=
HT
,
Instrument
=
MeasurementOperator
,
nonlinearity
=
nonlinearity
,
Distribut
ion
=
Distributor
,
sigma
=
1.
,
samples
=
2
,
inverter
=
inverter
)
Distribut
or
=
Distributor
,
sigma
=
1.
,
samples
=
2
,
inverter
=
inverter
)
power0_energy
=
minimizer
(
power0_energy
)[
0
]
...
...
demos/nonlinear_critical_filter.py
View file @
9021e88f
...
...
@@ -100,7 +100,7 @@ if __name__ == "__main__":
power0_energy
=
ift
.
library
.
NonlinearPowerEnergy
(
position
=
t0
,
d
=
d
,
N
=
N
,
xi
=
m0
,
D
=
D0
,
ht
=
HT
,
Instrument
=
MeasurementOperator
,
nonlinearity
=
nonlinearity
,
Distribut
ion
=
Distributor
,
sigma
=
1.
,
samples
=
2
,
inverter
=
inverter
)
Distribut
or
=
Distributor
,
sigma
=
1.
,
samples
=
2
,
inverter
=
inverter
)
power0_energy
=
minimizer
(
power0_energy
)[
0
]
...
...
nifty4/library/noise_energy.py
View file @
9021e88f
...
...
@@ -25,7 +25,7 @@ from ..minimization.energy import Energy
class
NoiseEnergy
(
Energy
):
def
__init__
(
self
,
position
,
d
,
xi
,
D
,
t
,
ht
,
Instrument
,
nonlinearity
,
alpha
,
q
,
Distribut
ion
,
samples
=
3
,
nonlinearity
,
alpha
,
q
,
Distribut
or
,
samples
=
3
,
xi_sample_list
=
None
,
inverter
=
None
):
super
(
NoiseEnergy
,
self
).
__init__
(
position
=
position
)
self
.
xi
=
xi
...
...
@@ -40,8 +40,8 @@ class NoiseEnergy(Energy):
self
.
alpha
=
alpha
self
.
q
=
q
self
.
Distribut
ion
=
Distribut
ion
self
.
power
=
self
.
Distribut
ion
(
exp
(
0.5
*
self
.
t
))
self
.
Distribut
or
=
Distribut
or
self
.
power
=
self
.
Distribut
or
(
exp
(
0.5
*
self
.
t
))
if
xi_sample_list
is
None
:
if
samples
is
None
or
samples
==
0
:
xi_sample_list
=
[
xi
]
...
...
@@ -51,7 +51,7 @@ class NoiseEnergy(Energy):
self
.
xi_sample_list
=
xi_sample_list
self
.
inverter
=
inverter
A
=
Distribut
ion
(
exp
(.
5
*
self
.
t
))
A
=
Distribut
or
(
exp
(.
5
*
self
.
t
))
self
.
_gradient
=
None
for
sample
in
self
.
xi_sample_list
:
...
...
@@ -81,7 +81,7 @@ class NoiseEnergy(Energy):
return
self
.
__class__
(
position
,
self
.
d
,
self
.
xi
,
self
.
D
,
self
.
t
,
self
.
ht
,
self
.
Instrument
,
self
.
nonlinearity
,
self
.
alpha
,
self
.
q
,
self
.
Distribut
ion
,
xi_sample_list
=
self
.
xi_sample_list
,
self
.
Distribut
or
,
xi_sample_list
=
self
.
xi_sample_list
,
samples
=
self
.
samples
,
inverter
=
self
.
inverter
)
@
property
...
...
nifty4/library/nonlinear_power_curvature.py
View file @
9021e88f
...
...
@@ -20,12 +20,12 @@ from ..operators.inversion_enabler import InversionEnabler
from
.response_operators
import
LinearizedPowerResponse
def
NonlinearPowerCurvature
(
tau
,
ht
,
Instrument
,
nonlinearity
,
Distribut
ion
,
N
,
def
NonlinearPowerCurvature
(
tau
,
ht
,
Instrument
,
nonlinearity
,
Distribut
or
,
N
,
T
,
xi_sample_list
,
inverter
):
result
=
None
for
xi_sample
in
xi_sample_list
:
LinearizedResponse
=
LinearizedPowerResponse
(
Instrument
,
nonlinearity
,
ht
,
Distribut
ion
,
tau
,
xi_sample
)
Instrument
,
nonlinearity
,
ht
,
Distribut
or
,
tau
,
xi_sample
)
op
=
LinearizedResponse
.
adjoint
*
N
.
inverse
*
LinearizedResponse
result
=
op
if
result
is
None
else
result
+
op
result
=
result
*
(
1.
/
len
(
xi_sample_list
))
+
T
...
...
nifty4/library/nonlinear_power_energy.py
View file @
9021e88f
...
...
@@ -52,7 +52,7 @@ class NonlinearPowerEnergy(Energy):
"""
# MR FIXME: docstring incomplete and outdated
def
__init__
(
self
,
position
,
d
,
N
,
xi
,
D
,
ht
,
Instrument
,
nonlinearity
,
Distribut
ion
,
sigma
=
0.
,
samples
=
3
,
xi_sample_list
=
None
,
Distribut
or
,
sigma
=
0.
,
samples
=
3
,
xi_sample_list
=
None
,
inverter
=
None
):
super
(
NonlinearPowerEnergy
,
self
).
__init__
(
position
)
self
.
xi
=
xi
...
...
@@ -64,7 +64,7 @@ class NonlinearPowerEnergy(Energy):
self
.
ht
=
ht
self
.
Instrument
=
Instrument
self
.
nonlinearity
=
nonlinearity
self
.
Distribut
ion
=
Distribut
ion
self
.
Distribut
or
=
Distribut
or
self
.
sigma
=
sigma
if
xi_sample_list
is
None
:
if
samples
is
None
or
samples
==
0
:
...
...
@@ -75,7 +75,7 @@ class NonlinearPowerEnergy(Energy):
self
.
xi_sample_list
=
xi_sample_list
self
.
inverter
=
inverter
A
=
Distribut
ion
(
exp
(.
5
*
position
))
A
=
Distribut
or
(
exp
(.
5
*
position
))
map_s
=
self
.
ht
(
A
*
xi
)
Tpos
=
self
.
T
(
position
)
...
...
@@ -83,7 +83,7 @@ class NonlinearPowerEnergy(Energy):
for
xi_sample
in
self
.
xi_sample_list
:
map_s
=
self
.
ht
(
A
*
xi_sample
)
LinR
=
LinearizedPowerResponse
(
self
.
Instrument
,
self
.
nonlinearity
,
self
.
ht
,
self
.
Distribut
ion
,
self
.
Instrument
,
self
.
nonlinearity
,
self
.
ht
,
self
.
Distribut
or
,
self
.
position
,
xi_sample
)
residual
=
self
.
d
-
\
...
...
@@ -107,7 +107,7 @@ class NonlinearPowerEnergy(Energy):
def
at
(
self
,
position
):
return
self
.
__class__
(
position
,
self
.
d
,
self
.
N
,
self
.
xi
,
self
.
D
,
self
.
ht
,
self
.
Instrument
,
self
.
nonlinearity
,
self
.
Distribut
ion
,
sigma
=
self
.
sigma
,
self
.
Distribut
or
,
sigma
=
self
.
sigma
,
samples
=
len
(
self
.
xi_sample_list
),
xi_sample_list
=
self
.
xi_sample_list
,
inverter
=
self
.
inverter
)
...
...
@@ -125,5 +125,5 @@ class NonlinearPowerEnergy(Energy):
def
curvature
(
self
):
return
NonlinearPowerCurvature
(
self
.
position
,
self
.
ht
,
self
.
Instrument
,
self
.
nonlinearity
,
self
.
Distribut
ion
,
self
.
N
,
self
.
T
,
self
.
xi_sample_list
,
self
.
Distribut
or
,
self
.
N
,
self
.
T
,
self
.
xi_sample_list
,
self
.
inverter
)
nifty4/library/response_operators.py
View file @
9021e88f
...
...
@@ -23,9 +23,9 @@ def LinearizedSignalResponse(Instrument, nonlinearity, ht, power, m):
return
Instrument
*
nonlinearity
.
derivative
(
m
)
*
ht
*
power
def
LinearizedPowerResponse
(
Instrument
,
nonlinearity
,
ht
,
Distribut
ion
,
tau
,
def
LinearizedPowerResponse
(
Instrument
,
nonlinearity
,
ht
,
Distribut
or
,
tau
,
xi
):
power
=
exp
(
0.5
*
tau
)
position
=
ht
(
Distribut
ion
(
power
)
*
xi
)
position
=
ht
(
Distribut
or
(
power
)
*
xi
)
linearization
=
nonlinearity
.
derivative
(
position
)
return
0.5
*
Instrument
*
linearization
*
ht
*
xi
*
Distribut
ion
*
power
return
0.5
*
Instrument
*
linearization
*
ht
*
xi
*
Distribut
or
*
power
test/test_energies/test_noise.py
View file @
9021e88f
...
...
@@ -86,7 +86,7 @@ class Noise_Energy_Tests(unittest.TestCase):
energy0
=
ift
.
library
.
NoiseEnergy
(
position
=
eta0
,
d
=
d
,
xi
=
xi
,
D
=
D
,
t
=
tau
,
Instrument
=
R
,
alpha
=
alpha
,
q
=
q
,
Distribut
ion
=
Dist
,
nonlinearity
=
f
,
alpha
=
alpha
,
q
=
q
,
Distribut
or
=
Dist
,
nonlinearity
=
f
,
ht
=
ht
,
samples
=
10
)
energy1
=
energy0
.
at
(
eta1
)
...
...
test/test_energies/test_power.py
View file @
9021e88f
...
...
@@ -82,7 +82,7 @@ class Energy_Tests(unittest.TestCase):
xi
=
xi
,
D
=
D
,
Instrument
=
R
,
Distribut
ion
=
Dist
,
Distribut
or
=
Dist
,
nonlinearity
=
f
,
ht
=
ht
,
N
=
N
,
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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