Releases: jonathf/chaospy
Releases · jonathf/chaospy
Support for approximate multivariate raw moments
Bugfix: Change TrunkNormal distribution type
TrunkNormal has mistakenly been classified as a J operator.
It has now correctly been changed to a ShiftScaleDistribution.
Bugfix sparsegrid
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
ADDED:
- Increase the number of dimensions supported in Sobol sequence to 1111.
- New
allow_approxflag inDistribution.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_momentas 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
include_axis_dimflag added toDistribution.sampleto force the
inclusion of extra dimension. (Currently first dimension is omitted is
len(dist) == 1.)chaospy.E_condchanged to accept simple polynomials as second argument,
allowing for e.g.chaospy.E_cond(q0*q1, q0, dist)which can be
interpreted as "expectation ofq0*q1givenq0with respect todist".- Bugfixes to
chaospy.Spearman - Full refactorization of the documentation.
- Updates
numpolyto 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 ofnumpyandscipy. (This relates to poetry install, so
working in py35 might still be possible in practice.)
Bugfixes, touch-ups and Python requirement
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_dimflag added toDistribution.sampleto force the
inclusion of extra dimension. (Currently first dimension is omitted is
len(dist) == 1.)
CHANGED:chaospy.E_condchanged to accept simple polynomials as second argument,
allowing for e.g.chaospy.E_cond(q0*q1, q0, dist)which can be
interpreted as "expectation ofq0*q1givenq0with respect todist".- 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 ofnumpyandscipy.
Refactoring Recursion Algorithm
chaospy.constructorremoved in favor forchaospy.UserDistribution.- Moved submodule
chaospy{.orthogonal->}.recurrence. - Stieltjes method get common interface
chaospy.stieltjeswhich uses analytical three-terms-recurrence if present, and an approximation if not. - Refactor
chaospy.discretized_stieltjesto 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_algorithmdefault changed tostieltjes(as it covers bothanalyticaland discretized Stieltjes). The flag
analyticalremoved. - Discretization default in Lanczos and Stieltjes changed from
fejertoclenshaw_curtisas edge evaluation is better handled these days, and the latter is better for when edges are finite. - Removed
chaospy.basisandchaospy.prange(which was announced in June to be superseded bychaospy.monomial).
Iterative distribution backend
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
UnsupportedFeatureErrorto differentiate illegal
operations (covered byStochasticallyDependentError) 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.Truncupdated to take bothlowerandupperat 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, DependencyErrordeprecated in favor ofStochasticallyDependentError.- Much improved REPR handle.
REMOVED:
chaospy.SampleDistremoved in favor ofchaospy.GaussianKDE.- Comparison operators
<,<=,>and=>for distributions. matmuloperator 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
Clarify licensing. * Move to clean MIT license everywhere. * Declare license file (and read-me) in Manifest to ensure it is bundled when reaching PyPI.