Package: ift_nifty
NIFTYproject homepage:http://www.mpa-garching.mpg.de/ift/nifty/SummaryDescriptionNIFTY, “NumericalInformationFieldTheory“,
is a versatile library designed to enable the development of signal inference
algorithms that operate regardless of the underlying spatial grid and its
resolution. Its object-oriented framework is written in Python, although it
accesses libraries written in Cython, C++, and C for efficiency.NIFTY offers a toolkit that abstracts discretized representations of continuous
spaces, fields in these spaces, and operators acting on fields into classes.
Thereby, the correct normalization of operations on fields is taken care of
automatically without concerning the user. This allows for an abstract
formulation and programming of inference algorithms, including those derived
within information field theory. Thus, NIFTY permits its user to rapidly
prototype algorithms in 1D, and then apply the developed code in
higher-dimensional settings of real world problems. The set of spaces on which
NIFTY operates comprises point sets,n-dimensional regular grids, spherical
spaces, their harmonic counterparts, and product spaces constructed as
combinations of those.Class & Feature OverviewThe NIFTY library features three main classes:spacesthat represent
certain grids,fieldsthat are defined on spaces, andoperatorsthat
apply to fields.Spacespoint_space- unstructured list of pointsrg_space-n-dimensional regular Euclidean gridlm_space- spherical harmonicsgl_space- Gauss-Legendre grid on the 2-spherehp_space-HEALPixgrid on the 2-spherenested_space- arbitrary product of gridsFieldsfield- generic class for (discretized) fieldsfield.cast_domain   field.hat           field.power        field.smooth
field.conjugate     field.inverse_hat   field.pseudo_dot   field.tensor_dot
field.dim           field.norm          field.set_target   field.transform
field.dot           field.plot          field.set_val      field.weightOperatorsdiagonal_operator- purely diagonal matrices in a specified basisprojection_operator- projections onto subsets of a specified basisvecvec_operator- matrices derived from the outer product of a
vectorresponse_operator- exemplary responses that include a convolution,
masking and projectionpropagator_operator- information propagator in Wiener filter theoryexplicit_operator- linear operators with an explicit matrix
representation(and more)(and more)Parts of this summary are taken from[1]without marking them explicitly as
quotations.InstallationRequirementsPython(v2.7.x)NumPySciPyCythonmatplotlibGFFT(v0.1.0) - Generalized Fast
Fourier Transformations for Python -optionalHEALPy(v1.8.1 without openmp) - A
Python wrapper forHEALPix-optional, only needed for spherical spaceslibsharp-wrapper(v0.1.2
without openmp) - A Python wrapper for thelibsharplibrary -optional, only needed for spherical spacesDownloadThe latest release is taggedv1.0.7and is available as a source package
athttps://gitlab.mpcdf.mpg.de/ift/NIFTy/tags. The current
version can be obtained by cloning the repository:git clone https://gitlab.mpcdf.mpg.de/ift/NIFTy.gitInstallation on UbuntuThis is for you if you want to install NIFTy on your personal computer running
with an Ubuntu-like linux system were you have root priviledges. Starting with
a fresh Ubuntu installation move to a folder like~/Downloads:Install basic packages like python, python-dev, gsl and others:sudo apt-get install curl git autoconf
sudo apt-get install python-dev python-pip gsl-bin libgsl0-dev libfreetype6-dev libpng-dev  libatlas-base-dev gfortranInstall matplotlib:sudo apt-get install python-matplotlibUsing pip install numpy, scipy, etc…:sudo pip install numpy scipy cython pyfits healpyNow install the ‘non-standard’ dependencies. First of all gfft:curl -LOk https://github.com/mrbell/gfft/tarball/master
tar -xzf master
cd mrbell-gfft*
sudo python setup.py install
cd ..Libsharp:git clone http://git.code.sf.net/p/libsharp/code libsharp-code
cd libsharp-code
sudo autoconf
./configure --enable-pic --disable-openmp
sudo make
cd ..Libsharpwrapper:git clone http://github.com/mselig/libsharp-wrapper.git libsharp-wrapper
cd libsharp-wrapper
sudo python setup.py build_ext
sudo python setup.py install
cd ..Finally, NIFTy:git clone https://gitlab.mpcdf.mpg.de/ift/NIFTy.git
cd nifty
sudo python setup.py install
cd ..Installation on a linux clusterThis is for you if you want to install NIFTy on a HPC machine or cluster that is hosted by your university or institute. Most of the dependencies will most likely already be there, but you won’t have superuser priviledges. In this case, instead:sudo python setup.py installuse:python setup.py install --useror:python setup.py install --install-lib=/SOMEWHEREin the instruction above. This will install the python packages into your local user directory.Installation on OS X 10.11We advice to install the following packages in the order as they appear below. We strongly recommend to install all needed packages via MacPorts. Please be aware that not all packages are available on MacPorts, missing ones need to be installed manually. It may also be mentioned that one should only use one package manager, as multiple ones may cause trouble.Install basic packages python, scipy, matplotlib and cython:sudo port install py27-numpy
sudo port install py27-scipy
sudo port install py27-matplotlib
sudo port install py27-cythonInstall gfft.Depending where you installed GSL you may need to change the path in setup.py!:sudo port install gsl
git clone https://github.com/mrbell/gfft.git}{https://github.com/mrbell/gfft.git
sudo python setup.py installInstall healpy:sudo port install py27-pyfits
git clone https://github.com/healpy/healpy.git
cd healpy
sudo python setup.py install
cd ..Install libsharp and therefore autoconf.
Further install instructions for libsharp may be found here:https://sourceforge.net/p/libsharp/code/ci/master/tree/:sudo port install autoconf

git clone http://git.code.sf.net/p/libsharp/code libsharp-code
cd libsharp-code
sudo autoconf
./configure --enable-pic --disable-openmp
sudo make
cd ..Install libsharp-wrapper.Adopt the path of the libsharp installation in setup.pysudo port install gcc
sudo port select gcc  mp-gcc5
git clone https://github.com/mselig/libsharp-wrapper.git
cd libsharp-wrapper
sudo python setup.py install
cd ..Install NIFTy:git clone https://gitlab.mpcdf.mpg.de/ift/NIFTy.git
cd nifty
sudo python setup.py install
cd ..Installation using pypiNIFTY can be installed usingPyPIandpipby running the following command:pip install ift_niftyAlternatively, a private or user specific installation can be done by:pip install --user ift_niftyFirst StepsFor a quickstart, you can browse through theinformal introductionor dive into NIFTY by running one of the demonstrations, e.g.:>>> run -m nifty.demos.demo_wf1AcknowledgementPlease, acknowledge the use of NIFTY in your publication(s) by using a phrase
such as the following:“Some of the results in this publication have been derived using the NIFTY
package [Selig et al., 2013].”References[1]Selig et al., “NIFTY - Numerical Information Field Theory - a
versatile Python library for signal inference”,A&A, vol. 554, id. A26,
2013;arXiv:1301.4499Release NotesThe NIFTY package is licensed under theGPLv3and is distributedwithout any
warranty.NIFTYproject homepage:http://www.mpa-garching.mpg.de/ift/nifty/