fmca 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. fmca-0.1.0/.gitignore +10 -0
  2. fmca-0.1.0/CMakeLists.txt +112 -0
  3. fmca-0.1.0/ClassHierarchy.txt +20 -0
  4. fmca-0.1.0/FMCA/Clustering +52 -0
  5. fmca-0.1.0/FMCA/CovarianceKernel +32 -0
  6. fmca-0.1.0/FMCA/H2Matrix +34 -0
  7. fmca-0.1.0/FMCA/HMatrix +30 -0
  8. fmca-0.1.0/FMCA/Interpolator +35 -0
  9. fmca-0.1.0/FMCA/KernelInterpolation +31 -0
  10. fmca-0.1.0/FMCA/LowRankApproximation +29 -0
  11. fmca-0.1.0/FMCA/MatrixEvaluator +23 -0
  12. fmca-0.1.0/FMCA/Moments +39 -0
  13. fmca-0.1.0/FMCA/PivotedCholesky +22 -0
  14. fmca-0.1.0/FMCA/Samplets +41 -0
  15. fmca-0.1.0/FMCA/src/Clustering/Admissibility.h +190 -0
  16. fmca-0.1.0/FMCA/src/Clustering/ClusterTree.h +62 -0
  17. fmca-0.1.0/FMCA/src/Clustering/ClusterTreeBase.h +89 -0
  18. fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_ClusterTree.h +141 -0
  19. fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_MetisClusterTree.h +81 -0
  20. fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_MortonClusterTree.h +113 -0
  21. fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_SphereClusterTree.h +195 -0
  22. fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_UnitBinaryTree.h +160 -0
  23. fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_UnitKDTree.h +163 -0
  24. fmca-0.1.0/FMCA/src/Clustering/ClusterTreeMetrics.h +245 -0
  25. fmca-0.1.0/FMCA/src/Clustering/ClusterTreeSplitter.h +125 -0
  26. fmca-0.1.0/FMCA/src/Clustering/MetisClusterTree.h +70 -0
  27. fmca-0.1.0/FMCA/src/Clustering/MortonClusterTree.h +65 -0
  28. fmca-0.1.0/FMCA/src/Clustering/MortonCompare.h +108 -0
  29. fmca-0.1.0/FMCA/src/Clustering/RandomProjectionTree.h +65 -0
  30. fmca-0.1.0/FMCA/src/Clustering/SphereClusterTree.h +78 -0
  31. fmca-0.1.0/FMCA/src/Clustering/UnitBinaryTree.h +62 -0
  32. fmca-0.1.0/FMCA/src/Clustering/UnitKDTree.h +62 -0
  33. fmca-0.1.0/FMCA/src/Clustering/approximateKNN.h +76 -0
  34. fmca-0.1.0/FMCA/src/Clustering/epsNN.h +92 -0
  35. fmca-0.1.0/FMCA/src/Clustering/kNN.h +141 -0
  36. fmca-0.1.0/FMCA/src/Clustering/uniformSubsample.h +93 -0
  37. fmca-0.1.0/FMCA/src/CovarianceKernel/CovarianceKernel.h +174 -0
  38. fmca-0.1.0/FMCA/src/CovarianceKernel/SpaceTimePerKernel.h +51 -0
  39. fmca-0.1.0/FMCA/src/CovarianceKernel/mpi_sparseKernelMatrixInverse.h +90 -0
  40. fmca-0.1.0/FMCA/src/CovarianceKernel/mpi_sparseKernelMatrixInverseSqrt.h +97 -0
  41. fmca-0.1.0/FMCA/src/CovarianceKernel/sparseKernelMatrixInverse.h +87 -0
  42. fmca-0.1.0/FMCA/src/CovarianceKernel/sparseKernelMatrixInverseSqrt.h +100 -0
  43. fmca-0.1.0/FMCA/src/H2Matrix/H2ClusterTree.h +78 -0
  44. fmca-0.1.0/FMCA/src/H2Matrix/H2ClusterTreeBase.h +64 -0
  45. fmca-0.1.0/FMCA/src/H2Matrix/H2Matrix.h +72 -0
  46. fmca-0.1.0/FMCA/src/H2Matrix/H2MatrixBase.h +259 -0
  47. fmca-0.1.0/FMCA/src/H2Matrix/H2MatrixProjector.h +78 -0
  48. fmca-0.1.0/FMCA/src/H2Matrix/H2kernelActor.h +97 -0
  49. fmca-0.1.0/FMCA/src/H2Matrix/backward_transform_impl.h +45 -0
  50. fmca-0.1.0/FMCA/src/H2Matrix/compute_cluster_bases_impl.h +88 -0
  51. fmca-0.1.0/FMCA/src/H2Matrix/compute_dual_cluster_bases_impl.h +93 -0
  52. fmca-0.1.0/FMCA/src/H2Matrix/forward_transform_impl.h +46 -0
  53. fmca-0.1.0/FMCA/src/H2Matrix/matrix_vector_product_impl.h +101 -0
  54. fmca-0.1.0/FMCA/src/HMatrix/ACA.h +92 -0
  55. fmca-0.1.0/FMCA/src/HMatrix/HMatrix.h +73 -0
  56. fmca-0.1.0/FMCA/src/HMatrix/HMatrixBase.h +238 -0
  57. fmca-0.1.0/FMCA/src/HMatrix/SVD.h +40 -0
  58. fmca-0.1.0/FMCA/src/Interpolator/DeMarchiPoints.h +58 -0
  59. fmca-0.1.0/FMCA/src/Interpolator/LejaPoints.h +122 -0
  60. fmca-0.1.0/FMCA/src/Interpolator/MonomialInterpolator.h +68 -0
  61. fmca-0.1.0/FMCA/src/Interpolator/TensorProductInterpolator.h +97 -0
  62. fmca-0.1.0/FMCA/src/Interpolator/TotalDegreeInterpolator.h +72 -0
  63. fmca-0.1.0/FMCA/src/Interpolator/WeightedTotalDegreeInterpolator.h +78 -0
  64. fmca-0.1.0/FMCA/src/Interpolator/evalPolynomials.h +71 -0
  65. fmca-0.1.0/FMCA/src/KernelInterpolation/MultipoleFunctionEvaluator.h +70 -0
  66. fmca-0.1.0/FMCA/src/KernelInterpolation/SampletKernelSolver.h +136 -0
  67. fmca-0.1.0/FMCA/src/LowRankApproximation/FALKON.h +158 -0
  68. fmca-0.1.0/FMCA/src/LowRankApproximation/NystromApproximation.h +63 -0
  69. fmca-0.1.0/FMCA/src/LowRankApproximation/PivotedCholesky.h +340 -0
  70. fmca-0.1.0/FMCA/src/MatrixEvaluator/NystromEvaluator.h +93 -0
  71. fmca-0.1.0/FMCA/src/MatrixEvaluator/unsymmetricNystromEvaluator.h +96 -0
  72. fmca-0.1.0/FMCA/src/Moments/MinNystromSampletMoments.h +56 -0
  73. fmca-0.1.0/FMCA/src/Moments/NystromMoments.h +49 -0
  74. fmca-0.1.0/FMCA/src/Moments/NystromSampletMoments.h +59 -0
  75. fmca-0.1.0/FMCA/src/Moments/SampletHelper.h +88 -0
  76. fmca-0.1.0/FMCA/src/Moments/WeightedNystromMoments.h +50 -0
  77. fmca-0.1.0/FMCA/src/Samplets/GraphSampletForest.h +157 -0
  78. fmca-0.1.0/FMCA/src/Samplets/GraphSampletTree.h +155 -0
  79. fmca-0.1.0/FMCA/src/Samplets/H2SampletTree.h +136 -0
  80. fmca-0.1.0/FMCA/src/Samplets/H2SampletTreeBase.h +94 -0
  81. fmca-0.1.0/FMCA/src/Samplets/SampletAdaptiveClustering.h +75 -0
  82. fmca-0.1.0/FMCA/src/Samplets/SampletMapper.h +53 -0
  83. fmca-0.1.0/FMCA/src/Samplets/SampletTree.h +196 -0
  84. fmca-0.1.0/FMCA/src/Samplets/SampletTreeBase.h +211 -0
  85. fmca-0.1.0/FMCA/src/Samplets/adaptiveTreeSearch.h +120 -0
  86. fmca-0.1.0/FMCA/src/Samplets/samplet_matrix_compressor.h +430 -0
  87. fmca-0.1.0/FMCA/src/Samplets/samplet_matrix_compressor_unsymmetric.h +281 -0
  88. fmca-0.1.0/FMCA/src/Samplets/samplet_transformer.h +150 -0
  89. fmca-0.1.0/FMCA/src/util/ActiveSetManager.h +153 -0
  90. fmca-0.1.0/FMCA/src/util/Alpha.h +95 -0
  91. fmca-0.1.0/FMCA/src/util/BinomialCoefficient.h +37 -0
  92. fmca-0.1.0/FMCA/src/util/CombiIndexSet.h +226 -0
  93. fmca-0.1.0/FMCA/src/util/Droplet.h +137 -0
  94. fmca-0.1.0/FMCA/src/util/ForwardDeclarations.h +80 -0
  95. fmca-0.1.0/FMCA/src/util/GaussLegendreNodes.h +66 -0
  96. fmca-0.1.0/FMCA/src/util/GenericMatrix.h +92 -0
  97. fmca-0.1.0/FMCA/src/util/Graph.h +255 -0
  98. fmca-0.1.0/FMCA/src/util/Grid2D.h +76 -0
  99. fmca-0.1.0/FMCA/src/util/Grid3D.h +76 -0
  100. fmca-0.1.0/FMCA/src/util/HaltonSet.h +148 -0
  101. fmca-0.1.0/FMCA/src/util/IDDFSForwardIterator.h +91 -0
  102. fmca-0.1.0/FMCA/src/util/IO.h +668 -0
  103. fmca-0.1.0/FMCA/src/util/KMinList.h +56 -0
  104. fmca-0.1.0/FMCA/src/util/LIsomap.h +80 -0
  105. fmca-0.1.0/FMCA/src/util/MDS.h +50 -0
  106. fmca-0.1.0/FMCA/src/util/MLMemoryBuffer.h +73 -0
  107. fmca-0.1.0/FMCA/src/util/Macros.h +122 -0
  108. fmca-0.1.0/FMCA/src/util/MultiIndexSet.h +235 -0
  109. fmca-0.1.0/FMCA/src/util/NormalDistribution.h +85 -0
  110. fmca-0.1.0/FMCA/src/util/PCG.h +46 -0
  111. fmca-0.1.0/FMCA/src/util/RandomTreeAccessor.h +58 -0
  112. fmca-0.1.0/FMCA/src/util/SSN.h +282 -0
  113. fmca-0.1.0/FMCA/src/util/SphericalHarmonics.h +89 -0
  114. fmca-0.1.0/FMCA/src/util/StdBuffer.h +35 -0
  115. fmca-0.1.0/FMCA/src/util/Tictoc.h +40 -0
  116. fmca-0.1.0/FMCA/src/util/TreeBase.h +151 -0
  117. fmca-0.1.0/FMCA/src/util/graphIO.h +144 -0
  118. fmca-0.1.0/FMCA/src/util/uniformSphericalPoints.h +28 -0
  119. fmca-0.1.0/LICENSE.md +661 -0
  120. fmca-0.1.0/PKG-INFO +187 -0
  121. fmca-0.1.0/README.md +177 -0
  122. fmca-0.1.0/assets/Multerer_Strobl24.pdf +0 -0
  123. fmca-0.1.0/assets/Tsignal.png +0 -0
  124. fmca-0.1.0/assets/adaptive_clusters.png +0 -0
  125. fmca-0.1.0/assets/compressed_kernel.png +0 -0
  126. fmca-0.1.0/assets/denoising_image.png +0 -0
  127. fmca-0.1.0/assets/filteredGP.png +0 -0
  128. fmca-0.1.0/assets/filteredKernel.png +0 -0
  129. fmca-0.1.0/assets/gaussian_process.png +0 -0
  130. fmca-0.1.0/assets/kernel.png +0 -0
  131. fmca-0.1.0/assets/samplets.png +0 -0
  132. fmca-0.1.0/assets/signal.png +0 -0
  133. fmca-0.1.0/assets/uniform_clusters.png +0 -0
  134. fmca-0.1.0/doc/Doxyfile +2783 -0
  135. fmca-0.1.0/doc/topgroups.dox +14 -0
  136. fmca-0.1.0/py/CMakeLists.txt +29 -0
  137. fmca-0.1.0/py/FMCA.cpp +751 -0
  138. fmca-0.1.0/pyproject.toml +57 -0
  139. fmca-0.1.0/tests/CMakeLists.txt +21 -0
  140. fmca-0.1.0/tests/devtests/test_ActiveSetManager.cpp +73 -0
  141. fmca-0.1.0/tests/devtests/test_Alpha.cpp +45 -0
  142. fmca-0.1.0/tests/devtests/test_Droplet.cpp +118 -0
  143. fmca-0.1.0/tests/devtests/test_Graph.cpp +99 -0
  144. fmca-0.1.0/tests/devtests/test_GraphSampletForest.cpp +150 -0
  145. fmca-0.1.0/tests/devtests/test_GraphSampletTree.cpp +165 -0
  146. fmca-0.1.0/tests/devtests/test_H2DualClusterBases.cpp +53 -0
  147. fmca-0.1.0/tests/devtests/test_H2MatrixProjector.cpp +74 -0
  148. fmca-0.1.0/tests/devtests/test_H2SampletCompressorUnsymmetric.cpp +101 -0
  149. fmca-0.1.0/tests/devtests/test_H2SampletCondition.cpp +154 -0
  150. fmca-0.1.0/tests/devtests/test_H2SphericalSampletCompressor.cpp +162 -0
  151. fmca-0.1.0/tests/devtests/test_H2kernelActor.cpp +61 -0
  152. fmca-0.1.0/tests/devtests/test_HMatrix.cpp +64 -0
  153. fmca-0.1.0/tests/devtests/test_KMinList.cpp +23 -0
  154. fmca-0.1.0/tests/devtests/test_KernelInterpolation.cpp +53 -0
  155. fmca-0.1.0/tests/devtests/test_LIsomap.cpp +73 -0
  156. fmca-0.1.0/tests/devtests/test_MDS.cpp +57 -0
  157. fmca-0.1.0/tests/devtests/test_MDS_graph.cpp +48 -0
  158. fmca-0.1.0/tests/devtests/test_MetisClusterTree.cpp +89 -0
  159. fmca-0.1.0/tests/devtests/test_MortonClusterTree.cpp +76 -0
  160. fmca-0.1.0/tests/devtests/test_MortonCompare.cpp +44 -0
  161. fmca-0.1.0/tests/devtests/test_MultiIndexSet.cpp +47 -0
  162. fmca-0.1.0/tests/devtests/test_Multilevel.cpp +79 -0
  163. fmca-0.1.0/tests/devtests/test_NystromApproximation.cpp +50 -0
  164. fmca-0.1.0/tests/devtests/test_RandomTreeAccessor.cpp +43 -0
  165. fmca-0.1.0/tests/devtests/test_SSN.cpp +162 -0
  166. fmca-0.1.0/tests/devtests/test_SphereClusterTree.cpp +76 -0
  167. fmca-0.1.0/tests/devtests/test_SphericalH2Matrix.cpp +86 -0
  168. fmca-0.1.0/tests/devtests/test_SphericalHarmonics.cpp +77 -0
  169. fmca-0.1.0/tests/devtests/test_TRSSN.cpp +190 -0
  170. fmca-0.1.0/tests/devtests/test_UnitBinaryTree.cpp +76 -0
  171. fmca-0.1.0/tests/devtests/test_UnitKDTree.cpp +82 -0
  172. fmca-0.1.0/tests/devtests/test_approximateKNN.cpp +65 -0
  173. fmca-0.1.0/tests/devtests/test_epsNN.cpp +60 -0
  174. fmca-0.1.0/tests/devtests/test_metisKway.cpp +99 -0
  175. fmca-0.1.0/tests/devtests/test_sparseKernelMatrixInverse.cpp +61 -0
  176. fmca-0.1.0/tests/devtests/test_sparseKernelMatrixInverseSqrt.cpp +84 -0
  177. fmca-0.1.0/tests/devtests/test_uniformSubsample.cpp +68 -0
  178. fmca-0.1.0/tests/test_AdaptiveTreeSearch.cpp +72 -0
  179. fmca-0.1.0/tests/test_ClusterTree.cpp +58 -0
  180. fmca-0.1.0/tests/test_ClusterTreeMetrics.cpp +80 -0
  181. fmca-0.1.0/tests/test_FALKON.cpp +49 -0
  182. fmca-0.1.0/tests/test_H2Matrix.cpp +81 -0
  183. fmca-0.1.0/tests/test_H2SampletCompressor.cpp +138 -0
  184. fmca-0.1.0/tests/test_PivotedCholesky.cpp +138 -0
  185. fmca-0.1.0/tests/test_RandomProjectionTree.cpp +93 -0
  186. fmca-0.1.0/tests/test_SampletBasis.cpp +51 -0
  187. fmca-0.1.0/tests/test_SampletTrafoTriplets.cpp +46 -0
  188. fmca-0.1.0/tests/test_SampletTransformer.cpp +46 -0
  189. fmca-0.1.0/tests/test_TreeIterator.cpp +38 -0
  190. fmca-0.1.0/tests/test_kNN.cpp +71 -0
