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
Simon Perkins
ducc
Commits
6a0cdd90
Commit
6a0cdd90
authored
Jun 05, 2020
by
Martin Reinecke
Browse files
more README
parent
1325906b
Changes
1
Hide whitespace changes
Inline
Sidebyside
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, nonequispaced
including Fast Fourier Transforms, Spherical Harmonic Transforms, nonequispaced
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 halfcomplex (i.e. complextoreal and

supports fully complex and halfcomplex (i.e. complextoreal and
realtocomplex) FFTs, discrete sine/cosine transforms and Hartley transforms
realtocomplex) 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 primelength transforms without degrading to O(N
**
2) performance

supports primelength transforms without degrading to O(N
**
2) performance

has optional multithreading support for multidimensional transforms

has optional multithreading 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)

multiD transforms in double precision perform fairly similar to FFTW with

multiD 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_2018019/_pdf
]
.
<
https://www.jstage.jst.go.jp/article/jmsj/96/2/96_2018019/_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/astroph/0409513
]
),
related to the HEALPix tesselation (
<
https://arxiv.org/abs/astroph/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 highaccuracy 4pi convolution on the sphere, which generates a
...
@@ 123,11 +124,11 @@ Library for highaccuracy 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/astroph/0008227
]
vie the
`conviqt`
code
in
<
https://arxiv.org/abs/astroph/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

sharedmemory parallelization is provided via standard C++ threads.

sharedmemory 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 highaccuracy gridding/degridding of radio interferometry datasets.
Library for highaccuracy 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

sharedmemory parallelization via standard C++ threads.

sharedmemory 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 Wstacking method" described in

uses the "improved Wstacking 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