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