✓
Passing This code compiles and runs correctly.
Code
// std/num:sin/cos/atan — mod-2pi reduction + fold to [0,pi/2], Taylor with
// guard digits; atan reduces to |x|<=1, three argument halvings, Taylor.
import std/io
import std/num
std/num:lit(0)
| exact a |> std/num:sin(a, prec: 20)
| exact r |> std/io:print.ln("{{ r:s }}") |> std/num:free(n: r)
| overflow |> std/io:print.ln("of")
| bad x |> std/io:print.ln("bad")
std/num:lit(0.5)
| exact a |> std/num:sin(a, prec: 20)
| exact r |> std/io:print.ln("{{ r:s }}") |> std/num:free(n: r)
| overflow |> std/io:print.ln("of")
| bad x |> std/io:print.ln("bad")
std/num:lit(1.5707963267948966192313216916398)
| exact a |> std/num:sin(a, prec: 30)
| exact r |> std/io:print.ln("{{ r:s }}") |> std/num:free(n: r)
| overflow |> std/io:print.ln("of")
| bad x |> std/io:print.ln("bad")
std/num:lit(0)
| exact a |> std/num:cos(a, prec: 20)
| exact r |> std/io:print.ln("{{ r:s }}") |> std/num:free(n: r)
| overflow |> std/io:print.ln("of")
| bad x |> std/io:print.ln("bad")
std/num:lit(0.5)
| exact a |> std/num:atan(a, prec: 20): r |> std/io:print.ln("{{ r:s }}") |> std/num:free(n: r)
| bad x |> std/io:print.ln("bad")
std/num:lit(1)
| exact a |> std/num:atan(a, prec: 30): r |> std/io:print.ln("{{ r:s }}") |> std/num:free(n: r)
| bad x |> std/io:print.ln("bad")
Actual
0e0
4.7942553860420300027e-1
9.99999999999999999999999999999e-1
1e0
4.6364760900080611621e-1
7.85398163397448309615660845819e-1
Expected output
0e0
4.7942553860420300027e-1
9.99999999999999999999999999999e-1
1e0
4.6364760900080611621e-1
7.85398163397448309615660845819e-1
Flows
flow ~lit click a branch to expand · @labels scroll to their anchor
lit (expr: 0)
flow ~lit click a branch to expand · @labels scroll to their anchor
lit (expr: 0.5)
flow ~lit click a branch to expand · @labels scroll to their anchor
lit (expr: 1.5707963267948966192313216916398)
flow ~lit click a branch to expand · @labels scroll to their anchor
lit (expr: 0)
flow ~lit click a branch to expand · @labels scroll to their anchor
lit (expr: 0.5)
flow ~lit click a branch to expand · @labels scroll to their anchor
lit (expr: 1)
Test Configuration
MUST_RUN