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/distribution speed up #261

Open
wants to merge 24 commits into
base: Development
Choose a base branch
from

Conversation

connor-krill
Copy link
Contributor

Distribution Improvements

Implement faster Uniform and Normal distribution methods and add string representations to all distributions.

Description

Added the closed form expressions for the probability density function (PDF), cumulative distribution function (CDF) and inverse cumulative distribution function (iCDF) for the normal and uniform distributions. Additionally, added string representations to all distributions using the __repr__ method. In accordance with the Python documentation the printable representation can be used to recreate the instance.

Related Issue

N/A

Motivation and Context

No official issue, but this was implemented after extensive profiling of the uniform and normal distributions lead to the conclusion that the SciPy implementations can be a bottleneck during large computations. The new methods in this PR are noticeably faster than the SciPy implementations.
Adding the printable representation of the distributions allows for easier debugging and makes UQpy a better teaching tool.

How Has This Been Tested?

All string representations have been tested to confirm accurate implementation. New tests are added for the PDF, CDF, and iCDF methods to ensure consistency with SciPy methods when inputs are not-a-number and infinity, as well as numerical accuracy when the inputs take on values in the support of the relevant distribution.

Types of changes

What types of changes does your code introduce? Put an x in all the boxes that apply:

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

Go over all the following points, and put an x in all the boxes that apply.
If you're unsure about any of these, don't hesitate to ask. We're here to help!

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

connor-krill and others added 24 commits June 2, 2023 16:25
…ew pdf, cdf, icdf methods in Uniform and Normal
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.

2 participants