Package: nifty7
NIFTy - Numerical Information Field TheoryNIFTyproject homepage:https://ift.pages.mpcdf.de/niftySummaryDescriptionNIFTy, "NumericalInformationFieldTheory", is
a versatile library designed to enable the development of signal
inference algorithms that operate regardless of the underlying grids
(spatial, spectral, temporal, …) and their resolutions.
Its object-oriented framework is written in Python, although it accesses
libraries written in C++ and C for efficiency.NIFTy offers a toolkit that abstracts discretized representations of
continuous spaces, fields in these spaces, and operators acting on
these fields into classes.
This allows for an abstract formulation and programming of inference
algorithms, including those derived within information field theory.
NIFTy's interface is designed to resemble IFT formulae in the sense
that the user implements algorithms in NIFTy independent of the topology
of the underlying spaces and the discretization scheme.
Thus, the user can develop algorithms on subsets of problems and on
spaces where the detailed performance of the algorithm can be properly
evaluated and then easily generalize them to other, more complex spaces
and the full problem, respectively.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.
NIFTy takes care of numerical subtleties like the normalization of
operations on fields and the numerical representation of model
components, allowing the user to focus on formulating the abstract
inference procedures and process-specific model properties.InstallationRequirementsPython 3(3.6.x or later)SciPyOptional dependencies:ducc0for faster FFTs, spherical
harmonic transforms, and radio interferometry gridding supportmpi4py(for MPI-parallel execution)matplotlib(for field plotting)SourcesThe current version of NIFTy7 can be obtained by cloning the repository and
switching to the NIFTy_7 branch:git clone https://gitlab.mpcdf.mpg.de/ift/nifty.gitInstallation for usersIf you only want to to use NIFTy in your projects, but not change its source
code, the easiest way to install the package is the command:pip install --user nifty7Depending on your OS, you may have to usepip3instead ofpip.
This approach should work on Linux, MacOS and Windows.Installation for developersIn the following, we assume a Debian-based distribution. For other
distributions, the "apt" lines will need slight changes.NIFTy7 and its mandatory dependencies can be installed via:sudo apt-get install git python3 python3-pip python3-dev
pip3 install --user git+https://gitlab.mpcdf.mpg.de/ift/nifty.git@NIFTy_7Plotting support is added via:sudo apt-get install python3-matplotlibThe DUCC0 package is installed via:pip3 install ducc0If this library is present, NIFTy will detect it automatically and preferducc0.fftover SciPy's FFT. The underlying code is actually the same, but
DUCC's FFT is compiled with optimizations for the host CPU and can provide
significantly faster transforms.MPI support is added via:sudo apt-get install python3-mpi4pyRun the testsTo run the tests, additional packages are required:sudo apt-get install python3-pytest-covAfterwards the tests (including a coverage report) can be run using the
following command in the repository root:pytest-3 --cov=nifty7 testFirst StepsFor a quick start, you can browse through theinformal
introductionor
dive into NIFTy by running one of the demonstrations, e.g.:python3 demos/getting_started_1.pyAcknowledgementsPlease consider acknowledging 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(https://gitlab.mpcdf.mpg.de/ift/NIFTy)"and a citation to one of thepublications.Licensing termsThe NIFTy package is licensed under the terms of theGPLv3and is distributedwithout any warranty.ContributorsNIFTy7Andrija KosticGordian EdenhoferJakob KnollmüllerJakob RothLukas PlatzMatteo GuardianiMartin ReineckePhilipp ArrasPhilipp FrankReimar Heinrich LeikeSimon DingVincent EberleNIFTy6Andrija KosticGordian EdenhoferJakob KnollmüllerLukas PlatzMartin ReineckePhilipp ArrasPhilipp FrankPhilipp HaimReimar Heinrich LeikeRouven LemmerzTorsten EnßlinVincent EberleNIFTy5Christoph LienhardGordian EdenhoferJakob KnollmüllerJulia StadlerJulian RüstigLukas PlatzMartin ReineckeMax-Niklas NewrzellaNataliaPhilipp ArrasPhilipp FrankPhilipp HaimReimar Heinrich LeikeSebastian HutschenreuterSilvan StreitTorsten EnßlinNIFTy4Christoph LienhardJakob KnollmüllerLukas PlatzMartin ReineckeMihai BaltacPhilipp ArrasPhilipp FrankReimar Heinrich LeikeSilvan StreitTorsten EnßlinNIFTy3Daniel PumpeJait DixitJakob KnollmüllerMartin ReineckeMihai BaltacNataliaPhilipp ArrasPhilipp FrankReimar Heinrich LeikeMatevz SramlTheo SteiningercsongorNIFTy2Jait DixitTheo SteiningercsongorNIFTy1Johannes BuchnerMarco SeligTheo Steininger