simple_functions¶
A collection of simple functions.
TypeVar’s
- class ComparableT¶
TypeVar('ComparableT', bound=Comparable)
Classes
Functions
- binary_search(function, target, lower_bound, upper_bound, tolerance=0.0001)[source]¶
Searches for a value in a range by repeatedly dividing the range in half.
To be more precise, performs numerical binary search to determine the input to
function, between the bounds given, that outputstargetto withintolerance(default of 0.0001). ReturnsNoneif no input can be found within the bounds.Examples
Consider the polynomial \(x^2 + 3x + 1\) where we search for a target value of \(11\). An exact solution is \(x = 2\).
>>> solution = binary_search(lambda x: x**2 + 3*x + 1, 11, 0, 5) >>> bool(abs(solution - 2) < 1e-4) True >>> solution = binary_search(lambda x: x**2 + 3*x + 1, 11, 0, 5, tolerance=0.01) >>> bool(abs(solution - 2) < 0.01) True
Searching in the interval \([0, 5]\) for a target value of \(71\) does not yield a solution:
>>> binary_search(lambda x: x**2 + 3*x + 1, 71, 0, 5) is None True
- Parameters:
function (Callable[[float], float])
target (float)
lower_bound (float)
upper_bound (float)
tolerance (float)
- Return type:
float | None
- choose(n, k)[source]¶
The binomial coefficient n choose k.
\(\binom{n}{k}\) describes the number of possible choices of \(k\) elements from a set of \(n\) elements.
References
- Parameters:
n (int)
k (int)
- Return type:
int
- clip(a, min_a, max_a)[source]¶
Clips
ato the interval [min_a,max_a].Accepts any comparable objects (i.e. those that support <, >). Returns
aif it is betweenmin_aandmax_a. Otherwise, whichever ofmin_aandmax_ais closest.Examples
>>> clip(15, 11, 20) 15 >>> clip('a', 'h', 'k') 'h'
- Parameters:
a (ComparableT)
min_a (ComparableT)
max_a (ComparableT)
- Return type: