PrecisionContext
- class kanon.units.precision.PrecisionContext(pmode: PrecisionMode = PrecisionMode.MAX, tmode: TruncatureMode = TruncatureMode.NONE, add: Callable[[PreciseNumber, PreciseNumber], PreciseNumber] | None = None, sub: Callable[[PreciseNumber, PreciseNumber], PreciseNumber] | None = None, mul: Callable[[PreciseNumber, PreciseNumber], PreciseNumber] | None = None, div: Callable[[PreciseNumber, PreciseNumber], PreciseNumber] | None = None, recording: bool = False)[source] [edit on github]
Bases:
object
Context containing
PreciseNumber
arithmetic rules.Attributes Summary
Addition
CustomArithmeticAlgorithm
Division
CustomArithmeticAlgorithm
Multiplication
CustomArithmeticAlgorithm
Precision mode
Recording mode
set_precision
context stackSubstraction
CustomArithmeticAlgorithm
Truncature mode
Methods Summary
freeze
()Returns a
Dict
containing this context rulesmutate
([pmode, tmode, recording, add, sub, ...])Mutates this
PrecisionContext
with new rules.record
(*args)Record an operation
Attributes Documentation
- add: Callable[[PreciseNumber, PreciseNumber], PreciseNumber] | None = None
Addition
CustomArithmeticAlgorithm
- div: Callable[[PreciseNumber, PreciseNumber], PreciseNumber] | None = None
Division
CustomArithmeticAlgorithm
- mul: Callable[[PreciseNumber, PreciseNumber], PreciseNumber] | None = None
Multiplication
CustomArithmeticAlgorithm
- pmode: PrecisionMode = (<function PrecisionMode.<lambda>>, 1)
Precision mode
- stack: int = 0
set_precision
context stack
- sub: Callable[[PreciseNumber, PreciseNumber], PreciseNumber] | None = 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: PrecisionMode | None = None, tmode: TruncatureMode | None = None, recording: bool | None = None, add: Callable[[PreciseNumber, PreciseNumber], PreciseNumber] | None | Literal[False] = False, sub: Callable[[PreciseNumber, PreciseNumber], PreciseNumber] | None | Literal[False] = False, mul: Callable[[PreciseNumber, PreciseNumber], PreciseNumber] | None | Literal[False] = False, div: 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