Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
On Thursday, 7th July from 1 to 3 pm there will be a maintenance with a short downtime of GitLab.
Open sidebar
Simon Perkins
ducc
Commits
6a0cdd90
Commit
6a0cdd90
authored
Jun 05, 2020
by
Martin Reinecke
Browse files
more README
parent
1325906b
Changes
1
Show whitespace changes
Inline
Side-by-side
README.md
View file @
6a0cdd90
...
@@ -5,6 +5,7 @@ This is a collection of basic programming tools for numerical computation,
...
@@ -5,6 +5,7 @@ This is a collection of basic programming tools for numerical computation,
including Fast Fourier Transforms, Spherical Harmonic Transforms, non-equispaced
including Fast Fourier Transforms, Spherical Harmonic Transforms, non-equispaced
Fourier transforms, as well as some concrete applications like 4pi convolution
Fourier transforms, as well as some concrete applications like 4pi convolution
on the sphere and gridding/degridding of radio interferometry data.
on the sphere and gridding/degridding of radio interferometry data.
The code is written in C++17, but provides a simple and comprehensive Python
The code is written in C++17, but provides a simple and comprehensive Python
interface.
interface.
...
@@ -68,13 +69,13 @@ ducc.fft
...
@@ -68,13 +69,13 @@ ducc.fft
--------
--------
This package provides Fast Fourier, trigonometric and Hartley transforms with a
This package provides Fast Fourier, trigonometric and Hartley transforms with a
simple Python interface. It is an evolution of
`po
p
cketfft`
and
`pypocketfft`
simple Python interface. It is an evolution of
`pocketfft`
and
`pypocketfft`
which are currently used by
`numpy`
and
`scipy`
.
which are currently used by
`numpy`
and
`scipy`
.
The central algorithms are derived from Paul Swarztrauber's FFTPACK code
The central algorithms are derived from Paul Swarztrauber's FFTPACK code
(http://www.netlib.org/fftpack).
(http://www.netlib.org/fftpack).
Features
###
Features
-
supports fully complex and half-complex (i.e. complex-to-real and
-
supports fully complex and half-complex (i.e. complex-to-real and
real-to-complex) FFTs, discrete sine/cosine transforms and Hartley transforms
real-to-complex) FFTs, discrete sine/cosine transforms and Hartley transforms
-
achieves very high accuracy for all transforms
-
achieves very high accuracy for all transforms
...
@@ -85,28 +86,28 @@ Features
...
@@ -85,28 +86,28 @@ Features
-
supports prime-length transforms without degrading to O(N
**
2) performance
-
supports prime-length transforms without degrading to O(N
**
2) performance
-
has optional multi-threading support for multidimensional transforms
-
has optional multi-threading support for multidimensional transforms
Design decisions and performance characteristics
###
Design decisions and performance characteristics
-
there is no internal caching of plans and twiddle factors, making the
-
there is no internal caching of plans and twiddle factors, making the
interface as simple as possible
interface as simple as possible
-
1D transforms are significantly slower than those provided by FFTW (if FFTW's
-
1D transforms are significantly slower than those provided by FFTW (if FFTW's
plan generation overhead is ignored)
plan generation overhead is ignored)
-
multi-D transforms in double precision perform fairly similar to FFTW with
-
multi-D transforms in double precision perform fairly similar to FFTW with
FFTW_MEASURE; in single precision ducc.fft can be significantly faster.
FFTW_MEASURE; in single precision
`
ducc.fft
`
can be significantly faster.
ducc.sht
ducc.sht
--------
--------
This package provides efficient spherical harmonic trasforms (SHTs). Its code
This package provides efficient spherical harmonic trasforms (SHTs). Its code
is derived from
`libsharp`
(
[
https://arxiv.org/abs/1303.4945
]
), with accelerated
is derived from
`libsharp`
(
<
https://arxiv.org/abs/1303.4945
>
), with accelerated
recurrence algorithms presented in
recurrence algorithms presented in
[
https://www.jstage.jst.go.jp/article/jmsj/96/2/96_2018-019/_pdf
]
.
<
https://www.jstage.jst.go.jp/article/jmsj/96/2/96_2018-019/_pdf
>
.
ducc.healpix
ducc.healpix
------------
------------
This library provides Python bindings for the most important functionality
This library provides Python bindings for the most important functionality
related to the HEALPix tesselation (
[
https://arxiv.org/abs/astro-ph/0409513
]
),
related to the HEALPix tesselation (
<
https://arxiv.org/abs/astro-ph/0409513
>
),
except for spherical harmonic transforms, which are covered vy
`ducc.sht`
.
except for spherical harmonic transforms, which are covered vy
`ducc.sht`
.
The design goals are
The design goals are
...
@@ -123,11 +124,11 @@ Library for high-accuracy 4pi convolution on the sphere, which generates a
...
@@ -123,11 +124,11 @@ Library for high-accuracy 4pi convolution on the sphere, which generates a
total convolution data cube from a set of sky and beam
`a_lm`
and computes
total convolution data cube from a set of sky and beam
`a_lm`
and computes
interpolated values for a given list of detector pointings.
interpolated values for a given list of detector pointings.
This code has evolved from the original
`totalconvolver`
algorithm described
This code has evolved from the original
`totalconvolver`
algorithm described
in
[
https://arxiv.org/abs/astro-ph/0008227
]
vie the
`conviqt`
code
in
<
https://arxiv.org/abs/astro-ph/0008227
>
vie the
`conviqt`
code
(
[
https://arxiv.org/abs/1002.1050
]
).
(
<
https://arxiv.org/abs/1002.1050
>
).
Algorithmic details:
###
Algorithmic details:
-
the code uses
`ducc.sht`
SHTs and
`ducc.fft`
FFTs to compute the data cube
-
the code uses
`ducc.sht`
SHTs and
`ducc.fft`
FFTs to compute the data cube
-
shared-memory parallelization is provided via standard C++ threads.
-
shared-memory parallelization is provided via standard C++ threads.
-
for interpolation, the algorithm and kernel described in
-
for interpolation, the algorithm and kernel described in
...
@@ -140,15 +141,15 @@ ducc.wgridder
...
@@ -140,15 +141,15 @@ ducc.wgridder
Library for high-accuracy gridding/degridding of radio interferometry datasets.
Library for high-accuracy gridding/degridding of radio interferometry datasets.
An earlier version of this code has been integrated into
`wsclean`
An earlier version of this code has been integrated into
`wsclean`
(
[
https://arxiv.org/abs/1407.1943
]
,
[
https://sourceforge.net/projects/wsclean/
]
)
(
<
https://arxiv.org/abs/1407.1943
>
,
<
https://sourceforge.net/projects/wsclean/
>
)
as the
`wgridder`
component.
as the
`wgridder`
component.
Programming aspects
###
Programming aspects
-
shared-memory parallelization via standard C++ threads.
-
shared-memory parallelization via standard C++ threads.
-
kernel computation is performed on the fly, avoiding inaccuracies
-
kernel computation is performed on the fly, avoiding inaccuracies
due to table lookup and reducing overall memory bandwidth
due to table lookup and reducing overall memory bandwidth
Numerical aspects
###
Numerical aspects
-
uses the analytical gridding kernel presented in
-
uses the analytical gridding kernel presented in
https://arxiv.org/abs/1808.06736
https://arxiv.org/abs/1808.06736
-
uses the "improved W-stacking method" described in
-
uses the "improved W-stacking method" described in
...
...
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