ift issueshttps://gitlab.mpcdf.mpg.de/groups/ift/-/issues2016-07-22T20:57:34Zhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/47meta_volume vs volume2016-07-22T20:57:34ZTheo Steiningermeta_volume vs volumeSpace.weight methods use volume instead of meta volume.
Isn't this choice arbitrary? By excluding pixes from the weight that contain no new information, we weight according to the 'information volume' instead with the 'geometrical volu...Space.weight methods use volume instead of meta volume.
Isn't this choice arbitrary? By excluding pixes from the weight that contain no new information, we weight according to the 'information volume' instead with the 'geometrical volume'. Also: LMspace (at least for real signal space partners) stores only one half of the pair-wise complex conjugated numbers, RGSpace with complexity==1 stores the full thing. The inner dot product treats them differently.
Definition of meta-volume:
The meta volumes are the volumes associated with each component of a field, taking into account field components that are not explicitly included in the array of field values but are determined by symmetry conditions.Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/46Implement real <-> complex decorator2016-07-20T23:32:35ZTheo SteiningerImplement real <-> complex decoratorSpaces that naturally act on real arrays should apply their action on the real and imaginary part of complex input arrays independently. Maybe the most conventient solution for this is to write a decorator, which
- decomposes complex i...Spaces that naturally act on real arrays should apply their action on the real and imaginary part of complex input arrays independently. Maybe the most conventient solution for this is to write a decorator, which
- decomposes complex input arrays
- applies the space action on .real and .imag independently
- composes the complex return array
https://gitlab.mpcdf.mpg.de/ift/D2O/-/issues/19reshaping -> enfold/defold2017-07-06T05:50:22ZTheo Steiningerreshaping -> enfold/defoldenfold in the slicing distributor relies on the fact, that the global axes correspond to the local array axes, as it operates on local data from `get_local_data()`.
In general this is not true for generic distribution strategies. enfold in the slicing distributor relies on the fact, that the global axes correspond to the local array axes, as it operates on local data from `get_local_data()`.
In general this is not true for generic distribution strategies. Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/45Possibly invert Fourier-transformation responsibilities2018-04-02T09:42:38ZTheo SteiningerPossibly invert Fourier-transformation responsibilitiesRight now, the domain-space computes the data for the codomain-space. The field then uses this data together with the new data. For the spherical spaces this produces strange if-else blocks in the calc_transform methods.
It would be ...Right now, the domain-space computes the data for the codomain-space. The field then uses this data together with the new data. For the spherical spaces this produces strange if-else blocks in the calc_transform methods.
It would be clearer when the codomain-space computed its data directly: e.g. lm_space then has two sub-methods: transform_from_hp and transform_from_glhttps://gitlab.mpcdf.mpg.de/ift/D2O/-/issues/18Improve obj.searchsorted such that it supports scalar, numpy arrays and distr...2017-07-06T05:50:22ZTheo SteiningerImprove obj.searchsorted such that it supports scalar, numpy arrays and distributed_data_objects as input......and return a distributed_data_object if the input was distributed.
...and return a distributed_data_object if the input was distributed.
Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/44gl_space.vol2017-01-20T00:37:49ZTheo Steiningergl_space.volThe gl_space inherits the vol property from (point)space, which uses np.prod(self.distances). As gl_space stores some condensed information in self.distances, gl_space.vol produces wrong results. The correct result can be constructed by ...The gl_space inherits the vol property from (point)space, which uses np.prod(self.distances). As gl_space stores some condensed information in self.distances, gl_space.vol produces wrong results. The correct result can be constructed by weighting a ones-field and then summing up all the entries. Maybe there is a faster way to do this.
The default volume is somehow normalized to 12.5657994...Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/43field.smooth on rg_space produces non-sensible results on multiple spaces2018-04-02T09:42:38ZTheo Steiningerfield.smooth on rg_space produces non-sensible results on multiple spaces from nifty import *
x = rg_space((8,))
f = field((x,x), val=1)
f.val[3] = 10
f.smooth(spaces=0, sigma=0.0001).val
The result of the last operation does not make sense, as the columns are
<distributed_da... from nifty import *
x = rg_space((8,))
f = field((x,x), val=1)
f.val[3] = 10
f.smooth(spaces=0, sigma=0.0001).val
The result of the last operation does not make sense, as the columns are
<distributed_data_object>
array([ 1.00000104, 0.99999867, 1.00000355, 5.49999423, 1.00000607,
5.49999423, 1.00000355, 0.99999867])
instead of
<distributed_data_object>
array([ 1.00000104, 0.99999822, 1.00000607, 9.99999023, 1.00000607,
0.99999822, 1.00000104, 0.99999911])
https://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/42Examine if `discrete` attribute from spaces can be removed.2016-07-11T23:48:49ZTheo SteiningerExamine if `discrete` attribute from spaces can be removed.Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/D2O/-/issues/17Add axis keyword to obj.vdot2017-07-06T05:50:22ZTheo SteiningerAdd axis keyword to obj.vdotTheo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/41apply_scalar_function2017-05-15T22:01:45ZGhost Userapply_scalar_function*apply_scalar_function* is removed from field, this breaks *nifty_power_conversion_rg*: in the function *power_backward_conversion_rg* and in the function *power_backward_conversion_rg**apply_scalar_function* is removed from field, this breaks *nifty_power_conversion_rg*: in the function *power_backward_conversion_rg* and in the function *power_backward_conversion_rg*https://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/40Fix gl_space.check_codomain function2017-01-20T00:43:54ZGhost UserFix gl_space.check_codomain functions = gl_space(nlat=8,nlon=8 );s.check_codomain(s.get_codomain())
returns false
Although gl_space warns at creation that parameters are un-recommended it doesn't warn that they wont work. It should at least recognize it's own codomain.s = gl_space(nlat=8,nlon=8 );s.check_codomain(s.get_codomain())
returns false
Although gl_space warns at creation that parameters are un-recommended it doesn't warn that they wont work. It should at least recognize it's own codomain.https://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/39Add threading parameter to NIFTy configuration2017-08-27T00:38:19ZTheo SteiningerAdd threading parameter to NIFTy configurationUse this for pyfftw in create_mpi_plan/numpy-like pyfftw interface.Use this for pyfftw in create_mpi_plan/numpy-like pyfftw interface.Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/38Enable nifty_fft classes to operate on global NIFTy MPI communicator2018-01-12T09:21:39ZTheo SteiningerEnable nifty_fft classes to operate on global NIFTy MPI communicatorRelated to Issue #37 Related to Issue #37 Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/37Define NIFTy-wide comm in nifty_configuration.2017-06-13T07:44:57ZTheo SteiningerDefine NIFTy-wide comm in nifty_configuration.Use this communicator globally for all NIFTy objects. Inherit to all D2O arrays. Pass forward to pyfftw.Use this communicator globally for all NIFTy objects. Inherit to all D2O arrays. Pass forward to pyfftw.Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/36No user access to files in ~/.nifty2016-07-22T22:56:41ZTheo SteiningerNo user access to files in ~/.niftyIf setuptools is run with sudo priviledges, the files are not changeable by the user.
Fix: Make chmod during setupIf setuptools is run with sudo priviledges, the files are not changeable by the user.
Fix: Make chmod during setupTheo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/D2O/-/issues/16Add out-array parameter to numerical d2o operations.2017-07-06T05:50:22ZTheo SteiningerAdd out-array parameter to numerical d2o operations.Numpy supports to specify an out array in order to avoid memory reallocation.
a = np.array([1,2,3,4])
b = np.array([5,6,7,8])
# slow:
a = a + b
# fast:
np.add(a,b,out=a)
Numpy supports to specify an out array in order to avoid memory reallocation.
a = np.array([1,2,3,4])
b = np.array([5,6,7,8])
# slow:
a = a + b
# fast:
np.add(a,b,out=a)
Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/D2O/-/issues/15d2o: Contraction functions rely on non-degeneracy of distribution strategy2017-07-06T05:50:22ZTheo Steiningerd2o: Contraction functions rely on non-degeneracy of distribution strategySeveral methods of the distributed_data_object rely on the fact, that the distribution strategy behaves as if the local data was non-degenerate. Currently the non-distributor fixes this by returning trivial (local) results in the _allgat...Several methods of the distributed_data_object rely on the fact, that the distribution strategy behaves as if the local data was non-degenerate. Currently the non-distributor fixes this by returning trivial (local) results in the _allgather and the _Allreduce_sum method.
Affected d2o methods are at least: _contraction_helper, mean
Fix: Move the functionality for sum, prod, etc... into the distributor.Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/D2O/-/issues/14d2o: _contraction_helper does not work when using numpy keyword arguments2017-07-06T05:50:22ZTheo Steiningerd2o: _contraction_helper does not work when using numpy keyword argumentsThe `_contraction_helper` passes keyword arguments to the underlying numpy functions (axis=, keepdims=). The result of the _contraction_helper's local computation is then an array and not a scalar. Therefore the dtype check fails.
Fi...The `_contraction_helper` passes keyword arguments to the underlying numpy functions (axis=, keepdims=). The result of the _contraction_helper's local computation is then an array and not a scalar. Therefore the dtype check fails.
Fix: After solving theos/NIFTy#2, adopt to the case that the local run's result object is an array and make a further distinction of cases, i.e for something like axis=0 for the slicing_distributor. Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/D2O/-/issues/13Add `axis` keyword functionality to unary methods.2017-07-06T05:50:23ZTheo SteiningerAdd `axis` keyword functionality to unary methods.Many numpy functions support the `axis` keyword in order to perform an operation only along certain directions of the array. The current implementation of d2o does not support this, e.g. for `all`, `any`, `sum`, etc...
Related to: the...Many numpy functions support the `axis` keyword in order to perform an operation only along certain directions of the array. The current implementation of d2o does not support this, e.g. for `all`, `any`, `sum`, etc...
Related to: theos/NIFTy#3https://gitlab.mpcdf.mpg.de/ift/D2O/-/issues/12Add `source_rank` parameter to d2o.set_full_data()2017-07-06T05:50:23ZTheo SteiningerAdd `source_rank` parameter to d2o.set_full_data()A source_rank parameter should be added to the distributed_data_object in order to specify on which node the source data-array resides on. A source_rank parameter should be added to the distributed_data_object in order to specify on which node the source data-array resides on. Theo SteiningerTheo Steininger