Third-Party and Source Acknowledgements
August 12, 2026 ยท View on GitHub
The original kodama-cpp code is released under the MIT License. Identified
third-party portions retain their compatible upstream terms. The formal
component and snapshot audit is in PROVENANCE.md.
Maintainer-authored source lineage
Stefano Cacciatore confirmed that tkcaccia <tkcaccia@gmail.com> is his
historical Git identity, that he developed KODAMA and fastPLS, and that his
adapted contributions in kodama-cpp are released under MIT. His publication
contact is stefano.cacciatore@icgeb.org.
The public KODAMA package is GPL (>= 2), and the public fastPLS package is GPL-3. Local ports of the KODAMA optimization procedure and fastPLS SIMPLS/LDA implementation are separately relicensed under MIT by Stefano Cacciatore for this repository. This permission covers only material whose copyright he owns; package and publication coauthors remain credited.
src/passing_message.cpp reproduces the mathematics of the
maintainer-authored passing.message function in tkcaccia/KODAMAextra and
replaces its R-level nearest-neighbor call and accumulation loops with the
package-owned exact grid search and float32 C++ kernels. KODAMAextra remains
credited as the source lineage; this preprocessing operation is not claimed as
a new method.
src/spatial_features.cpp, src/spatial_features_cuda.cu, and
src/spatial_features_metal.mm are original MIT-licensed implementations of a
low-rank spatial covariance screening method. No SPARK or SPARK-X source code
is included or linked. SPARK-X is used only as an external benchmark and is
credited in the method documentation and benchmark report.
The native visualization, CPU HNSW, and Metal implementation were adapted
from the MIT-licensed fastEmbedR snapshot
814350a5ca69b0c26e6df40377636f109055f84b. The exact 2D/3D grid search was
adapted from the MIT-licensed faissR snapshot
b317a9715dd33ad3a49cf7989a83b4f7f9f7b389. Both repositories were developed
and committed by Stefano Cacciatore under the Git identities documented above.
FAISS HNSW
The package-owned CPU HNSW implementation in src/native_knn.cpp was
distilled from the HNSW organization in FAISS 1.14.3, commit
0ca9df4792b173d573044ee14ca0704780176e82 (MIT). The file retains the Meta
Platforms and Stefano Cacciatore notices. The complete FAISS license is in
licenses/FAISS-LICENSE.
Metal KNN
src/metal_backend.mm is adapted from fastEmbedR and fastPLS. Its KNN
organization was informed by FAISS 1.14.3 and contains portions inherited from
the fused IVF list-scan/top-k organization of MLXPorts/Faiss-mlx commit
d092af559375144fc719cd88a10e414f92c625fa. Those portions remain
Apache-2.0; the FAISS-derived and kodama-cpp portions remain MIT. The file is
therefore marked MIT AND Apache-2.0 and carries Meta Platforms, Sydney Bach / The
Solace Project, and Stefano Cacciatore notices. The complete licenses are in
licenses/FAISS-LICENSE and licenses/FAISS-MLX-LICENSE.
The inspected Faiss-mlx Git history uses the author identity Sydney Renee, whereas the fastEmbedR source notice records Sydney Bach, The Solace Project. The inherited fastEmbedR notice is retained pending clarification upstream.
Native CUDA search
The package-owned CUDA exact search, IVF-Flat search, and k-means code in
src/native_cuda_backend.cu is informed by the algorithmic organization of
FAISS 1.14.3 (MIT), RAPIDS cuVS commit
ad9e2d2a617c8d51e3eebc920e5a60ad8dc59bcd (Apache-2.0), and the native Metal
work in fastEmbedR. Its k-means initialization, seed convention, Lloyd
iteration semantics, and empty-cluster repair are adapted from FAISS 1.14.3
faiss/Clustering.cpp and random utilities. The source file therefore retains
the Meta Platforms notice and MIT terms. No FAISS, cuVS, RAFT, or RMM binary is
vendored or linked, and no cuVS source is included. The upstream license texts
are retained in licenses/FAISS-LICENSE and licenses/CUVS-LICENSE.
UMAP and openTSNE
src/visualization.cpp, src/embedding_cuda_kernels.cu, and the Metal UMAP
and openTSNE optimizers in src/metal_backend.mm are adapted from fastEmbedR's MIT
implementation. Its documented mathematical and architectural
references include the BSD-licensed UMAP reference implementation, openTSNE,
t-SNE-CUDA, Rtsne behavior, opt-SNE/Multicore-opt-SNE, umappp, and ensmallen;
AppleSiliconFFT (MIT); and mlx-vis (Apache-2.0). No source from the GPL-licensed
uwot package is included in the core. See PROVENANCE.md for the complete
classification and the rule governing future adaptations. The current port
includes fastEmbedR's direct binary/fuzzy CSR construction, smooth-kNN
bandwidth calculation, backend-specific CPU CSR/CUDA COO-CSR/Metal clean-row
UMAP schedules, CPU float32 openTSNE optimizer, CUDA embedding kernels,
fixed-point atomic Metal UMAP updates, and native
Metal FFT-grid openTSNE. The Metal
port remains part of the mixed-license src/metal_backend.mm file because that
file also contains separately identified Apache-2.0 Faiss-mlx-derived search
organization.
PCA
src/pca.cpp, src/pca_cuda.cu, and their public wrappers implement a
standalone float32 randomized PCA using the current fastEmbedR/fastPLS
strategy for Gaussian sketches, power iterations, backend-specific automatic
settings, score/loadings orientation, and explained-variance reporting. The
implementation does not link either package, Armadillo, Eigen, or RAFT. The
fastPLS-derived strategy is included under Stefano Cacciatore's MIT
relicensing declaration above; the complete fastPLS publication and package
credit remain required.
Runtime and build dependencies
CPU, Metal, and CUDA numerical builds do not link FAISS, cuVS, fastEmbedR, fastPLS, or an R/Python runtime. Metal builds use Apple system frameworks (Foundation, Metal, and Metal Performance Shaders). CUDA builds use CUDA Toolkit libraries. OpenMP is optional.
No external FAISS or cuVS binary is distributed with this repository. Binary package distributors must include notices required by the particular CUDA, OpenMP, or platform binaries they redistribute.