From 4c84d625172ee8234ab101532bb3195a2be25903 Mon Sep 17 00:00:00 2001 From: jorenham Date: Fri, 20 Dec 2024 16:26:07 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=BD=EF=B8=8F=20`stats`:=201.15.0=20new?= =?UTF-8?q?=20`Mixture`=20and=20`ContinuousDistribution`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .mypyignore-todo | 6 +- scipy-stubs/stats/__init__.pyi | 22 +- .../stats/_distribution_infrastructure.pyi | 148 ++++- .../stats/_probability_distribution.pyi | 575 +++++++++++------- 4 files changed, 503 insertions(+), 248 deletions(-) diff --git a/.mypyignore-todo b/.mypyignore-todo index 67f1b9ed..f040755d 100644 --- a/.mypyignore-todo +++ b/.mypyignore-todo @@ -1,5 +1,3 @@ scipy\.stats\.__all__ -scipy\.stats\.(Uniform|Normal|Mixture) -scipy\.stats\.(abs|truncate|exp|log) -scipy\.stats\.make_distribution -scipy\.stats\.order_statistic +scipy\.stats\.(Normal|Uniform) +scipy\.stats\.(_distribution_infrastructure\.)?(abs|exp|log|make_distribution|order_statistic|truncate) diff --git a/scipy-stubs/stats/__init__.pyi b/scipy-stubs/stats/__init__.pyi index 4cbfc76e..834a2a58 100644 --- a/scipy-stubs/stats/__init__.pyi +++ b/scipy-stubs/stats/__init__.pyi @@ -5,6 +5,9 @@ from ._bws_test import bws_test from ._censored_data import CensoredData from ._correlation import chatterjeexi from ._covariance import Covariance + +# TODO(jorenham) +from ._distribution_infrastructure import Mixture # , abs, exp, log, make_distribution, order_statistic, truncate from ._entropy import differential_entropy, entropy from ._fit import fit, goodness_of_fit from ._hypotests import ( @@ -72,6 +75,7 @@ from ._multivariate import ( vonmises_fisher, wishart, ) +from ._new_distributions import Normal, Uniform from ._page_trend_test import page_trend_test from ._resampling import ( BootstrapMethod, @@ -302,9 +306,13 @@ __all__ = [ "Covariance", "DegenerateDataWarning", "FitError", + "Mixture", "MonteCarloMethod", "NearConstantInputWarning", + "Normal", "PermutationMethod", + "Uniform", + # "abs", "alexandergovern", "alpha", "anderson", @@ -371,6 +379,7 @@ __all__ = [ "entropy", "epps_singleton_2samp", "erlang", + # "exp", "expectile", "expon", "exponnorm", @@ -450,6 +459,7 @@ __all__ = [ "levy_stable", "linregress", "lmoment", + # "log", "loggamma", "logistic", "loglaplace", @@ -458,6 +468,7 @@ __all__ = [ "logser", "loguniform", "lomax", + # "make_distribution", "mannwhitneyu", "matrix_normal", "maxwell", @@ -493,6 +504,7 @@ __all__ = [ "normaltest", "norminvgauss", "obrientransform", + # "order_statistic", "ortho_group", "page_trend_test", "pareto", @@ -560,6 +572,7 @@ __all__ = [ "trim1", "trim_mean", "trimboth", + # "truncate", "truncexpon", "truncnorm", "truncpareto", @@ -598,13 +611,4 @@ __all__ = [ "zipfian", "zmap", "zscore", - # "Mixture", - # "Normal", - # "Uniform", - # "abs", - # "exp", - # "log", - # "make_distribution", - # "order_statistic", - # "truncate", ] diff --git a/scipy-stubs/stats/_distribution_infrastructure.pyi b/scipy-stubs/stats/_distribution_infrastructure.pyi index 4df13ef5..bac18902 100644 --- a/scipy-stubs/stats/_distribution_infrastructure.pyi +++ b/scipy-stubs/stats/_distribution_infrastructure.pyi @@ -1,14 +1,16 @@ # mypy: disable-error-code="explicit-override" +# pyright: reportUnannotatedClassAttribute=false import abc from collections.abc import Mapping, Sequence, Set as AbstractSet -from typing import Any, Final, Literal as L, TypeAlias, overload -from typing_extensions import LiteralString, TypeVar, override +from typing import Any, ClassVar, Final, Generic, Literal as L, TypeAlias, overload +from typing_extensions import LiteralString, Self, TypeVar, override import numpy as np +import optype as op import optype.numpy as onp import optype.typing as opt -from scipy._typing import ToRNG +from scipy._typing import AnyShape, ToRNG from ._probability_distribution import _BaseDistribution # TODO: @@ -157,41 +159,159 @@ class _Parameterization: ### -class ContinuousDistribution(_BaseDistribution): +_XT_co = TypeVar("_XT_co", bound=np.number[Any], default=np.float64, covariant=True) +_InexactT_co = TypeVar("_InexactT_co", bound=np.inexact[Any], default=np.float64, covariant=True) +_ShapeT0_co = TypeVar("_ShapeT0_co", bound=tuple[int, ...], default=tuple[int, ...], covariant=True) +_DistrT_co = TypeVar( + "_DistrT_co", + bound=ContinuousDistribution[np.number[Any]], + default=ContinuousDistribution[np.number[Any]], + covariant=True, +) + +# placeholder for `matplotlib.axes.Axes` +_Axes: TypeAlias = object +_AxesT = TypeVar("_AxesT", bound=_Axes, default=Any) + +_PlotQuantity: TypeAlias = L["x", "cdf", "ccdf", "icdf", "iccdf", "logcdf", "logccdf", "ilogcdf", "ilogccdf"] + +_JustFloat: TypeAlias = opt.Just[float] | np.floating[Any] +_Null: TypeAlias = opt.Just[object] + +_null: Final[_Null] = ... + +class ContinuousDistribution(_BaseDistribution[_XT_co, _ShapeT0_co], Generic[_XT_co, _ShapeT0_co]): + __array_priority__: ClassVar[float] = 1 + + @property + def tol(self, /) -> float | np.float64 | _Null | None: ... + @tol.setter + def tol(self, tol: float | np.float64 | _Null | None, /) -> None: ... + # + @property + def validation_policy(self, /) -> _ValidationPolicy: ... + @validation_policy.setter + def validation_policy(self, validation_policy: _ValidationPolicy, /) -> None: ... + # + @property + def cache_policy(self, /) -> _CachePolicy: ... + @cache_policy.setter + def cache_policy(self, cache_policy: _CachePolicy, /) -> None: ... + # def __init__( self, /, *, - tol: opt.Just[float], + tol: opt.Just[float] | _Null = ..., validation_policy: _ValidationPolicy = None, cache_policy: _CachePolicy = None, ) -> None: ... + + # + def __neg__(self, /) -> ShiftedScaledDistribution[Self, _ShapeT0_co]: ... + def __abs__(self, /) -> FoldedDistribution[Self, _ShapeT0_co]: ... + + # TODO(jorenham): Accept `onp.ToFloatND`? + def __add__(self, rshift: onp.ToFloat, /) -> ShiftedScaledDistribution[Self, _ShapeT0_co]: ... + def __sub__(self, lshift: onp.ToFloat, /) -> ShiftedScaledDistribution[Self, _ShapeT0_co]: ... + def __mul__(self, scale: onp.ToFloat, /) -> ShiftedScaledDistribution[Self, _ShapeT0_co]: ... + def __truediv__(self, iscale: onp.ToFloat, /) -> ShiftedScaledDistribution[Self, _ShapeT0_co]: ... + def __pow__(self, exp: onp.ToInt, /) -> MonotonicTransformedDistribution[Self, _ShapeT0_co]: ... + __radd__ = __add__ + __rsub__ = __sub__ + __rmul__ = __mul__ + __rtruediv__ = __truediv__ + __rpow__ = __pow__ + + # def reset_cache(self, /) -> None: ... -class TransformedDistribution(ContinuousDistribution): - # TODO(jorenham) - ... + # + def plot( + self, + x: str = "x", + y: str = "pdf", + *, + t: tuple[_PlotQuantity, _JustFloat, _JustFloat] = ("cdf", 0.0005, 0.9995), + ax: _AxesT | None = None, + ) -> _AxesT: ... -class TruncatedDistribution(TransformedDistribution): + # + @overload + def llf(self, sample: onp.ToFloat | onp.ToFloatND, /, *, axis: None) -> np.float64: ... + @overload + def llf(self, sample: onp.ToFloat | onp.ToFloatStrict1D, /, *, axis: AnyShape | None = -1) -> np.float64: ... + @overload + def llf(self, sample: onp.ToFloatStrict2D, /, *, axis: op.CanIndex | tuple[op.CanIndex] = -1) -> onp.Array1D[np.float64]: ... + @overload + def llf(self, sample: onp.ToFloatStrict2D, /, *, axis: tuple[op.CanIndex, op.CanIndex]) -> np.float64: ... + @overload + def llf(self, sample: onp.ToFloatStrict3D, /, *, axis: op.CanIndex | tuple[op.CanIndex] = -1) -> onp.Array2D[np.float64]: ... + @overload + def llf(self, sample: onp.ToFloatStrict3D, /, *, axis: tuple[op.CanIndex, op.CanIndex]) -> onp.Array1D[np.float64]: ... + @overload + def llf(self, sample: onp.ToFloatStrict3D, /, *, axis: tuple[op.CanIndex, op.CanIndex, op.CanIndex]) -> np.float64: ... + @overload + def llf( + self, + sample: onp.ToFloat | onp.ToFloatND, + /, + *, + axis: AnyShape | None = -1, + ) -> np.float64 | onp.ArrayND[np.float64]: ... + + # + +class TransformedDistribution(ContinuousDistribution[np.float64, _ShapeT0_co], Generic[_DistrT_co, _ShapeT0_co]): # TODO(jorenham) ... -class ShiftedScaledDistribution(TransformedDistribution): +class TruncatedDistribution(TransformedDistribution[_DistrT_co, _ShapeT0_co], Generic[_DistrT_co, _ShapeT0_co]): # TODO(jorenham) ... -class OrderStatisticDistribution(TransformedDistribution): +class ShiftedScaledDistribution(TransformedDistribution[_DistrT_co, _ShapeT0_co], Generic[_DistrT_co, _ShapeT0_co]): # TODO(jorenham) ... -class MonotonicTransformedDistribution(TransformedDistribution): +class OrderStatisticDistribution(TransformedDistribution[_DistrT_co, _ShapeT0_co], Generic[_DistrT_co, _ShapeT0_co]): # TODO(jorenham) ... -class FoldedDistribution(TransformedDistribution): +class MonotonicTransformedDistribution(TransformedDistribution[_DistrT_co, _ShapeT0_co], Generic[_DistrT_co, _ShapeT0_co]): # TODO(jorenham) ... -class Mixture(_BaseDistribution): +class FoldedDistribution(TransformedDistribution[_DistrT_co, _ShapeT0_co], Generic[_DistrT_co, _ShapeT0_co]): # TODO(jorenham) ... + +class Mixture(_BaseDistribution[_InexactT_co, tuple[()]], Generic[_InexactT_co]): + _shape: tuple[()] + _dtype: np.dtype[_InexactT_co] + _components: Sequence[ContinuousDistribution[_InexactT_co, tuple[()]]] + _weights: onp.Array1D[_InexactT_co] + validation_policy: None + + @property + def components(self, /) -> list[ContinuousDistribution[_InexactT_co, tuple[()]]]: ... + @property + def weights(self, /) -> onp.Array1D[_InexactT_co]: ... + + # + def __init__( + self, + /, + components: Sequence[ContinuousDistribution[_InexactT_co, tuple[()]]], + *, + weights: onp.ToFloat1D | None = None, + ) -> None: ... + + # + @override + def kurtosis( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + self, + /, + *, + method: L["formula", "general", "transform", "normalize", "cache"] | None = None, + ) -> np.float64 | np.longdouble: ... diff --git a/scipy-stubs/stats/_probability_distribution.pyi b/scipy-stubs/stats/_probability_distribution.pyi index d7eed6e0..1897a317 100644 --- a/scipy-stubs/stats/_probability_distribution.pyi +++ b/scipy-stubs/stats/_probability_distribution.pyi @@ -21,12 +21,13 @@ _ShapeT0_co = TypeVar("_ShapeT0_co", bound=tuple[int, ...], default=tuple[int, . _Tuple2: TypeAlias = tuple[_T, _T] _ToQRNG: TypeAlias = QMCEngine | ToRNG +_MedianMethod: TypeAlias = L["formula", "icdf"] | None +_ModeMethod: TypeAlias = L["formula", "optimization"] | None _SampleMethod: TypeAlias = L["formula", "inverse_transform"] | None _RMomentMethod: TypeAlias = L["formula", "transform", "quadrature", "cache"] | None _CMomentMethod: TypeAlias = L["formula", "transform", "quadrature", "cache", "normalize"] | None _SMomentMethod: TypeAlias = L["formula", "transform", "general", "cache", "normalize"] | None -_MedianMethod: TypeAlias = L["formula", "icdf"] | None -_ModeMethod: TypeAlias = L["formula", "optimization"] | None +_KurtosisConvention: TypeAlias = L["non-excess", "excess"] _EntropyMethod: TypeAlias = L["formula", "logexp", "quadrature"] | None _PDFMethod: TypeAlias = L["formula", "logexp"] | None @@ -131,40 +132,55 @@ _Self2: TypeAlias = _Self[_XT, tuple[int, int]] _Self3: TypeAlias = _Self[_XT, tuple[int, int, int]] _Self1_: TypeAlias = _Self[_XT, onp.AtLeast1D] +# TODO(jorenham): Merge into ContinuousDistribution? @type_check_only class _BaseDistribution(_ProbabilityDistribution[_XT_co], Generic[_XT_co, _ShapeT0_co]): @overload - def support(self: _Self0[_XT], /) -> _Tuple2[_XT_co]: ... + def support(self: _Self0[_XT], /) -> _Tuple2[_XT]: ... @overload def support(self: _Self[_XT, _ShapeT], /) -> _Tuple2[onp.Array[_ShapeT, _XT]]: ... # @overload - def median(self: _Self0[_XT], /, *, method: _MedianMethod) -> _XT: ... + def median(self: _Self0[_XT], /, *, method: _MedianMethod = None) -> _XT: ... @overload - def median(self: _Self[_XT, _ShapeT], /, *, method: _MedianMethod) -> onp.Array[_ShapeT, _XT]: ... + def median(self: _Self[_XT, _ShapeT], /, *, method: _MedianMethod = None) -> onp.Array[_ShapeT, _XT]: ... # @overload - def mode(self: _Self0[_XT], /, *, method: _ModeMethod) -> _XT: ... + def mode(self: _Self0[_XT], /, *, method: _ModeMethod = None) -> _XT: ... @overload - def mode(self: _Self[_XT, _ShapeT], /, *, method: _ModeMethod) -> onp.Array[_ShapeT, _XT]: ... + def mode(self: _Self[_XT, _ShapeT], /, *, method: _ModeMethod = None) -> onp.Array[_ShapeT, _XT]: ... # @overload - def sample(self: _Self0[_XT], /, shape: tuple[()], *, method: _SampleMethod, rng: _ToQRNG) -> _XT: ... + def sample(self: _Self0[_XT], /, shape: tuple[()] = (), *, method: _SampleMethod = None, rng: _ToQRNG = None) -> _XT: ... @overload - def sample(self: _Self0[_XT], /, shape: op.CanIndex, *, method: _SampleMethod, rng: _ToQRNG) -> onp.Array1D[_XT]: ... + def sample( + self: _Self0[_XT], + /, + shape: op.CanIndex, + *, + method: _SampleMethod = None, + rng: _ToQRNG = None, + ) -> onp.Array1D[_XT]: ... @overload - def sample(self: _Self0[_XT], /, shape: _ShapeT, *, method: _SampleMethod, rng: _ToQRNG) -> onp.ArrayND[_XT, _ShapeT]: ... + def sample( + self: _Self0[_XT], + /, + shape: _ShapeT, + *, + method: _SampleMethod = None, + rng: _ToQRNG = None, + ) -> onp.ArrayND[_XT, _ShapeT]: ... @overload def sample( self: _Self[_XT, _ShapeT], /, - shape: tuple[()], + shape: tuple[()] = (), *, - method: _SampleMethod, - rng: _ToQRNG, + method: _SampleMethod = None, + rng: _ToQRNG = None, ) -> onp.ArrayND[_XT, _ShapeT]: ... @overload def sample( @@ -172,8 +188,8 @@ class _BaseDistribution(_ProbabilityDistribution[_XT_co], Generic[_XT_co, _Shape /, shape: op.CanIndex | Iterable[op.CanIndex], *, - method: _SampleMethod, - rng: _ToQRNG, + method: _SampleMethod = None, + rng: _ToQRNG = None, ) -> onp.ArrayND[_XT, _ShapeT] | onp.ArrayND[_XT]: ... # first union type is needed on `numpy<2.1` @overload def sample( @@ -181,56 +197,71 @@ class _BaseDistribution(_ProbabilityDistribution[_XT_co], Generic[_XT_co, _Shape /, shape: op.CanIndex | Iterable[op.CanIndex], *, - method: _SampleMethod, - rng: _ToQRNG, + method: _SampleMethod = None, + rng: _ToQRNG = None, ) -> _XT_co | onp.ArrayND[_XT_co, _ShapeT] | onp.ArrayND[_XT_co]: ... # first union type is needed on `numpy<2.1` # @overload - def mean(self: _Self0, /, *, method: _RMomentMethod) -> _Float: ... + def mean(self: _Self0, /, *, method: _RMomentMethod = None) -> _Float: ... @overload - def mean(self: _Self[Any, _ShapeT], /, *, method: _RMomentMethod) -> _FloatND[_ShapeT]: ... + def mean(self: _Self[Any, _ShapeT], /, *, method: _RMomentMethod = None) -> _FloatND[_ShapeT]: ... # @overload - def variance(self: _Self0, /, *, method: _CMomentMethod) -> _Float: ... + def variance(self: _Self0, /, *, method: _CMomentMethod = None) -> _Float: ... @overload - def variance(self: _Self[Any, _ShapeT], /, *, method: _CMomentMethod) -> _FloatND[_ShapeT]: ... + def variance(self: _Self[Any, _ShapeT], /, *, method: _CMomentMethod = None) -> _FloatND[_ShapeT]: ... # @overload - def standard_deviation(self: _Self0, /, *, method: _CMomentMethod) -> _Float: ... + def standard_deviation(self: _Self0, /, *, method: _CMomentMethod = None) -> _Float: ... @overload - def standard_deviation(self: _Self[Any, _ShapeT], /, *, method: _CMomentMethod) -> _FloatND[_ShapeT]: ... + def standard_deviation(self: _Self[Any, _ShapeT], /, *, method: _CMomentMethod = None) -> _FloatND[_ShapeT]: ... # @overload - def skewness(self: _Self0, /, *, method: _SMomentMethod) -> _Float: ... + def skewness(self: _Self0, /, *, method: _SMomentMethod = None) -> _Float: ... @overload - def skewness(self: _Self[Any, _ShapeT], /, *, method: _SMomentMethod) -> _FloatND[_ShapeT]: ... + def skewness(self: _Self[Any, _ShapeT], /, *, method: _SMomentMethod = None) -> _FloatND[_ShapeT]: ... # - # where is the `convention` parameter? @overload - def kurtosis(self: _Self0, /, *, method: _SMomentMethod) -> _Float: ... + def kurtosis( + self: _Self0, + /, + *, + method: _SMomentMethod = None, + convention: _KurtosisConvention = "non-excess", + ) -> _Float: ... @overload - def kurtosis(self: _Self[Any, _ShapeT], /, *, method: _SMomentMethod) -> _FloatND[_ShapeT]: ... + def kurtosis( + self: _Self[Any, _ShapeT], + /, + *, + method: _SMomentMethod = None, + convention: _KurtosisConvention = "non-excess", + ) -> _FloatND[_ShapeT]: ... # @overload - def moment(self: _Self0, /, order: onp.ToInt, kind: L["raw"], *, method: _RMomentMethod) -> _Float: ... + def moment(self: _Self0, /, order: onp.ToInt = 1, kind: L["raw"] = "raw", *, method: _RMomentMethod = None) -> _Float: ... + @overload + def moment(self: _Self0, /, order: onp.ToInt, kind: L["central"], *, method: _CMomentMethod = None) -> _Float: ... + @overload + def moment(self: _Self0, /, order: onp.ToInt = 1, *, kind: L["central"], method: _CMomentMethod = None) -> _Float: ... @overload - def moment(self: _Self0, /, order: onp.ToInt, kind: L["central"], *, method: _CMomentMethod) -> _Float: ... + def moment(self: _Self0, /, order: onp.ToInt, kind: L["standardized"], *, method: _SMomentMethod = None) -> _Float: ... @overload - def moment(self: _Self0, /, order: onp.ToInt, kind: L["standardized"], *, method: _SMomentMethod) -> _Float: ... + def moment(self: _Self0, /, order: onp.ToInt = 1, *, kind: L["standardized"], method: _SMomentMethod = None) -> _Float: ... @overload def moment( self: _Self[Any, _ShapeT], /, - order: onp.ToInt, - kind: L["raw"], + order: onp.ToInt = 1, + kind: L["raw"] = "raw", *, - method: _RMomentMethod, + method: _RMomentMethod = None, ) -> _FloatND[_ShapeT]: ... @overload def moment( @@ -239,446 +270,548 @@ class _BaseDistribution(_ProbabilityDistribution[_XT_co], Generic[_XT_co, _Shape order: onp.ToInt, kind: L["central"], *, - method: _CMomentMethod, + method: _CMomentMethod = None, ) -> _FloatND[_ShapeT]: ... @overload - def moment( # pyright: ignore[reportIncompatibleMethodOverride] # pyright false positive bug + def moment( + self: _Self[Any, _ShapeT], + /, + order: onp.ToInt = 1, + *, + kind: L["central"], + method: _CMomentMethod = None, + ) -> _FloatND[_ShapeT]: ... + @overload + def moment( self: _Self[Any, _ShapeT], /, order: onp.ToInt, kind: L["standardized"], *, - method: _SMomentMethod, + method: _SMomentMethod = None, + ) -> _FloatND[_ShapeT]: ... + @overload + def moment( # pyright: ignore[reportIncompatibleMethodOverride] # pyright false positive bug + self: _Self[Any, _ShapeT], + /, + order: onp.ToInt = 1, + *, + kind: L["standardized"], + method: _SMomentMethod = None, ) -> _FloatND[_ShapeT]: ... # @overload - def entropy(self: _Self0, /, *, method: _EntropyMethod) -> _Float: ... + def entropy(self: _Self0, /, *, method: _EntropyMethod = None) -> _Float: ... @overload - def entropy(self: _Self[Any, _ShapeT], /, *, method: _EntropyMethod) -> _FloatND[_ShapeT]: ... + def entropy(self: _Self[Any, _ShapeT], /, *, method: _EntropyMethod = None) -> _FloatND[_ShapeT]: ... # @overload - def logentropy(self: _Self0, /, *, method: _EntropyMethod) -> _Complex: ... + def logentropy(self: _Self0, /, *, method: _EntropyMethod = None) -> _Complex: ... @overload - def logentropy(self: _Self[Any, _ShapeT], /, *, method: _EntropyMethod) -> _ComplexND[_ShapeT]: ... + def logentropy(self: _Self[Any, _ShapeT], /, *, method: _EntropyMethod = None) -> _ComplexND[_ShapeT]: ... # # NOTE: The signatures of `pdf` and `logpdf` are equivalent @overload # self: T1-d, x: 0-d - def pdf(self: _Self[Any, _ShapeT], x: onp.ToFloat, /, *, method: _PDFMethod) -> _FloatND[_ShapeT]: ... + def pdf(self: _Self[Any, _ShapeT], x: onp.ToFloat, /, *, method: _PDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: 0-d - def pdf(self: _Self0, x: onp.ToFloat, /, *, method: _PDFMethod) -> _Float: ... + def pdf(self: _Self0, x: onp.ToFloat, /, *, method: _PDFMethod = None) -> _Float: ... @overload # self: 0-d, x: 1-d - def pdf(self: _Self0, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod) -> _Float1D: ... + def pdf(self: _Self0, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod = None) -> _Float1D: ... @overload # self: 0-d, x: 2-d - def pdf(self: _Self0, x: onp.ToFloatStrict2D, /, *, method: _PDFMethod) -> _Float2D: ... + def pdf(self: _Self0, x: onp.ToFloatStrict2D, /, *, method: _PDFMethod = None) -> _Float2D: ... @overload # self: 0-d, x: 3-d - def pdf(self: _Self0, x: onp.ToFloatStrict3D, /, *, method: _PDFMethod) -> _Float3D: ... + def pdf(self: _Self0, x: onp.ToFloatStrict3D, /, *, method: _PDFMethod = None) -> _Float3D: ... @overload # self: 0-d, x: T1-d - def pdf(self: _Self0, x: _ToFloatND[_ShapeT], /, *, method: _PDFMethod) -> _FloatND[_ShapeT]: ... + def pdf(self: _Self0, x: _ToFloatND[_ShapeT], /, *, method: _PDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: >=1-d def pdf( # first union type is needed on `numpy<2.1` - self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _PDFMethod + self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _PDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 1-d, x: 1-d - def pdf(self: _Self1, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod) -> _Float2D: ... + def pdf(self: _Self1, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod = None) -> _Float2D: ... @overload # self: 1-d, x: 2-d - def pdf(self: _Self1, x: onp.ToFloatStrict2D, /, *, method: _PDFMethod) -> _Float3D: ... + def pdf(self: _Self1, x: onp.ToFloatStrict2D, /, *, method: _PDFMethod = None) -> _Float3D: ... @overload # self: 1-d, x: >=-d - def pdf(self: _Self1, x: onp.ToFloatND, /, *, method: _PDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def pdf(self: _Self1, x: onp.ToFloatND, /, *, method: _PDFMethod = None) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 2-d, x: 1-d - def pdf(self: _Self2, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod) -> _Float3D: ... + def pdf(self: _Self2, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod = None) -> _Float3D: ... @overload # self: 2-d, x: >=1-d - def pdf(self: _Self2, x: onp.ToFloatND, /, *, method: _PDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def pdf(self: _Self2, x: onp.ToFloatND, /, *, method: _PDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 3-d, x: >=1-d - def pdf(self: _Self3, x: onp.ToFloatND, /, *, method: _PDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def pdf(self: _Self3, x: onp.ToFloatND, /, *, method: _PDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: >=1-d - def pdf(self: _Self1_, x: _ToFloat0ND, /, *, method: _PDFMethod) -> _FloatND: ... + def pdf(self: _Self1_, x: _ToFloat0ND, /, *, method: _PDFMethod = None) -> _FloatND: ... # @overload # self: T1-d, x: 0-d - def logpdf(self: _Self[Any, _ShapeT], x: onp.ToFloat, /, *, method: _PDFMethod) -> _FloatND[_ShapeT]: ... + def logpdf(self: _Self[Any, _ShapeT], x: onp.ToFloat, /, *, method: _PDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: 0-d - def logpdf(self: _Self0, x: onp.ToFloat, /, *, method: _PDFMethod) -> _Float: ... + def logpdf(self: _Self0, x: onp.ToFloat, /, *, method: _PDFMethod = None) -> _Float: ... @overload # self: 0-d, x: 1-d - def logpdf(self: _Self0, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod) -> _Float1D: ... + def logpdf(self: _Self0, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod = None) -> _Float1D: ... @overload # self: 0-d, x: 2-d - def logpdf(self: _Self0, x: onp.ToFloatStrict2D, /, *, method: _PDFMethod) -> _Float2D: ... + def logpdf(self: _Self0, x: onp.ToFloatStrict2D, /, *, method: _PDFMethod = None) -> _Float2D: ... @overload # self: 0-d, x: 3-d - def logpdf(self: _Self0, x: onp.ToFloatStrict3D, /, *, method: _PDFMethod) -> _Float3D: ... + def logpdf(self: _Self0, x: onp.ToFloatStrict3D, /, *, method: _PDFMethod = None) -> _Float3D: ... @overload # self: 0-d, x: T1-d - def logpdf(self: _Self0, x: _ToFloatND[_ShapeT], /, *, method: _PDFMethod) -> _FloatND[_ShapeT]: ... + def logpdf(self: _Self0, x: _ToFloatND[_ShapeT], /, *, method: _PDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: >=1-d def logpdf( # first union type is needed on `numpy<2.1` - self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _PDFMethod + self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _PDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 1-d, x: 1-d - def logpdf(self: _Self1, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod) -> _Float2D: ... + def logpdf(self: _Self1, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod = None) -> _Float2D: ... @overload # self: 1-d, x: 2-d - def logpdf(self: _Self1, x: onp.ToFloatStrict2D, /, *, method: _PDFMethod) -> _Float3D: ... + def logpdf(self: _Self1, x: onp.ToFloatStrict2D, /, *, method: _PDFMethod = None) -> _Float3D: ... @overload # self: 1-d, x: >=1-d - def logpdf(self: _Self1, x: onp.ToFloatND, /, *, method: _PDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def logpdf(self: _Self1, x: onp.ToFloatND, /, *, method: _PDFMethod = None) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 2-d, x: 1-d - def logpdf(self: _Self2, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod) -> _Float3D: ... + def logpdf(self: _Self2, x: onp.ToFloatStrict1D, /, *, method: _PDFMethod = None) -> _Float3D: ... @overload # self: 2-d, x: >=1-d - def logpdf(self: _Self2, x: onp.ToFloatND, /, *, method: _PDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def logpdf(self: _Self2, x: onp.ToFloatND, /, *, method: _PDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 3-d, x: >=1-d - def logpdf(self: _Self3, x: onp.ToFloatND, /, *, method: _PDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def logpdf(self: _Self3, x: onp.ToFloatND, /, *, method: _PDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: >=1-d - def logpdf(self: _Self1_, x: _ToFloat0ND, /, *, method: _PDFMethod) -> _FloatND: ... + def logpdf(self: _Self1_, x: _ToFloat0ND, /, *, method: _PDFMethod = None) -> _FloatND: ... # # NOTE: Apart from the `method` type, the signatures of `[log]cdf` and `[log]ccdf` are equivalent @overload # self: T1-d, x: 0-d, y?: 0-d - def cdf(self: _Self[Any, _ShapeT], x: onp.ToFloat, y: onp.ToFloat | None, /, *, method: _CDFMethod) -> _FloatND[_ShapeT]: ... + def cdf( + self: _Self[Any, _ShapeT], x: onp.ToFloat, y: onp.ToFloat | None = None, /, *, method: _CDFMethod = None + ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: 0-d, y?: 0-d - def cdf(self: _Self0, x: onp.ToFloat, y: onp.ToFloat | None, /, *, method: _CDFMethod) -> _Float: ... + def cdf(self: _Self0, x: onp.ToFloat, y: onp.ToFloat | None = None, /, *, method: _CDFMethod = None) -> _Float: ... @overload # self: 0-d, x: 1-d, y?: <=1-d - def cdf(self: _Self0, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CDFMethod) -> _Float1D: ... + def cdf( + self: _Self0, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CDFMethod = None + ) -> _Float1D: ... @overload # self: 0-d, x: <=1-d, y: 1-d - def cdf(self: _Self0, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod) -> _Float1D: ... + def cdf(self: _Self0, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod = None) -> _Float1D: ... @overload # self: 0-d, x: 2-d, y?: <=2-d - def cdf(self: _Self0, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None, /, *, method: _CDFMethod) -> _Float2D: ... + def cdf( + self: _Self0, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None = None, /, *, method: _CDFMethod = None + ) -> _Float2D: ... @overload # self: 0-d, x: <=2-d, y: 2-d - def cdf(self: _Self0, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CDFMethod) -> _Float2D: ... + def cdf(self: _Self0, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CDFMethod = None) -> _Float2D: ... @overload # self: 0-d, x: 3-d, y?: <=3-d - def cdf(self: _Self0, x: onp.ToFloatStrict3D, y: _ToFloatMax3D | None, /, *, method: _CDFMethod) -> _Float3D: ... + def cdf( + self: _Self0, x: onp.ToFloatStrict3D, y: _ToFloatMax3D | None = None, /, *, method: _CDFMethod = None + ) -> _Float3D: ... @overload # self: 0-d, x: <=3-d, y: 3-d - def cdf(self: _Self0, x: _ToFloatMax3D, y: onp.ToFloatStrict3D, /, *, method: _CDFMethod) -> _Float3D: ... + def cdf(self: _Self0, x: _ToFloatMax3D, y: onp.ToFloatStrict3D, /, *, method: _CDFMethod = None) -> _Float3D: ... @overload # self: 0-d, x: T1-d, y?: T1-d | <=1-d - def cdf(self: _Self0, x: _ToFloatND[_ShapeT], y: _ToFloatMax1D | None, /, *, method: _CDFMethod) -> _FloatND[_ShapeT]: ... + def cdf( + self: _Self0, x: _ToFloatND[_ShapeT], y: _ToFloatMax1D | None = None, /, *, method: _CDFMethod = None + ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: T1-d | <=1-d, y: T1-d - def cdf(self: _Self0, x: _ToFloatMaxND[_ShapeT], y: _ToFloatND[_ShapeT], /, *, method: _CDFMethod) -> _FloatND[_ShapeT]: ... + def cdf( + self: _Self0, x: _ToFloatMaxND[_ShapeT], y: _ToFloatND[_ShapeT], /, *, method: _CDFMethod = None + ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: >=1-d, y?: >=0-d def cdf( # first union type is needed on `numpy<2.1` - self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CDFMethod + self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 0-d, x: >=0-d, y: >=1-d def cdf( # first union type is needed on `numpy<2.1` - self: _Self0, x: _ToFloat0ND, y: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _CDFMethod + self: _Self0, x: _ToFloat0ND, y: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _CDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 1-d, x: 1-d, y?: <=1-d - def cdf(self: _Self1, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CDFMethod) -> _Float2D: ... + def cdf( + self: _Self1, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CDFMethod = None + ) -> _Float2D: ... @overload # self: 1-d, x: <=1-d, y: 1-d - def cdf(self: _Self1, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod) -> _Float2D: ... + def cdf(self: _Self1, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod = None) -> _Float2D: ... @overload # self: 1-d, x: 2-d, y?: <=2-d - def cdf(self: _Self1, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None, /, *, method: _CDFMethod) -> _Float3D: ... + def cdf( + self: _Self1, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None = None, /, *, method: _CDFMethod = None + ) -> _Float3D: ... @overload # self: 1-d, x: <=2-d, y: 2-d - def cdf(self: _Self1, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CDFMethod) -> _Float3D: ... + def cdf(self: _Self1, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CDFMethod = None) -> _Float3D: ... @overload # self: 1-d, x: >=1-d, y?: >=0-d - def cdf(self: _Self1, x: onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def cdf( + self: _Self1, x: onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CDFMethod = None + ) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 1-d, x: >=0-d, y: >=1-d - def cdf(self: _Self1, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def cdf(self: _Self1, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CDFMethod = None) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 2-d, x: 1-d, y?: <=1-d - def cdf(self: _Self2, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CDFMethod) -> _Float3D: ... + def cdf( + self: _Self2, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CDFMethod = None + ) -> _Float3D: ... @overload # self: 2-d, x: <=1-d, y: 1-d - def cdf(self: _Self2, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod) -> _Float3D: ... + def cdf(self: _Self2, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod = None) -> _Float3D: ... @overload # self: 2-d, x: >=1-d, y?: >=0-d - def cdf(self: _Self2, x: onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def cdf( + self: _Self2, x: onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CDFMethod = None + ) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 2-d, x: >=0-d, y: >=1-d - def cdf(self: _Self2, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def cdf(self: _Self2, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 3-d, x: >=0-d, y?: >=0-d - def cdf(self: _Self3, x: _ToFloat0ND, y: _ToFloat0ND | None, /, *, method: _CDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def cdf( + self: _Self3, x: _ToFloat0ND, y: _ToFloat0ND | None = None, /, *, method: _CDFMethod = None + ) -> _FloatND[onp.AtLeast3D]: ... @overload # self: >=1-d, x: >=0-d, y?: >=0-d - def cdf(self: _Self1_, x: _ToFloat0ND, y: _ToFloat0ND | None, /, *, method: _CDFMethod) -> _FloatND: ... + def cdf(self: _Self1_, x: _ToFloat0ND, y: _ToFloat0ND | None = None, /, *, method: _CDFMethod = None) -> _FloatND: ... # @overload # self: T1-d, x: 0-d, y?: 0-d def logcdf( - self: _Self[Any, _ShapeT], x: onp.ToFloat, y: onp.ToFloat | None, /, *, method: _CDFMethod + self: _Self[Any, _ShapeT], x: onp.ToFloat, y: onp.ToFloat | None = None, /, *, method: _CDFMethod = None ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: 0-d, y?: 0-d - def logcdf(self: _Self0, x: onp.ToFloat, y: onp.ToFloat | None, /, *, method: _CDFMethod) -> _Float: ... + def logcdf(self: _Self0, x: onp.ToFloat, y: onp.ToFloat | None = None, /, *, method: _CDFMethod = None) -> _Float: ... @overload # self: 0-d, x: 1-d, y?: <=1-d - def logcdf(self: _Self0, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CDFMethod) -> _Float1D: ... + def logcdf( + self: _Self0, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CDFMethod = None + ) -> _Float1D: ... @overload # self: 0-d, x: <=1-d, y: 1-d - def logcdf(self: _Self0, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod) -> _Float1D: ... + def logcdf(self: _Self0, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod = None) -> _Float1D: ... @overload # self: 0-d, x: 2-d, y?: <=2-d - def logcdf(self: _Self0, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None, /, *, method: _CDFMethod) -> _Float2D: ... + def logcdf( + self: _Self0, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None = None, /, *, method: _CDFMethod = None + ) -> _Float2D: ... @overload # self: 0-d, x: <=2-d, y: 2-d - def logcdf(self: _Self0, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CDFMethod) -> _Float2D: ... + def logcdf(self: _Self0, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CDFMethod = None) -> _Float2D: ... @overload # self: 0-d, x: 3-d, y?: <=3-d - def logcdf(self: _Self0, x: onp.ToFloatStrict3D, y: _ToFloatMax3D | None, /, *, method: _CDFMethod) -> _Float3D: ... + def logcdf( + self: _Self0, x: onp.ToFloatStrict3D, y: _ToFloatMax3D | None = None, /, *, method: _CDFMethod = None + ) -> _Float3D: ... @overload # self: 0-d, x: <=3-d, y: 3-d - def logcdf(self: _Self0, x: _ToFloatMax3D, y: onp.ToFloatStrict3D, /, *, method: _CDFMethod) -> _Float3D: ... + def logcdf(self: _Self0, x: _ToFloatMax3D, y: onp.ToFloatStrict3D, /, *, method: _CDFMethod = None) -> _Float3D: ... @overload # self: 0-d, x: T1-d, y?: T1-d | <=1-d - def logcdf(self: _Self0, x: _ToFloatND[_ShapeT], y: _ToFloatMax1D | None, /, *, method: _CDFMethod) -> _FloatND[_ShapeT]: ... + def logcdf( + self: _Self0, x: _ToFloatND[_ShapeT], y: _ToFloatMax1D | None = None, /, *, method: _CDFMethod = None + ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: T1-d | <=1-d, y: T1-d def logcdf( - self: _Self0, x: _ToFloatMaxND[_ShapeT], y: _ToFloatND[_ShapeT], /, *, method: _CDFMethod + self: _Self0, x: _ToFloatMaxND[_ShapeT], y: _ToFloatND[_ShapeT], /, *, method: _CDFMethod = None ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: >=1-d, y?: >=0-d def logcdf( # first union type is needed on `numpy<2.1` - self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CDFMethod + self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 0-d, x: >=0-d, y: >=1-d def logcdf( # first union type is needed on `numpy<2.1` - self: _Self0, x: _ToFloat0ND, y: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _CDFMethod + self: _Self0, x: _ToFloat0ND, y: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _CDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 1-d, x: 1-d, y?: <=1-d - def logcdf(self: _Self1, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CDFMethod) -> _Float2D: ... + def logcdf( + self: _Self1, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CDFMethod = None + ) -> _Float2D: ... @overload # self: 1-d, x: <=1-d, y: 1-d - def logcdf(self: _Self1, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod) -> _Float2D: ... + def logcdf(self: _Self1, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod = None) -> _Float2D: ... @overload # self: 1-d, x: 2-d, y?: <=2-d - def logcdf(self: _Self1, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None, /, *, method: _CDFMethod) -> _Float3D: ... + def logcdf( + self: _Self1, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None = None, /, *, method: _CDFMethod = None + ) -> _Float3D: ... @overload # self: 1-d, x: <=2-d, y: 2-d - def logcdf(self: _Self1, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CDFMethod) -> _Float3D: ... + def logcdf(self: _Self1, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CDFMethod = None) -> _Float3D: ... @overload # self: 1-d, x: >=1-d, y?: >=0-d - def logcdf(self: _Self1, x: onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def logcdf( + self: _Self1, x: onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CDFMethod = None + ) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 1-d, x: >=0-d, y: >=1-d - def logcdf(self: _Self1, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def logcdf(self: _Self1, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CDFMethod = None) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 2-d, x: 1-d, y?: <=1-d - def logcdf(self: _Self2, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CDFMethod) -> _Float3D: ... + def logcdf( + self: _Self2, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CDFMethod = None + ) -> _Float3D: ... @overload # self: 2-d, x: <=1-d, y: 1-d - def logcdf(self: _Self2, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod) -> _Float3D: ... + def logcdf(self: _Self2, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CDFMethod = None) -> _Float3D: ... @overload # self: 2-d, x: >=1-d, y?: >=0-d - def logcdf(self: _Self2, x: onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def logcdf( + self: _Self2, x: onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CDFMethod = None + ) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 2-d, x: >=0-d, y: >=1-d - def logcdf(self: _Self2, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def logcdf(self: _Self2, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 3-d, x: >=0-d, y?: >=0-d - def logcdf(self: _Self3, x: _ToFloat0ND, y: _ToFloat0ND | None, /, *, method: _CDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def logcdf( + self: _Self3, x: _ToFloat0ND, y: _ToFloat0ND | None = None, /, *, method: _CDFMethod = None + ) -> _FloatND[onp.AtLeast3D]: ... @overload # self: >=1-d, x: >=0-d, y?: >=0-d - def logcdf(self: _Self1_, x: _ToFloat0ND, y: _ToFloat0ND | None, /, *, method: _CDFMethod) -> _FloatND: ... + def logcdf(self: _Self1_, x: _ToFloat0ND, y: _ToFloat0ND | None = None, /, *, method: _CDFMethod = None) -> _FloatND: ... # @overload # self: T1-d, x: 0-d, y?: 0-d def ccdf( - self: _Self[Any, _ShapeT], x: onp.ToFloat, y: onp.ToFloat | None, /, *, method: _CCDFMethod + self: _Self[Any, _ShapeT], x: onp.ToFloat, y: onp.ToFloat | None = None, /, *, method: _CCDFMethod = None ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: 0-d, y?: 0-d - def ccdf(self: _Self0, x: onp.ToFloat, y: onp.ToFloat | None, /, *, method: _CCDFMethod) -> _Float: ... + def ccdf(self: _Self0, x: onp.ToFloat, y: onp.ToFloat | None = None, /, *, method: _CCDFMethod = None) -> _Float: ... @overload # self: 0-d, x: 1-d, y?: <=1-d - def ccdf(self: _Self0, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CCDFMethod) -> _Float1D: ... + def ccdf( + self: _Self0, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float1D: ... @overload # self: 0-d, x: <=1-d, y: 1-d - def ccdf(self: _Self0, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod) -> _Float1D: ... + def ccdf(self: _Self0, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod = None) -> _Float1D: ... @overload # self: 0-d, x: 2-d, y?: <=2-d - def ccdf(self: _Self0, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None, /, *, method: _CCDFMethod) -> _Float2D: ... + def ccdf( + self: _Self0, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float2D: ... @overload # self: 0-d, x: <=2-d, y: 2-d - def ccdf(self: _Self0, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CCDFMethod) -> _Float2D: ... + def ccdf(self: _Self0, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CCDFMethod = None) -> _Float2D: ... @overload # self: 0-d, x: 3-d, y?: <=3-d - def ccdf(self: _Self0, x: onp.ToFloatStrict3D, y: _ToFloatMax3D | None, /, *, method: _CCDFMethod) -> _Float3D: ... + def ccdf( + self: _Self0, x: onp.ToFloatStrict3D, y: _ToFloatMax3D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float3D: ... @overload # self: 0-d, x: <=3-d, y: 3-d - def ccdf(self: _Self0, x: _ToFloatMax3D, y: onp.ToFloatStrict3D, /, *, method: _CCDFMethod) -> _Float3D: ... + def ccdf(self: _Self0, x: _ToFloatMax3D, y: onp.ToFloatStrict3D, /, *, method: _CCDFMethod = None) -> _Float3D: ... @overload # self: 0-d, x: T1-d, y?: T1-d | <=1-d - def ccdf(self: _Self0, x: _ToFloatND[_ShapeT], y: _ToFloatMax1D | None, /, *, method: _CCDFMethod) -> _FloatND[_ShapeT]: ... + def ccdf( + self: _Self0, x: _ToFloatND[_ShapeT], y: _ToFloatMax1D | None = None, /, *, method: _CCDFMethod = None + ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: T1-d | <=1-d, y: T1-d - def ccdf(self: _Self0, x: _ToFloatMaxND[_ShapeT], y: _ToFloatND[_ShapeT], /, *, method: _CCDFMethod) -> _FloatND[_ShapeT]: ... + def ccdf( + self: _Self0, x: _ToFloatMaxND[_ShapeT], y: _ToFloatND[_ShapeT], /, *, method: _CCDFMethod = None + ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: >=1-d, y?: >=0-d def ccdf( # first union type is needed on `numpy<2.1` - self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CCDFMethod + self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CCDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 0-d, x: >=0-d, y: >=1-d def ccdf( # first union type is needed on `numpy<2.1` - self: _Self0, x: _ToFloat0ND, y: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _CCDFMethod + self: _Self0, x: _ToFloat0ND, y: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _CCDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 1-d, x: 1-d, y?: <=1-d - def ccdf(self: _Self1, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CCDFMethod) -> _Float2D: ... + def ccdf( + self: _Self1, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float2D: ... @overload # self: 1-d, x: <=1-d, y: 1-d - def ccdf(self: _Self1, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod) -> _Float2D: ... + def ccdf(self: _Self1, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod = None) -> _Float2D: ... @overload # self: 1-d, x: 2-d, y?: <=2-d - def ccdf(self: _Self1, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None, /, *, method: _CCDFMethod) -> _Float3D: ... + def ccdf( + self: _Self1, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float3D: ... @overload # self: 1-d, x: <=2-d, y: 2-d - def ccdf(self: _Self1, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CCDFMethod) -> _Float3D: ... + def ccdf(self: _Self1, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CCDFMethod = None) -> _Float3D: ... @overload # self: 1-d, x: >=1-d, y?: >=0-d - def ccdf(self: _Self1, x: onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CCDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def ccdf( + self: _Self1, x: onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CCDFMethod = None + ) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 1-d, x: >=0-d, y: >=1-d - def ccdf(self: _Self1, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CCDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def ccdf(self: _Self1, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CCDFMethod = None) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 2-d, x: 1-d, y?: <=1-d - def ccdf(self: _Self2, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CCDFMethod) -> _Float3D: ... + def ccdf( + self: _Self2, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float3D: ... @overload # self: 2-d, x: <=1-d, y: 1-d - def ccdf(self: _Self2, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod) -> _Float3D: ... + def ccdf(self: _Self2, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod = None) -> _Float3D: ... @overload # self: 2-d, x: >=1-d, y?: >=0-d - def ccdf(self: _Self2, x: onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CCDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def ccdf( + self: _Self2, x: onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CCDFMethod = None + ) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 2-d, x: >=0-d, y: >=1-d - def ccdf(self: _Self2, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CCDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def ccdf(self: _Self2, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CCDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 3-d, x: >=0-d, y?: >=0-d - def ccdf(self: _Self3, x: _ToFloat0ND, y: _ToFloat0ND | None, /, *, method: _CCDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def ccdf( + self: _Self3, x: _ToFloat0ND, y: _ToFloat0ND | None = None, /, *, method: _CCDFMethod = None + ) -> _FloatND[onp.AtLeast3D]: ... @overload # self: >=1-d, x: >=0-d, y?: >=0-d - def ccdf(self: _Self1_, x: _ToFloat0ND, y: _ToFloat0ND | None, /, *, method: _CCDFMethod) -> _FloatND: ... + def ccdf(self: _Self1_, x: _ToFloat0ND, y: _ToFloat0ND | None = None, /, *, method: _CCDFMethod = None) -> _FloatND: ... # @overload # self: T1-d, x: 0-d, y?: 0-d def logccdf( - self: _Self[Any, _ShapeT], x: onp.ToFloat, y: onp.ToFloat | None, /, *, method: _CCDFMethod + self: _Self[Any, _ShapeT], x: onp.ToFloat, y: onp.ToFloat | None = None, /, *, method: _CCDFMethod = None ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: 0-d, y?: 0-d - def logccdf(self: _Self0, x: onp.ToFloat, y: onp.ToFloat | None, /, *, method: _CCDFMethod) -> _Float: ... + def logccdf(self: _Self0, x: onp.ToFloat, y: onp.ToFloat | None = None, /, *, method: _CCDFMethod = None) -> _Float: ... @overload # self: 0-d, x: 1-d, y?: <=1-d - def logccdf(self: _Self0, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CCDFMethod) -> _Float1D: ... + def logccdf( + self: _Self0, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float1D: ... @overload # self: 0-d, x: <=1-d, y: 1-d - def logccdf(self: _Self0, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod) -> _Float1D: ... + def logccdf(self: _Self0, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod = None) -> _Float1D: ... @overload # self: 0-d, x: 2-d, y?: <=2-d - def logccdf(self: _Self0, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None, /, *, method: _CCDFMethod) -> _Float2D: ... + def logccdf( + self: _Self0, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float2D: ... @overload # self: 0-d, x: <=2-d, y: 2-d - def logccdf(self: _Self0, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CCDFMethod) -> _Float2D: ... + def logccdf(self: _Self0, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CCDFMethod = None) -> _Float2D: ... @overload # self: 0-d, x: 3-d, y?: <=3-d - def logccdf(self: _Self0, x: onp.ToFloatStrict3D, y: _ToFloatMax3D | None, /, *, method: _CCDFMethod) -> _Float3D: ... + def logccdf( + self: _Self0, x: onp.ToFloatStrict3D, y: _ToFloatMax3D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float3D: ... @overload # self: 0-d, x: <=3-d, y: 3-d - def logccdf(self: _Self0, x: _ToFloatMax3D, y: onp.ToFloatStrict3D, /, *, method: _CCDFMethod) -> _Float3D: ... + def logccdf(self: _Self0, x: _ToFloatMax3D, y: onp.ToFloatStrict3D, /, *, method: _CCDFMethod = None) -> _Float3D: ... @overload # self: 0-d, x: T1-d, y?: T1-d | <=1-d def logccdf( - self: _Self0, x: _ToFloatND[_ShapeT], y: _ToFloatMax1D | None, /, *, method: _CCDFMethod + self: _Self0, x: _ToFloatND[_ShapeT], y: _ToFloatMax1D | None = None, /, *, method: _CCDFMethod = None ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: T1-d | <=1-d, y: T1-d def logccdf( - self: _Self0, x: _ToFloatMaxND[_ShapeT], y: _ToFloatND[_ShapeT], /, *, method: _CCDFMethod + self: _Self0, x: _ToFloatMaxND[_ShapeT], y: _ToFloatND[_ShapeT], /, *, method: _CCDFMethod = None ) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, x: >=1-d, y?: >=0-d def logccdf( # first union type is needed on `numpy<2.1` - self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CCDFMethod + self: _Self0, x: _ToFloatND[_ShapeT] | onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CCDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 0-d, x: >=0-d, y: >=1-d def logccdf( # first union type is needed on `numpy<2.1` - self: _Self0, x: _ToFloat0ND, y: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _CCDFMethod + self: _Self0, x: _ToFloat0ND, y: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _CCDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 1-d, x: 1-d, y?: <=1-d - def logccdf(self: _Self1, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CCDFMethod) -> _Float2D: ... + def logccdf( + self: _Self1, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float2D: ... @overload # self: 1-d, x: <=1-d, y: 1-d - def logccdf(self: _Self1, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod) -> _Float2D: ... + def logccdf(self: _Self1, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod = None) -> _Float2D: ... @overload # self: 1-d, x: 2-d, y?: <=2-d - def logccdf(self: _Self1, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None, /, *, method: _CCDFMethod) -> _Float3D: ... + def logccdf( + self: _Self1, x: onp.ToFloatStrict2D, y: _ToFloatMax2D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float3D: ... @overload # self: 1-d, x: <=2-d, y: 2-d - def logccdf(self: _Self1, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CCDFMethod) -> _Float3D: ... + def logccdf(self: _Self1, x: _ToFloatMax2D, y: onp.ToFloatStrict2D, /, *, method: _CCDFMethod = None) -> _Float3D: ... @overload # self: 1-d, x: >=1-d, y?: >=0-d - def logccdf(self: _Self1, x: onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CCDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def logccdf( + self: _Self1, x: onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CCDFMethod = None + ) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 1-d, x: >=0-d, y: >=1-d - def logccdf(self: _Self1, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CCDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def logccdf(self: _Self1, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CCDFMethod = None) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 2-d, x: 1-d, y?: <=1-d - def logccdf(self: _Self2, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None, /, *, method: _CCDFMethod) -> _Float3D: ... + def logccdf( + self: _Self2, x: onp.ToFloatStrict1D, y: _ToFloatMax1D | None = None, /, *, method: _CCDFMethod = None + ) -> _Float3D: ... @overload # self: 2-d, x: <=1-d, y: 1-d - def logccdf(self: _Self2, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod) -> _Float3D: ... + def logccdf(self: _Self2, x: _ToFloatMax1D, y: onp.ToFloatStrict1D, /, *, method: _CCDFMethod = None) -> _Float3D: ... @overload # self: 2-d, x: >=1-d, y?: >=0-d - def logccdf(self: _Self2, x: onp.ToFloatND, y: _ToFloat0ND | None, /, *, method: _CCDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def logccdf( + self: _Self2, x: onp.ToFloatND, y: _ToFloat0ND | None = None, /, *, method: _CCDFMethod = None + ) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 2-d, x: >=0-d, y: >=1-d - def logccdf(self: _Self2, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CCDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def logccdf(self: _Self2, x: _ToFloat0ND, y: onp.ToFloatND, /, *, method: _CCDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 3-d, x: >=0-d, y?: >=0-d - def logccdf(self: _Self3, x: _ToFloat0ND, y: _ToFloat0ND | None, /, *, method: _CCDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def logccdf( + self: _Self3, x: _ToFloat0ND, y: _ToFloat0ND | None = None, /, *, method: _CCDFMethod = None + ) -> _FloatND[onp.AtLeast3D]: ... @overload # self: >=1-d, x: >=0-d, y?: >=0-d - def logccdf(self: _Self1_, x: _ToFloat0ND, y: _ToFloat0ND | None, /, *, method: _CCDFMethod) -> _FloatND: ... + def logccdf(self: _Self1_, x: _ToFloat0ND, y: _ToFloat0ND | None = None, /, *, method: _CCDFMethod = None) -> _FloatND: ... # NOTE: Apart from the `method` type, the signatures of `i[log]cdf` and `i[log]ccdf` are equivalent to those of `[log]pdf` @overload # self: T1-d, p: 0-d - def icdf(self: _Self[Any, _ShapeT], p: onp.ToFloat, /, *, method: _ICDFMethod) -> _FloatND[_ShapeT]: ... + def icdf(self: _Self[Any, _ShapeT], p: onp.ToFloat, /, *, method: _ICDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, p: 0-d - def icdf(self: _Self0, p: onp.ToFloat, /, *, method: _ICDFMethod) -> _Float: ... + def icdf(self: _Self0, p: onp.ToFloat, /, *, method: _ICDFMethod = None) -> _Float: ... @overload # self: 0-d, p: 1-d - def icdf(self: _Self0, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float1D: ... + def icdf(self: _Self0, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float1D: ... @overload # self: 0-d, p: 2-d - def icdf(self: _Self0, p: onp.ToFloatStrict2D, /, *, method: _ICDFMethod) -> _Float2D: ... + def icdf(self: _Self0, p: onp.ToFloatStrict2D, /, *, method: _ICDFMethod = None) -> _Float2D: ... @overload # self: 0-d, p: 3-d - def icdf(self: _Self0, p: onp.ToFloatStrict3D, /, *, method: _ICDFMethod) -> _Float3D: ... + def icdf(self: _Self0, p: onp.ToFloatStrict3D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 0-d, p: T1-d - def icdf(self: _Self0, p: _ToFloatND[_ShapeT], /, *, method: _ICDFMethod) -> _FloatND[_ShapeT]: ... + def icdf(self: _Self0, p: _ToFloatND[_ShapeT], /, *, method: _ICDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, p: >=1-d def icdf( # first union type is needed on `numpy<2.1` - self: _Self0, p: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _ICDFMethod + self: _Self0, p: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _ICDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 1-d, p: 1-d - def icdf(self: _Self1, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float2D: ... + def icdf(self: _Self1, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float2D: ... @overload # self: 1-d, p: 2-d - def icdf(self: _Self1, p: onp.ToFloatStrict2D, /, *, method: _ICDFMethod) -> _Float3D: ... + def icdf(self: _Self1, p: onp.ToFloatStrict2D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 1-d, p: >=-d - def icdf(self: _Self1, p: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def icdf(self: _Self1, p: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 2-d, p: 1-d - def icdf(self: _Self2, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float3D: ... + def icdf(self: _Self2, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 2-d, p: >=1-d - def icdf(self: _Self2, p: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def icdf(self: _Self2, p: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 3-d, p: >=1-d - def icdf(self: _Self3, p: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def icdf(self: _Self3, p: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: >=1-d - def icdf(self: _Self1_, p: _ToFloat0ND, /, *, method: _ICDFMethod) -> _FloatND: ... + def icdf(self: _Self1_, p: _ToFloat0ND, /, *, method: _ICDFMethod = None) -> _FloatND: ... # @overload # self: T1-d, logp: 0-d - def ilogcdf(self: _Self[Any, _ShapeT], logp: onp.ToFloat, /, *, method: _ICDFMethod) -> _FloatND[_ShapeT]: ... + def ilogcdf(self: _Self[Any, _ShapeT], logp: onp.ToFloat, /, *, method: _ICDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, logp: 0-d - def ilogcdf(self: _Self0, logp: onp.ToFloat, /, *, method: _ICDFMethod) -> _Float: ... + def ilogcdf(self: _Self0, logp: onp.ToFloat, /, *, method: _ICDFMethod = None) -> _Float: ... @overload # self: 0-d, logp: 1-d - def ilogcdf(self: _Self0, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float1D: ... + def ilogcdf(self: _Self0, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float1D: ... @overload # self: 0-d, logp: 2-d - def ilogcdf(self: _Self0, logp: onp.ToFloatStrict2D, /, *, method: _ICDFMethod) -> _Float2D: ... + def ilogcdf(self: _Self0, logp: onp.ToFloatStrict2D, /, *, method: _ICDFMethod = None) -> _Float2D: ... @overload # self: 0-d, logp: 3-d - def ilogcdf(self: _Self0, logp: onp.ToFloatStrict3D, /, *, method: _ICDFMethod) -> _Float3D: ... + def ilogcdf(self: _Self0, logp: onp.ToFloatStrict3D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 0-d, logp: T1-d - def ilogcdf(self: _Self0, logp: _ToFloatND[_ShapeT], /, *, method: _ICDFMethod) -> _FloatND[_ShapeT]: ... + def ilogcdf(self: _Self0, logp: _ToFloatND[_ShapeT], /, *, method: _ICDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, p: >=1-d def ilogcdf( # first union type is needed on `numpy<2.1` - self: _Self0, logp: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _ICDFMethod + self: _Self0, logp: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _ICDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 1-d, logp: 1-d - def ilogcdf(self: _Self1, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float2D: ... + def ilogcdf(self: _Self1, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float2D: ... @overload # self: 1-d, logp: 2-d - def ilogcdf(self: _Self1, logp: onp.ToFloatStrict2D, /, *, method: _ICDFMethod) -> _Float3D: ... + def ilogcdf(self: _Self1, logp: onp.ToFloatStrict2D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 1-d, logp: >=-d - def ilogcdf(self: _Self1, logp: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def ilogcdf(self: _Self1, logp: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 2-d, logp: 1-ds - def ilogcdf(self: _Self2, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float3D: ... + def ilogcdf(self: _Self2, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 2-d, logp: >=1-d - def ilogcdf(self: _Self2, logp: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def ilogcdf(self: _Self2, logp: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 3-d, logp: >=1-d - def ilogcdf(self: _Self3, logp: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def ilogcdf(self: _Self3, logp: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: >=1-d - def ilogcdf(self: _Self1_, logp: _ToFloat0ND, /, *, method: _ICDFMethod) -> _FloatND: ... + def ilogcdf(self: _Self1_, logp: _ToFloat0ND, /, *, method: _ICDFMethod = None) -> _FloatND: ... # @overload # self: T1-d, p: 0-d - def iccdf(self: _Self[Any, _ShapeT], p: onp.ToFloat, /, *, method: _ICDFMethod) -> _FloatND[_ShapeT]: ... + def iccdf(self: _Self[Any, _ShapeT], p: onp.ToFloat, /, *, method: _ICDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, p: 0-d - def iccdf(self: _Self0, p: onp.ToFloat, /, *, method: _ICDFMethod) -> _Float: ... + def iccdf(self: _Self0, p: onp.ToFloat, /, *, method: _ICDFMethod = None) -> _Float: ... @overload # self: 0-d, p: 1-d - def iccdf(self: _Self0, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float1D: ... + def iccdf(self: _Self0, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float1D: ... @overload # self: 0-d, p: 2-d - def iccdf(self: _Self0, p: onp.ToFloatStrict2D, /, *, method: _ICDFMethod) -> _Float2D: ... + def iccdf(self: _Self0, p: onp.ToFloatStrict2D, /, *, method: _ICDFMethod = None) -> _Float2D: ... @overload # self: 0-d, p: 3-d - def iccdf(self: _Self0, p: onp.ToFloatStrict3D, /, *, method: _ICDFMethod) -> _Float3D: ... + def iccdf(self: _Self0, p: onp.ToFloatStrict3D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 0-d, p: T1-d - def iccdf(self: _Self0, p: _ToFloatND[_ShapeT], /, *, method: _ICDFMethod) -> _FloatND[_ShapeT]: ... + def iccdf(self: _Self0, p: _ToFloatND[_ShapeT], /, *, method: _ICDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, p: >=1-d def iccdf( # first union type is needed on `numpy<2.1` - self: _Self0, p: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _ICDFMethod + self: _Self0, p: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _ICDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 1-d, p: 1-d - def iccdf(self: _Self1, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float2D: ... + def iccdf(self: _Self1, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float2D: ... @overload # self: 1-d, p: 2-d - def iccdf(self: _Self1, p: onp.ToFloatStrict2D, /, *, method: _ICDFMethod) -> _Float3D: ... + def iccdf(self: _Self1, p: onp.ToFloatStrict2D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 1-d, p: >=-d - def iccdf(self: _Self1, p: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def iccdf(self: _Self1, p: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 2-d, p: 1-d - def iccdf(self: _Self2, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float3D: ... + def iccdf(self: _Self2, p: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 2-d, p: >=1-d - def iccdf(self: _Self2, p: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def iccdf(self: _Self2, p: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 3-d, p: >=1-d - def iccdf(self: _Self3, p: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def iccdf(self: _Self3, p: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: >=1-d - def iccdf(self: _Self1_, p: _ToFloat0ND, /, *, method: _ICDFMethod) -> _FloatND: ... + def iccdf(self: _Self1_, p: _ToFloat0ND, /, *, method: _ICDFMethod = None) -> _FloatND: ... # @overload # self: T1-d, logp: 0-d - def ilogccdf(self: _Self[Any, _ShapeT], logp: onp.ToFloat, /, *, method: _ICDFMethod) -> _FloatND[_ShapeT]: ... + def ilogccdf(self: _Self[Any, _ShapeT], logp: onp.ToFloat, /, *, method: _ICDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, logp: 0-d - def ilogccdf(self: _Self0, logp: onp.ToFloat, /, *, method: _ICDFMethod) -> _Float: ... + def ilogccdf(self: _Self0, logp: onp.ToFloat, /, *, method: _ICDFMethod = None) -> _Float: ... @overload # self: 0-d, logp: 1-d - def ilogccdf(self: _Self0, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float1D: ... + def ilogccdf(self: _Self0, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float1D: ... @overload # self: 0-d, logp: 2-d - def ilogccdf(self: _Self0, logp: onp.ToFloatStrict2D, /, *, method: _ICDFMethod) -> _Float2D: ... + def ilogccdf(self: _Self0, logp: onp.ToFloatStrict2D, /, *, method: _ICDFMethod = None) -> _Float2D: ... @overload # self: 0-d, logp: 3-d - def ilogccdf(self: _Self0, logp: onp.ToFloatStrict3D, /, *, method: _ICDFMethod) -> _Float3D: ... + def ilogccdf(self: _Self0, logp: onp.ToFloatStrict3D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 0-d, logp: T1-d - def ilogccdf(self: _Self0, logp: _ToFloatND[_ShapeT], /, *, method: _ICDFMethod) -> _FloatND[_ShapeT]: ... + def ilogccdf(self: _Self0, logp: _ToFloatND[_ShapeT], /, *, method: _ICDFMethod = None) -> _FloatND[_ShapeT]: ... @overload # self: 0-d, q: >=1-d def ilogccdf( # first union type is needed on `numpy<2.1` - self: _Self0, logp: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _ICDFMethod + self: _Self0, logp: _ToFloatND[_ShapeT] | onp.ToFloatND, /, *, method: _ICDFMethod = None ) -> _FloatND[_ShapeT] | _FloatND[onp.AtLeast1D]: ... @overload # self: 1-d, logp: 1-d - def ilogccdf(self: _Self1, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float2D: ... + def ilogccdf(self: _Self1, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float2D: ... @overload # self: 1-d, logp: 2-d - def ilogccdf(self: _Self1, logp: onp.ToFloatStrict2D, /, *, method: _ICDFMethod) -> _Float3D: ... + def ilogccdf(self: _Self1, logp: onp.ToFloatStrict2D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 1-d, logp: >=-d - def ilogccdf(self: _Self1, logp: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast2D]: ... + def ilogccdf(self: _Self1, logp: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast2D]: ... @overload # self: 2-d, logp: 1-d - def ilogccdf(self: _Self2, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod) -> _Float3D: ... + def ilogccdf(self: _Self2, logp: onp.ToFloatStrict1D, /, *, method: _ICDFMethod = None) -> _Float3D: ... @overload # self: 2-d, logp: >=1-d - def ilogccdf(self: _Self2, logp: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def ilogccdf(self: _Self2, logp: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: 3-d, logp: >=1-d - def ilogccdf(self: _Self3, logp: onp.ToFloatND, /, *, method: _ICDFMethod) -> _FloatND[onp.AtLeast3D]: ... + def ilogccdf(self: _Self3, logp: onp.ToFloatND, /, *, method: _ICDFMethod = None) -> _FloatND[onp.AtLeast3D]: ... @overload # self: >=1-d - def ilogccdf(self: _Self1_, logp: _ToFloat0ND, /, *, method: _ICDFMethod) -> _FloatND: ... + def ilogccdf(self: _Self1_, logp: _ToFloat0ND, /, *, method: _ICDFMethod = None) -> _FloatND: ...