Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
NIFTy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
13
Issues
13
List
Boards
Labels
Service Desk
Milestones
Merge Requests
13
Merge Requests
13
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ift
NIFTy
Commits
a272d7c5
Commit
a272d7c5
authored
Dec 05, 2019
by
Martin Reinecke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
more renamings
parent
914f053a
Pipeline
#64989
passed with stages
in 8 minutes and 50 seconds
Changes
26
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
68 additions
and
60 deletions
+68
-60
demos/Wiener_Filter.ipynb
demos/Wiener_Filter.ipynb
+7
-7
demos/bernoulli_demo.py
demos/bernoulli_demo.py
+1
-1
demos/find_amplitude_parameters.py
demos/find_amplitude_parameters.py
+1
-1
demos/getting_started_1.py
demos/getting_started_1.py
+1
-1
demos/getting_started_2.py
demos/getting_started_2.py
+2
-2
demos/polynomial_fit.py
demos/polynomial_fit.py
+1
-1
nifty6/domains/lm_space.py
nifty6/domains/lm_space.py
+3
-3
nifty6/domains/power_space.py
nifty6/domains/power_space.py
+1
-1
nifty6/domains/rg_space.py
nifty6/domains/rg_space.py
+2
-2
nifty6/field.py
nifty6/field.py
+11
-7
nifty6/library/correlated_fields.py
nifty6/library/correlated_fields.py
+2
-2
nifty6/library/los_response.py
nifty6/library/los_response.py
+6
-7
nifty6/linearization.py
nifty6/linearization.py
+2
-2
nifty6/minimization/metric_gaussian_kl_mpi.py
nifty6/minimization/metric_gaussian_kl_mpi.py
+1
-1
nifty6/minimization/scipy_minimizer.py
nifty6/minimization/scipy_minimizer.py
+1
-1
nifty6/multi_field.py
nifty6/multi_field.py
+7
-2
nifty6/operator_spectrum.py
nifty6/operator_spectrum.py
+1
-1
nifty6/operators/distributors.py
nifty6/operators/distributors.py
+2
-2
nifty6/plot.py
nifty6/plot.py
+1
-1
nifty6/probing.py
nifty6/probing.py
+1
-1
nifty6/sugar.py
nifty6/sugar.py
+2
-2
test/test_minimizers.py
test/test_minimizers.py
+6
-6
test/test_multi_field.py
test/test_multi_field.py
+1
-1
test/test_operators/test_adjoint.py
test/test_operators/test_adjoint.py
+2
-2
test/test_operators/test_representation.py
test/test_operators/test_representation.py
+2
-2
test/test_operators/test_smoothing_operator.py
test/test_operators/test_smoothing_operator.py
+1
-1
No files found.
demos/Wiener_Filter.ipynb
View file @
a272d7c5
...
...
@@ -427,12 +427,12 @@
"\n",
"mask = np.full(s_space.shape, 1.)\n",
"mask[l:h] = 0\n",
"mask = ift.Field.from_
arr
(s_space, mask)\n",
"mask = ift.Field.from_
raw
(s_space, mask)\n",
"\n",
"R = ift.DiagonalOperator(mask)(HT)\n",
"n = n.val
.copy
()\n",
"n = n.val
_rw
()\n",
"n[l:h] = 0\n",
"n = ift.Field.from_
arr
(s_space, n)\n",
"n = ift.Field.from_
raw
(s_space, n)\n",
"\n",
"d = R(sh) + n"
]
...
...
@@ -501,7 +501,7 @@
"m_data = HT(m).val\n",
"m_var_data = m_var.val\n",
"uncertainty = np.sqrt(m_var_data)\n",
"d_data = d.val
.copy
()\n",
"d_data = d.val
_rw
()\n",
"\n",
"# Set lost data to NaN for proper plotting\n",
"d_data[d_data == 0] = np.nan"
...
...
@@ -583,12 +583,12 @@
"\n",
"mask = np.full(s_space.shape, 1.)\n",
"mask[l:h,l:h] = 0.\n",
"mask = ift.Field.from_
arr
(s_space, mask)\n",
"mask = ift.Field.from_
raw
(s_space, mask)\n",
"\n",
"R = ift.DiagonalOperator(mask)(HT)\n",
"n = n.val
.copy
()\n",
"n = n.val
_rw
()\n",
"n[l:h, l:h] = 0\n",
"n = ift.Field.from_
arr
(s_space, n)\n",
"n = ift.Field.from_
raw
(s_space, n)\n",
"curv = Curvature(R=R, N=N, Sh=Sh)\n",
"D = curv.inverse\n",
"\n",
...
...
demos/bernoulli_demo.py
View file @
a272d7c5
...
...
@@ -63,7 +63,7 @@ if __name__ == '__main__':
mock_position
=
ift
.
from_random
(
'normal'
,
harmonic_space
)
tmp
=
p
(
mock_position
).
val
.
astype
(
np
.
float64
)
data
=
np
.
random
.
binomial
(
1
,
tmp
)
data
=
ift
.
Field
.
from_
arr
(
R
.
target
,
data
)
data
=
ift
.
Field
.
from_
raw
(
R
.
target
,
data
)
# Compute likelihood and Hamiltonian
position
=
ift
.
from_random
(
'normal'
,
harmonic_space
)
...
...
demos/find_amplitude_parameters.py
View file @
a272d7c5
...
...
@@ -57,7 +57,7 @@ if __name__ == '__main__':
for
_
in
range
(
n_samps
):
fld
=
pspec
(
ift
.
from_random
(
'normal'
,
pspec
.
domain
))
klengths
=
fld
.
domain
[
0
].
k_lengths
ycoord
=
fld
.
val
.
copy
()
ycoord
=
fld
.
val
_rw
()
ycoord
[
0
]
=
ycoord
[
1
]
ax
.
plot
(
klengths
,
ycoord
,
alpha
=
1
)
...
...
demos/getting_started_1.py
View file @
a272d7c5
...
...
@@ -95,7 +95,7 @@ if __name__ == '__main__':
# and harmonic transformaion
# Masking operator to model that parts of the field have not been observed
mask
=
ift
.
Field
.
from_
arr
(
position_space
,
mask
)
mask
=
ift
.
Field
.
from_
raw
(
position_space
,
mask
)
Mask
=
ift
.
MaskOperator
(
mask
)
# The response operator consists of
...
...
demos/getting_started_2.py
View file @
a272d7c5
...
...
@@ -40,7 +40,7 @@ def exposure_2d():
exposure
[:,
x_shape
*
4
//
5
:
x_shape
]
*=
.
1
exposure
[:,
x_shape
//
2
:
x_shape
*
3
//
2
]
*=
3.
return
ift
.
Field
.
from_
arr
(
position_space
,
exposure
)
return
ift
.
Field
.
from_
raw
(
position_space
,
exposure
)
if
__name__
==
'__main__'
:
...
...
@@ -95,7 +95,7 @@ if __name__ == '__main__':
mock_position
=
ift
.
from_random
(
'normal'
,
domain
)
data
=
lamb
(
mock_position
)
data
=
np
.
random
.
poisson
(
data
.
val
.
astype
(
np
.
float64
))
data
=
ift
.
Field
.
from_
arr
(
d_space
,
data
)
data
=
ift
.
Field
.
from_
raw
(
d_space
,
data
)
likelihood
=
ift
.
PoissonianEnergy
(
data
)(
lamb
)
# Settings for minimization
...
...
demos/polynomial_fit.py
View file @
a272d7c5
...
...
@@ -71,7 +71,7 @@ class PolynomialResponse(ift.LinearOperator):
def
apply
(
self
,
x
,
mode
):
self
.
_check_input
(
x
,
mode
)
val
=
x
.
val
.
copy
()
val
=
x
.
val
_rw
()
if
mode
==
self
.
TIMES
:
# FIXME Use polynomial() here
out
=
self
.
_mat
.
dot
(
val
)
...
...
nifty6/domains/lm_space.py
View file @
a272d7c5
...
...
@@ -87,7 +87,7 @@ class LMSpace(StructuredDomain):
for
m
in
range
(
1
,
mmax
+
1
):
ldist
[
idx
:
idx
+
2
*
(
lmax
+
1
-
m
)]
=
tmp
[
2
*
m
:]
idx
+=
2
*
(
lmax
+
1
-
m
)
return
Field
.
from_
arr
(
self
,
ldist
)
return
Field
.
from_
raw
(
self
,
ldist
)
def
get_unique_k_lengths
(
self
):
return
np
.
arange
(
self
.
lmax
+
1
,
dtype
=
np
.
float64
)
...
...
@@ -123,7 +123,7 @@ class LMSpace(StructuredDomain):
lm0
=
gl
.
get_default_codomain
()
theta
=
pyHealpix
.
GL_thetas
(
gl
.
nlat
)
# evaluate the kernel function at the required thetas
kernel_sphere
=
Field
.
from_
arr
(
gl
,
func
(
theta
))
kernel_sphere
=
Field
.
from_
raw
(
gl
,
func
(
theta
))
# normalize the kernel such that the integral over the sphere is 4pi
kernel_sphere
=
kernel_sphere
*
(
4
*
np
.
pi
/
kernel_sphere
.
integrate
())
# compute the spherical harmonic coefficients of the kernel
...
...
@@ -131,7 +131,7 @@ class LMSpace(StructuredDomain):
kernel_lm
=
op
.
adjoint_times
(
kernel_sphere
.
weight
(
1
)).
val
# evaluate the k lengths of the harmonic space
k_lengths
=
self
.
get_k_length_array
().
val
.
astype
(
np
.
int
)
return
Field
.
from_
arr
(
self
,
kernel_lm
[
k_lengths
])
return
Field
.
from_
raw
(
self
,
kernel_lm
[
k_lengths
])
@
property
def
lmax
(
self
):
...
...
nifty6/domains/power_space.py
View file @
a272d7c5
...
...
@@ -240,7 +240,7 @@ class PowerSpace(StructuredDomain):
@
property
def
pindex
(
self
):
"""
data_object
: bin indices
"""
numpy.ndarray
: bin indices
Bin index for every pixel in the harmonic partner.
"""
...
...
nifty6/domains/rg_space.py
View file @
a272d7c5
...
...
@@ -97,14 +97,14 @@ class RGSpace(StructuredDomain):
res
=
np
.
arange
(
self
.
shape
[
0
],
dtype
=
np
.
float64
)
res
=
np
.
minimum
(
res
,
self
.
shape
[
0
]
-
res
)
*
self
.
distances
[
0
]
if
len
(
self
.
shape
)
==
1
:
return
Field
.
from_
arr
(
self
,
res
)
return
Field
.
from_
raw
(
self
,
res
)
res
*=
res
for
i
in
range
(
1
,
len
(
self
.
shape
)):
tmp
=
np
.
arange
(
self
.
shape
[
i
],
dtype
=
np
.
float64
)
tmp
=
np
.
minimum
(
tmp
,
self
.
shape
[
i
]
-
tmp
)
*
self
.
distances
[
i
]
tmp
*=
tmp
res
=
np
.
add
.
outer
(
res
,
tmp
)
return
Field
.
from_
arr
(
self
,
np
.
sqrt
(
res
))
return
Field
.
from_
raw
(
self
,
np
.
sqrt
(
res
))
def
get_k_length_array
(
self
):
if
(
not
self
.
harmonic
):
...
...
nifty6/field.py
View file @
a272d7c5
...
...
@@ -32,8 +32,8 @@ class Field(object):
----------
domain : DomainTuple
The domain of the new Field.
val :
data_object
This object's
global
shape must match the domain shape
val :
numpy.ndarray
This object's shape must match the domain shape
After construction, the object will no longer be writeable!
Notes
...
...
@@ -93,7 +93,7 @@ class Field(object):
return
Field
(
domain
,
val
)
@
staticmethod
def
from_
arr
(
domain
,
arr
):
def
from_
raw
(
domain
,
arr
):
"""Returns a Field constructed from `domain` and `arr`.
Parameters
...
...
@@ -148,15 +148,19 @@ class Field(object):
@
property
def
val
(
self
):
"""numpy.ndarray : the
data object
storing the field's entries.
"""numpy.ndarray : the
array
storing the field's entries.
Notes
-----
This property is intended for low-level, internal use only. Do not use
from outside of NIFTy's core; there should be better alternatives.
The returned array is read-only.
"""
return
self
.
_val
def
val_rw
(
self
):
"""numpy.ndarray : a copy of the array storing the field's entries.
"""
return
self
.
_val
.
copy
()
@
property
def
dtype
(
self
):
"""type : the data type of the field's entries"""
...
...
@@ -241,7 +245,7 @@ class Field(object):
Field
The weighted field.
"""
aout
=
self
.
val
.
copy
()
aout
=
self
.
val
_rw
()
spaces
=
utilities
.
parse_spaces
(
spaces
,
len
(
self
.
_domain
))
...
...
nifty6/library/correlated_fields.py
View file @
a272d7c5
...
...
@@ -179,7 +179,7 @@ class _TwoLogIntegrations(LinearOperator):
res
[
from_third
]
=
(
res
[
from_third
]
+
res
[
no_border
])
/
2
*
self
.
_log_vol
[
extender_sl
]
+
x
[
first
]
res
[
from_third
]
=
np
.
cumsum
(
res
[
from_third
],
axis
=
axis
)
else
:
x
=
x
.
val
.
copy
()
x
=
x
.
val
_rw
()
res
=
np
.
zeros
(
self
.
_domain
.
shape
)
x
[
from_third
]
=
np
.
cumsum
(
x
[
from_third
][
reverse
],
axis
=
axis
)[
reverse
]
res
[
first
]
+=
x
[
from_third
]
...
...
@@ -199,7 +199,7 @@ class _Normalization(Operator):
pd
=
PowerDistributor
(
hspace
,
power_space
=
self
.
_domain
[
space
],
space
=
space
)
mode_multiplicity
=
pd
.
adjoint
(
full
(
pd
.
target
,
1.
)).
val
.
copy
()
mode_multiplicity
=
pd
.
adjoint
(
full
(
pd
.
target
,
1.
)).
val
_rw
()
zero_mode
=
(
slice
(
None
),)
*
self
.
_domain
.
axes
[
space
][
0
]
+
(
0
,)
mode_multiplicity
[
zero_mode
]
=
0
self
.
_mode_multiplicity
=
makeField
(
self
.
_domain
,
...
...
nifty6/library/los_response.py
View file @
a272d7c5
...
...
@@ -172,12 +172,11 @@ class LOSResponse(LinearOperator):
"getting negative distances"
)
real_ends
=
starts
+
diffs
*
real_distances
dist
=
np
.
array
(
self
.
domain
[
0
].
distances
).
reshape
((
-
1
,
1
))
localized_
pixel_starts
=
starts
/
dist
+
0.5
localized_
pixel_ends
=
real_ends
/
dist
+
0.5
pixel_starts
=
starts
/
dist
+
0.5
pixel_ends
=
real_ends
/
dist
+
0.5
# get the shape of the local data slice
w_i
=
_comp_traverse
(
localized_pixel_starts
,
localized_pixel_ends
,
w_i
=
_comp_traverse
(
pixel_starts
,
pixel_ends
,
self
.
domain
[
0
].
shape
,
np
.
array
(
self
.
domain
[
0
].
distances
),
1.
/
(
1.
/
difflen
+
truncation
*
sigmas
),
...
...
@@ -229,6 +228,6 @@ class LOSResponse(LinearOperator):
if
mode
==
self
.
TIMES
:
result_arr
=
self
.
_smat
.
matvec
(
x
.
val
.
reshape
(
-
1
))
return
Field
(
self
.
_target
,
result_arr
)
local_
input_data
=
x
.
val
.
reshape
(
-
1
)
res
=
self
.
_smat
.
rmatvec
(
local_
input_data
).
reshape
(
self
.
domain
[
0
].
shape
)
input_data
=
x
.
val
.
reshape
(
-
1
)
res
=
self
.
_smat
.
rmatvec
(
input_data
).
reshape
(
self
.
domain
[
0
].
shape
)
return
Field
(
self
.
_domain
,
res
)
nifty6/linearization.py
View file @
a272d7c5
...
...
@@ -321,7 +321,7 @@ class Linearization(object):
tmp
=
self
.
_val
.
sinc
()
tmp2
=
((
np
.
pi
*
self
.
_val
).
cos
()
-
tmp
)
/
self
.
_val
ind
=
self
.
_val
.
val
==
0
loc
=
tmp2
.
val
.
copy
()
loc
=
tmp2
.
val
_rw
()
loc
[
ind
]
=
0
tmp2
=
Field
(
tmp
.
domain
,
loc
)
return
self
.
new
(
tmp
,
makeOp
(
tmp2
)(
self
.
_jac
))
...
...
@@ -371,7 +371,7 @@ class Linearization(object):
tmp2
=
self
.
_val
.
sign
()
ind
=
self
.
_val
.
val
==
0
loc
=
tmp2
.
val
.
copy
().
astype
(
float
)
loc
=
tmp2
.
val
_rw
().
astype
(
float
)
loc
[
ind
]
=
np
.
nan
tmp2
=
Field
(
tmp
.
domain
,
loc
)
...
...
nifty6/minimization/metric_gaussian_kl_mpi.py
View file @
a272d7c5
...
...
@@ -188,7 +188,7 @@ class MetricGaussianKL_MPI(Energy):
for
s
in
self
.
_samples
:
tmp
=
self
.
_hamiltonian
(
self
.
_lin
+
s
)
if
v
is
None
:
v
=
tmp
.
val
.
val
.
copy
()
v
=
tmp
.
val
.
val
_rw
()
g
=
tmp
.
gradient
else
:
v
+=
tmp
.
val
.
val
...
...
nifty6/minimization/scipy_minimizer.py
View file @
a272d7c5
...
...
@@ -48,7 +48,7 @@ def _toArray(fld):
def
_toArray_rw
(
fld
):
if
isinstance
(
fld
,
Field
):
return
fld
.
val
.
copy
().
reshape
(
-
1
)
return
fld
.
val
_rw
().
reshape
(
-
1
)
return
_multiToArray
(
fld
)
...
...
nifty6/multi_field.py
View file @
a272d7c5
...
...
@@ -132,12 +132,17 @@ class MultiField(object):
return
MultiField
(
domain
,
tuple
(
Field
(
dom
,
val
)
for
dom
in
domain
.
_domains
))
def
to_global_data
(
self
):
@
property
def
val
(
self
):
return
{
key
:
val
.
val
for
key
,
val
in
zip
(
self
.
_domain
.
keys
(),
self
.
_val
)}
def
val_rw
(
self
):
return
{
key
:
val
.
val_rw
()
for
key
,
val
in
zip
(
self
.
_domain
.
keys
(),
self
.
_val
)}
@
staticmethod
def
from_
global_data
(
domain
,
arr
):
def
from_
raw
(
domain
,
arr
):
return
MultiField
(
domain
,
tuple
(
Field
(
domain
[
key
],
arr
[
key
])
for
key
in
domain
.
keys
()))
...
...
nifty6/operator_spectrum.py
View file @
a272d7c5
...
...
@@ -56,7 +56,7 @@ class _DomRemover(LinearOperator):
def
apply
(
self
,
x
,
mode
):
self
.
_check_input
(
x
,
mode
)
self
.
_check_float_dtype
(
x
)
x
=
x
.
to_global_data
()
x
=
x
.
val
if
isinstance
(
self
.
_domain
,
DomainTuple
):
res
=
x
.
ravel
()
if
mode
==
self
.
TIMES
else
x
.
reshape
(
self
.
_domain
.
shape
)
...
...
nifty6/operators/distributors.py
View file @
a272d7c5
...
...
@@ -74,7 +74,7 @@ class DOFDistributor(LinearOperator):
wgt
=
np
.
bincount
(
dofdex
.
val
.
ravel
(),
minlength
=
nbin
)
wgt
=
wgt
*
partner
.
scalar_dvol
else
:
dvol
=
Field
.
from_
arr
(
partner
,
partner
.
dvol
).
val
dvol
=
Field
.
from_
raw
(
partner
,
partner
.
dvol
).
val
wgt
=
np
.
bincount
(
dofdex
.
val
.
ravel
(),
minlength
=
nbin
,
weights
=
dvol
)
# The explicit conversion to float64 is necessary because bincount
...
...
@@ -108,7 +108,7 @@ class DOFDistributor(LinearOperator):
oarr
=
np
.
zeros
(
self
.
_hshape
,
dtype
=
x
.
dtype
)
oarr
=
special_add_at
(
oarr
,
1
,
self
.
_dofdex
,
arr
)
oarr
=
oarr
.
reshape
(
self
.
_domain
.
shape
)
res
=
Field
.
from_
arr
(
self
.
_domain
,
oarr
)
res
=
Field
.
from_
raw
(
self
.
_domain
,
oarr
)
return
res
def
_times
(
self
,
x
):
...
...
nifty6/plot.py
View file @
a272d7c5
...
...
@@ -310,7 +310,7 @@ def _plot1D(f, ax, **kwargs):
plt
.
yscale
(
kwargs
.
pop
(
"yscale"
,
"log"
))
xcoord
=
dom
.
k_lengths
for
i
,
fld
in
enumerate
(
f
):
ycoord
=
fld
.
val
.
copy
()
ycoord
=
fld
.
val
_rw
()
ycoord
[
0
]
=
ycoord
[
1
]
plt
.
plot
(
xcoord
,
ycoord
,
label
=
label
[
i
],
linewidth
=
linewidth
[
i
],
alpha
=
alpha
[
i
])
...
...
nifty6/probing.py
View file @
a272d7c5
...
...
@@ -144,7 +144,7 @@ def approximation2endo(op, nsamples):
approx
=
sc
.
var
dct
=
approx
.
to_dict
()
for
kk
in
dct
:
foo
=
dct
[
kk
].
to_global_data
_rw
()
foo
=
dct
[
kk
].
val
_rw
()
foo
[
foo
==
0
]
=
1
dct
[
kk
]
=
makeField
(
dct
[
kk
].
domain
,
foo
)
return
MultiField
.
from_dict
(
dct
)
nifty6/sugar.py
View file @
a272d7c5
...
...
@@ -297,8 +297,8 @@ def makeField(domain, arr):
The newly created random field
"""
if
isinstance
(
domain
,
(
dict
,
MultiDomain
)):
return
MultiField
.
from_
global_data
(
domain
,
arr
)
return
Field
.
from_
arr
(
domain
,
arr
)
return
MultiField
.
from_
raw
(
domain
,
arr
)
return
Field
.
from_
raw
(
domain
,
arr
)
def
makeDomain
(
domain
):
...
...
test/test_minimizers.py
View file @
a272d7c5
...
...
@@ -131,11 +131,11 @@ def test_rosenbrock(minimizer):
@
property
def
value
(
self
):
return
rosen
(
self
.
_position
.
val
.
copy
())
return
rosen
(
self
.
_position
.
val
_rw
())
@
property
def
gradient
(
self
):
inp
=
self
.
_position
.
val
.
copy
()
inp
=
self
.
_position
.
val
_rw
()
out
=
ift
.
Field
(
space
,
rosen_der
(
inp
))
return
out
...
...
@@ -143,13 +143,13 @@ def test_rosenbrock(minimizer):
def
metric
(
self
):
class
RBCurv
(
ift
.
EndomorphicOperator
):
def
__init__
(
self
,
loc
):
self
.
_loc
=
loc
.
val
.
copy
()
self
.
_loc
=
loc
.
val
_rw
()
self
.
_capability
=
self
.
TIMES
self
.
_domain
=
space
def
apply
(
self
,
x
,
mode
):
self
.
_check_input
(
x
,
mode
)
inp
=
x
.
val
.
copy
()
inp
=
x
.
val
_rw
()
out
=
ift
.
Field
(
space
,
rosen_hess_prod
(
self
.
_loc
.
copy
(),
inp
))
return
out
...
...
@@ -159,8 +159,8 @@ def test_rosenbrock(minimizer):
return
ift
.
InversionEnabler
(
RBCurv
(
self
.
_position
),
t1
)
def
apply_metric
(
self
,
x
):
inp
=
x
.
val
.
copy
()
pos
=
self
.
_position
.
val
.
copy
()
inp
=
x
.
val
_rw
()
pos
=
self
.
_position
.
val
_rw
()
return
ift
.
Field
(
space
,
rosen_hess_prod
(
pos
,
inp
))
try
:
...
...
test/test_multi_field.py
View file @
a272d7c5
...
...
@@ -44,7 +44,7 @@ def test_multifield_field_consistency():
def
test_dataconv
():
f1
=
ift
.
full
(
dom
,
27
)
f2
=
ift
.
makeField
(
dom
,
f1
.
to_global_data
()
)
f2
=
ift
.
makeField
(
dom
,
f1
.
val
)
for
key
,
val
in
f1
.
items
():
assert_equal
(
val
.
val
,
f2
[
key
].
val
)
if
"d1"
not
in
f2
:
...
...
test/test_operators/test_adjoint.py
View file @
a272d7c5
...
...
@@ -127,7 +127,7 @@ def testDOFDistributor(sp, dtype):
if
sp
.
size
<
4
:
return
dofdex
=
np
.
arange
(
sp
.
size
).
reshape
(
sp
.
shape
)
%
3
dofdex
=
ift
.
Field
.
from_
arr
(
sp
,
dofdex
)
dofdex
=
ift
.
Field
.
from_
raw
(
sp
,
dofdex
)
op
=
ift
.
DOFDistributor
(
dofdex
)
ift
.
extra
.
consistency_check
(
op
,
dtype
,
dtype
)
...
...
@@ -174,7 +174,7 @@ def testMask(sp, dtype):
f
=
ift
.
from_random
(
'normal'
,
sp
).
val
mask
=
np
.
zeros_like
(
f
)
mask
[
f
>
0
]
=
1
mask
=
ift
.
Field
.
from_
arr
(
sp
,
mask
)
mask
=
ift
.
Field
.
from_
raw
(
sp
,
mask
)
# Test MaskOperator
op
=
ift
.
MaskOperator
(
mask
)
ift
.
extra
.
consistency_check
(
op
,
dtype
,
dtype
)
...
...
test/test_operators/test_representation.py
View file @
a272d7c5
...
...
@@ -102,7 +102,7 @@ def testDOFDistributor(sp, dtype):
if
sp
.
size
<
4
:
return
dofdex
=
np
.
arange
(
sp
.
size
).
reshape
(
sp
.
shape
)
%
3
dofdex
=
ift
.
Field
.
from_
arr
(
sp
,
dofdex
)
dofdex
=
ift
.
Field
.
from_
raw
(
sp
,
dofdex
)
_check_repr
(
ift
.
DOFDistributor
(
dofdex
))
...
...
@@ -140,7 +140,7 @@ def testMask(sp, dtype):
f
=
ift
.
from_random
(
'normal'
,
sp
).
val
mask
=
np
.
zeros_like
(
f
)
mask
[
f
>
0
]
=
1
mask
=
ift
.
Field
.
from_
arr
(
sp
,
mask
)
mask
=
ift
.
Field
.
from_
raw
(
sp
,
mask
)
# Test MaskOperator
_check_repr
(
ift
.
MaskOperator
(
mask
))
...
...
test/test_operators/test_smoothing_operator.py
View file @
a272d7c5
...
...
@@ -56,7 +56,7 @@ def test_times(space, sigma):
op
=
ift
.
HarmonicSmoothingOperator
(
space
,
sigma
=
sigma
)
fld
=
np
.
zeros
(
space
.
shape
,
dtype
=
np
.
float64
)
fld
[
0
]
=
1.
rand1
=
ift
.
Field
.
from_
arr
(
space
,
fld
)
rand1
=
ift
.
Field
.
from_
raw
(
space
,
fld
)
tt1
=
op
.
times
(
rand1
)
assert_allclose
(
1
,
tt1
.
sum
())
...
...
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