roundme is a human-assisted rounding analyzer. It helps its operator determine whether an arithmetic operation should round up or down.
roundme init to generate a default configuration file. roundme config to generate user configuration file. roundme analyze to analyze the configuration fileroundme pdf to generate a PDF (require latexmk)Running roundme pdf on the default configuration will generate the following:

roundme relies on a configuration file:
formula: a * b / c
round_up: true
less_than_one: ["a * b"] # optional
greater_than_one: ["c"] # optional
formula contains the formula to be analyzeround_up determines if the result of the formula should round up or downless_than_one is used for the ** rules (raw string comparison and sensible to space)greater_than_one is used for the ** rules (raw string comparison and sensible to space)See the balancer V2 example.
rounding() is the expected rounding direction for the result (up or down)
A + B => rounding(A), rounding(B) (addition does not change the rounding direction)A - B => rounding(A), ! rounding(B) (the rounding direction of the substracted element is inverse of the expected rounding)A * B => rounding(A), rounding(B), rounding(*) (multiplication does not change the rounding direction)A / B => rounding(A), ! rounding(B), rounding(/) (the rounding direction of the denominator is the inverse of the expected rounding)A ** BIf A>=1 => rounding(A), rounding(B)If A<1 => rounding(A), ! rounding(B) (if A is below 1, the rounding direction of the exponent is the inverse of the expected rounding)Install with
cargo install roundme
To install the latest GitHub version
git clone git@github.com:crytic/roundme.git
cd roundme
cargo install --path .
$ claude mcp add roundme \
-- python -m otcore.mcp_server <graph>