Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
ducc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Simon Perkins
ducc
Commits
2fdb003b
Commit
2fdb003b
authored
Jun 05, 2020
by
Martin Reinecke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add submodule
parent
6a0cdd90
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
100 additions
and
16 deletions
+100
-16
MANIFEST.in
MANIFEST.in
+1
-0
README.md
README.md
+3
-3
python/ducc.cc
python/ducc.cc
+2
-0
python/gridder_cxx.h
python/gridder_cxx.h
+7
-7
python/healpix.cc
python/healpix.cc
+0
-1
python/misc.cc
python/misc.cc
+87
-0
python/sht.cc
python/sht.cc
+0
-1
python/totalconvolve.cc
python/totalconvolve.cc
+0
-1
python/wgridder.cc
python/wgridder.cc
+0
-2
src/mr_util/sharp/sharp_core_inc.cc
src/mr_util/sharp/sharp_core_inc.cc
+0
-1
No files found.
MANIFEST.in
View file @
2fdb003b
...
...
@@ -58,6 +58,7 @@ include python/wgridder.cc
include python/alm.h
include python/totalconvolve.h
include python/totalconvolve.cc
include python/misc.cc
include python/test/test_fft.py
include python/test/test_healpix.py
...
...
README.md
View file @
2fdb003b
...
...
@@ -132,7 +132,7 @@ in <https://arxiv.org/abs/astro-ph/0008227> vie the `conviqt` code
-
the code uses
`ducc.sht`
SHTs and
`ducc.fft`
FFTs to compute the data cube
-
shared-memory parallelization is provided via standard C++ threads.
-
for interpolation, the algorithm and kernel described in
https://arxiv.org/abs/1808.06736
are used. This allows very efficient
<https://arxiv.org/abs/1808.06736>
are used. This allows very efficient
interpolation with user-adjustable accuracy.
...
...
@@ -151,9 +151,9 @@ as the `wgridder` component.
### Numerical aspects
-
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
https://www.repository.cam.ac.uk/handle/1810/292298
(p. 139ff)
<https://www.repository.cam.ac.uk/handle/1810/292298>
(p. 139ff)
-
in combination these two aspects allow extremely accurate gridding/degridding
operations (L2 error compared to explicit DFTs can go below 1e-12) with
reasonable resource consumption
python/ducc.cc
View file @
2fdb003b
...
...
@@ -18,6 +18,7 @@
#include "python/totalconvolve.cc"
#include "python/wgridder.cc"
#include "python/healpix.cc"
#include "python/misc.cc"
using
namespace
mr
;
...
...
@@ -28,4 +29,5 @@ PYBIND11_MODULE(PKGNAME, m)
add_totalconvolve
(
m
);
add_wgridder
(
m
);
add_healpix
(
m
);
add_misc
(
m
);
}
python/gridder_cxx.h
View file @
2fdb003b
...
...
@@ -36,12 +36,11 @@
#include "mr_util/infra/mav.h"
#include "mr_util/math/es_kernel.h"
namespace
gridde
r
{
namespace
m
r
{
namespace
detail
{
namespace
detail
_gridder
{
using
namespace
std
;
using
namespace
mr
;
template
<
size_t
ndim
>
void
checkShape
(
const
array
<
size_t
,
ndim
>
&
shp1
,
const
array
<
size_t
,
ndim
>
&
shp2
)
...
...
@@ -1116,11 +1115,12 @@ template<typename T> void dirty2ms(const mav<double,2> &uvw,
dirty2x
(
gconf
,
dirty
,
serv
,
do_wstacking
,
verbosity
);
}
}
// namespace detail
}
// namespace detail
_gridder
// public names
using
detail
::
ms2dirty
;
using
detail
::
dirty2ms
;
}
// namespace gridder
using
detail_gridder
::
ms2dirty
;
using
detail_gridder
::
dirty2ms
;
}
// namespace mr
#endif
python/healpix.cc
View file @
2fdb003b
...
...
@@ -44,7 +44,6 @@ namespace mr {
namespace
detail_pymodule_healpix
{
using
namespace
std
;
using
namespace
mr
;
namespace
py
=
pybind11
;
...
...
python/misc.cc
0 → 100644
View file @
2fdb003b
/*
* This file is part of DUCC.
*
* DUCC is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* DUCC is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DUCC; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* For more information about HEALPix, see http://healpix.sourceforge.net
*/
/*
* DUCC is being developed at the Max-Planck-Institut fuer Astrophysik
*/
/*
* Copyright (C) 2020 Max-Planck-Society
* Author: Martin Reinecke
*/
#include <pybind11/pybind11.h>
#include <pybind11/numpy.h>
#include <vector>
#include "mr_util/math/constants.h"
#include "mr_util/math/gl_integrator.h"
namespace
mr
{
namespace
detail_pymodule_misc
{
using
namespace
std
;
namespace
py
=
pybind11
;
using
a_d_c
=
py
::
array_t
<
double
,
py
::
array
::
c_style
|
py
::
array
::
forcecast
>
;
a_d_c
GL_weights
(
int64_t
nlat
,
int64_t
nlon
)
{
a_d_c
res
(
nlat
);
auto
rr
=
res
.
mutable_unchecked
<
1
>
();
GL_Integrator
integ
(
nlat
);
auto
wgt
=
integ
.
weights
();
for
(
size_t
i
=
0
;
i
<
size_t
(
rr
.
shape
(
0
));
++
i
)
rr
[
i
]
=
wgt
[
i
]
*
twopi
/
nlon
;
return
res
;
}
a_d_c
GL_thetas
(
int64_t
nlat
)
{
a_d_c
res
(
nlat
);
auto
rr
=
res
.
mutable_unchecked
<
1
>
();
GL_Integrator
integ
(
nlat
);
auto
x
=
integ
.
coords
();
for
(
size_t
i
=
0
;
i
<
size_t
(
rr
.
shape
(
0
));
++
i
)
rr
[
i
]
=
acos
(
-
x
[
i
]);
return
res
;
}
const
char
*
misc_DS
=
R"""(
Various unsorted utilities
)"""
;
void
add_misc
(
py
::
module
&
msup
)
{
using
namespace
pybind11
::
literals
;
auto
m
=
msup
.
def_submodule
(
"misc"
);
m
.
doc
()
=
misc_DS
;
m
.
def
(
"GL_weights"
,
&
GL_weights
,
"nlat"
_a
,
"nlon"
_a
);
m
.
def
(
"GL_thetas"
,
&
GL_thetas
,
"nlat"
_a
);
}
}
using
detail_pymodule_misc
::
add_misc
;
}
python/sht.cc
View file @
2fdb003b
...
...
@@ -47,7 +47,6 @@ namespace mr {
namespace
detail_pymodule_sht
{
using
namespace
std
;
using
namespace
mr
;
namespace
py
=
pybind11
;
...
...
python/totalconvolve.cc
View file @
2fdb003b
...
...
@@ -12,7 +12,6 @@ namespace mr {
namespace
detail_pymodule_totalconvolve
{
using
namespace
std
;
using
namespace
mr
;
namespace
py
=
pybind11
;
...
...
python/wgridder.cc
View file @
2fdb003b
...
...
@@ -29,8 +29,6 @@ namespace mr {
namespace
detail_pymodule_wgridder
{
using
namespace
std
;
using
namespace
gridder
;
using
namespace
mr
;
namespace
py
=
pybind11
;
...
...
src/mr_util/sharp/sharp_core_inc.cc
View file @
2fdb003b
...
...
@@ -51,7 +51,6 @@ namespace detail_sharp {
#pragma GCC visibility push(hidden)
using
namespace
mr
;
using
namespace
std
;
using
Tv
=
native_simd
<
double
>
;
...
...
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