Static dispatch for public ExecFloat operations #
Same-format arithmetic entry points of the format-independent execution layer. Capability
dictionaries are resolved from the static format type. Each function is marked inline, and the
checks under benchmarks/scripts/checks/ verify that specialization erases the dictionary lookup.
Add two values in the same format using the certified implementation selected for F.
This is the function behind left + right. In proofs, ExecFloat.Proof.add_eq_spec rewrites it to
the reference definition.
Instances For
Subtract two values in the same format using the certified implementation selected for F.
This is the function behind left - right. In proofs, ExecFloat.Proof.sub_eq_spec rewrites it to
the reference definition.
Instances For
Multiply two values in the same format using the certified implementation selected for F.
This is the function behind left * right. In proofs, ExecFloat.Proof.mul_eq_spec rewrites it to
the reference definition.
Instances For
Divide two values in the same format using the certified implementation selected for F.
This is the function behind left / right. In proofs, ExecFloat.Proof.div_eq_spec rewrites it to
the reference definition.
Instances For
Compute square root using the certified implementation selected for F.
Write ExecFloat.sqrt value, or value.sqrt for a format without its own sqrt. On a configured
binary value, value.sqrt is ExecFloat.Binary.sqrt, whose default call is this function. In
proofs, ExecFloat.Proof.sqrt_eq_spec rewrites it to the reference definition.
Instances For
Compute left * right + addend with one final rounding using the certified implementation
selected for F.
In proofs, ExecFloat.Proof.fma_eq_spec rewrites it to the reference definition.