fmca-0.1.0/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ .DS_Store
2
+ *.o
3
+ *.out
4
+ *.swp
5
+ html/
6
+ build/
7
+ *.vtk
8
+ *.h5
9
+ *.egg-info/
10
+ __pycache__/
@@ -0,0 +1,112 @@
1
+ cmake_minimum_required(VERSION 3.21)
2
+ project(FMCA VERSION 0.1.0 LANGUAGES CXX)
3
+
4
+ message(STATUS "
5
+ ****************************************************************************
6
+ * ______ __ __ ______ ______ *
7
+ * | ___| | \\ / | / ___| / \\ *
8
+ * | __ | \\/ | | / | /\\ | *
9
+ * | __| | | | | | |__| | *
10
+ * | | | |\\/| | | | | __ | *
11
+ * | | | | | | | \\___ | | | | *
12
+ * |__| |__| |__| \\______| |__| |__| *
13
+ * *
14
+ ****************************************************************************
15
+ This is FMCA, the Fast Multiresolution Covariance Analysis package.
16
+
17
+ Copyright (c) 2022, Michael Multerer
18
+ All rights reserved.
19
+
20
+ This source code is subject to the GNU Affero General Public License v3.0
21
+ license and without any warranty, see <https://github.com/muchip/FMCA>
22
+ for further information.
23
+ ")
24
+
25
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
26
+
27
+ # Language standard
28
+ set(CMAKE_CXX_STANDARD 17)
29
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
30
+ set(CMAKE_CXX_EXTENSIONS OFF)
31
+ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
32
+ set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
33
+ endif()
34
+
35
+ # Options (SKBUILD is defined by scikit-build-core; a pip build defaults to
36
+ # the python module only)
37
+ if(SKBUILD)
38
+ set(_fmca_default_tests OFF)
39
+ else()
40
+ set(_fmca_default_tests ON)
41
+ endif()
42
+ option(FMCA_BUILD_TESTS "Build the C++ tests" ${_fmca_default_tests})
43
+ option(FMCA_BUILD_PYTHON "Build the pybind11 module" ON)
44
+
45
+ # Eigen >= 5.0 (new SVD API): system package, otherwise fetch the sources and
46
+ # expose them as a header-only target (Eigen's own build system is
47
+ # deliberately not entered)
48
+ find_package(Eigen3 5.0 CONFIG QUIET)
49
+ if(NOT TARGET Eigen3::Eigen)
50
+ message(STATUS "Eigen3 >= 5.0 not found, fetching Eigen 5.0.1")
51
+ include(FetchContent)
52
+ FetchContent_Declare(eigen
53
+ URL https://gitlab.com/libeigen/eigen/-/archive/5.0.1/eigen-5.0.1.tar.gz
54
+ DOWNLOAD_EXTRACT_TIMESTAMP TRUE
55
+ SOURCE_SUBDIR cmake_disabled)
56
+ FetchContent_MakeAvailable(eigen)
57
+ add_library(eigen INTERFACE)
58
+ add_library(Eigen3::Eigen ALIAS eigen)
59
+ target_include_directories(eigen SYSTEM INTERFACE "${eigen_SOURCE_DIR}")
60
+ endif()
61
+
62
+ # OpenMP: optional, consumed as a target rather than via global flags
63
+ if(MSVC)
64
+ # MSVC's OpenMP dialect rejects several loop forms used in FMCA; Windows
65
+ # builds are single-threaded for now
66
+ set(OpenMP_CXX_FOUND FALSE)
67
+ message(STATUS "OpenMP disabled on MSVC; FMCA will run single-threaded")
68
+ else()
69
+ find_package(OpenMP COMPONENTS CXX)
70
+ if(NOT OpenMP_CXX_FOUND)
71
+ message(WARNING "OpenMP not found; FMCA will run single-threaded. "
72
+ "Pass an OpenMP-capable compiler via -DCMAKE_CXX_COMPILER=... in a fresh build directory.")
73
+ endif()
74
+ endif()
75
+
76
+ # FMCA: header-only interface target carrying all usage requirements
77
+ add_library(fmca_headers INTERFACE)
78
+ add_library(FMCA::FMCA ALIAS fmca_headers)
79
+ target_include_directories(fmca_headers INTERFACE
80
+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
81
+ $<INSTALL_INTERFACE:include>)
82
+ target_compile_features(fmca_headers INTERFACE cxx_std_17)
83
+ target_link_libraries(fmca_headers INTERFACE Eigen3::Eigen)
84
+ if(OpenMP_CXX_FOUND)
85
+ target_link_libraries(fmca_headers INTERFACE OpenMP::OpenMP_CXX)
86
+ endif()
87
+ target_compile_options(fmca_headers INTERFACE
88
+ $<$<AND:$<CONFIG:Release>,$<CXX_COMPILER_ID:GNU,Clang,AppleClang>>:-O3>)
89
+
90
+ # Python module
91
+ if(FMCA_BUILD_PYTHON)
92
+ find_package(Python REQUIRED COMPONENTS Interpreter Development.Module)
93
+ # standalone builds may only have pybind11 from pip: ask the interpreter
94
+ # for its CMake config directory before find_package
95
+ if(NOT pybind11_DIR)
96
+ execute_process(
97
+ COMMAND "${Python_EXECUTABLE}" -m pybind11 --cmakedir
98
+ OUTPUT_VARIABLE _pybind11_dir OUTPUT_STRIP_TRAILING_WHITESPACE
99
+ RESULT_VARIABLE _pybind11_rc ERROR_QUIET)
100
+ if(_pybind11_rc EQUAL 0)
101
+ set(pybind11_DIR "${_pybind11_dir}")
102
+ endif()
103
+ endif()
104
+ find_package(pybind11 CONFIG REQUIRED)
105
+ add_subdirectory(py)
106
+ endif()
107
+
108
+ # Tests
109
+ if(FMCA_BUILD_TESTS)
110
+ enable_testing()
111
+ add_subdirectory(tests)
112
+ endif()
@@ -0,0 +1,20 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2022, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+
13
+ TreeBase<Derived>
14
+ <-- ClusterTreeBase<Derived>
15
+ <-- ClusterTree
16
+ <-- H2ClusterTreeBase<Derived>
17
+ <-- H2ClusterTree
18
+ <-- SampletTreeBase<Derived>
19
+ <-- H2SampletTreeBase<Derived>
20
+ <-- H2SampletTree
@@ -0,0 +1,52 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2022, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+ #ifndef FMCA_CLUSTERING_MODULE_
13
+ #define FMCA_CLUSTERING_MODULE_
14
+
15
+ /**
16
+ * \ingroup Modules
17
+ * \defgroup Clustering Clustering
18
+ * \brief The Clustering module collects all the functionality for creating a
19
+ * cluster tree associated to an input data set
20
+ *
21
+ **/
22
+
23
+ #include "src/util/Macros.h"
24
+ //
25
+ #include "src/util/ForwardDeclarations.h"
26
+ #include "src/util/Graph.h"
27
+ #include "src/util/TreeBase.h"
28
+ #include "src/util/KMinList.h"
29
+ //
30
+ #include "src/Clustering/Admissibility.h"
31
+ #include "src/Clustering/MortonCompare.h"
32
+ #include "src/Clustering/ClusterTreeSplitter.h"
33
+ #include "src/Clustering/ClusterTreeBase.h"
34
+ #include "src/Clustering/ClusterTreeInitializer_ClusterTree.h"
35
+ #include "src/Clustering/ClusterTreeInitializer_MortonClusterTree.h"
36
+ #include "src/Clustering/ClusterTreeInitializer_MetisClusterTree.h"
37
+ #include "src/Clustering/ClusterTreeInitializer_SphereClusterTree.h"
38
+ #include "src/Clustering/ClusterTreeInitializer_UnitKDTree.h"
39
+ #include "src/Clustering/ClusterTreeInitializer_UnitBinaryTree.h"
40
+ #include "src/Clustering/RandomProjectionTree.h"
41
+ #include "src/Clustering/ClusterTree.h"
42
+ #include "src/Clustering/UnitKDTree.h"
43
+ #include "src/Clustering/UnitBinaryTree.h"
44
+ #include "src/Clustering/MortonClusterTree.h"
45
+ #include "src/Clustering/MetisClusterTree.h"
46
+ #include "src/Clustering/SphereClusterTree.h"
47
+ #include "src/Clustering/ClusterTreeMetrics.h"
48
+ #include "src/Clustering/kNN.h"
49
+ #include "src/Clustering/approximateKNN.h"
50
+ #include "src/Clustering/epsNN.h"
51
+
52
+ #endif
@@ -0,0 +1,32 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2022, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+ #ifndef FMCA_COVARIANCEKERNEL_MODULE_
13
+ #define FMCA_COVARIANCEKERNEL_MODULE_
14
+
15
+ /**
16
+ * \ingroup Modules
17
+ * \defgroup CovarianceKernel CovarianceKernel
18
+ * \brief Module providing a class of covariance kernel functions
19
+ *
20
+ **/
21
+
22
+ #include "src/util/Macros.h"
23
+ //
24
+ #include "Clustering"
25
+
26
+
27
+ #include "src/CovarianceKernel/CovarianceKernel.h"
28
+ #include "src/CovarianceKernel/SpaceTimePerKernel.h"
29
+ #include "src/CovarianceKernel/sparseKernelMatrixInverse.h"
30
+ #include "src/CovarianceKernel/sparseKernelMatrixInverseSqrt.h"
31
+
32
+ #endif
@@ -0,0 +1,34 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2022, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+ #ifndef FMCA_H2MATRIX_MODULE_
13
+ #define FMCA_H2MATRIX_MODULE_
14
+
15
+
16
+ #include "src/util/Macros.h"
17
+ //
18
+
19
+ #include "Clustering"
20
+ #include "MatrixEvaluator"
21
+
22
+ #include "src/util/ForwardDeclarations.h"
23
+ #include "src/util/GenericMatrix.h"
24
+ #include "src/H2Matrix/compute_cluster_bases_impl.h"
25
+ #include "src/H2Matrix/compute_dual_cluster_bases_impl.h"
26
+ #include "src/H2Matrix/H2ClusterTreeBase.h"
27
+ #include "src/H2Matrix/H2ClusterTree.h"
28
+ #include "src/H2Matrix/backward_transform_impl.h"
29
+ #include "src/H2Matrix/forward_transform_impl.h"
30
+ #include "src/H2Matrix/matrix_vector_product_impl.h"
31
+ #include "src/H2Matrix/H2MatrixBase.h"
32
+ #include "src/H2Matrix/H2Matrix.h"
33
+ #include "src/H2Matrix/H2kernelActor.h"
34
+ #endif
@@ -0,0 +1,30 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2024, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+ #ifndef FMCA_HMATRIX_MODULE_
13
+ #define FMCA_HMATRIX_MODULE_
14
+
15
+
16
+ #include "src/util/Macros.h"
17
+ //
18
+
19
+ #include "Clustering"
20
+ #include "MatrixEvaluator"
21
+ #include "H2Matrix"
22
+
23
+ #include "src/util/ForwardDeclarations.h"
24
+
25
+
26
+ #include "src/HMatrix/ACA.h"
27
+ #include "src/HMatrix/SVD.h"
28
+ #include "src/HMatrix/HMatrixBase.h"
29
+ #include "src/HMatrix/HMatrix.h"
30
+ #endif
@@ -0,0 +1,35 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2022, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+ #ifndef FMCA_INTERPOLATORS_MODULE_
13
+ #define FMCA_INTERPOLATORS_MODULE_
14
+
15
+ /**
16
+ * \ingroup Modules
17
+ * \defgroup Interpolators Interpolators
18
+ * \brief Module containing all functionality related to the farfield
19
+ * interpolation of asymptotically smooth kernels
20
+ *
21
+ **/
22
+
23
+ #include "src/util/Macros.h"
24
+ //
25
+
26
+ #include "src/util/MultiIndexSet.h"
27
+
28
+ #include "src/Interpolator/LejaPoints.h"
29
+ #include "src/Interpolator/DeMarchiPoints.h"
30
+ #include "src/Interpolator/MonomialInterpolator.h"
31
+ #include "src/Interpolator/TensorProductInterpolator.h"
32
+ #include "src/Interpolator/TotalDegreeInterpolator.h"
33
+ #include "src/Interpolator/WeightedTotalDegreeInterpolator.h"
34
+
35
+ #endif
@@ -0,0 +1,31 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2025, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+ #ifndef FMCA_KERNELINTERPOLATION_MODULE_
13
+ #define FMCA_KERNELINTERPOLATION_MODULE_
14
+
15
+ /**
16
+ * \ingroup Modules
17
+ * \defgroup KernelInterpolation KernelInterpolation
18
+ * \brief High level module to handle kernel interpolation tasks,
19
+ * such as matrix compression and solution
20
+ **/
21
+
22
+ #include "src/util/Macros.h"
23
+ //
24
+
25
+ #include "CovarianceKernel"
26
+ #include "Samplets"
27
+ #include "H2Matrix"
28
+
29
+ #include "src/KernelInterpolation/SampletKernelSolver.h"
30
+ #include "src/KernelInterpolation/MultipoleFunctionEvaluator.h"
31
+ #endif
@@ -0,0 +1,29 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2022, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+ #ifndef FMCA_LOWRANKAPPROXIMATION_MODULE_
13
+ #define FMCA_LOWRANKAPPROXIMATION_MODULE_
14
+
15
+ /**
16
+ * \ingroup Modules
17
+ * \defgroup LowRankApproximation LowRankApproximation
18
+ * \brief The LowRankApproximation module collects different algorithms for
19
+ performing low-rank approximations of covariance matrices
20
+ **/
21
+
22
+ #include "src/util/Macros.h"
23
+
24
+ #include "CovarianceKernel"
25
+ #include "src/LowRankApproximation/FALKON.h"
26
+ #include "src/LowRankApproximation/NystromApproximation.h"
27
+ #include "src/LowRankApproximation/PivotedCholesky.h"
28
+
29
+ #endif
@@ -0,0 +1,23 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2022, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+ #ifndef FMCA_MATRIXEVALUATORS_MODULE_
13
+ #define FMCA_MATRIXEVALUATORS_MODULE_
14
+
15
+ #include "src/util/Macros.h"
16
+ //
17
+
18
+ #include "Moments"
19
+
20
+ #include "src/MatrixEvaluator/NystromEvaluator.h"
21
+ #include "src/MatrixEvaluator/unsymmetricNystromEvaluator.h"
22
+
23
+ #endif
@@ -0,0 +1,39 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2022, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+ #ifndef FMCA_MOMENTS_MODULE_
13
+ #define FMCA_MOMENTS_MODULE_
14
+
15
+ /**
16
+ * \ingroup Modules
17
+ * \defgroup Moments Moments
18
+ * \brief Module containing all functionality related to the computation of
19
+ * moment matrices for the farfield of asymptotically smooth kernels
20
+ *
21
+ **/
22
+
23
+ #include "src/util/Macros.h"
24
+ //
25
+
26
+ #include "Clustering"
27
+ #include "Interpolator"
28
+
29
+ #include "src/util/Macros.h"
30
+ #include "src/util/BinomialCoefficient.h"
31
+ #include "src/util/TreeBase.h"
32
+
33
+ #include "src/Moments/SampletHelper.h"
34
+ #include "src/Moments/NystromMoments.h"
35
+ #include "src/Moments/WeightedNystromMoments.h"
36
+ #include "src/Moments/NystromSampletMoments.h"
37
+ #include "src/Moments/MinNystromSampletMoments.h"
38
+
39
+ #endif
@@ -0,0 +1,22 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2022, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+ #ifndef FMCA_PIVOTEDCHOLESKY_MODULE_
13
+ #define FMCA_PIVOTEDCHOLESKY_MODULE_
14
+
15
+ #include "src/util/Macros.h"
16
+ //
17
+
18
+ #include "CovarianceKernel"
19
+
20
+ #include "src/PivotedCholesky/PivotedCholesky.h"
21
+
22
+ #endif
@@ -0,0 +1,41 @@
1
+ // This file is part of FMCA, the Fast Multiresolution Covariance Analysis
2
+ // package.
3
+ //
4
+ // Copyright (c) 2022, Michael Multerer
5
+ //
6
+ // All rights reserved.
7
+ //
8
+ // This source code is subject to the GNU Affero General Public License v3.0
9
+ // license and without any warranty, see <https://github.com/muchip/FMCA>
10
+ // for further information.
11
+ //
12
+ #ifndef FMCA_SAMPLETS_MODULE_
13
+ #define FMCA_SAMPLETS_MODULE_
14
+
15
+ #include "src/util/Macros.h"
16
+ //
17
+
18
+ #include "Clustering"
19
+ #include "Moments"
20
+ #include "Interpolator"
21
+ #include "MatrixEvaluator"
22
+
23
+ #include "src/util/ForwardDeclarations.h"
24
+ #include "src/util/Macros.h"
25
+ #include "src/util/Graph.h"
26
+ #include "src/util/LIsomap.h"
27
+
28
+ #include "src/Samplets/SampletTreeBase.h"
29
+ #include "src/Samplets/H2SampletTreeBase.h"
30
+ #include "src/Samplets/adaptiveTreeSearch.h"
31
+ #include "src/Samplets/SampletMapper.h"
32
+ #include "src/Samplets/SampletTree.h"
33
+ #include "src/Samplets/H2SampletTree.h"
34
+ #include "src/Samplets/GraphSampletForest.h"
35
+
36
+ #include "src/Samplets/SampletAdaptiveClustering.h"
37
+ #include "src/Samplets/samplet_transformer.h"
38
+ #include "src/Samplets/samplet_matrix_compressor.h"
39
+ #include "src/Samplets/samplet_matrix_compressor_unsymmetric.h"
40
+
41
+ #endif