Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ift
NIFTy
Commits
cc29198b
Commit
cc29198b
authored
Feb 03, 2018
by
Martin Reinecke
Browse files
update docs
parent
1d22e5e3
Pipeline
#24345
passed with stage
in 5 minutes and 54 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
differences
View file @
cc29198b
Significant differences between NIFTy
nightly
and nifty
2go
=================================================
=========
Significant differences between NIFTy
3
and nifty
4
=================================================
1) Field domains in nifty
2go
are stored in DomainTuple objects, which makes
1) Field domains in nifty
4
are stored in DomainTuple objects, which makes
comparisons between domains and computation of axis indices etc. much simpler
and more efficient.
No impact on the user ... these objects are generated whenever needed and
have all necessary functions to make them look like tuples of spaces.
2) In nifty
2go
an operator's domain and target refer to the _full_ domains of
2) In nifty
4
an operator's domain and target refer to the _full_ domains of
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
which the operator actually acts. This leads to complications like the need
for the "default_spaces" argument in the operator constructor and the
"spaces" keywords in all operator calls.
Advantages of the nifty
2go
approach:
Advantages of the nifty
4
approach:
- less error-prone and easier to understand; less code overall
- operators have more knowledge and may tune themselves better
- difficulties with the design of ComposedOperator (issue 152) resolve
...
...
@@ -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
it appears to be rare.
3) nifty
2go
uses one of two different "data_object" modules for array
3) nifty
4
uses one of two different "data_object" modules for array
storage instead of D2O.
A "data_object" module consists of a class called "data_object" which
provides a subset of the numpy.ndarray interface, plus a few additional
functions for manipulating these data objects.
If no MPI support is found on the system, or if a computation is run on a
single task, nifty
2go
automatically loads a minimalistic "data_object"
single task, nifty
4
automatically loads a minimalistic "data_object"
module where the data_object class is simply identical to numpy.ndarray.
The support functions are mostly trivial as well.
If MPI is required, another module is loaded, which supports parallel
...
...
@@ -53,11 +53,11 @@ Significant differences between NIFTy nightly and nifty2go
kindex -> k_lengths
(because this is not an index)
6) In nifty
2go
, PowerSpace is not a harmonic space.
6) In nifty
4
, PowerSpace is not a harmonic space.
7) In nifty
2go
, parallel probing should work (needs systematic testing)
7) In nifty
4
, parallel probing should work (needs systematic testing)
9) Many default arguments have been removed in nifty
2go
, wherever there is no
9) Many default arguments have been removed in nifty
4
, wherever there is no
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
:)
...
...
@@ -80,8 +80,16 @@ Significant differences between NIFTy nightly and nifty2go
more or less always needed).
14) A new approach is used for FFTs along axes that are distributed among
MPI tasks. As a consequence, nifty
2go
works well with the standard version
MPI tasks. As a consequence, nifty
4
works well with the standard version
of pyfftw and does not need the MPI-enabled fork.
15) Arithmetic functions working on Fields have been moved from
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.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment