# HyperbolicAnisotropicEnumerateFunction¶

class HyperbolicAnisotropicEnumerateFunction(*args)

Hyperbolic and anisotropic enumerate function.

Available constructors:

HyperbolicAnisotropicEnumerateFunction(dim)

HyperbolicAnisotropicEnumerateFunction(dim, q)

HyperbolicAnisotropicEnumerateFunction(weight)

HyperbolicAnisotropicEnumerateFunction(weight, q)

Parameters: dim : integer Dimension of the EnumerateFunction. dim must be equal to the dimension of the OrthogonalBasis. q : float Correspond to the q-quasi norm parameter. If not precised, . weight : sequence of float Weights of the indices in each dimension. If not precised, all weights are equals to .

Notes

The hyperbolic truncation strategy is inspired by the so-called sparsity-of- effects principle, which states that most models are principally governed by main effects and low-order interactions. Accordingly, one wishes to define an enumeration strategy which first selects those multi-indices related to main effects, i.e. with a reasonably small number of nonzero components, prior to selecting those associated with higher-order interactions.

For any real number , one defines the anisotropic hyperbolic norm of a multi-index by: where the ’s are real positive numbers. This would lead to first select the basis polynomials depending on a specific subset of input variables.

Examples

>>> import openturns as ot
>>> # 4-dimensional case
>>> enumerateFunction = ot.HyperbolicAnisotropicEnumerateFunction(2, 0.5)
>>> for i in range(10):
...     print(enumerateFunction(i))
[0,0]
[1,0]
[0,1]
[2,0]
[0,2]
[3,0]
[0,3]
[1,1]
[4,0]
[0,4]


Methods

 getClassName() Accessor to the object’s name. getDimension() Return the dimension of the EnumerateFunction. getId() Accessor to the object’s id. getMaximumDegreeCardinal(maximumDegree) Get the cardinal of indices of degree inferior or equal to a given value. getMaximumDegreeStrataIndex(maximumDegree) Get the index of the strata of degree inferior to a given value. getName() Accessor to the object’s name. getQ() Accessor to the norm. getShadowedId() Accessor to the object’s shadowed id. getStrataCardinal(strataIndex) Get the number of members of the basis associated to a given strata. getStrataCumulatedCardinal(strataIndex) Get the cardinal of the cumulated strata above or equal to the given strata. getVisibility() Accessor to the object’s visibility state. getWeight() Accessor to the weights. hasName() Test if the object is named. hasVisibleName() Test if the object has a distinguishable name. inverse(indices) Get the antecedent of a indices list in the EnumerateFunction. setDimension(dimension) Set the dimension of the EnumerateFunction. setName(name) Accessor to the object’s name. setQ(q) Accessor to the norm. setShadowedId(id) Accessor to the object’s shadowed id. setVisibility(visible) Accessor to the object’s visibility state. setWeight(weight) Accessor to the weights.
 __call__
__init__(*args)

Initialize self. See help(type(self)) for accurate signature.

getClassName()

Accessor to the object’s name.

Returns: class_name : str The object class name (object.__class__.__name__).
getDimension()

Return the dimension of the EnumerateFunction.

Returns: dim : int, Dimension of the EnumerateFunction.
getId()

Accessor to the object’s id.

Returns: id : int Internal unique identifier.
getMaximumDegreeCardinal(maximumDegree)

Get the cardinal of indices of degree inferior or equal to a given value.

Parameters: maximumDegree : int Number of polynoms of the basis. cardinal : int Cardinal of indices of degree .

Examples

>>> import openturns as ot
>>> enumerateFunction = ot.EnumerateFunction(ot.LinearEnumerateFunction(2))
>>> for i in range(6):
...     indices = enumerateFunction(i)
...     degree = sum(indices)
...     print(str(int(degree))+' '+str(indices))
0 [0,0]
1 [1,0]
1 [0,1]
2 [2,0]
2 [1,1]
2 [0,2]
>>> print(enumerateFunction.getMaximumDegreeCardinal(2))
6

getMaximumDegreeStrataIndex(maximumDegree)

Get the index of the strata of degree inferior to a given value.

Parameters: maximumDegree : int Degree. index : int Index of the strata of degree .

