ift issueshttps://gitlab.mpcdf.mpg.de/groups/ift/-/issues2017-07-06T05:50:22Zhttps://gitlab.mpcdf.mpg.de/ift/D2O/-/issues/20Initialization: prefer global_shape/local_shape over shape of data2017-07-06T05:50:22ZTheo SteiningerInitialization: prefer global_shape/local_shape over shape of dataRight now, durring initialization if some init-data is provided, the shape of this data is prefered over an explicitly given shape.
-> Change the behavior in Distributor-Factory.
-> Make a disperse_data instead of a distribute_data a...Right now, durring initialization if some init-data is provided, the shape of this data is prefered over an explicitly given shape.
-> Change the behavior in Distributor-Factory.
-> Make a disperse_data instead of a distribute_data at the end of init.
Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/60Configuration for FFT during (de)briefing.2016-10-25T13:23:30ZTheo SteiningerConfiguration for FFT during (de)briefing.Make it optional, whether the briefing should try to (FFT-)transform the input. By this the user could avoid that somewhere still a FFT takes place, although not wanted.Make it optional, whether the briefing should try to (FFT-)transform the input. By this the user could avoid that somewhere still a FFT takes place, although not wanted.Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/59PowerSpectrumOperator2016-10-25T13:26:17ZTheo SteiningerPowerSpectrumOperatorEvaluate if it makes sense to create an operator which extracts the power spectrum from a given field along a certain 'space-axis'. Evaluate if it makes sense to create an operator which extracts the power spectrum from a given field along a certain 'space-axis'. Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/58Operator behaviour being faced with fields on multiple spaces2016-10-25T13:26:02ZTheo SteiningerOperator behaviour being faced with fields on multiple spacesBy default: The domains on which the operator is defined must match completely.
Optional: 'spaces'-keyword which tells the operator which of the field's spaces correspond to its domains.
By default: The domains on which the operator is defined must match completely.
Optional: 'spaces'-keyword which tells the operator which of the field's spaces correspond to its domains.
Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/57Add sanity checks to power_space_paradict.2017-01-20T00:36:37ZTheo SteiningerAdd sanity checks to power_space_paradict.Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/56RGSpace smoothing2016-10-25T13:23:45ZTheo SteiningerRGSpace smoothingRewrite the RGSpace smoothing method such that it uses a Fourier Transformation Operator instead of self.calc_transform(...).Rewrite the RGSpace smoothing method such that it uses a Fourier Transformation Operator instead of self.calc_transform(...).Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/55Reduce rg_power_space to generic power_space2016-07-22T20:57:33ZTheo SteiningerReduce rg_power_space to generic power_spaceThe rg_power_space can be made generic enough to be suitable for all spaces.
The power_indices get injected as a reference to the certain class.
The space-specific parameters get passed in terms of the paradict. -> The __init__ of th...The rg_power_space can be made generic enough to be suitable for all spaces.
The power_indices get injected as a reference to the certain class.
The space-specific parameters get passed in terms of the paradict. -> The __init__ of the (RG/LM)PowerIndices classes must be changed such that it accepts paradicts. Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/54Move get_codomain from space to Transformator classes2018-04-02T09:42:38ZTheo SteiningerMove get_codomain from space to Transformator classeshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/53Add check_codomain cache to Transformation Classes2018-04-02T09:42:38ZTheo SteiningerAdd check_codomain cache to Transformation Classeshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/52Merge Transform and Transformation classes2018-04-02T09:42:38ZTheo SteiningerMerge Transform and Transformation classeshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/51Make HPSpace, LMSpace, GLSpace available even if the needed modules are not a...2016-07-22T22:57:35ZTheo SteiningerMake HPSpace, LMSpace, GLSpace available even if the needed modules are not available....just raise an exception in doubt....just raise an exception in doubt.Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/50Use gdi(gc[fft_module]) in RGRGTransformation.__init__2018-04-02T09:42:38ZTheo SteiningerUse gdi(gc[fft_module]) in RGRGTransformation.__init__https://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/49Move `check_codomain` in Transformation to child classes2018-04-02T09:42:38ZTheo SteiningerMove `check_codomain` in Transformation to child classeshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/48LMSpace with complex signal space partners2017-01-20T00:46:08ZTheo SteiningerLMSpace with complex signal space partnersLMSpace stores only one half of the complex-conjugated pairs one gets if the signal field was real valued. In this case the dot product between a=(a_-1, a_0, a_1) and b=(...) can be computed by simply taking a_0*b*0 + 2*(a_1.real*b_1.rea...LMSpace stores only one half of the complex-conjugated pairs one gets if the signal field was real valued. In this case the dot product between a=(a_-1, a_0, a_1) and b=(...) can be computed by simply taking a_0*b*0 + 2*(a_1.real*b_1.real + a_1.imag*b_1.imag) as a_-1 and a_1 are complex-conjugated.
If the signal space field was complex, one gets something with cc-symmetry for the real and the imaginary part of this field respectively; modulo i. FFT is linear -> the result has no cc-symmetry anymore.
Solution: Store the full lm spectrum for LMSpace. Apply the action of libsharp (transform, smooth) on the half sum and half difference of a field with its transposed as this reconstructs the cc-symmetric parts comming from the real (imaginary, resp.)-part of the signal field. Theo SteiningerTheo Steiningerhttps://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 Steininger