-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
API changes to constructing DenseSkOps and populating their buffers, set next_state on construction, add web documentation, more stat tests #104
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… test_r123_kat.cc to be readable.
…menting random123 Nx32 arrays by 64 bit integers.
…exing into an implicit array by a potentially very-large number). Moved SparseSkOp and DenseSkOp constructor and destructor implementations into class definitions, rather than only declaring function signatures in the class definitions. Changed next_state for DenseSkOp and SparseSkOp to be const. Add shell/unimplemented compute_next_state functions for DenseSkOp and SparseSkOp for computing the correct value for next_state when a sketching operator is constructed. Add a fill_dense overload that lets you specify a required buffer layout (this function allocates workspace for an out-of-place transpose if needed). Add an omatcopy function for out-of-place stride changes that doesnt do any bound checking.
…eSkOp. Breaking API change that removes fill_dense(dist, n_rows, n_cols, ro_s, co_s, buff, seed) --- which returned a tuple of Layout and RNGState --- and replaces it with fill_dense(layout, dist, n_rows, n_cols, ro_s, co_s, buff, seed) --- which returns an RNGState.
rileyjmurray
changed the title
WIP : Ability to specify layout for DenseSkOp.buff, set next_state on construction, more stat tests
WIP : API changes to constructing DenseSkOps and populating their buffers, set next_state on construction, add web documentation, more stat tests
Aug 2, 2024
…ix small but substantial bug in sample_size_rep. Fix bounds error in KS test for sampling indices.
…sitive definite matrix by power method with explicit inversion
…, which currently assume uniform [-1,1].
…uniform distribution over [-sqrt(3),sqrt(3)] is awkward.
…after arrays had been allocated.
rileyjmurray
changed the title
WIP : API changes to constructing DenseSkOps and populating their buffers, set next_state on construction, add web documentation, more stat tests
API changes to constructing DenseSkOps and populating their buffers, set next_state on construction, add web documentation, more stat tests
Aug 21, 2024
This was referenced Aug 21, 2024
…C++20 concepts. Bring DenseSkOp and SparseSkOp more in alignment with one another. Simplify some unnecessarily verbose templating for functions that accepted sketching operators or sparse matrices as inputs.
…e meta-tests for power iteration implementation cheaper (by virtue of testing against the same tolerance but running fewer iterations, so the test is now more adversarial).
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is huge. I'm going to merge it even though there are outstanding documentation TODOs, as indicated in Issue #107.
Changes in RandBLAS proper
Major new identifiers
S.next_state
in O(1) time. This enables defining sequences of sketching operators with the same key without having to explicitly generate the operators.Minor new identifiers
repeated_fisher_yates
that skips writes tovals
andidxs_minor
and that has more intuitive argument names.Other changes
RNG_t
has been removed, a typenamestate_t
has been added (equal toRNGState<RNG>
) and the typenameT_t
typename has been renamed toscalar_t
. Similar changes have been made toDenseSkOp
for consistency across the two APIs.fill_dense
for writing an implicit submatrix to a given buffer. This function now requires a layout parameter as its first argument. It performs an out-of-place change of layout if the requested layout is different from the natural layout implied by the distribution object.Changes in documentation
sample_indices_iid_uniform
,sample_indicies_iid
, andweights_to_cdf
to a new page in the API reference.Changes in tests
New / significantly changed tests
handrolled_lapack.hh
implements algorithms that would generally be considered "LAPACK-level," although the algorithms won't be found in LAPACK itself.