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.
- fmca-0.1.0/.gitignore +10 -0
- fmca-0.1.0/CMakeLists.txt +112 -0
- fmca-0.1.0/ClassHierarchy.txt +20 -0
- fmca-0.1.0/FMCA/Clustering +52 -0
- fmca-0.1.0/FMCA/CovarianceKernel +32 -0
- fmca-0.1.0/FMCA/H2Matrix +34 -0
- fmca-0.1.0/FMCA/HMatrix +30 -0
- fmca-0.1.0/FMCA/Interpolator +35 -0
- fmca-0.1.0/FMCA/KernelInterpolation +31 -0
- fmca-0.1.0/FMCA/LowRankApproximation +29 -0
- fmca-0.1.0/FMCA/MatrixEvaluator +23 -0
- fmca-0.1.0/FMCA/Moments +39 -0
- fmca-0.1.0/FMCA/PivotedCholesky +22 -0
- fmca-0.1.0/FMCA/Samplets +41 -0
- fmca-0.1.0/FMCA/src/Clustering/Admissibility.h +190 -0
- fmca-0.1.0/FMCA/src/Clustering/ClusterTree.h +62 -0
- fmca-0.1.0/FMCA/src/Clustering/ClusterTreeBase.h +89 -0
- fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_ClusterTree.h +141 -0
- fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_MetisClusterTree.h +81 -0
- fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_MortonClusterTree.h +113 -0
- fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_SphereClusterTree.h +195 -0
- fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_UnitBinaryTree.h +160 -0
- fmca-0.1.0/FMCA/src/Clustering/ClusterTreeInitializer_UnitKDTree.h +163 -0
- fmca-0.1.0/FMCA/src/Clustering/ClusterTreeMetrics.h +245 -0
- fmca-0.1.0/FMCA/src/Clustering/ClusterTreeSplitter.h +125 -0
- fmca-0.1.0/FMCA/src/Clustering/MetisClusterTree.h +70 -0
- fmca-0.1.0/FMCA/src/Clustering/MortonClusterTree.h +65 -0
- fmca-0.1.0/FMCA/src/Clustering/MortonCompare.h +108 -0
- fmca-0.1.0/FMCA/src/Clustering/RandomProjectionTree.h +65 -0
- fmca-0.1.0/FMCA/src/Clustering/SphereClusterTree.h +78 -0
- fmca-0.1.0/FMCA/src/Clustering/UnitBinaryTree.h +62 -0
- fmca-0.1.0/FMCA/src/Clustering/UnitKDTree.h +62 -0
- fmca-0.1.0/FMCA/src/Clustering/approximateKNN.h +76 -0
- fmca-0.1.0/FMCA/src/Clustering/epsNN.h +92 -0
- fmca-0.1.0/FMCA/src/Clustering/kNN.h +141 -0
- fmca-0.1.0/FMCA/src/Clustering/uniformSubsample.h +93 -0
- fmca-0.1.0/FMCA/src/CovarianceKernel/CovarianceKernel.h +174 -0
- fmca-0.1.0/FMCA/src/CovarianceKernel/SpaceTimePerKernel.h +51 -0
- fmca-0.1.0/FMCA/src/CovarianceKernel/mpi_sparseKernelMatrixInverse.h +90 -0
- fmca-0.1.0/FMCA/src/CovarianceKernel/mpi_sparseKernelMatrixInverseSqrt.h +97 -0
- fmca-0.1.0/FMCA/src/CovarianceKernel/sparseKernelMatrixInverse.h +87 -0
- fmca-0.1.0/FMCA/src/CovarianceKernel/sparseKernelMatrixInverseSqrt.h +100 -0
- fmca-0.1.0/FMCA/src/H2Matrix/H2ClusterTree.h +78 -0
- fmca-0.1.0/FMCA/src/H2Matrix/H2ClusterTreeBase.h +64 -0
- fmca-0.1.0/FMCA/src/H2Matrix/H2Matrix.h +72 -0
- fmca-0.1.0/FMCA/src/H2Matrix/H2MatrixBase.h +259 -0
- fmca-0.1.0/FMCA/src/H2Matrix/H2MatrixProjector.h +78 -0
- fmca-0.1.0/FMCA/src/H2Matrix/H2kernelActor.h +97 -0
- fmca-0.1.0/FMCA/src/H2Matrix/backward_transform_impl.h +45 -0
- fmca-0.1.0/FMCA/src/H2Matrix/compute_cluster_bases_impl.h +88 -0
- fmca-0.1.0/FMCA/src/H2Matrix/compute_dual_cluster_bases_impl.h +93 -0
- fmca-0.1.0/FMCA/src/H2Matrix/forward_transform_impl.h +46 -0
- fmca-0.1.0/FMCA/src/H2Matrix/matrix_vector_product_impl.h +101 -0
- fmca-0.1.0/FMCA/src/HMatrix/ACA.h +92 -0
- fmca-0.1.0/FMCA/src/HMatrix/HMatrix.h +73 -0
- fmca-0.1.0/FMCA/src/HMatrix/HMatrixBase.h +238 -0
- fmca-0.1.0/FMCA/src/HMatrix/SVD.h +40 -0
- fmca-0.1.0/FMCA/src/Interpolator/DeMarchiPoints.h +58 -0
- fmca-0.1.0/FMCA/src/Interpolator/LejaPoints.h +122 -0
- fmca-0.1.0/FMCA/src/Interpolator/MonomialInterpolator.h +68 -0
- fmca-0.1.0/FMCA/src/Interpolator/TensorProductInterpolator.h +97 -0
- fmca-0.1.0/FMCA/src/Interpolator/TotalDegreeInterpolator.h +72 -0
- fmca-0.1.0/FMCA/src/Interpolator/WeightedTotalDegreeInterpolator.h +78 -0
- fmca-0.1.0/FMCA/src/Interpolator/evalPolynomials.h +71 -0
- fmca-0.1.0/FMCA/src/KernelInterpolation/MultipoleFunctionEvaluator.h +70 -0
- fmca-0.1.0/FMCA/src/KernelInterpolation/SampletKernelSolver.h +136 -0
- fmca-0.1.0/FMCA/src/LowRankApproximation/FALKON.h +158 -0
- fmca-0.1.0/FMCA/src/LowRankApproximation/NystromApproximation.h +63 -0
- fmca-0.1.0/FMCA/src/LowRankApproximation/PivotedCholesky.h +340 -0
- fmca-0.1.0/FMCA/src/MatrixEvaluator/NystromEvaluator.h +93 -0
- fmca-0.1.0/FMCA/src/MatrixEvaluator/unsymmetricNystromEvaluator.h +96 -0
- fmca-0.1.0/FMCA/src/Moments/MinNystromSampletMoments.h +56 -0
- fmca-0.1.0/FMCA/src/Moments/NystromMoments.h +49 -0
- fmca-0.1.0/FMCA/src/Moments/NystromSampletMoments.h +59 -0
- fmca-0.1.0/FMCA/src/Moments/SampletHelper.h +88 -0
- fmca-0.1.0/FMCA/src/Moments/WeightedNystromMoments.h +50 -0
- fmca-0.1.0/FMCA/src/Samplets/GraphSampletForest.h +157 -0
- fmca-0.1.0/FMCA/src/Samplets/GraphSampletTree.h +155 -0
- fmca-0.1.0/FMCA/src/Samplets/H2SampletTree.h +136 -0
- fmca-0.1.0/FMCA/src/Samplets/H2SampletTreeBase.h +94 -0
- fmca-0.1.0/FMCA/src/Samplets/SampletAdaptiveClustering.h +75 -0
- fmca-0.1.0/FMCA/src/Samplets/SampletMapper.h +53 -0
- fmca-0.1.0/FMCA/src/Samplets/SampletTree.h +196 -0
- fmca-0.1.0/FMCA/src/Samplets/SampletTreeBase.h +211 -0
- fmca-0.1.0/FMCA/src/Samplets/adaptiveTreeSearch.h +120 -0
- fmca-0.1.0/FMCA/src/Samplets/samplet_matrix_compressor.h +430 -0
- fmca-0.1.0/FMCA/src/Samplets/samplet_matrix_compressor_unsymmetric.h +281 -0
- fmca-0.1.0/FMCA/src/Samplets/samplet_transformer.h +150 -0
- fmca-0.1.0/FMCA/src/util/ActiveSetManager.h +153 -0
- fmca-0.1.0/FMCA/src/util/Alpha.h +95 -0
- fmca-0.1.0/FMCA/src/util/BinomialCoefficient.h +37 -0
- fmca-0.1.0/FMCA/src/util/CombiIndexSet.h +226 -0
- fmca-0.1.0/FMCA/src/util/Droplet.h +137 -0
- fmca-0.1.0/FMCA/src/util/ForwardDeclarations.h +80 -0
- fmca-0.1.0/FMCA/src/util/GaussLegendreNodes.h +66 -0
- fmca-0.1.0/FMCA/src/util/GenericMatrix.h +92 -0
- fmca-0.1.0/FMCA/src/util/Graph.h +255 -0
- fmca-0.1.0/FMCA/src/util/Grid2D.h +76 -0
- fmca-0.1.0/FMCA/src/util/Grid3D.h +76 -0
- fmca-0.1.0/FMCA/src/util/HaltonSet.h +148 -0
- fmca-0.1.0/FMCA/src/util/IDDFSForwardIterator.h +91 -0
- fmca-0.1.0/FMCA/src/util/IO.h +668 -0
- fmca-0.1.0/FMCA/src/util/KMinList.h +56 -0
- fmca-0.1.0/FMCA/src/util/LIsomap.h +80 -0
- fmca-0.1.0/FMCA/src/util/MDS.h +50 -0
- fmca-0.1.0/FMCA/src/util/MLMemoryBuffer.h +73 -0
- fmca-0.1.0/FMCA/src/util/Macros.h +122 -0
- fmca-0.1.0/FMCA/src/util/MultiIndexSet.h +235 -0
- fmca-0.1.0/FMCA/src/util/NormalDistribution.h +85 -0
- fmca-0.1.0/FMCA/src/util/PCG.h +46 -0
- fmca-0.1.0/FMCA/src/util/RandomTreeAccessor.h +58 -0
- fmca-0.1.0/FMCA/src/util/SSN.h +282 -0
- fmca-0.1.0/FMCA/src/util/SphericalHarmonics.h +89 -0
- fmca-0.1.0/FMCA/src/util/StdBuffer.h +35 -0
- fmca-0.1.0/FMCA/src/util/Tictoc.h +40 -0
- fmca-0.1.0/FMCA/src/util/TreeBase.h +151 -0
- fmca-0.1.0/FMCA/src/util/graphIO.h +144 -0
- fmca-0.1.0/FMCA/src/util/uniformSphericalPoints.h +28 -0
- fmca-0.1.0/LICENSE.md +661 -0
- fmca-0.1.0/PKG-INFO +187 -0
- fmca-0.1.0/README.md +177 -0
- fmca-0.1.0/assets/Multerer_Strobl24.pdf +0 -0
- fmca-0.1.0/assets/Tsignal.png +0 -0
- fmca-0.1.0/assets/adaptive_clusters.png +0 -0
- fmca-0.1.0/assets/compressed_kernel.png +0 -0
- fmca-0.1.0/assets/denoising_image.png +0 -0
- fmca-0.1.0/assets/filteredGP.png +0 -0
- fmca-0.1.0/assets/filteredKernel.png +0 -0
- fmca-0.1.0/assets/gaussian_process.png +0 -0
- fmca-0.1.0/assets/kernel.png +0 -0
- fmca-0.1.0/assets/samplets.png +0 -0
- fmca-0.1.0/assets/signal.png +0 -0
- fmca-0.1.0/assets/uniform_clusters.png +0 -0
- fmca-0.1.0/doc/Doxyfile +2783 -0
- fmca-0.1.0/doc/topgroups.dox +14 -0
- fmca-0.1.0/py/CMakeLists.txt +29 -0
- fmca-0.1.0/py/FMCA.cpp +751 -0
- fmca-0.1.0/pyproject.toml +57 -0
- fmca-0.1.0/tests/CMakeLists.txt +21 -0
- fmca-0.1.0/tests/devtests/test_ActiveSetManager.cpp +73 -0
- fmca-0.1.0/tests/devtests/test_Alpha.cpp +45 -0
- fmca-0.1.0/tests/devtests/test_Droplet.cpp +118 -0
- fmca-0.1.0/tests/devtests/test_Graph.cpp +99 -0
- fmca-0.1.0/tests/devtests/test_GraphSampletForest.cpp +150 -0
- fmca-0.1.0/tests/devtests/test_GraphSampletTree.cpp +165 -0
- fmca-0.1.0/tests/devtests/test_H2DualClusterBases.cpp +53 -0
- fmca-0.1.0/tests/devtests/test_H2MatrixProjector.cpp +74 -0
- fmca-0.1.0/tests/devtests/test_H2SampletCompressorUnsymmetric.cpp +101 -0
- fmca-0.1.0/tests/devtests/test_H2SampletCondition.cpp +154 -0
- fmca-0.1.0/tests/devtests/test_H2SphericalSampletCompressor.cpp +162 -0
- fmca-0.1.0/tests/devtests/test_H2kernelActor.cpp +61 -0
- fmca-0.1.0/tests/devtests/test_HMatrix.cpp +64 -0
- fmca-0.1.0/tests/devtests/test_KMinList.cpp +23 -0
- fmca-0.1.0/tests/devtests/test_KernelInterpolation.cpp +53 -0
- fmca-0.1.0/tests/devtests/test_LIsomap.cpp +73 -0
- fmca-0.1.0/tests/devtests/test_MDS.cpp +57 -0
- fmca-0.1.0/tests/devtests/test_MDS_graph.cpp +48 -0
- fmca-0.1.0/tests/devtests/test_MetisClusterTree.cpp +89 -0
- fmca-0.1.0/tests/devtests/test_MortonClusterTree.cpp +76 -0
- fmca-0.1.0/tests/devtests/test_MortonCompare.cpp +44 -0
- fmca-0.1.0/tests/devtests/test_MultiIndexSet.cpp +47 -0
- fmca-0.1.0/tests/devtests/test_Multilevel.cpp +79 -0
- fmca-0.1.0/tests/devtests/test_NystromApproximation.cpp +50 -0
- fmca-0.1.0/tests/devtests/test_RandomTreeAccessor.cpp +43 -0
- fmca-0.1.0/tests/devtests/test_SSN.cpp +162 -0
- fmca-0.1.0/tests/devtests/test_SphereClusterTree.cpp +76 -0
- fmca-0.1.0/tests/devtests/test_SphericalH2Matrix.cpp +86 -0
- fmca-0.1.0/tests/devtests/test_SphericalHarmonics.cpp +77 -0
- fmca-0.1.0/tests/devtests/test_TRSSN.cpp +190 -0
- fmca-0.1.0/tests/devtests/test_UnitBinaryTree.cpp +76 -0
- fmca-0.1.0/tests/devtests/test_UnitKDTree.cpp +82 -0
- fmca-0.1.0/tests/devtests/test_approximateKNN.cpp +65 -0
- fmca-0.1.0/tests/devtests/test_epsNN.cpp +60 -0
- fmca-0.1.0/tests/devtests/test_metisKway.cpp +99 -0
- fmca-0.1.0/tests/devtests/test_sparseKernelMatrixInverse.cpp +61 -0
- fmca-0.1.0/tests/devtests/test_sparseKernelMatrixInverseSqrt.cpp +84 -0
- fmca-0.1.0/tests/devtests/test_uniformSubsample.cpp +68 -0
- fmca-0.1.0/tests/test_AdaptiveTreeSearch.cpp +72 -0
- fmca-0.1.0/tests/test_ClusterTree.cpp +58 -0
- fmca-0.1.0/tests/test_ClusterTreeMetrics.cpp +80 -0
- fmca-0.1.0/tests/test_FALKON.cpp +49 -0
- fmca-0.1.0/tests/test_H2Matrix.cpp +81 -0
- fmca-0.1.0/tests/test_H2SampletCompressor.cpp +138 -0
- fmca-0.1.0/tests/test_PivotedCholesky.cpp +138 -0
- fmca-0.1.0/tests/test_RandomProjectionTree.cpp +93 -0
- fmca-0.1.0/tests/test_SampletBasis.cpp +51 -0
- fmca-0.1.0/tests/test_SampletTrafoTriplets.cpp +46 -0
- fmca-0.1.0/tests/test_SampletTransformer.cpp +46 -0
- fmca-0.1.0/tests/test_TreeIterator.cpp +38 -0
- fmca-0.1.0/tests/test_kNN.cpp +71 -0
fmca-0.1.0/.gitignore
ADDED
|
@@ -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
|
fmca-0.1.0/FMCA/H2Matrix
ADDED
|
@@ -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
|
fmca-0.1.0/FMCA/HMatrix
ADDED
|
@@ -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
|
fmca-0.1.0/FMCA/Moments
ADDED
|
@@ -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
|
fmca-0.1.0/FMCA/Samplets
ADDED
|
@@ -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
|