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
-