pyuncertainnumber.pba.intervals.methods¶
web: github.com/marcodeangelis org: Univerity of Liverpool
MIT License¶
These methods are designed to behave neutrally on non-interval inputs. So, if a non-interval is passed equivalent rules for floats apply.
Interval to float methods, IR -> R:
Interval to bool methods, IR -> {0,1}:
Binary operations, IR2 -> IR Unary operations, IR -> IR
Parser, R^(nx2) -> IR^n, R^(mxnx2) -> IR^(mxn), R^(2xmxn) -> IR^(mxn) This method turns an array of compatible dimension into an interval (array).
Subintervalisation methods, IR -> IR^n.
Attributes¶
Functions¶
|
Return the absolute value of an Interval. |
|
Return the square root of an Interval. |
|
|
|
|
|
|
|
|
|
Return the envelope interval containing both x and y. |
|
Implementation of Interval Arithmetic in CORA 2016 |
|
|
|
Implementation of Interval Arithmetic in CORA 2016 |
|
|
|
Implementation of Interval Arithmetic in CORA 2016 |
|
|
|
|
|
|
|
|
|
|
|
This function checks if the focal elements x, intersect the subpaving y. |
|
This function casts an array-like structure into an Interval structure. |
|
Takes an unsized scalar interval and turns it in to a sized one. |
|
Takes a sized scalar interval and turns it in to a unsized one. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(m,n) x (n,1) -> (m,1) |
|
Row by column multiplication between a matrix W and a column vector x. |
|
Row by column multiplication between the row vector xT and the matrix transpose WT. |
|
(m,n) x (n,p) -> (m,p) |
|
Input an interval of shape (m,n) returns an interval of shape (n,m). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
unpack an array-like Interval object into a list of item intervals |
Load a NumPy array from a JSON file saved by save_array_to_json(). |
Module Contents¶
- pyuncertainnumber.pba.intervals.methods.numpy_min¶
- pyuncertainnumber.pba.intervals.methods.numpy_max¶
- pyuncertainnumber.pba.intervals.methods.numpy_sqrt¶
- pyuncertainnumber.pba.intervals.methods.numpy_abs¶
- pyuncertainnumber.pba.intervals.methods.numpy_exp¶
- pyuncertainnumber.pba.intervals.methods.numpy_sum¶
- pyuncertainnumber.pba.intervals.methods.numpy_sin¶
- pyuncertainnumber.pba.intervals.methods.numpy_cos¶
- pyuncertainnumber.pba.intervals.methods.numpy_tan¶
- pyuncertainnumber.pba.intervals.methods.numpy_pi¶
- pyuncertainnumber.pba.intervals.methods.numpy_inf¶
- pyuncertainnumber.pba.intervals.methods.numpy_transpose¶
- pyuncertainnumber.pba.intervals.methods.abs(x: pyuncertainnumber.pba.intervals.number.Interval)¶
Return the absolute value of an Interval.
If x is not of class Interval, absolute value is returned assuming input is numerical.
If x is neither a number (neither Interval not numeric), numpy will throw an exception.
- pyuncertainnumber.pba.intervals.methods.sqrt(x: pyuncertainnumber.pba.intervals.number.Interval)¶
Return the square root of an Interval.
If x is not of class Interval, the square root is returned assuming input is numerical.
If x is neither a number (neither Interval not numeric), numpy will throw an exception.
- pyuncertainnumber.pba.intervals.methods.exp(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.log(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.max(x: pyuncertainnumber.pba.intervals.number.Interval, y: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.min(x: pyuncertainnumber.pba.intervals.number.Interval, y: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.env(x: pyuncertainnumber.pba.intervals.number.Interval, y: pyuncertainnumber.pba.intervals.number.Interval)¶
Return the envelope interval containing both x and y.
- pyuncertainnumber.pba.intervals.methods.sin(x: pyuncertainnumber.pba.intervals.number.Interval)¶
Implementation of Interval Arithmetic in CORA 2016
Matthias Althoff and Dmitry Grebenyuk
EPiC Series in Computing Volume 43, 2017, Pages 91-105
ARCH16. 3rd International Workshop on Applied Verification for Continuous and Hybrid Systems
- pyuncertainnumber.pba.intervals.methods.sin_vector(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.cos(x: pyuncertainnumber.pba.intervals.number.Interval)¶
Implementation of Interval Arithmetic in CORA 2016
Matthias Althoff and Dmitry Grebenyuk
EPiC Series in Computing Volume 43, 2017, Pages 91-105
ARCH16. 3rd International Workshop on Applied Verification for Continuous and Hybrid Systems
- pyuncertainnumber.pba.intervals.methods.cos_vector(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.tan(x: pyuncertainnumber.pba.intervals.number.Interval)¶
Implementation of Interval Arithmetic in CORA 2016
Matthias Althoff and Dmitry Grebenyuk
EPiC Series in Computing Volume 43, 2017, Pages 91-105
ARCH16. 3rd International Workshop on Applied Verification for Continuous and Hybrid Systems
- pyuncertainnumber.pba.intervals.methods.tan_vector(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.straddle_zero(x: pyuncertainnumber.pba.intervals.number.Interval) bool¶
- pyuncertainnumber.pba.intervals.methods.intersect(x: pyuncertainnumber.pba.intervals.number.Interval, y: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.contain(x: pyuncertainnumber.pba.intervals.number.Interval, y: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.almost_contain(x: pyuncertainnumber.pba.intervals.number.Interval, y: pyuncertainnumber.pba.intervals.number.Interval, tol=1e-09)¶
- pyuncertainnumber.pba.intervals.methods.intersect_vector(x_: pyuncertainnumber.pba.intervals.number.Interval, y_: pyuncertainnumber.pba.intervals.number.Interval)¶
This function checks if the focal elements x, intersect the subpaving y.
x: A n-list of d-boxes or d-intervals, e.g. a subpaving. x.shape=(r,d) y: A m-list of d-boxes or d-intervals, e.g. a focal element. y.shape=(p,d)
out: A (rp)-list of d-arrays of booleans
- pyuncertainnumber.pba.intervals.methods.intervalise(x_: Any, interval_index=-1) pyuncertainnumber.pba.intervals.number.Interval | Any¶
This function casts an array-like structure into an Interval structure. All array-like structures will be first coerced into an ndarray of floats. If the coercion is unsuccessful the following error is thrown: ValueError: setting an array element with a sequence.
For example this is the expected behaviour: (*) an ndarray of shape (4,2) will be cast as an Interval of shape (4,).
(*) an ndarray of shape (7,3,2) will be cast as an Interval of shape (7,3).
(*) an ndarray of shape (3,2,7) will be cast as a degenerate Interval of shape (3,2,7).
(*) an ndarray of shape (2,3,7) will be cast as an Interval of shape (3,7).
(*) an ndarray of shape (2,3,7,2) will be cast as an Interval of shape (2,3,7) if interval_index is set to -1.
If an ndarray has shape with multiple dimensions having size 2, then the last dimension is intervalised. So, an ndarray of shape (7,2,2) will be cast as an Interval of shape (7,2) with the last dimension intervalised. When the ndarray has shape (2,2) again is the last dimension that gets intervalised.
In case of ambiguity, e.g. (2,5,2), now the first dimension can be forced to be intervalised, selecting index=0, default is -1.
It returns an interval only if the input is an array-like structure, otherwise it returns the following numpy error: ValueError: setting an array element with a sequence.
TODO: Parse a list of mixed numbers: interval and ndarrays.
- pyuncertainnumber.pba.intervals.methods.sizeit(x: pyuncertainnumber.pba.intervals.number.Interval) pyuncertainnumber.pba.intervals.number.Interval¶
Takes an unsized scalar interval and turns it in to a sized one.
- pyuncertainnumber.pba.intervals.methods.unsizeit(x: pyuncertainnumber.pba.intervals.number.Interval) pyuncertainnumber.pba.intervals.number.Interval¶
Takes a sized scalar interval and turns it in to a unsized one.
- pyuncertainnumber.pba.intervals.methods.tolist(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.subintervalise(x_: pyuncertainnumber.pba.intervals.number.Interval, n: int | tuple = 0) pyuncertainnumber.pba.intervals.number.Interval¶
- Returns:
matrix Interval
- pyuncertainnumber.pba.intervals.methods.split_interval(x: pyuncertainnumber.pba.intervals.number.Interval, y: float = None)¶
- pyuncertainnumber.pba.intervals.methods.reconstitute(x_: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.space_product(x_: numpy.ndarray | pyuncertainnumber.pba.intervals.number.Interval, y_: numpy.ndarray | pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.bisect(x_: pyuncertainnumber.pba.intervals.number.Interval, i: int = None)¶
- X:
Interval of shape (n,)
Bisect the largest box if i is None.
- pyuncertainnumber.pba.intervals.methods.is_Interval(x: Any) bool¶
- pyuncertainnumber.pba.intervals.methods.is_not_Interval(x: Any) bool¶
- pyuncertainnumber.pba.intervals.methods.dot(x: pyuncertainnumber.pba.intervals.number.Interval, y: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.rowcol_old(W, x)¶
(m,n) x (n,1) -> (m,1) (m,n) x (n,p) -> (m,p) (1,n) x (n,1) -> (1,1)
- pyuncertainnumber.pba.intervals.methods.rowcol_W_x(W, x)¶
Row by column multiplication between a matrix W and a column vector x.
(m,n) x (n,1) -> (m,1) (1,n) x (n,1) -> (1,1) The following cases are also accepted even though mathematically impossible (m,n) x (n,) -> (m,1) (1,n) x (n,1) -> (1,1) (1,n) x (1,n) -> (1,1)
- pyuncertainnumber.pba.intervals.methods.rowcol_xT_WT(x, W)¶
Row by column multiplication between the row vector xT and the matrix transpose WT. (1,n) x (n,m) -> (1,m) (1,n) x (n,1) -> (1,1) The following cases are also accepted even though mathematically impossible (,n) x (n,m) -> (1,m) (n,1) x (n,m) -> (1,1)
- pyuncertainnumber.pba.intervals.methods.matmul(A, B)¶
(m,n) x (n,p) -> (m,p) (1,n) x (n,1) -> (1,1)
- pyuncertainnumber.pba.intervals.methods.transpose(x: pyuncertainnumber.pba.intervals.number.Interval)¶
Input an interval of shape (m,n) returns an interval of shape (n,m).
- pyuncertainnumber.pba.intervals.methods.squeeze(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.relu_nointerval(x: numpy.ndarray)¶
- pyuncertainnumber.pba.intervals.methods.relu_deriv(x: numpy.ndarray)¶
- pyuncertainnumber.pba.intervals.methods.relu(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.relu_deriv_interval(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.sigmoid(x)¶
- pyuncertainnumber.pba.intervals.methods.sigmoid_deriv(x)¶
- pyuncertainnumber.pba.intervals.methods.tanh(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.tanh(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.cosh(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.tanh_deriv(x: pyuncertainnumber.pba.intervals.number.Interval)¶
- pyuncertainnumber.pba.intervals.methods.unpack(x: pyuncertainnumber.pba.intervals.number.Interval) list[pyuncertainnumber.pba.intervals.number.Interval]¶
unpack an array-like Interval object into a list of item intervals
- Returns:
a list of scalar Interval objects
Example
>>> x = Interval(lo=([0, 1]), hi=([1, 2])) >>> unpack(x) [Interval(0, 1), Interval(1, 2)]
- pyuncertainnumber.pba.intervals.methods.load_interval_from_json(filename: str) pyuncertainnumber.pba.intervals.number.Interval¶
Load a NumPy array from a JSON file saved by save_array_to_json().
Note
Both .json and .json5 files are supported.
Example
>>> interval = load_interval_from_json("interval_data.json5")