forked from mreineck/ducc
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathChangeLog
More file actions
127 lines (101 loc) · 4.41 KB
/
ChangeLog
File metadata and controls
127 lines (101 loc) · 4.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
0.10.0:
- general:
- HTML documentation generation using Sphinx
- SIMD datatypes are now much more compatible with C++ upcoming SIMD types.
The code can be compiled with the types from <experimental/simd> if
available, with very small manual changes.
- reshuffling and renaming of files
- fft:
- 1D transforms have been rewritten using a much more flexible class hierarchy
which allows more optimizations. For example 1D FFTs can now be partially
multi-threaded and the Bluestein algorithm can be used as a single pass
instead of just replacing a whole transform.
- sht:
- rewrite, moving away from pointers to mav objects. This is not finished,
and once it is complete, the Python SHT interface will most likely change.
So this might have to wait for ducc1.
0.9.0:
- general:
- improved and faster computation of Gauss-Legendre nodes and weights
using Ignace Bogaert's implementation (https://doi.org/10.1137/140954969,
https://sourceforge.net/projects/fastgausslegendrequadrature/)
- Intel OneAPI compilers are now supported
- new accepted value "none-debug" for DUCC0_OPTIMIZATION
- wgridder:
- fixed a bug which could cause memory accesses beyond the end of an array
- fft:
- slightly improved buffer re-use
- misc:
- substantially faster a_lm rotation code based on the Mikael Slevinsky's
FastTransforms package (https://github.com/MikaelSlevinsky/FastTransforms)
0.8.0:
- general:
- compiles and runs on MacOS 11
- choice of various optimization and debugging levels by setting
the DUCC0_OPTIMIZATION variable before compilation.
Valid choices are
"none":
no optimization or debugging, fast compilation
"portable":
Optimizations which are portable to all CPUs of a given family
"portable-debug":
same as above, with debugging information
"native":
Optimizations which are specific to the host CPU, non-portable library
"native-debug":
same as above, with debugging information
Default is "native".
- wgridder:
- more careful treatment of u,v,w-coordinates and phase angles, leading to
better achievable accuracies for single-precision runs
- performance improvements by making the computed interval in "n-1" symmetric
around 0. This reduces the number of required w planes significantly.
Speedups are bigger for large FOVs and when FFT is dominating.
- allow working with dirty images that are shifted with respect to the phase
center. This can be used for faceting and incorporating DDEs.
- new optional flag "double_precision_accumulation" for gridding routines,
which causes accumulation onto the uv grid to be done in double precision,
regardless of input and output precision. This can be helpful to avoid
accumulation errors in special circumstances.
- pointingprovider:
- improved performance via vectorized trigonometric functions
0.7.0:
- general:
- compilation with MSVC on Windows is now possible
- wgridder:
- performance (especially scaling) improvements
- oversampling factors up to 2.5 supported
- new, more flexible interface in submodule `wgridder.experimental`
(subject to further changes!)
- totalconvolver:
- now performs non-equidistant FFT interpolation also in psi direction,
making it much faster for large kmax.
- new low-level interface which allows flexible re-distribution of work
over MPI tasks (responsibility of the caller)
0.6.0:
- general:
- multi-threading improvements contributed by Peter Bell
- wgridder:
- new, smaller internal data structure
0.5.0:
- wgridder:
- internally used grid size is now chosen automatically, and the parameters
"nu" and "nv" are ignored; they will be removed in ducc1.
0.3.0:
- general:
- The package should now be installable from PyPI via pip even on MacOS.
However, MacOS >= 10.14 is required.
- wgridder:
- very substantial performance and scaling improvements
0.2.0:
- wgridder:
- kernels are now evaluated via polynomial approximation, allowing much
more freedom in the choice of kernel function
- switch to 2-parameter ES kernels for better accuracy
- unnecessary FFT calculations are skipped
- totalconvolve:
- improved accuracy by making use of the new wgridder kernels
- *INTERFACE CHANGE* removed method "epsilon_guess()"
- pointingprovider:
new, experimental module for computing detector pointings from a time stream
of satellite pointings. To be used by litebird_sim initially.