Skip to content

Conversation

@barrettMCW
Copy link

From #1181
Hey y'all! I should have something that builds and adds a histomicstk._rust module with all the bindings. As it stands, I have them separate for testing purposes, just appended _rs to the original function name. Assuming all looks good to everyone I can replace the python versions with the rust bindings.

Do we want to add more bindings from rust? Like utils or _linalg? (get_principal_components probably performs about the same, but magnitude and normalize might be faster)

Noticed some things too. There's slight discrepancies between the matrices still, I'm not sure what it is. It's all identical up to f32, but beyond that precision it gets a little off. Also realized my benchmarks were slightly biased, still a major improvement.
Here's a non-biased result on masked 4µ:

Rust PCA took 3.0037682056427 seconds
HTK PCA took 11.629833936691284 seconds
Rust PCA used 8.7 GB
HTK PCA used 11.4 GB

@barrettMCW
Copy link
Author

@manthey Finally passing all the circleci stuff! If everything looks good as is, I can replace the old python versions with the rust version and double check that things still pass.

@barrettMCW
Copy link
Author

@manthey Hey! Just checking in. Is there anything I can do to help?

@manthey
Copy link
Contributor

manthey commented Oct 27, 2025

Sorry for my delay here -- I've been distracted with other projects and vacation. I'll dig into this this week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants