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_approx
flag 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_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
include_axis_dim
flag added toDistribution.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 ofq0*q1
givenq0
with respect todist
".- 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 ofnumpy
andscipy
. (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_dim
flag added toDistribution.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 ofq0*q1
givenq0
with 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 ofnumpy
andscipy
.
Refactoring Recursion Algorithm
chaospy.constructor
removed in favor forchaospy.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 tostieltjes
(as it covers bothanalytical
and discretized Stieltjes). The flag
analytical
removed. - Discretization default in Lanczos and Stieltjes changed from
fejer
toclenshaw_curtis
as edge evaluation is better handled these days, and the latter is better for when edges are finite. - Removed
chaospy.basis
andchaospy.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
UnsupportedFeatureError
to 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.Trunc
updated to take bothlower
andupper
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 ofStochasticallyDependentError
.- Much improved REPR handle.
REMOVED:
chaospy.SampleDist
removed in favor ofchaospy.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
Clarify licensing. * Move to clean MIT license everywhere. * Declare license file (and read-me) in Manifest to ensure it is bundled when reaching PyPI.