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