Static dispatch for public ExecFloat operations #
These are the 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; 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. Proofs can use ExecFloat.Proof.add_eq_spec to replace
the call with its 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. Proofs can use ExecFloat.Proof.sub_eq_spec to replace
the call with its 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. Proofs can use ExecFloat.Proof.mul_eq_spec to replace
the call with its 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. Proofs can use ExecFloat.Proof.div_eq_spec to replace
the call with its reference definition.
Instances For
Compute square root using the certified implementation selected for F.
This is the function behind value.sqrt. Proofs can use ExecFloat.Proof.sqrt_eq_spec to replace
the call with its reference definition.
Instances For
Compute left * right + addend with one final rounding using the certified implementation
selected for F.
Proofs can use ExecFloat.Proof.fma_eq_spec to replace the call with its reference definition.