Yeah, my implementation is currently using EJML, just because that’s the first thing I found, but it shouldn’t be much trouble to port to any other matrix library that has the operations. From my perspective I also don’t care very much which library I would integrate my implementation in, if there’s another library where it would fit well. Also, if everything goes well, in the next few weeks I might have another dimensionality reduction algorithm to contribute as well (UMAP, which seems quite a bit more complex than PCA, and significantly more recent).