PrecisionContext

class kanon.units.precision.PrecisionContext(pmode: PrecisionMode = PrecisionMode.MAX, tmode: TruncatureMode = TruncatureMode.NONE, add: Optional[Callable[[PreciseNumber, PreciseNumber], PreciseNumber]] = None, sub: Optional[Callable[[PreciseNumber, PreciseNumber], PreciseNumber]] = None, mul: Optional[Callable[[PreciseNumber, PreciseNumber], PreciseNumber]] = None, div: Optional[Callable[[PreciseNumber, PreciseNumber], PreciseNumber]] = None, recording: bool = False)[source] [edit on github]

Bases: object

Context containing PreciseNumber arithmetic rules.

Attributes Summary

add

Addition CustomArithmeticAlgorithm

div

Division CustomArithmeticAlgorithm

mul

Multiplication CustomArithmeticAlgorithm

pmode

Precision mode

recording

Recording mode

stack

set_precision context stack

sub

Substraction CustomArithmeticAlgorithm

tmode

Truncature mode

Methods Summary

freeze()

Returns a Dict containing this context rules

mutate([pmode, tmode, recording, add, sub, ...])

Mutates this PrecisionContext with new rules.

record(*args)

Record an operation

Attributes Documentation

add: Optional[Callable[[PreciseNumber, PreciseNumber], PreciseNumber]] = None

Addition CustomArithmeticAlgorithm

div: Optional[Callable[[PreciseNumber, PreciseNumber], PreciseNumber]] = None

Division CustomArithmeticAlgorithm

mul: Optional[Callable[[PreciseNumber, PreciseNumber], PreciseNumber]] = None

Multiplication CustomArithmeticAlgorithm

pmode: PrecisionMode = (<function PrecisionMode.<lambda>>, 1)

Precision mode

recording: bool = False

Recording mode

stack: int = 0

set_precision context stack

sub: Optional[Callable[[PreciseNumber, PreciseNumber], PreciseNumber]] = None

Substraction CustomArithmeticAlgorithm

tmode: TruncatureMode = (<function TruncatureMode.<lambda>>, 0)

Truncature mode

Methods Documentation

freeze()[source] [edit on github]

Returns a Dict containing this context rules

mutate(pmode: Optional[PrecisionMode] = None, tmode: Optional[TruncatureMode] = None, recording: Optional[bool] = None, add: Union[Callable[[PreciseNumber, PreciseNumber], PreciseNumber], None, Literal[False]] = False, sub: Union[Callable[[PreciseNumber, PreciseNumber], PreciseNumber], None, Literal[False]] = False, mul: Union[Callable[[PreciseNumber, PreciseNumber], PreciseNumber], None, Literal[False]] = False, div: Union[Callable[[PreciseNumber, PreciseNumber], PreciseNumber], None, Literal[False]] = False)[source] [edit on github]

Mutates this PrecisionContext with new rules.

record(*args)[source] [edit on github]

Record an operation