internal/calc gets its own tokenizer and precedence-climbing parser in place of go/parser, which cannot express a power operator; go/constant still computes. ^ (also **) binds tighter than * / % and a sign on its left, and groups to the right. % takes the sign of the divisor and is exact on decimals. A whole exponent is computed exactly while the result's numerator and denominator stay within 4096 bits; otherwise, and for a fractional exponent, in float64. A remainder, or the sign of a negative base's power, that depends on a value go/constant holds rounded is refused as too large. The welcome text and the replies mention the new operators; a negative base with a fractional exponent gets its own reply. Model: opus-5-5
This commit is contained in:
@@ -27,6 +27,9 @@ with no deprecation warning.
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-09-28 Powers (`^`, also written `**`) and remainders (`%`) in
|
||||
`internal/calc`, which now reads expressions with a parser of its own
|
||||
in place of `go/parser`
|
||||
- 2026-09-28 Moved the command tree and the `run` and `version` commands
|
||||
from `cmd/simplexcalc/` into `internal/cli`; `cmd/simplexcalc/main.go`
|
||||
is now a single call to `cli.Main`
|
||||
|
||||
Reference in New Issue
Block a user