Skip to content
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

Feature/add analytic test rpcholesky #822

Merged
merged 13 commits into from
Oct 30, 2024

Conversation

gw265981
Copy link
Contributor

@gw265981 gw265981 commented Oct 24, 2024

PR Type

  • Bugfix
  • Documentation content changes
  • Tests

Description

  • Added an analytic test for RPCholesky on an independently derived example.
  • In the process, fixed a bug in the algorithm.
  • Also fixed a bug with the RPCholesky state (it now updates with the run of the algorithm) and the relating tests.
  • Added a documentation page with the derivation and example code.

How Has This Been Tested?

Test A: pytest tests/unit/test_solvers.py passes.
Test B: documentation/make html builds the docs.

Does this PR introduce a breaking change?

Not intentionally.

Checklist before requesting a review

  • I have made sure that my PR is not a duplicate.
  • My code follows the style guidelines of this project.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have performed a self-review of my code.
  • I have made corresponding changes to the documentation.
  • My changes generate no new warnings.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • Any dependent changes have been merged and published in downstream modules.

@CLAassistant
Copy link

CLAassistant commented Oct 24, 2024

CLA assistant check
All committers have signed the CLA.

Copy link
Contributor

Performance review

Commit 7852c0d - Merge 5a6f12d into bc5acf0

Statistically significant changes

  • basic_rpc:
    • OLD: compilation 0.6218 units ± 0.02447 units; execution 0.1587 units ± 0.0008577 units
    • NEW: compilation 0.6347 units ± 0.02708 units; execution 0.1015 units ± 0.0005442 units
    • Significant decrease in execution time (-36.01%, p=1.073e-26)

Normalisation values for new data:
Compilation: 1 unit = 360.08 ms
Execution: 1 unit = 794.38 ms

@gw265981 gw265981 linked an issue Oct 24, 2024 that may be closed by this pull request
@gw265981
Copy link
Contributor Author

gw265981 commented Oct 24, 2024

Note regarding unique/not-unique tests

I believe RPCholesky will always choose unique points whether or not it is forced. In fact, forcing a choice of the same point seems to lead to a division by 0 in one of the steps, hence breaking the algorithm.

This is why only the unique test is implemented.

Copy link
Contributor

Performance review

Commit 39caef0 - Merge 2ab5410 into cf9f6c0

No significant changes to performance.

qh681248
qh681248 previously approved these changes Oct 30, 2024
Copy link
Contributor

@qh681248 qh681248 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work!

Copy link
Contributor

Performance review

Commit e326968 - Merge fbaf937 into cf9f6c0

No significant changes to performance.

@qh681248 qh681248 merged commit 2666ab4 into main Oct 30, 2024
19 checks passed
@qh681248 qh681248 deleted the feature/add-analytic-test-rpcholesky branch October 30, 2024 10:48
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.

Add an analytic test for RPCholesky
3 participants