Commit cc29198b authored by Martin Reinecke's avatar Martin Reinecke
Browse files

update docs

parent 1d22e5e3
Pipeline #24345 passed with stage
in 5 minutes and 54 seconds
Significant differences between NIFTy nightly and nifty2go Significant differences between NIFTy3 and nifty4
========================================================== =================================================
1) Field domains in nifty2go are stored in DomainTuple objects, which makes 1) Field domains in nifty4 are stored in DomainTuple objects, which makes
comparisons between domains and computation of axis indices etc. much simpler comparisons between domains and computation of axis indices etc. much simpler
and more efficient. and more efficient.
No impact on the user ... these objects are generated whenever needed and No impact on the user ... these objects are generated whenever needed and
have all necessary functions to make them look like tuples of spaces. have all necessary functions to make them look like tuples of spaces.
2) In nifty2go an operator's domain and target refer to the _full_ domains of 2) In nifty4 an operator's domain and target refer to the _full_ domains of
the input and output fields read/written by times(), adjoint_times() etc. the input and output fields read/written by times(), adjoint_times() etc.
In NIFTy nightly, domain and target only refer to the (sub-)domain on In NIFTy nightly, domain and target only refer to the (sub-)domain on
which the operator actually acts. This leads to complications like the need which the operator actually acts. This leads to complications like the need
for the "default_spaces" argument in the operator constructor and the for the "default_spaces" argument in the operator constructor and the
"spaces" keywords in all operator calls. "spaces" keywords in all operator calls.
Advantages of the nifty2go approach: Advantages of the nifty4 approach:
- less error-prone and easier to understand; less code overall - less error-prone and easier to understand; less code overall
- operators have more knowledge and may tune themselves better - operators have more knowledge and may tune themselves better
- difficulties with the design of ComposedOperator (issue 152) resolve - difficulties with the design of ComposedOperator (issue 152) resolve
...@@ -25,13 +25,13 @@ Significant differences between NIFTy nightly and nifty2go ...@@ -25,13 +25,13 @@ Significant differences between NIFTy nightly and nifty2go
However, I have not found any such situation in the current code base, so However, I have not found any such situation in the current code base, so
it appears to be rare. it appears to be rare.
3) nifty2go uses one of two different "data_object" modules for array 3) nifty4 uses one of two different "data_object" modules for array
storage instead of D2O. storage instead of D2O.
A "data_object" module consists of a class called "data_object" which A "data_object" module consists of a class called "data_object" which
provides a subset of the numpy.ndarray interface, plus a few additional provides a subset of the numpy.ndarray interface, plus a few additional
functions for manipulating these data objects. functions for manipulating these data objects.
If no MPI support is found on the system, or if a computation is run on a If no MPI support is found on the system, or if a computation is run on a
single task, nifty2go automatically loads a minimalistic "data_object" single task, nifty4 automatically loads a minimalistic "data_object"
module where the data_object class is simply identical to numpy.ndarray. module where the data_object class is simply identical to numpy.ndarray.
The support functions are mostly trivial as well. The support functions are mostly trivial as well.
If MPI is required, another module is loaded, which supports parallel If MPI is required, another module is loaded, which supports parallel
...@@ -53,11 +53,11 @@ Significant differences between NIFTy nightly and nifty2go ...@@ -53,11 +53,11 @@ Significant differences between NIFTy nightly and nifty2go
kindex -> k_lengths kindex -> k_lengths
(because this is not an index) (because this is not an index)
6) In nifty2go, PowerSpace is not a harmonic space. 6) In nifty4, PowerSpace is not a harmonic space.
7) In nifty2go, parallel probing should work (needs systematic testing) 7) In nifty4, parallel probing should work (needs systematic testing)
9) Many default arguments have been removed in nifty2go, wherever there is no 9) Many default arguments have been removed in nifty4, wherever there is no
sensible default (in my opinion). My personal impression is that this has sensible default (in my opinion). My personal impression is that this has
actually made the demos more readable, but I'm sure not everyone will agree actually made the demos more readable, but I'm sure not everyone will agree
:) :)
...@@ -80,8 +80,16 @@ Significant differences between NIFTy nightly and nifty2go ...@@ -80,8 +80,16 @@ Significant differences between NIFTy nightly and nifty2go
more or less always needed). more or less always needed).
14) A new approach is used for FFTs along axes that are distributed among 14) A new approach is used for FFTs along axes that are distributed among
MPI tasks. As a consequence, nifty2go works well with the standard version MPI tasks. As a consequence, nifty4 works well with the standard version
of pyfftw and does not need the MPI-enabled fork. of pyfftw and does not need the MPI-enabled fork.
15) Arithmetic functions working on Fields have been moved from 15) Arithmetic functions working on Fields have been moved from
basic_arithmetics.py to field.py. basic_arithmetics.py to field.py.
16) Operators can be comined via "*", "+" and "-", resulting in new combined
operators.
17) Every operator has the properties ".adjoint" and ".inverse", which return
its adjoint and inverse, respectively.
18) Handling of volume factors has been changed completely.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment