Conversation
docs/src/api/inits/rand_hyper.md
Outdated
| # rand_hyper | ||
|
|
||
| ```@docs | ||
| # rand_hyper |
src/inits/inits_reservoir.jl
Outdated
|
|
||
| ## Keyword arguments | ||
|
|
||
| - `d`: Dimension of the hyperbolic manifold. |
There was a problem hiding this comment.
better to avoid single letter kwargs
|
Thanks for looking into this! The implementation seems to be ok, although I will need to double check against the python code. There are a couple of minor changes to tackle in the meantime, I left some comments |
|
out of curiosity, have you tried to compare it with the python implementation? |
|
Yes, I have written the current implementation taking direct inspiration from the python code. The only major difference is: |
|
could you try and post the results for a couple of matrices with the python and julia versions? |
|
Python version: Julia version: |
Fixes #303
Checklist
Implementation Details
The
hyper_initfunction executes the following steps:Refactoring & Helper Functions
To keep
hyper_initclean, the logic is modularized into three helper functions (taking inspiration from the original Proof of Concept):hyperbolic_distance_poincaresample_poincare_pointstopk_row_sparsifyMathematical Assumptions
A simplifying assumption is used when sampling the radius$\rho$ from the Poincaré ball. To match the approximation used in the PoC, the radius is sampled linearly:
Instead of the exact inverse transform sampling method:
Questions:
kwargsneed more clarity or better naming conventions, I am happy to adjust them.