forked from ccecka/fmmtl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
44 lines (34 loc) · 1.46 KB
/
TODO
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
Functionality
=============
[ ] Integration with external linear algebra libraries and solvers.
[ ] Use tvmet library for better Vec functionality and performance.
[ ] Use thrust::complex?
[ ] Automagically detect .kern inclusion and nvcc to generate needed CUDA obj files.
[ ] - Removes need for ugly FMMTL_KERNEL_EXTRAS macro for explicit instantiation.
[ ] Kernel-specific MACs. Static and Dynamic versions.
[ ] - Optimization of traversals and algorithms based on static and/or dynamic choices.
[ ] Python interface
[ ] Fast ND Gauss transform.
[ ] Integrate Helmholtz kernel.
==Applications==
[ ] NBody demo example.
[ ] BEM Kernel and example (from dev repo).
[x] Visualization of 2D kernel error.
[x] BiotSavart kernel and spherical expansion.
Performance
===========
[ ] On-demand tree/child construction.
[ ] Automatic balancing of near-field and far-field -- deprecate ncrit.
[ ] Autotuning for choosing between computational pathways, e.g M2L+L2L+L2T => M2T.
[ ] Investigate use of KD-trees rather than 2k-trees.
[ ] Cached-optimal and communication-optimal distributed p2p library.
[x] Optimization of A2B algorithms in the case of unused arguments.
[x] Optimized and generalized spherical harmonic expansions.
Maintenance
===========
[ ] More logging and better logging structure/style.
[ ] Means of easily tracking/plotting heap memory usage over time.
Documentation
=============
[ ] Improved use of FMMTL_DEBUG_ONLY macros.
[ ] Use #pragma once *and* #define fences.