NIFTy merge requestshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests2021-06-06T11:32:59Zhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/630Draft: Fix floating point error domain inequality bug2021-06-06T11:32:59ZLukas PlatzDraft: Fix floating point error domain inequality bugAs it turns out, in Python `1. / i * i` is not exactly one for many integers, for example 49. In the range of 1-10000, this is true for 1178 ints. When creating an RGSpace `d` with the shape `(i,)`, `d == d.get_default_codomain().get_def...As it turns out, in Python `1. / i * i` is not exactly one for many integers, for example 49. In the range of 1-10000, this is true for 1178 ints. When creating an RGSpace `d` with the shape `(i,)`, `d == d.get_default_codomain().get_default_codomain()` is not necessarily true, because of potentially unequal `distances` values.
This is problematic since harmonic transform operators constructed with `domain=d.get_default_domain()` without giving an explicit target will for many values of `i` have a target unequal from `d`.
To alleviate this, this patch modiefies the `domain.__eq__()` function to compare `__hash__()` return values instead of manually comparing domain values and modiefies the `domain.__hash__()` function to round the `distances` entries to 15 decimals prior to hashing.
If using the hash in the comparison is unfavorable because of its performance impact, `__eq__()` could be restored to is previous state and the distance rounding be implemented in it, too.
@mtr: what do you think about this patch? Is there an obviously better solution?Martin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/629Work on geokl2021-05-31T13:45:52ZPhilipp FrankWork on geoklhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/622Geometric kl2021-05-31T13:17:38ZPhilipp FrankGeometric klhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/624Draft: Likelihoods2021-05-27T15:44:05ZPhilipp FrankDraft: Likelihoodshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/615extra.check_linear_operator: add option to test on positive input values only2021-05-03T16:23:43ZPhilipp Arrasparras@mpa-garching.mpg.deextra.check_linear_operator: add option to test on positive input values onlyhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/375WIP: Projection Operators by Maxim2021-04-07T10:12:08ZLukas PlatzWIP: Projection Operators by MaximAdding the two projection operators Maxim wrote for his master Thesis to NIFTy.
They project sections of spherical spaces onto RGSpaces of similar resolution, conserving different properties each.Adding the two projection operators Maxim wrote for his master Thesis to NIFTy.
They project sections of spherical spaces onto RGSpaces of similar resolution, conserving different properties each.https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/446WIP: More derivatives2021-03-24T17:09:35ZMartin ReineckeWIP: More derivativesJust adding this merge request to simplify looking at diffs and have a place for discussion.
@pfrank, @parras, @reimar, @kjakoJust adding this merge request to simplify looking at diffs and have a place for discussion.
@pfrank, @parras, @reimar, @kjakohttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/534WIP: More derivatives2021-03-24T17:08:39ZPhilipp FrankWIP: More derivativesStart to include `DiffTensor` and `Taylor` into nifty.
Taylor is now an `Operator`.
Operators can now keep track of higher derivatives via `Taylor` Objects.
Open Issues and Todos:
- Write Tests
- `Linearization` vs `Difftensor`
I think ...Start to include `DiffTensor` and `Taylor` into nifty.
Taylor is now an `Operator`.
Operators can now keep track of higher derivatives via `Taylor` Objects.
Open Issues and Todos:
- Write Tests
- `Linearization` vs `Difftensor`
I think the latter can replace the former at some point
@parras @mtr I am happy for any input, suggestions!https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/528WIP: `FieldZeroPadder`: enable padding at the start of the array2021-03-24T11:15:05ZLukas PlatzWIP: `FieldZeroPadder`: enable padding at the start of the arrayThe `FieldZeroPadder` was able to pad either in the center of the field arrays or at the end.
Added the option to also pad at the start of field arrays.The `FieldZeroPadder` was able to pad either in the center of the field arrays or at the end.
Added the option to also pad at the start of field arrays.https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/590open scr/ instead of symlink nifty7/2021-03-24T08:20:04ZJakob Rothopen scr/ instead of symlink nifty7/The current NIFT_7 installer is incompatible with windows since it uses a symlink to /src. Since some NIFTy users use Windows it would be better to directly open /src in the nifty installer.The current NIFT_7 installer is incompatible with windows since it uses a symlink to /src. Since some NIFTy users use Windows it would be better to directly open /src in the nifty installer.https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/603Draft: Parametric MGVI2021-03-24T07:52:14ZPhilipp Arrasparras@mpa-garching.mpg.deDraft: Parametric MGVIhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/594Draft: Resolve "MaternKernel implementation"2021-01-27T10:42:01ZGordian EdenhoferDraft: Resolve "MaternKernel implementation"Closes #317Closes #317https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/571Instance helpers2020-10-20T10:44:25ZPhilipp Arrasparras@mpa-garching.mpg.deInstance helpershttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/536WIP: Catch FloatingPointError exeception in `energy.at` to store crashing pos...2020-07-17T13:10:31ZLukas PlatzWIP: Catch FloatingPointError exeception in `energy.at` to store crashing positionMost numerical errors (overflows, divisions by zero, …) with NIFTy occur during minimization runs. Tracking down what caused the fault condition is hard, as the NIFTy minimizers only return positions on non-faulty exits and the exact loc...Most numerical errors (overflows, divisions by zero, …) with NIFTy occur during minimization runs. Tracking down what caused the fault condition is hard, as the NIFTy minimizers only return positions on non-faulty exits and the exact location of the numerical error has to be reconstructed manually by observing the tracelog.
Typically, the numerical errors occur in the energy functionals to be minimized. Because of this, I propose to augment those to pickle their position on internal crashes.
This will help users in reconstructing the state at crash and in finding the crash reasons.https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/560Leaky clip2020-07-17T13:09:27ZLukas PlatzLeaky clipProposed by @lerou in !538, this MR adds the pointwise function `leaky_clip` to NIFTy.
Not sure if this should go into NIFTy 6 or 7, but it would be useful in both.Proposed by @lerou in !538, this MR adds the pointwise function `leaky_clip` to NIFTy.
Not sure if this should go into NIFTy 6 or 7, but it would be useful in both.Martin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/538WIP: Pointwise Safe Exponential Function2020-07-16T08:17:03ZLukas PlatzWIP: Pointwise Safe Exponential FunctionExponential overflows introduce an often times unnessecary source of run abortions into reconstructions. Especially in early reconstructions, when the position is still far from converged, stray samples tend to cause exponential overflow...Exponential overflows introduce an often times unnessecary source of run abortions into reconstructions. Especially in early reconstructions, when the position is still far from converged, stray samples tend to cause exponential overflows during the minimizations, if not mitigated.
I propose to add a 'safe' exponential function to the pointwise functions which surpesses exponential overflows. It does this by clipping input value to safe limits prior to applying the exponential function.https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/546WIP: Allow for opting out of asperity and flexibility2020-06-30T21:11:27ZGordian EdenhoferWIP: Allow for opting out of asperity and flexibilityhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/537WIP: Test Fisher matrix using definition2020-06-19T08:53:13ZReimar H LeikeWIP: Test Fisher matrix using definitionIt was long requested to have a way to test Fisher matrices for their correctness. In this branch, we test whether the sample expectation value
```math
\left<\frac{\partial H(d|x)}{\partial x}\frac{\partial H(d|x)}{\partial x^\dagger}\ri...It was long requested to have a way to test Fisher matrices for their correctness. In this branch, we test whether the sample expectation value
```math
\left<\frac{\partial H(d|x)}{\partial x}\frac{\partial H(d|x)}{\partial x^\dagger}\right>_{P(d|x)}
```
agrees with the actual fisher metric. We do so by comparing the fisher application at one random vector with the expectation value defined above. The test is however only statistically true for the limit of many data realizations $d$, and thus the error margins have to be taken large in order to avoid false postives.Philipp Arrasparras@mpa-garching.mpg.dePhilipp Arrasparras@mpa-garching.mpg.dehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/527WIP: More constant support2020-06-18T18:19:39ZPhilipp Arrasparras@mpa-garching.mpg.deWIP: More constant supportMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/541WIP: More constant support (new version)2020-06-18T17:26:40ZPhilipp Arrasparras@mpa-garching.mpg.deWIP: More constant support (new version)