underworld.function.misc module¶
Miscellaneous functions.
Module Summary¶
classes:¶
underworld.function.misc.max |
Returns the maximum of the results returned from its two argument function. |
underworld.function.misc.constant |
This function returns a constant value. |
underworld.function.misc.min |
Returns the minimum of the results returned from its two argument function. |
Module Details¶
classes:¶
-
class
underworld.function.misc.
max
(fn1, fn2, **kwargs)[source]¶ Bases:
underworld.function._function.Function
Returns the maximum of the results returned from its two argument function.
Parameters: - fn1 (underworld.function.Function) – First argument function. Function must return a float type.
- fn2 (underworld.function.Function) – Second argument function. Function must return a float type.
Example
>>> import underworld as uw >>> import underworld.function as fn >>> import numpy as np >>> testpoints = np.array(([[ 0.0], [0.2], [0.4], [0.6], [0.8], [1.01], [1.2], [1.4], [1.6], [1.8], [2.0],]))
Create which return identical results via different paths:
>>> fn_x = fn.input()[0] >>> fn_x_minus_one = fn_x - 1. >>> fn_one_minus_x = 1. - fn_x
Here we use ‘max’ and ‘min’ functions:
>>> fn_max = fn.misc.max(fn_one_minus_x,fn_x_minus_one) >>> fn_min = fn.misc.min(fn_one_minus_x,fn_x_minus_one)
Here we use the conditional functions:
>>> fn_conditional_max = fn.branching.conditional( ( ( fn_x <= 1., fn_one_minus_x ), ( fn_x > 1., fn_x_minus_one ) )) >>> fn_conditional_min = fn.branching.conditional( ( ( fn_x >= 1., fn_one_minus_x ), ( fn_x < 1., fn_x_minus_one ) ))
They should return identical results:
>>> np.allclose(fn_max.evaluate(testpoints),fn_conditional_max.evaluate(testpoints)) True >>> np.allclose(fn_min.evaluate(testpoints),fn_conditional_min.evaluate(testpoints)) True
-
class
underworld.function.misc.
constant
(value, *args, **kwargs)[source]¶ Bases:
underworld.function._function.Function
This function returns a constant value.
Parameters: value (int,float,bool, iterable) – The value the function should return. Note that iterable objects which contain valid types are permitted, but must be homogeneous in their type. Example
>>> import underworld as uw >>> import underworld.function as fn >>> fn_const = fn.misc.constant( 3 ) >>> fn_const.evaluate(0.) # eval anywhere for constant array([[3]], dtype=int32) >>> fn_const = fn.misc.constant( (3,2,1) ) >>> fn_const.evaluate(0.) # eval anywhere for constant array([[3, 2, 1]], dtype=int32) >>> fn_const = fn.misc.constant( 3. ) >>> fn_const.evaluate(0.) # eval anywhere for constant array([[ 3.]]) >>> fn_const = fn.misc.constant( (3.,2.,1.) ) >>> fn_const.evaluate(0.) # eval anywhere for constant array([[ 3., 2., 1.]]) >>> fn_const = fn.misc.constant( True ) >>> fn_const.evaluate(0.) # eval anywhere for constant array([[ True]], dtype=bool) >>> fn_const = fn.misc.constant( (True,False,True) ) >>> fn_const.evaluate(0.) # eval anywhere for constant array([[ True, False, True]], dtype=bool)
-
value
¶ constant value this function returns
Type: value
-
-
class
underworld.function.misc.
min
(fn1, fn2, **kwargs)[source]¶ Bases:
underworld.function._function.Function
Returns the minimum of the results returned from its two argument function.
Parameters: - fn1 (underworld.function.Function) – First argument function. Function must return a float type.
- fn2 (underworld.function.Function) – Second argument function. Function must return a float type.
Example
See the example provided for ‘max’ function.