fnpcell.fp

Common floating functions to handle floating errors

Functions

is_close

def is_close(a: float, b: float, *, epsilon: float = 1e-12) -> bool

Determine whether two floating point numbers are close in value.

Args

epsilon

maximum difference for being considered “close”.

is_negative

def is_negative(value: float, *, epsilon: float = 1e-12) -> bool

is_non_negative

def is_non_negative(value: float, *, epsilon: float = 1e-12) -> bool

is_non_positive

def is_non_positive(value: float, *, epsilon: float = 1e-12) -> bool

is_nonzero

def is_nonzero(value: float, *, epsilon: float = 1e-12) -> bool

Determine whether value is not 0.

Args

epsilon

maximum difference for being not considered 0.

is_one

def is_one(value: float, *, epsilon: float = 1e-12) -> bool

Determine whether value is 1.

Args

epsilon

maximum difference for being considered 1.

is_positive

def is_positive(value: float, *, epsilon: float = 1e-12) -> bool

is_zero

def is_zero(value: float, *, epsilon: float = 1e-12) -> bool

Determine whether value is 0.

Args

epsilon

maximum difference for being considered 0.

round_half_up

def round_half_up(value: float, *, epsilon: float = 1e-12) -> float

Return the round value as an Integral.