Checkpoint the party/runtime stack before share-program and malicious-mode work.
Ship the TLS mesh, composer, Beaver/Yao/leaf MPC, prep/online paths, apps, and docs so the tree is pushable before elevating share_expr, security_mode, and prep resume. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
695f8e84f7
commit
0d22946a0e
1835 changed files with 170291 additions and 2849 deletions
|
|
@ -28,6 +28,10 @@
|
|||
|
||||
namespace grotto
|
||||
{
|
||||
/// \complexity Extracts the IEEE fields and prints a fixed-size mantissa. `Θ(1)`.
|
||||
/// @see grotto::from_hexfloat
|
||||
/// @param x the double
|
||||
/// @return the hexfloat spelling
|
||||
|
||||
template <class CharT = char,
|
||||
class Traits = std::char_traits<CharT>,
|
||||
|
|
@ -339,7 +343,7 @@ inline void shift_right_limbs(std::vector<std::uint64_t> & limbs, unsigned shift
|
|||
/// significand * 2^(exponent + fractional_bits), floored toward -inf on the
|
||||
/// discarded fraction and wrapped modulo 2^width.
|
||||
/// @tparam T value type
|
||||
/// @param text the `text`
|
||||
/// @param text hexfloat spelling
|
||||
/// @param fractional_bits the number of fractional bits
|
||||
/// @return the returned `T`
|
||||
/// @throws std::invalid_argument if `empty hexfloat`
|
||||
|
|
@ -473,6 +477,8 @@ T integer_from_hexfloat(std::string_view text, int fractional_bits)
|
|||
}
|
||||
|
||||
} // namespace detail
|
||||
/// \complexity `format_hexfloat` walks the bits below the highest set bit, four per nibble. `Θ(width)` with `width = bitlength_of_v<T>` (at most 256). Extra space is the nibble string, `Θ(width)`.
|
||||
/// @see grotto::fixedpoint
|
||||
|
||||
template <typename T>
|
||||
std::enable_if_t<detail::is_hexfloat_integer<T>, std::string>
|
||||
|
|
@ -480,12 +486,21 @@ to_hexfloat(T value)
|
|||
{
|
||||
return detail::format_hexfloat(value, 0);
|
||||
}
|
||||
/// \complexity Forwards the raw word to `format_hexfloat` with `FractionalBits` as the binary point. `Θ(backend width)`.
|
||||
/// @see grotto::fixedpoint
|
||||
/// @note Prints the mathematical value of the fixed-point word, using `integral_representation()`.
|
||||
|
||||
template <unsigned FractionalBits, typename Integral>
|
||||
std::string to_hexfloat(fixedpoint<FractionalBits, Integral> value)
|
||||
{
|
||||
return detail::format_hexfloat(value.integral_representation(), FractionalBits);
|
||||
}
|
||||
/// \complexity Scans the text once. Integer and fixed-point paths shift a limb vector by the exponent. Time `Θ(digits + |exponent shift|)`. Extra space is that limb vector.
|
||||
/// A `double` target uses `strtod`.
|
||||
/// @see grotto::to_hexfloat
|
||||
/// @note Fixed-point parsing is bit-exact into `from_raw` / `make_fixed_from_integral_type`: discarded fraction bits are floored, and the word wraps modulo `2^width`.
|
||||
/// @param text hexfloat spelling
|
||||
/// @return the parsed value
|
||||
|
||||
template <typename T>
|
||||
T from_hexfloat(std::string_view text)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue