It is important to test the core features of the vfx dpp sampler which is being integrated in the dppvfx-dev branch
Generally speaking, some efforts must be made regarding the description of the different functionalities through more detailed comments and more explicit variables
A "global" test is performed through the sampler itself (see here) but the internal features should be tested as well
In finite_dpps.py
To clean up the big FiniteDPP class I would put the following in exact_sampling.py
[bless]
Test the (epsilon, lamba) approx of the kernel in some way on some examples
rls_oversample -> rls_oversampling_param ?
tau -> rls_hat or rls_estimated ?
In utils.py
evaluate_L_diagonal
Test that it actually computes the diagonal of the corresponding kernel, room was made here
stable_invert_root
Need to write the documentation, see todo in docstring and test it, I can't really tell what it does
Suggestions:
L240-1
stable_eig = ~ np.isclose(..)
m = np.count_nonzero(stable_eig)
L246
if [eigenvec_thin.shape, eigenval_thin.shape] != [(n, m), (m,)]:
raise ...
estimate_rls_with_embedding
the naming of the function and args is confusing
estimate_rls_with_embedding -> estimate_rls_with/from_embedded_points ?
vfx_sampling_precompute_constantsdesired_s is not explicit enough -> ???natural_s is not explicit enough -> mean_dpp_cardinality/size_estim ?
f_opt where does this come from ?
vfx_sampling_do_sampling_loop
Explain better the starting point of the loop
It is important to test the core features of the vfx dpp sampler which is being integrated in the dppvfx-dev branch
Generally speaking, some efforts must be made regarding the description of the different functionalities through more detailed comments and more explicit variables
A "global" test is performed through the sampler itself (see here) but the internal features should be tested as well
In
finite_dpps.py
To clean up the big
FiniteDPP
class I would put the following inexact_sampling.py
.sample_exact()
in adpp_vfx_sampler
function.sample_exact_k_dpp()
in ak_dpp_vfx_sampler
functionIn
bless.py
Write the mathematical meaning of "(eps, lambda)-accurate dictionary" somewhere and refer to specific Theorem/equation in the reference
estimate_rls_bless
Test the accuracy of the RLS estimation L57 np.linalg.svd -> import scipy.linalg as la [...] la.svd ?reduce_lambda
X
->data
?D
->eps_lam_approx_of_L
?[
bless
] Test the (epsilon, lamba) approx of the kernel in some way on some examplesrls_oversample
->rls_oversampling_param
?tau
->rls_hat
orrls_estimated
?In
utils.py
evaluate_L_diagonal
Test that it actually computes the diagonal of the corresponding kernel, room was made herestable_invert_root
Need to write the documentation, see todo in docstring and test it, I can't really tell what it does Suggestions: L240-1L246
In
vfx_sampling.py
compute_nystrom_dict
compute_nystrom_dict
->compute_nystrom_dict_approx_of_L_kernel
?oversample
->oversampling
?H_bless
->nb_iter_bless
?estimate_rls_with_embedding
the naming of the function and args is confusingestimate_rls_with_embedding
-> estimate_rls_with/from_embedded_points ?vfx_sampling_precompute_constants
desired_s
is not explicit enough ->???
natural_s
is not explicit enough ->mean_dpp_cardinality/size_estim
?f_opt
where does this come from ?vfx_sampling_do_sampling_loop
Explain better the starting point of the loop