Examples

>>> import openturns as ot
>>> enumerateFunction = ot.EnumerateFunction(ot.LinearEnumerateFunction(2))
>>> for i in [1, 2]:
...     indices = enumerateFunction(i)
...     strataIndex = sum(indices) + 1
...     print(str(int(strataIndex))+' '+str(indices))
2 [1,0]
2 [0,1]
>>> print(enumerateFunction.getMaximumDegreeStrataIndex(2))
2

getName()

Accessor to the object’s name.

Returns: name : str The name of the object.
getQ()

Accessor to the norm.

Returns: q : float q-quasi norm parameter.
getShadowedId()

Accessor to the object’s shadowed id.

Returns: id : int Internal unique identifier.
getStrataCardinal(strataIndex)

Get the number of members of the basis associated to a given strata.

Parameters: strataIndex : int Index of the strata in the hierarchical basis. In the context of product of polynomial basis, this is the total polynom degree. cardinal : int Number of members of the basis associated to the strata strataIndex. In the context of product of polynomial basis, this is the number of polynoms of the basis which total degree is strataIndex.

Examples

>>> import openturns as ot
>>> enumerateFunction = ot.EnumerateFunction(ot.LinearEnumerateFunction(2))
>>> for i in [3, 4, 5]:
...     indices = enumerateFunction(i)
...     degree = sum(indices)
...     print(str(int(degree))+' '+str(indices))
2 [2,0]
2 [1,1]
2 [0,2]
>>> print(enumerateFunction.getStrataCardinal(2))
3

getStrataCumulatedCardinal(strataIndex)

Get the cardinal of the cumulated strata above or equal to the given strata.

Parameters: strataIndex : int Index of the strata in the hierarchical basis. In the context of product of polynomial basis, this is the total polynomial degree. cardinal : int Number of members of the basis associated to the strates inferior or equal to strataIndex. In the context of product of polynomial basis, this is the number of polynomials of the basis which total degree is inferior or equal to strataIndex.

Examples

>>> import openturns as ot
>>> enumerateFunction = ot.EnumerateFunction(ot.LinearEnumerateFunction(2))
>>> for i in range(6):
...     indices = enumerateFunction(i)
...     degree = sum(indices)
...     print(str(int(degree))+' '+str(indices))
0 [0,0]
1 [1,0]
1 [0,1]
2 [2,0]
2 [1,1]
2 [0,2]
>>> print(enumerateFunction.getStrataCumulatedCardinal(2))
6

getVisibility()

Accessor to the object’s visibility state.

Returns: visible : bool Visibility flag.
getWeight()

Accessor to the weights.

Returns: w : Point Weights of the indices in each dimension.
hasName()

Test if the object is named.

Returns: hasName : bool True if the name is not empty.
hasVisibleName()

Test if the object has a distinguishable name.

Returns: hasVisibleName : bool True if the name is not empty and not the default one.
inverse(indices)

Get the antecedent of a indices list in the EnumerateFunction.

Parameters: multiIndex : sequence of int List of indices. antecedent : int Represents the antecedent of the multiIndex in the EnumerateFunction.

Examples

>>> import openturns as ot
>>> enumerateFunction = ot.EnumerateFunction(ot.LinearEnumerateFunction(2))
>>> for i in range(6):
...     print(str(i)+' '+str(enumerateFunction(i)))
0 [0,0]
1 [1,0]
2 [0,1]
3 [2,0]
4 [1,1]
5 [0,2]
>>> print(enumerateFunction.inverse([1,1]))
4

setDimension(dimension)

Set the dimension of the EnumerateFunction.

Parameters: dim : int, Dimension of the EnumerateFunction.
setName(name)

Accessor to the object’s name.

Parameters: name : str The name of the object.
setQ(q)

Accessor to the norm.

Parameters: q : float q-quasi norm parameter.
setShadowedId(id)

Accessor to the object’s shadowed id.

Parameters: id : int Internal unique identifier.
setVisibility(visible)

Accessor to the object’s visibility state.

Parameters: visible : bool Visibility flag.
setWeight(weight)

Accessor to the weights.

Parameters: w : sequence of float Weights of the indices in each dimension.