NIFTy merge requestshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests2021-08-03T08:30:55Zhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/670Fix CorrelatedFieldMaker fluctuation normalization for more than one amplitud...2021-08-03T08:30:55ZLukas PlatzFix CorrelatedFieldMaker fluctuation normalization for more than one amplitude (NIFTy_8)https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/669Fix CorrelatedFieldMaker fluctuation normalization for more than one amplitude2021-08-03T08:30:39ZLukas PlatzFix CorrelatedFieldMaker fluctuation normalization for more than one amplitudehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/668Move custom nonlinearities to html docs2021-07-29T10:18:49ZPhilipp Arrasparras@mpa-garching.mpg.deMove custom nonlinearities to html docshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/667Tweak notebook plots2021-07-20T17:28:08ZMartin ReineckeTweak notebook plotsPhilipp Arrasparras@mpa-garching.mpg.dePhilipp Arrasparras@mpa-garching.mpg.dehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/666Add getting started to docs2021-07-21T07:33:04ZPhilipp Arrasparras@mpa-garching.mpg.deAdd getting started to docsMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/665Seed-related bug in numpy has been fixed2022-11-21T10:50:59ZPhilipp Arrasparras@mpa-garching.mpg.deSeed-related bug in numpy has been fixedMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/664Simplify MPI equality check2021-07-16T13:55:54ZPhilipp Arrasparras@mpa-garching.mpg.deSimplify MPI equality checkMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/663Backports nifty8 -> nifty72021-07-15T15:31:07ZPhilipp Arrasparras@mpa-garching.mpg.deBackports nifty8 -> nifty7Otherwise it cannot be run on other machinesOtherwise it cannot be run on other machineshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/662Mpi tweaks2021-07-15T14:27:37ZPhilipp Arrasparras@mpa-garching.mpg.deMpi tweaksMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/661Better errors, plotting and complex jax operators2021-08-05T12:39:13ZPhilipp Arrasparras@mpa-garching.mpg.deBetter errors, plotting and complex jax operatorshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/660Make the colorbars nicer and adapt their size to the 2D plots canvas2021-07-14T10:58:29ZAndrija KosticMake the colorbars nicer and adapt their size to the 2D plots canvasJust a tweak to the _plot2D so that colorbars can match the canvas for the 2D plots, and not scale to the full canvas size disproportionally.Just a tweak to the _plot2D so that colorbars can match the canvas for the 2D plots, and not scale to the full canvas size disproportionally.https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/659Nifty7 changes2021-07-08T14:41:44ZPhilipp Arrasparras@mpa-garching.mpg.deNifty7 changesMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/658Add better error message2021-07-08T14:11:54ZPhilipp Arrasparras@mpa-garching.mpg.deAdd better error messageMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/657Remove gitversion interface, docs improvements and workaround pip2021-07-08T13:28:50ZPhilipp Arrasparras@mpa-garching.mpg.deRemove gitversion interface, docs improvements and workaround piphttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/656Pypi preparation ve2021-07-08T07:35:22ZPhilipp Arrasparras@mpa-garching.mpg.dePypi preparation vehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/655Windows nifty2021-07-09T08:44:58ZPhilipp Arrasparras@mpa-garching.mpg.deWindows niftyMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/654Add pypi related files and rework documentation2021-07-08T08:02:46ZPhilipp Arrasparras@mpa-garching.mpg.deAdd pypi related files and rework documentationhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/653Use ducc's vdot if available (more accurate)2021-07-07T14:09:57ZPhilipp Arrasparras@mpa-garching.mpg.deUse ducc's vdot if available (more accurate)Martin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/652Make `LikelihoodEnergyOperator` visible to the user2021-07-01T07:56:24ZPhilipp FrankMake `LikelihoodEnergyOperator` visible to the userTo enable the user to create a custom likelihood, we need to make the `LikelihoodEnergyOperator` visible as likelihoods are created from it.To enable the user to create a custom likelihood, we need to make the `LikelihoodEnergyOperator` visible as likelihoods are created from it.https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/651WIP: Generalized matrix product and a fix in endomorphic MatrixProductOperator2021-08-16T17:53:00ZNeel ShahWIP: Generalized matrix product and a fix in endomorphic MatrixProductOperatorI added a linear matrix multiplication operator that generalizes the endomorphic MatrixProductOperator. The output matches that of the endomorphic operator in case of an endomorphic application.
The target domain/domain tuple of the val...I added a linear matrix multiplication operator that generalizes the endomorphic MatrixProductOperator. The output matches that of the endomorphic operator in case of an endomorphic application.
The target domain/domain tuple of the valid shape should be specified by the user, but I kept a standard RGSpace of the valid shape as the default.\
Below is an example of an application.
dtuple = DomainTuple.make(((RGSpace(10),RGSpace(20),RGSpace(30),RGSpace(40)))\
spaces = (1,3) (apply only to 2nd and 4th spaces of domain)\
matrix = np.ones(shape=(5,15,25,20,40))\
matop = GeneralMatrixProduct(dtuple,matrix,spaces,target=None)
According to the operator's convention,\
target_shape = (10,5,30,15,25)\
(since dtuple.shape = (10,20,30,40), the 20,40 axes are summed over, and to comply with the endomorphic MatrixProductOperator the 10,30 axes retain their positions and remaining axes of the matrix are filled in order)\
matop.target = DomainTuple.make(RGSpace(shape = target_shape, distances = default, harmonic = False))\
(unless a domain or DomainTuple with shape = target_shape is passed as the target)\
returns Field.from_raw(matop.target, np,tensordot of matrix and field summed over appropriate axes)
I tested the operator's working on the example above, and that it coincides with the endomorphic MatrixProductOperator when the latter is applicable. Would this be a useful operator, and what else in it can be tested or changed?
The second change is in the endomorphic MatrixProductOperator, I fixed its functionality for application to a >1 dimensional domain (say an RGSpace(shape=(5,15,25))). The previous version uses np.dot instead of np.tensordot, so due to default axis convention in np.dot it doesn't work when more than one axes are to be summed over. I don't think this was intentional because the operator doesn't throw an error until it is applied to a field over such a domain.
There is one last change in the docstring of the matrix product operator. It has a line saying `If DomainTuple it is assumed to have only one entry`, which I think is misleading because I can apply it to a domain tuple with many subspaces like the example above. I changed the line to `If Domain it is assumed to have only one subspace`, which is what I observed.
@gedenhof , can you have a look at this?