Skip to content

Releases: jonathf/chaospy

Support for approximate multivariate raw moments

11 May 06:55
98371f1
Compare
Choose a tag to compare
v4.2.7

Support for approximate multivariate raw moments. (#335)

Bugfix: Change TrunkNormal distribution type

11 May 06:33
6cdf4c7
Compare
Choose a tag to compare

TrunkNormal has mistakenly been classified as a J operator.
It has now correctly been changed to a ShiftScaleDistribution.

Bugfix sparsegrid

16 Apr 18:19
da31792
Compare
Choose a tag to compare

Bugfix:
Growth rule not enabled by default in sparse grid, making sparse grid not take full advantage of nestedness for quadrature rules that required it.

In other words: Sparse-grid for Fejer, Clenshaw-Curtis, Newton-Cotes and Discrete should now take more advantage of the sparse-grid and create fewer samples per order. Other rules are not affected.

Improved Fejer/Clenshaw-Curtis and Sobol Sequence

07 Dec 14:02
3649df3
Compare
Choose a tag to compare

ADDED:

  • Increase the number of dimensions supported in Sobol sequence to 1111.
  • New allow_approx flag in Distribution.pdf.
  • More docs and tests.
  • Support for bibliography in docs.

CHANGED:

  • Updated Clenshaw-Curtis and Fejér algorithm which scales much better.
  • More aggressive sample use in approximate_moment as bottleneck was the
    quadrature (Clenshaw-Curtis and Fejér).
  • Better support for density approximation. Allow for more contexts by
    weaving a full density history.
  • Bugfix: wrappers distribution no longer ignores wrapped distribution during
    dependency declaration. Ignoring them have in some cases caused some
    variables not to be declared correctly.

Documentation refactor

23 Nov 12:37
14d4de7
Compare
Choose a tag to compare
  • include_axis_dim flag added to Distribution.sample to force the
    inclusion of extra dimension. (Currently first dimension is omitted is
    len(dist) == 1.)
  • chaospy.E_cond changed to accept simple polynomials as second argument,
    allowing for e.g. chaospy.E_cond(q0*q1, q0, dist) which can be
    interpreted as "expectation of q0*q1 given q0 with respect to dist".
  • Bugfixes to chaospy.Spearman
  • Full refactorization of the documentation.
  • Updates numpoly to version 1.1.0. (some small breaking changes).
  • Deprecated report_on_exception. Caused recursion problems, and only a
    semi-useful diagnostic tool to begin with.
  • No more support for Python 3.5. This allows the poetry install to use
    newer version of numpy and scipy. (This relates to poetry install, so
    working in py35 might still be possible in practice.)

Bugfixes, touch-ups and Python requirement

14 Nov 11:13
05e08c6
Compare
Choose a tag to compare

New Python requirement: ^2.7 || >=3.6
I.e. no more support for python 3.0-3.5.
(Python 2 support will likely be dropped by the end of the year.)

ADDED:

  • include_axis_dim flag added to Distribution.sample to force the
    inclusion of extra dimension. (Currently first dimension is omitted is
    len(dist) == 1.)
    CHANGED:
  • chaospy.E_cond changed to accept simple polynomials as second argument,
    allowing for e.g. chaospy.E_cond(q0*q1, q0, dist) which can be
    interpreted as "expectation of q0*q1 given q0 with respect to dist".
  • Bugfixes to chaospy.Spearman
    REMOVED:
  • Deprecated report_on_exception. Caused recursion problems, and only a
    semi-useful diagnostic tool to begin with.
  • No more support for Python 3.5. This allows the poetry install to use
    newer version of numpy and scipy.

Refactoring Recursion Algorithm

05 Nov 10:35
272f235
Compare
Choose a tag to compare
  • chaospy.constructor removed in favor for chaospy.UserDistribution.
  • Moved submodule chaospy{.orthogonal->}.recurrence.
  • Stieltjes method get common interface chaospy.stieltjes which uses analytical three-terms-recurrence if present, and an approximation if not.
  • Refactor chaospy.discretized_stieltjes to be an iterative size method with tolerance criteria instead of fixed size method. This is likely going to be faster for simpler and lower order orthogonal polynomials and more accurate for the more complicated distributions/higher order polynomials, Also some changes to the call signature.
  • Flag: Default recurrence_algorithm default changed to stieltjes (as it covers both analytical and discretized Stieltjes). The flag
    analytical removed.
  • Discretization default in Lanczos and Stieltjes changed from fejer to clenshaw_curtis as edge evaluation is better handled these days, and the latter is better for when edges are finite.
  • Removed chaospy.basis and chaospy.prange (which was announced in June to be superseded by chaospy.monomial).

Iterative distribution backend

26 Oct 12:52
918b07a
Compare
Choose a tag to compare

ADDED:

  • Multivariate kernel density estimation distribution GaussianKDE.
  • Gaussian Mixture Model: GaussianMixture.
  • Support for additive recursive sampling scheme additive_recursive.
  • New basic distribution: InverseGamma.
  • New error type of error UnsupportedFeatureError to differentiate illegal
    operations (covered by StochasticallyDependentError) and unsupported
    features.
  • Property for checking for dependencies: Dist.stochastic_dependent.
  • Lots of illegal probability distribution configuration that would cause
    trouble during execution are now caught earlier with an appropriate
    error.

CHANGED:

  • Lots of distribution have fixes such that dist.inv([0, 1]) is now allowed
    in general.
  • chaospy.Trunc updated to take both lower and upper at the same time.
  • Enhanced == operator, which deals with equality as in the same dist.
    E.g. dist == cp.J(dist) is now true.
  • Tiny changes in argument signature for some distribution. Same arguments,
    but some change in names or order to standardize. These changes affect:
    Angelit, Burr, Cauchy, ChiSquared, F, FoldedNormal,
    GeneralizedExtreme, HyperbolicSecant, Levy, LogWeibull, Logistic,
    MvStudentT, Pareto1, Pareto2, PowerLogNormal, PowerNormal,
    StudentT,
  • DependencyError deprecated in favor of StochasticallyDependentError.
  • Much improved REPR handle.

REMOVED:

  • chaospy.SampleDist removed in favor of chaospy.GaussianKDE.
  • Comparison operators <, <=, > and => for distributions.
  • matmul operator is in practice an really odd duckling that is highly
    incompatible with the rotation idea. If linear map is needed, use new
    MeanCovariance.

Fix to Sobol order

27 Nov 07:42
Compare
Choose a tag to compare
Clarify licensing.

* Move to clean MIT license everywhere.
* Declare license file (and read-me) in Manifest to ensure it is bundled when reaching PyPI.