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

Add sharp bits doc #267

Merged
merged 5 commits into from
May 18, 2023
Merged

Add sharp bits doc #267

merged 5 commits into from
May 18, 2023

Conversation

thomaspinder
Copy link
Collaborator

Type of changes

  • Bug fix
  • New feature
  • Documentation / docstrings
  • Tests
  • Other

Checklist

  • I've formatted the new code by running poetry run pre-commit run --all-files --show-diff-on-failure before committing.
  • [-] I've added tests for new code.
  • [-] I've added docstrings for the new code.

Description

This PR introduces a notebook that details the sharp bits of GPJax e.g., positive definiteness, cubic scaling, and bijectors.

Issue Number: N/A

@thomaspinder thomaspinder added the documentation Improvements or additions to documentation label May 17, 2023
@thomaspinder thomaspinder added this to the v1.0.0 milestone May 17, 2023
@thomaspinder thomaspinder self-assigned this May 17, 2023
Copy link
Member

@daniel-dodd daniel-dodd left a comment

Choose a reason for hiding this comment

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

Nice stuff @thomaspinder. Just spotted some typo's/inconsistencies, and a few terms that should be defined (like kernel), then it can be merged. Put suggestions of illustrating some of these ideas with diagrams to bring the documentation to life, that could be done in a future PR.

docs/sharp_bits.md Outdated Show resolved Hide resolved
docs/sharp_bits.md Outdated Show resolved Hide resolved
docs/sharp_bits.md Outdated Show resolved Hide resolved
docs/sharp_bits.md Outdated Show resolved Hide resolved
docs/sharp_bits.md Outdated Show resolved Hide resolved
docs/sharp_bits.md Outdated Show resolved Hide resolved
docs/sharp_bits.md Outdated Show resolved Hide resolved
docs/sharp_bits.md Outdated Show resolved Hide resolved
Comment on lines +120 to +126
equations. By working with $`\mathbf{L} = \operatorname{chol}{\mathbf{A}}`$ instead of
$`\mathbf{A}`$, we save a significant amount of floating-point operations (flops) by
solving two triangular systems of equations (one for $`\mathbf{L}`$ and another for
$`\mathbf{L}^{\top}`$) instead of one dense system of equations. Solving two triangular systems
of equations has complexity $`\mathcal{O}(n^3/6)`$; a vast improvement compared to
regular solvers that have $`\mathcal{O}(n^3)`$ complexity in the number of datapoints
$`n`$.
Copy link
Member

Choose a reason for hiding this comment

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

Nice! Maybe you could give here succinct intuition for why this is the case and or we could make a picture of a backward pass to bring this to life.

docs/sharp_bits.md Outdated Show resolved Hide resolved
@daniel-dodd daniel-dodd merged commit 57ac3f9 into main May 18, 2023
@daniel-dodd daniel-dodd deleted the sharp_bits branch May 18, 2023 21:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants