Status
Status
¶
Bases: Enum
Status of a computation.
Statuses can be combined using bitwise or (|) and bitwise and (&) to
get the status of a combined computation. For example, if we have two
computations, one that has converged and one that has failed, then the
combined status is Status.Converged | Status.Failed == Status.Converged,
but Status.Converged & Status.Failed == Status.Failed.
OR¶
The result of bitwise or-ing two valuation statuses with | is given
by the following table:
| P | C | F | |
|---|---|---|---|
| P | P | C | P |
| C | C | C | C |
| F | P | C | F |
where P = Pending, C = Converged, F = Failed.
AND¶
The result of bitwise and-ing two valuation statuses with & is given
by the following table:
| P | C | F | |
|---|---|---|---|
| P | P | P | F |
| C | P | C | F |
| F | F | F | F |
where P = Pending, C = Converged, F = Failed.
NOT¶
The result of bitwise negation of a Status with ~ is Failed if
the status is Converged, or Converged otherwise:
Boolean casting¶
A Status evaluates to True iff it's Converged or Failed:
Warning
These truth values are inconsistent with the usual boolean
operations. In particular the XOR of two instances of Status is not
the same as the XOR of their boolean values.
Created: 2023-09-02