ift issueshttps://gitlab.mpcdf.mpg.de/groups/ift/-/issues2016-07-20T23:32:35Zhttps://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 input arrays
- applies the space action on .real and .imag independently
- composes the complex return array
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/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 the (RG/LM)PowerIndices classes must be changed such that it accepts paradicts. 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/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 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.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/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/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/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/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/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/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/1632 bit linux crashes tests because of float1282017-01-20T00:32:57ZGhost User32 bit linux crashes tests because of float128The tests should include a check for the system version and not do tests for float128The tests should include a check for the system version and not do tests for float128https://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/18Make the default distribution strategy of rg/hp/lm/gl space configurable thro...2017-01-20T00:34:24ZTheo SteiningerMake the default distribution strategy of rg/hp/lm/gl space configurable through global_configurationCurrently the defaults are hardcoded in the init.
rg_space suffers from this if fftw is not available. Currently the defaults are hardcoded in the init.
rg_space suffers from this if fftw is not available. Theo SteiningerTheo Steiningerhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/20Binning and log functionality for powerspectra in hp/gl/lm spaces are missing2017-01-20T00:35:11ZTheo SteiningerBinning and log functionality for powerspectra in hp/gl/lm spaces are missingThe lm_power_indices class supports (log-)binning but the interface of hp/gl/lm spaces are not adapted to that. The lm_power_indices class supports (log-)binning but the interface of hp/gl/lm spaces are not adapted to that. 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/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 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...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/30Replace apply_scalar_function(np.sqrt)2017-01-20T00:39:02ZGhost UserReplace apply_scalar_function(np.sqrt)Replace *apply_scalar_function(np.sqrt)* with *sqrt* implemented at module levelReplace *apply_scalar_function(np.sqrt)* with *sqrt* implemented at module levelhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/29Replace np.prod(shape)2017-01-20T00:40:01ZTheo SteiningerReplace np.prod(shape) np.prod(shape)
is more than a factor 10 slower than
reduce(lambda x,y: x*y, shape)
np.prod(shape)
is more than a factor 10 slower than
reduce(lambda x,y: x*y, shape)
Theo SteiningerTheo Steiningerhttps://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/21calc_weight in gl_space.get_random_values2017-01-20T00:44:34ZTheo Steiningercalc_weight in gl_space.get_random_valuesIn `gl_space.get_random_values` the result of `syn` is weighted for discrete spaces. In lm_space this is missing. Is this correct?In `gl_space.get_random_values` the result of `syn` is weighted for discrete spaces. In lm_space this is missing. Is this correct?https://gitlab.mpcdf.mpg.de/ift/nifty/-/issues/17Add warning to __init__ method of lm, gl and hp spaces2017-01-20T00:44:50ZGhost UserAdd warning to __init__ method of lm, gl and hp spacesThe lm, gl and hp space don't support just the 'not' distribution strategy, alert the user.The lm, gl and hp space don't support just the 'not' distribution strategy, alert the user.Theo SteiningerTheo Steiningerhttps://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.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. 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 Steininger