Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, B

Time bar (total: 3.9s)

start0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated; 0ms collecting garbage

analyze0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated; 0ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 11 to 10 computations (9.1% saved)

sample1.3s (32.7%)

Memory
70.9MiB live, 1 828.2MiB allocated; 404ms collecting garbage
Samples
1.1s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 791.0ms
ival-cos: 282.0ms (35.6% of total)
ival-sin: 269.0ms (34% of total)
ival-mult!: 218.0ms (27.5% of total)
ival-add!: 21.0ms (2.7% of total)
adjust: 2.0ms (0.3% of total)
Bogosity

preprocess170.0ms (4.3%)

Memory
-84.4MiB live, 60.1MiB allocated; 132ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03693
111990
234190
3102090
4761490
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
Compiler

Compiled 16 to 16 computations (0% saved)

series10.0ms (0.3%)

Memory
28.9MiB live, 28.9MiB allocated; 0ms collecting garbage
Counts
8 → 29
Calls
Call 1
Inputs
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
(*.f64 x (sin.f64 y))
x
(sin.f64 y)
y
(*.f64 z (cos.f64 y))
z
(cos.f64 y)
Outputs
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (cos y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ (* x (sin y)) (* z (cos y)))))
#s(approx (* x (sin y)) #s(hole binary64 (* x (sin y))))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* x (+ (sin y) (/ (* z (cos y)) x)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* x (+ (* -1 (sin y)) (* -1 (/ (* z (cos y)) x)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* x y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* -1/2 (* y z)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* y (+ (* -1/2 z) (* -1/6 (* x y)))))))))
#s(approx (* x (sin y)) #s(hole binary64 (* x y)))
#s(approx (* x (sin y)) #s(hole binary64 (* y (+ x (* -1/6 (* x (pow y 2)))))))
#s(approx (* x (sin y)) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))))
#s(approx (* x (sin y)) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))))
#s(approx (sin y) #s(hole binary64 y))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* -1/6 (pow y 2))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))))
#s(approx (* z (cos y)) #s(hole binary64 (+ z (* -1/2 (* (pow y 2) z)))))
#s(approx (* z (cos y)) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* 1/24 (* (pow y 2) z)))))))
#s(approx (* z (cos y)) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* (pow y 2) (+ (* -1/720 (* (pow y 2) z)) (* 1/24 z))))))))
#s(approx (cos y) #s(hole binary64 1))
#s(approx (cos y) #s(hole binary64 (+ 1 (* -1/2 (pow y 2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* 1/24 (pow y 2)) 1/2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/24 (* -1/720 (pow y 2)))) 1/2)))))
#s(approx (sin y) #s(hole binary64 (sin y)))
#s(approx (cos y) #s(hole binary64 (cos y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (+ (cos y) (/ (* x (sin y)) z)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* z (+ (* -1 (cos y)) (* -1 (/ (* x (sin y)) z)))))))
Calls

9 calls:

TimeVariablePointExpression
1.0ms
y
@0
((+ (* x (sin y)) (* z (cos y))) (* x (sin y)) x (sin y) y (* z (cos y)) z (cos y))
1.0ms
x
@0
((+ (* x (sin y)) (* z (cos y))) (* x (sin y)) x (sin y) y (* z (cos y)) z (cos y))
1.0ms
x
@inf
((+ (* x (sin y)) (* z (cos y))) (* x (sin y)) x (sin y) y (* z (cos y)) z (cos y))
1.0ms
x
@-inf
((+ (* x (sin y)) (* z (cos y))) (* x (sin y)) x (sin y) y (* z (cos y)) z (cos y))
1.0ms
z
@-inf
((+ (* x (sin y)) (* z (cos y))) (* x (sin y)) x (sin y) y (* z (cos y)) z (cos y))

rewrite253.0ms (6.4%)

Memory
16.7MiB live, 338.5MiB allocated; 95ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0143505
0151493
1949489
08652443
129649443
Stop Event
saturated
node-limit
iter-limit
Counts
37 → 63
Calls
Call 1
Inputs
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
(*.f64 x (sin.f64 y))
x
(sin.f64 y)
y
(*.f64 z (cos.f64 y))
z
(cos.f64 y)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (cos y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ (* x (sin y)) (* z (cos y)))))
#s(approx (* x (sin y)) #s(hole binary64 (* x (sin y))))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* x (+ (sin y) (/ (* z (cos y)) x)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* x (+ (* -1 (sin y)) (* -1 (/ (* z (cos y)) x)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* x y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* -1/2 (* y z)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* y (+ (* -1/2 z) (* -1/6 (* x y)))))))))
#s(approx (* x (sin y)) #s(hole binary64 (* x y)))
#s(approx (* x (sin y)) #s(hole binary64 (* y (+ x (* -1/6 (* x (pow y 2)))))))
#s(approx (* x (sin y)) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))))
#s(approx (* x (sin y)) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))))
#s(approx (sin y) #s(hole binary64 y))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* -1/6 (pow y 2))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))))
#s(approx (* z (cos y)) #s(hole binary64 (+ z (* -1/2 (* (pow y 2) z)))))
#s(approx (* z (cos y)) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* 1/24 (* (pow y 2) z)))))))
#s(approx (* z (cos y)) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* (pow y 2) (+ (* -1/720 (* (pow y 2) z)) (* 1/24 z))))))))
#s(approx (cos y) #s(hole binary64 1))
#s(approx (cos y) #s(hole binary64 (+ 1 (* -1/2 (pow y 2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* 1/24 (pow y 2)) 1/2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/24 (* -1/720 (pow y 2)))) 1/2)))))
#s(approx (sin y) #s(hole binary64 (sin y)))
#s(approx (cos y) #s(hole binary64 (cos y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (+ (cos y) (/ (* x (sin y)) z)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* z (+ (* -1 (cos y)) (* -1 (/ (* x (sin y)) z)))))))
Outputs
(neg.f64 (-.f64 (*.f64 (neg.f64 z) (cos.f64 y)) (*.f64 (sin.f64 y) x)))
(fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x))
(fma.f64 (sin.f64 y) x (*.f64 (neg.f64 (neg.f64 z)) (cos.f64 y)))
(fma.f64 (sin.f64 y) x (neg.f64 (*.f64 (neg.f64 z) (cos.f64 y))))
(fma.f64 (sin.f64 y) x (*.f64 (cos.f64 y) z))
(fma.f64 z (cos.f64 y) (*.f64 (sin.f64 y) x))
(fma.f64 x (sin.f64 y) (*.f64 (neg.f64 (neg.f64 z)) (cos.f64 y)))
(fma.f64 x (sin.f64 y) (neg.f64 (*.f64 (neg.f64 z) (cos.f64 y))))
(fma.f64 x (sin.f64 y) (*.f64 (cos.f64 y) z))
(-.f64 (*.f64 (cos.f64 y) z) (*.f64 (neg.f64 x) (sin.f64 y)))
(-.f64 (*.f64 (sin.f64 y) x) (*.f64 (neg.f64 z) (cos.f64 y)))
(+.f64 (*.f64 (cos.f64 y) z) (*.f64 (sin.f64 y) x))
(+.f64 (*.f64 (sin.f64 y) x) (*.f64 (neg.f64 (neg.f64 z)) (cos.f64 y)))
(+.f64 (*.f64 (sin.f64 y) x) (neg.f64 (*.f64 (neg.f64 z) (cos.f64 y))))
(+.f64 (*.f64 (sin.f64 y) x) (*.f64 (cos.f64 y) z))
(*.f64 (sin.f64 y) x)
(*.f64 x (sin.f64 y))
x
(sin.f64 y)
y
(*.f64 (cos.f64 y) z)
(*.f64 z (cos.f64 y))
z
(sin.f64 (+.f64 (neg.f64 y) (*.f64 (PI.f64) #s(literal 1/2 binary64))))
(sin.f64 (+.f64 (fabs.f64 y) (*.f64 (PI.f64) #s(literal 1/2 binary64))))
(sin.f64 (+.f64 y (*.f64 (PI.f64) #s(literal 1/2 binary64))))
(fma.f64 (sin.f64 y) (cos.f64 (*.f64 (PI.f64) #s(literal 1/2 binary64))) (*.f64 (cos.f64 y) (sin.f64 (*.f64 (PI.f64) #s(literal 1/2 binary64)))))
(cos.f64 (neg.f64 (neg.f64 y)))
(cos.f64 (neg.f64 (fabs.f64 y)))
(cos.f64 (fabs.f64 (fabs.f64 y)))
(cos.f64 (neg.f64 y))
(cos.f64 (fabs.f64 y))
(cos.f64 y)
(+.f64 (*.f64 (sin.f64 y) (cos.f64 (*.f64 (PI.f64) #s(literal 1/2 binary64)))) (*.f64 (cos.f64 y) (sin.f64 (*.f64 (PI.f64) #s(literal 1/2 binary64)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x)))
#s(approx (* x (sin y)) (*.f64 (sin.f64 y) x))
#s(approx x x)
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
#s(approx (* x (sin y)) (*.f64 y x))
#s(approx (* x (sin y)) (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y))
#s(approx (* x (sin y)) (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal -1/6 binary64) x)) y) y x) y))
#s(approx (* x (sin y)) (*.f64 (fma.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal 1/120 binary64) x)) y) y (*.f64 #s(literal -1/6 binary64) x)) y) y x) y))
#s(approx (sin y) y)
#s(approx (sin y) (*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) y))
#s(approx (sin y) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y))
#s(approx (sin y) (*.f64 (fma.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64)) y) y #s(literal 1 binary64)) y))
#s(approx (* z (cos y)) (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) z))
#s(approx (* z (cos y)) (fma.f64 (*.f64 z (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64))) (*.f64 y y) z))
#s(approx (* z (cos y)) (fma.f64 (*.f64 (fma.f64 (*.f64 z (fma.f64 #s(literal -1/720 binary64) (*.f64 y y) #s(literal 1/24 binary64))) (*.f64 y y) (*.f64 #s(literal -1/2 binary64) z)) y) y z))
#s(approx (cos y) #s(literal 1 binary64))
#s(approx (cos y) (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) #s(literal 1 binary64)))
#s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64)))
#s(approx (cos y) (fma.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 y y) #s(literal 1/24 binary64)) (*.f64 y y) #s(literal -1/2 binary64)) y) y #s(literal 1 binary64)))
#s(approx (sin y) (sin.f64 y))
#s(approx (cos y) (cos.f64 y))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (sin.f64 y) (/.f64 x z) (cos.f64 y)) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (sin.f64 y) (/.f64 x z) (cos.f64 y)) z))

eval6.0ms (0.1%)

Memory
12.4MiB live, 12.4MiB allocated; 0ms collecting garbage
Compiler

Compiled 389 to 204 computations (47.6% saved)

prune16.0ms (0.4%)

Memory
-34.7MiB live, 14.3MiB allocated; 2ms collecting garbage
Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New441054
Fresh000
Picked101
Done000
Total451055
Accuracy
99.9%
Counts
55 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(fma.f64 (sin.f64 y) x (*.f64 (cos.f64 y) z))
99.8%
(fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x))
72.4%
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z #s(approx (cos y) #s(literal 1 binary64))))
45.8%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
45.7%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x) y z))
46.6%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
85.3%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (sin.f64 y) (/.f64 x z) (cos.f64 y)) z))
90.6%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y)) x))
58.5%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
32.7%
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
Compiler

Compiled 222 to 222 computations (0% saved)

series15.0ms (0.4%)

Memory
35.2MiB live, 35.2MiB allocated; 0ms collecting garbage
Counts
16 → 50
Calls
Call 1
Inputs
(fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x))
(cos.f64 y)
y
z
(*.f64 (sin.f64 y) x)
(sin.f64 y)
x
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x) y z))
(fma.f64 (fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x) y z)
(fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x)
(*.f64 z y)
#s(literal -1/2 binary64)
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
(*.f64 (cos.f64 y) z)
(fma.f64 (sin.f64 y) x (*.f64 (cos.f64 y) z))
Outputs
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (* z (cos y))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (+ (* x (sin y)) (* z (cos y)))))
#s(approx (* (sin y) x) #s(hole binary64 (* x (sin y))))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (* -1/2 (* (pow y 2) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (+ (* -1/2 (* (pow y 2) z)) (* x y)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1/2 (* y z))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (+ x (* -1/2 (* y z)))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (* x (+ (sin y) (/ (* z (cos y)) x)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* x y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* x (+ y (+ (* -1/2 (/ (* (pow y 2) z) x)) (/ z x))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* x (+ 1 (* -1/2 (/ (* y z) x))))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (* -1 (* x (+ (* -1 (sin y)) (* -1 (/ (* z (cos y)) x)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1/2 (* (pow y 2) z))) x)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* x (- (* 1/2 (/ (* y z) x)) 1)))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 z))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (+ z (* x y))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (+ z (* y (+ x (* -1/2 (* y z)))))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (+ z (* y (+ x (* y (+ (* -1/2 z) (* -1/6 (* x y)))))))))
#s(approx (cos y) #s(hole binary64 1))
#s(approx (cos y) #s(hole binary64 (+ 1 (* -1/2 (pow y 2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* 1/24 (pow y 2)) 1/2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/24 (* -1/720 (pow y 2)))) 1/2)))))
#s(approx y #s(hole binary64 y))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* -1/6 (* x (pow y 2)))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* -1/6 (pow y 2))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))))
#s(approx (* z y) #s(hole binary64 (* y z)))
#s(approx (* (cos y) z) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* 1/24 (* (pow y 2) z)))))))
#s(approx (* (cos y) z) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* (pow y 2) (+ (* -1/720 (* (pow y 2) z)) (* 1/24 z))))))))
#s(approx (cos y) #s(hole binary64 (cos y)))
#s(approx (sin y) #s(hole binary64 (sin y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1/2 (* (pow y 2) z))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (+ (/ x y) (/ z (pow y 2)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* y (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1 (/ (+ (* -1 x) (* -1 (/ z y))) y)) (* -1/2 z)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x y)) (* 1/2 z))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ (* x y) (* z (+ 1 (* -1/2 (pow y 2)))))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (* z (+ (cos y) (/ (* x (sin y)) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (* -1/2 (pow y 2))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (+ (* -1/2 (pow y 2)) (/ (* x y) z))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* z (+ (* -1/2 y) (/ x z)))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (* -1 (* z (+ (* -1 (cos y)) (* -1 (/ (* x (sin y)) z)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (* 1/2 (pow y 2)) 1)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (+ (* -1 (/ (* x y) z)) (* 1/2 (pow y 2))) 1)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* z (+ (* -1 (/ x z)) (* 1/2 y))))))
Calls

9 calls:

TimeVariablePointExpression
3.0ms
x
@-inf
((+ (* (cos y) z) (* (sin y) x)) (cos y) y z (* (sin y) x) (sin y) x (+ (* x (sin y)) (* z (cos y))) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* z y) -1/2 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (+ (* (sin y) x) (* (cos y) z)))
2.0ms
z
@-inf
((+ (* (cos y) z) (* (sin y) x)) (cos y) y z (* (sin y) x) (sin y) x (+ (* x (sin y)) (* z (cos y))) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* z y) -1/2 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (+ (* (sin y) x) (* (cos y) z)))
2.0ms
z
@inf
((+ (* (cos y) z) (* (sin y) x)) (cos y) y z (* (sin y) x) (sin y) x (+ (* x (sin y)) (* z (cos y))) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* z y) -1/2 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (+ (* (sin y) x) (* (cos y) z)))
2.0ms
x
@0
((+ (* (cos y) z) (* (sin y) x)) (cos y) y z (* (sin y) x) (sin y) x (+ (* x (sin y)) (* z (cos y))) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* z y) -1/2 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (+ (* (sin y) x) (* (cos y) z)))
1.0ms
y
@-inf
((+ (* (cos y) z) (* (sin y) x)) (cos y) y z (* (sin y) x) (sin y) x (+ (* x (sin y)) (* z (cos y))) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* z y) -1/2 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (+ (* (sin y) x) (* (cos y) z)))

rewrite199.0ms (5.1%)

Memory
-0.4MiB live, 277.8MiB allocated; 22ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02461011
0264982
11659982
08192931
127033931
Stop Event
saturated
node-limit
iter-limit
Counts
66 → 113
Calls
Call 1
Inputs
(fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x))
(cos.f64 y)
y
z
(*.f64 (sin.f64 y) x)
(sin.f64 y)
x
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x) y z))
(fma.f64 (fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x) y z)
(fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x)
(*.f64 z y)
#s(literal -1/2 binary64)
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
(*.f64 (cos.f64 y) z)
(fma.f64 (sin.f64 y) x (*.f64 (cos.f64 y) z))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (* z (cos y))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (+ (* x (sin y)) (* z (cos y)))))
#s(approx (* (sin y) x) #s(hole binary64 (* x (sin y))))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (* -1/2 (* (pow y 2) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (+ (* -1/2 (* (pow y 2) z)) (* x y)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1/2 (* y z))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (+ x (* -1/2 (* y z)))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (* x (+ (sin y) (/ (* z (cos y)) x)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* x y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* x (+ y (+ (* -1/2 (/ (* (pow y 2) z) x)) (/ z x))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* x (+ 1 (* -1/2 (/ (* y z) x))))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (* -1 (* x (+ (* -1 (sin y)) (* -1 (/ (* z (cos y)) x)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1/2 (* (pow y 2) z))) x)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* x (- (* 1/2 (/ (* y z) x)) 1)))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 z))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (+ z (* x y))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (+ z (* y (+ x (* -1/2 (* y z)))))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (+ z (* y (+ x (* y (+ (* -1/2 z) (* -1/6 (* x y)))))))))
#s(approx (cos y) #s(hole binary64 1))
#s(approx (cos y) #s(hole binary64 (+ 1 (* -1/2 (pow y 2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* 1/24 (pow y 2)) 1/2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/24 (* -1/720 (pow y 2)))) 1/2)))))
#s(approx y #s(hole binary64 y))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* -1/6 (* x (pow y 2)))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* -1/6 (pow y 2))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))))
#s(approx (* z y) #s(hole binary64 (* y z)))
#s(approx (* (cos y) z) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* 1/24 (* (pow y 2) z)))))))
#s(approx (* (cos y) z) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* (pow y 2) (+ (* -1/720 (* (pow y 2) z)) (* 1/24 z))))))))
#s(approx (cos y) #s(hole binary64 (cos y)))
#s(approx (sin y) #s(hole binary64 (sin y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1/2 (* (pow y 2) z))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (+ (/ x y) (/ z (pow y 2)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* y (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1 (/ (+ (* -1 x) (* -1 (/ z y))) y)) (* -1/2 z)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x y)) (* 1/2 z))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ (* x y) (* z (+ 1 (* -1/2 (pow y 2)))))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (* z (+ (cos y) (/ (* x (sin y)) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (* -1/2 (pow y 2))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (+ (* -1/2 (pow y 2)) (/ (* x y) z))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* z (+ (* -1/2 y) (/ x z)))))
#s(approx (+ (* (cos y) z) (* (sin y) x)) #s(hole binary64 (* -1 (* z (+ (* -1 (cos y)) (* -1 (/ (* x (sin y)) z)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (* 1/2 (pow y 2)) 1)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (+ (* -1 (/ (* x y) z)) (* 1/2 (pow y 2))) 1)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* z (+ (* -1 (/ x z)) (* 1/2 y))))))
Outputs
(fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x))
(fma.f64 (sin.f64 y) x (*.f64 (cos.f64 y) z))
(fma.f64 x (sin.f64 y) (*.f64 (cos.f64 y) z))
(fma.f64 z (cos.f64 y) (*.f64 (sin.f64 y) x))
(-.f64 (*.f64 (sin.f64 y) x) (*.f64 (neg.f64 (cos.f64 y)) z))
(-.f64 (*.f64 (sin.f64 y) x) (*.f64 (neg.f64 z) (cos.f64 y)))
(-.f64 (*.f64 (sin.f64 y) x) (neg.f64 (*.f64 (cos.f64 y) z)))
(-.f64 (*.f64 (cos.f64 y) z) (*.f64 (neg.f64 (sin.f64 y)) x))
(-.f64 (*.f64 (cos.f64 y) z) (neg.f64 (*.f64 (sin.f64 y) x)))
(+.f64 (*.f64 (sin.f64 y) x) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (*.f64 (sin.f64 y) x))
(sin.f64 (+.f64 (fabs.f64 y) (/.f64 (PI.f64) #s(literal 2 binary64))))
(sin.f64 (+.f64 (neg.f64 y) (/.f64 (PI.f64) #s(literal 2 binary64))))
(sin.f64 (+.f64 y (/.f64 (PI.f64) #s(literal 2 binary64))))
(fma.f64 (sin.f64 y) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64))) (*.f64 (cos.f64 y) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))))
(cos.f64 (neg.f64 (fabs.f64 y)))
(cos.f64 (neg.f64 (neg.f64 y)))
(cos.f64 (fabs.f64 (fabs.f64 y)))
(cos.f64 (fabs.f64 y))
(cos.f64 (neg.f64 y))
(cos.f64 y)
(+.f64 (*.f64 (sin.f64 y) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))) (*.f64 (cos.f64 y) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))))
y
z
(*.f64 (sin.f64 y) x)
(*.f64 x (sin.f64 y))
(sin.f64 y)
x
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x) y z))
(fma.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x) y z)
(fma.f64 y (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x) z)
(-.f64 (*.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x) y) (neg.f64 z))
(-.f64 z (*.f64 (neg.f64 y) (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x)))
(-.f64 z (neg.f64 (*.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x) y)))
(+.f64 (*.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x) y) z)
(+.f64 z (*.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x) y))
(fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x)
(fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x)
(fma.f64 #s(literal -1/2 binary64) (*.f64 z y) x)
(fma.f64 z (*.f64 #s(literal -1/2 binary64) y) x)
(-.f64 (*.f64 (*.f64 z y) #s(literal -1/2 binary64)) (neg.f64 x))
(-.f64 x (*.f64 #s(literal 1/2 binary64) (*.f64 z y)))
(-.f64 x (neg.f64 (*.f64 (*.f64 z y) #s(literal -1/2 binary64))))
(+.f64 (*.f64 (*.f64 z y) #s(literal -1/2 binary64)) x)
(+.f64 x (*.f64 (*.f64 z y) #s(literal -1/2 binary64)))
(*.f64 z y)
(*.f64 y z)
#s(literal -1/2 binary64)
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
(*.f64 (cos.f64 y) z)
(*.f64 z (cos.f64 y))
(fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x))
(fma.f64 (sin.f64 y) x (*.f64 (cos.f64 y) z))
(fma.f64 x (sin.f64 y) (*.f64 (cos.f64 y) z))
(fma.f64 z (cos.f64 y) (*.f64 (sin.f64 y) x))
(-.f64 (*.f64 (sin.f64 y) x) (*.f64 (neg.f64 (cos.f64 y)) z))
(-.f64 (*.f64 (sin.f64 y) x) (*.f64 (neg.f64 z) (cos.f64 y)))
(-.f64 (*.f64 (sin.f64 y) x) (neg.f64 (*.f64 (cos.f64 y) z)))
(-.f64 (*.f64 (cos.f64 y) z) (*.f64 (neg.f64 (sin.f64 y)) x))
(-.f64 (*.f64 (cos.f64 y) z) (neg.f64 (*.f64 (sin.f64 y) x)))
(+.f64 (*.f64 (sin.f64 y) x) (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 (cos.f64 y) z) (*.f64 (sin.f64 y) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x)))
#s(approx (* (sin y) x) (*.f64 (sin.f64 y) x))
#s(approx x x)
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) z))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (+.f64 (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) (*.f64 x y)) z))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64)))
#s(approx (+ (* (* z y) -1/2) x) (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 z (/.f64 (cos.f64 y) x) (sin.f64 y)) x))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (+.f64 (/.f64 (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) z) x) y) x))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (neg.f64 x) (+.f64 (neg.f64 (/.f64 (*.f64 (cos.f64 y) z) x)) (neg.f64 (sin.f64 y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (neg.f64 x) (+.f64 (neg.f64 (/.f64 (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) z) x)) (neg.f64 y))))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (neg.f64 x) (fma.f64 #s(literal 1/2 binary64) (*.f64 y (/.f64 z x)) #s(literal -1 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 x y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 x y) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
#s(approx (cos y) #s(literal 1 binary64))
#s(approx (cos y) (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) #s(literal 1 binary64)))
#s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64)))
#s(approx (cos y) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 y y) #s(literal 1/24 binary64)) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64)))
#s(approx y y)
#s(approx (* (sin y) x) (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y))
#s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y))
#s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 (*.f64 y y) (fma.f64 #s(literal -1/5040 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal 1/120 binary64) x)) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y))
#s(approx (sin y) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64)) y))
#s(approx (sin y) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y))
#s(approx (sin y) (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y))
#s(approx (* z y) (*.f64 z y))
#s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z))
#s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 y y) (fma.f64 (*.f64 #s(literal -1/720 binary64) (*.f64 y y)) z (*.f64 #s(literal 1/24 binary64) z)) (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z))
#s(approx (cos y) (cos.f64 y))
#s(approx (sin y) (sin.f64 y))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) (*.f64 y y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (+.f64 (/.f64 z (*.f64 y y)) (/.f64 x y))) (*.f64 y y)))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (neg.f64 (/.f64 (+.f64 (neg.f64 (/.f64 z y)) (neg.f64 x)) y))) (*.f64 y y)))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (neg.f64 y) (fma.f64 #s(literal 1/2 binary64) z (/.f64 (neg.f64 x) y))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (fma.f64 (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) #s(literal 1 binary64)) z (*.f64 x y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 x (/.f64 (sin.f64 y) z) (cos.f64 y)) z))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) #s(literal 1 binary64)) z))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (+.f64 (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) (/.f64 (*.f64 x y) z)) #s(literal 1 binary64)) z))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) y (/.f64 x z)) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (neg.f64 (*.f64 (+.f64 (neg.f64 (/.f64 (*.f64 (sin.f64 y) x) z)) (neg.f64 (cos.f64 y))) z)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (neg.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) (*.f64 y y) #s(literal -1 binary64)) z)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (neg.f64 (*.f64 (-.f64 (fma.f64 #s(literal 1/2 binary64) (*.f64 y y) (neg.f64 (/.f64 (*.f64 x y) z))) #s(literal 1 binary64)) z)))
#s(approx (+ (* (* z y) -1/2) x) (neg.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) y (/.f64 (neg.f64 x) z)) z)))

eval45.0ms (1.1%)

Memory
-1.9MiB live, 54.3MiB allocated; 39ms collecting garbage
Compiler

Compiled 973 to 416 computations (57.2% saved)

prune16.0ms (0.4%)

Memory
-17.2MiB live, 30.4MiB allocated; 7ms collecting garbage
Pruning

19 alts after pruning (15 fresh and 4 done)

PrunedKeptTotal
New11611127
Fresh145
Picked145
Done000
Total11819137
Accuracy
99.9%
Counts
137 → 19
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(fma.f64 (sin.f64 y) x (*.f64 (cos.f64 y) z))
99.8%
(fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x))
72.4%
(fma.f64 #s(approx (cos y) #s(literal 1 binary64)) z (*.f64 (sin.f64 y) x))
45.8%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
41.4%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) x)) y z))
33.7%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z))
30.6%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z))
46.6%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
85.3%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (sin.f64 y) (/.f64 x z) (cos.f64 y)) z))
90.6%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y)) x))
90.5%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 z (/.f64 (cos.f64 y) x) (sin.f64 y)) x))
89.4%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 x (/.f64 (sin.f64 y) z) (cos.f64 y)) z))
58.5%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
30.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z))
7.4%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) (*.f64 y y))))
3.1%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64))))
18.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
30.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
32.7%
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
Compiler

Compiled 526 to 518 computations (1.5% saved)

series72.0ms (1.8%)

Memory
-5.6MiB live, 72.3MiB allocated; 26ms collecting garbage
Counts
32 → 75
Calls
Call 1
Inputs
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y)) x))
(*.f64 (fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y)) x)
(fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y))
(cos.f64 y)
y
(/.f64 z x)
z
x
(sin.f64 y)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y))
(*.f64 x y)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z))
(fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z)
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64)))
(*.f64 (*.f64 z y) #s(literal -1/2 binary64))
(*.f64 z y)
#s(literal -1/2 binary64)
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z))
(*.f64 #s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z)
#s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))
(fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64))
#s(literal 1/24 binary64)
(*.f64 y y)
#s(literal 1 binary64)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z))
(fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)
(fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z))
(*.f64 #s(literal 1/24 binary64) (*.f64 y y))
(*.f64 #s(literal -1/2 binary64) z)
Outputs
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (cos y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ (* x (sin y)) (* z (cos y)))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (/ (* z (cos y)) x)))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (/ (+ (* x (sin y)) (* z (cos y))) x)))
#s(approx (/ z x) #s(hole binary64 (/ z x)))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (* -1/2 (* (pow y 2) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (+ (* -1/2 (* (pow y 2) z)) (* x y)))))
#s(approx (* x y) #s(hole binary64 (* x y)))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1/2 (* y z))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (+ x (* -1/2 (* y z)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* x (sin y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* x (+ (sin y) (/ (* z (cos y)) x)))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (sin y)))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (+ (sin y) (/ (* z (cos y)) x))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* x (+ y (+ (* -1/2 (/ (* (pow y 2) z) x)) (/ z x))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* x (+ 1 (* -1/2 (/ (* y z) x))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* x (+ (* -1 (sin y)) (* -1 (/ (* z (cos y)) x)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1/2 (* (pow y 2) z))) x)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* x (- (* 1/2 (/ (* y z) x)) 1)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* x y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* -1/2 (* y z)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* y (+ (* -1/2 z) (* -1/6 (* x y)))))))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (+ y (/ z x))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (+ (* y (+ 1 (* -1/2 (/ (* y z) x)))) (/ z x))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (+ (* y (+ 1 (* y (+ (* -1/2 (/ z x)) (* -1/6 y))))) (/ z x))))
#s(approx (cos y) #s(hole binary64 1))
#s(approx (cos y) #s(hole binary64 (+ 1 (* -1/2 (pow y 2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* 1/24 (pow y 2)) 1/2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/24 (* -1/720 (pow y 2)))) 1/2)))))
#s(approx y #s(hole binary64 y))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* -1/6 (pow y 2))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))))
#s(approx (* z y) #s(hole binary64 (* y z)))
#s(approx (* (cos y) z) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* 1/24 (* (pow y 2) z)))))))
#s(approx (* (cos y) z) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* (pow y 2) (+ (* -1/720 (* (pow y 2) z)) (* 1/24 z))))))))
#s(approx (+ (* 1/24 (* y y)) -1/2) #s(hole binary64 -1/2))
#s(approx (+ (* 1/24 (* y y)) -1/2) #s(hole binary64 (- (* 1/24 (pow y 2)) 1/2)))
#s(approx (* y y) #s(hole binary64 (pow y 2)))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (* -1/2 z)))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (+ (* -1/2 z) (* 1/24 (* (pow y 2) z)))))
#s(approx (* 1/24 (* y y)) #s(hole binary64 (* 1/24 (pow y 2))))
#s(approx (cos y) #s(hole binary64 (cos y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1/2 (* (pow y 2) z))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (+ (/ x y) (/ z (pow y 2)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* y (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) #s(hole binary64 (* 1/24 (pow y 4))))
#s(approx (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) #s(hole binary64 (* (pow y 4) (- 1/24 (* 1/2 (/ 1 (pow y 2)))))))
#s(approx (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) #s(hole binary64 (* (pow y 4) (- (+ 1/24 (/ 1 (pow y 4))) (* 1/2 (/ 1 (pow y 2)))))))
#s(approx (+ (* 1/24 (* y y)) -1/2) #s(hole binary64 (* (pow y 2) (- 1/24 (* 1/2 (/ 1 (pow y 2)))))))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) #s(hole binary64 (* 1/24 (* (pow y 4) z))))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) #s(hole binary64 (* (pow y 4) (+ (* -1/2 (/ z (pow y 2))) (* 1/24 z)))))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) #s(hole binary64 (* (pow y 4) (+ (* -1/2 (/ z (pow y 2))) (+ (* 1/24 z) (/ z (pow y 4)))))))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (* 1/24 (* (pow y 2) z))))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (* (pow y 2) (+ (* -1/2 (/ z (pow y 2))) (* 1/24 z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1 (/ (+ (* -1 x) (* -1 (/ z y))) y)) (* -1/2 z)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x y)) (* 1/2 z))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ (* x y) (* z (+ 1 (* -1/2 (pow y 2)))))))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) #s(hole binary64 (* z (+ 1 (* (pow y 2) (- (* 1/24 (pow y 2)) 1/2))))))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (* z (- (* 1/24 (pow y 2)) 1/2))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (+ (cos y) (/ (* x (sin y)) z)))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (* z (+ (/ (cos y) x) (/ (sin y) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (* -1/2 (pow y 2))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (+ (* -1/2 (pow y 2)) (/ (* x y) z))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* z (+ (* -1/2 y) (/ x z)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* z (+ (* -1 (cos y)) (* -1 (/ (* x (sin y)) z)))))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (cos y) x)) (* -1 (/ (sin y) z)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (* 1/2 (pow y 2)) 1)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (+ (* -1 (/ (* x y) z)) (* 1/2 (pow y 2))) 1)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* z (+ (* -1 (/ x z)) (* 1/2 y))))))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) #s(hole binary64 (* -1 (* z (- (* (pow y 2) (+ 1/2 (* -1/24 (pow y 2)))) 1)))))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (* -1 (* z (+ 1/2 (* -1/24 (pow y 2)))))))
Calls

9 calls:

TimeVariablePointExpression
23.0ms
y
@0
((+ (* x (sin y)) (* z (cos y))) (* (+ (* (cos y) (/ z x)) (sin y)) x) (+ (* (cos y) (/ z x)) (sin y)) (cos y) y (/ z x) z x (sin y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (* x y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* (* z y) -1/2) (* z y) -1/2 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (cos y) (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) (+ (* 1/24 (* y y)) -1/2) 1/24 (* y y) 1 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* 1/24 (* y y)) (* -1/2 z))
4.0ms
z
@-inf
((+ (* x (sin y)) (* z (cos y))) (* (+ (* (cos y) (/ z x)) (sin y)) x) (+ (* (cos y) (/ z x)) (sin y)) (cos y) y (/ z x) z x (sin y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (* x y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* (* z y) -1/2) (* z y) -1/2 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (cos y) (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) (+ (* 1/24 (* y y)) -1/2) 1/24 (* y y) 1 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* 1/24 (* y y)) (* -1/2 z))
4.0ms
y
@inf
((+ (* x (sin y)) (* z (cos y))) (* (+ (* (cos y) (/ z x)) (sin y)) x) (+ (* (cos y) (/ z x)) (sin y)) (cos y) y (/ z x) z x (sin y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (* x y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* (* z y) -1/2) (* z y) -1/2 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (cos y) (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) (+ (* 1/24 (* y y)) -1/2) 1/24 (* y y) 1 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* 1/24 (* y y)) (* -1/2 z))
4.0ms
z
@inf
((+ (* x (sin y)) (* z (cos y))) (* (+ (* (cos y) (/ z x)) (sin y)) x) (+ (* (cos y) (/ z x)) (sin y)) (cos y) y (/ z x) z x (sin y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (* x y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* (* z y) -1/2) (* z y) -1/2 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (cos y) (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) (+ (* 1/24 (* y y)) -1/2) 1/24 (* y y) 1 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* 1/24 (* y y)) (* -1/2 z))
4.0ms
y
@-inf
((+ (* x (sin y)) (* z (cos y))) (* (+ (* (cos y) (/ z x)) (sin y)) x) (+ (* (cos y) (/ z x)) (sin y)) (cos y) y (/ z x) z x (sin y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (* x y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* (* z y) -1/2) (* z y) -1/2 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (cos y) (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) (+ (* 1/24 (* y y)) -1/2) 1/24 (* y y) 1 (+ (* x (sin y)) (* z (cos y))) (* (cos y) z) (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* 1/24 (* y y)) (* -1/2 z))

rewrite250.0ms (6.4%)

Memory
20.8MiB live, 262.0MiB allocated; 68ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03291792
03581711
120651711
084291598
1284501598
Stop Event
saturated
node-limit
iter-limit
Counts
107 → 194
Calls
Call 1
Inputs
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y)) x))
(*.f64 (fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y)) x)
(fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y))
(cos.f64 y)
y
(/.f64 z x)
z
x
(sin.f64 y)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y))
(*.f64 x y)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z))
(fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z)
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64)))
(*.f64 (*.f64 z y) #s(literal -1/2 binary64))
(*.f64 z y)
#s(literal -1/2 binary64)
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z))
(*.f64 #s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z)
#s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))
(fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64))
#s(literal 1/24 binary64)
(*.f64 y y)
#s(literal 1 binary64)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z))
(fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)
(fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z))
(*.f64 #s(literal 1/24 binary64) (*.f64 y y))
(*.f64 #s(literal -1/2 binary64) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (cos y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ (* x (sin y)) (* z (cos y)))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (/ (* z (cos y)) x)))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (/ (+ (* x (sin y)) (* z (cos y))) x)))
#s(approx (/ z x) #s(hole binary64 (/ z x)))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (* -1/2 (* (pow y 2) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (+ (* -1/2 (* (pow y 2) z)) (* x y)))))
#s(approx (* x y) #s(hole binary64 (* x y)))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1/2 (* y z))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (+ x (* -1/2 (* y z)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* x (sin y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* x (+ (sin y) (/ (* z (cos y)) x)))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (sin y)))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (+ (sin y) (/ (* z (cos y)) x))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* x (+ y (+ (* -1/2 (/ (* (pow y 2) z) x)) (/ z x))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* x (+ 1 (* -1/2 (/ (* y z) x))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* x (+ (* -1 (sin y)) (* -1 (/ (* z (cos y)) x)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1/2 (* (pow y 2) z))) x)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* x (- (* 1/2 (/ (* y z) x)) 1)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* x y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* -1/2 (* y z)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* y (+ (* -1/2 z) (* -1/6 (* x y)))))))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (+ y (/ z x))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (+ (* y (+ 1 (* -1/2 (/ (* y z) x)))) (/ z x))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (+ (* y (+ 1 (* y (+ (* -1/2 (/ z x)) (* -1/6 y))))) (/ z x))))
#s(approx (cos y) #s(hole binary64 1))
#s(approx (cos y) #s(hole binary64 (+ 1 (* -1/2 (pow y 2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* 1/24 (pow y 2)) 1/2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/24 (* -1/720 (pow y 2)))) 1/2)))))
#s(approx y #s(hole binary64 y))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* -1/6 (pow y 2))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))))
#s(approx (* z y) #s(hole binary64 (* y z)))
#s(approx (* (cos y) z) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* 1/24 (* (pow y 2) z)))))))
#s(approx (* (cos y) z) #s(hole binary64 (+ z (* (pow y 2) (+ (* -1/2 z) (* (pow y 2) (+ (* -1/720 (* (pow y 2) z)) (* 1/24 z))))))))
#s(approx (+ (* 1/24 (* y y)) -1/2) #s(hole binary64 -1/2))
#s(approx (+ (* 1/24 (* y y)) -1/2) #s(hole binary64 (- (* 1/24 (pow y 2)) 1/2)))
#s(approx (* y y) #s(hole binary64 (pow y 2)))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (* -1/2 z)))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (+ (* -1/2 z) (* 1/24 (* (pow y 2) z)))))
#s(approx (* 1/24 (* y y)) #s(hole binary64 (* 1/24 (pow y 2))))
#s(approx (cos y) #s(hole binary64 (cos y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1/2 (* (pow y 2) z))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (+ (/ x y) (/ z (pow y 2)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* y (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) #s(hole binary64 (* 1/24 (pow y 4))))
#s(approx (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) #s(hole binary64 (* (pow y 4) (- 1/24 (* 1/2 (/ 1 (pow y 2)))))))
#s(approx (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) #s(hole binary64 (* (pow y 4) (- (+ 1/24 (/ 1 (pow y 4))) (* 1/2 (/ 1 (pow y 2)))))))
#s(approx (+ (* 1/24 (* y y)) -1/2) #s(hole binary64 (* (pow y 2) (- 1/24 (* 1/2 (/ 1 (pow y 2)))))))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) #s(hole binary64 (* 1/24 (* (pow y 4) z))))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) #s(hole binary64 (* (pow y 4) (+ (* -1/2 (/ z (pow y 2))) (* 1/24 z)))))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) #s(hole binary64 (* (pow y 4) (+ (* -1/2 (/ z (pow y 2))) (+ (* 1/24 z) (/ z (pow y 4)))))))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (* 1/24 (* (pow y 2) z))))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (* (pow y 2) (+ (* -1/2 (/ z (pow y 2))) (* 1/24 z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1 (/ (+ (* -1 x) (* -1 (/ z y))) y)) (* -1/2 z)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x y)) (* 1/2 z))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ (* x y) (* z (+ 1 (* -1/2 (pow y 2)))))))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) #s(hole binary64 (* z (+ 1 (* (pow y 2) (- (* 1/24 (pow y 2)) 1/2))))))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (* z (- (* 1/24 (pow y 2)) 1/2))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (+ (cos y) (/ (* x (sin y)) z)))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (* z (+ (/ (cos y) x) (/ (sin y) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (* -1/2 (pow y 2))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (+ (* -1/2 (pow y 2)) (/ (* x y) z))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* z (+ (* -1/2 y) (/ x z)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* z (+ (* -1 (cos y)) (* -1 (/ (* x (sin y)) z)))))))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (cos y) x)) (* -1 (/ (sin y) z)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (* 1/2 (pow y 2)) 1)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (+ (* -1 (/ (* x y) z)) (* 1/2 (pow y 2))) 1)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* z (+ (* -1 (/ x z)) (* 1/2 y))))))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) #s(hole binary64 (* -1 (* z (- (* (pow y 2) (+ 1/2 (* -1/24 (pow y 2)))) 1)))))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) #s(hole binary64 (* -1 (* z (+ 1/2 (* -1/24 (pow y 2)))))))
Outputs
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y)) x))
(*.f64 (fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y)) x)
(*.f64 x (fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y)))
(fma.f64 (sin.f64 y) x (*.f64 x (/.f64 (*.f64 (cos.f64 y) z) x)))
(fma.f64 (sin.f64 y) x (*.f64 (/.f64 (*.f64 (cos.f64 y) z) x) x))
(fma.f64 x (sin.f64 y) (*.f64 x (/.f64 (*.f64 (cos.f64 y) z) x)))
(fma.f64 x (sin.f64 y) (*.f64 (/.f64 (*.f64 (cos.f64 y) z) x) x))
(+.f64 (*.f64 (sin.f64 y) x) (*.f64 x (/.f64 (*.f64 (cos.f64 y) z) x)))
(+.f64 (*.f64 (sin.f64 y) x) (*.f64 (/.f64 (*.f64 (cos.f64 y) z) x) x))
(fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y))
(fma.f64 (*.f64 (cos.f64 y) z) (/.f64 #s(literal 1 binary64) x) (sin.f64 y))
(fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y))
(fma.f64 z (/.f64 (cos.f64 y) x) (sin.f64 y))
(-.f64 (/.f64 (*.f64 (cos.f64 y) z) x) (neg.f64 (sin.f64 y)))
(-.f64 (sin.f64 y) (neg.f64 (/.f64 (*.f64 (cos.f64 y) z) x)))
(+.f64 (/.f64 (*.f64 (cos.f64 y) z) x) (sin.f64 y))
(+.f64 (sin.f64 y) (/.f64 (*.f64 (cos.f64 y) z) x))
(sin.f64 (+.f64 (neg.f64 y) (/.f64 (PI.f64) #s(literal 2 binary64))))
(sin.f64 (+.f64 (fabs.f64 y) (/.f64 (PI.f64) #s(literal 2 binary64))))
(sin.f64 (+.f64 y (/.f64 (PI.f64) #s(literal 2 binary64))))
(fma.f64 (sin.f64 y) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64))) (*.f64 (cos.f64 y) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))))
(cos.f64 (neg.f64 (neg.f64 y)))
(cos.f64 (neg.f64 (fabs.f64 y)))
(cos.f64 (fabs.f64 (fabs.f64 y)))
(cos.f64 (neg.f64 y))
(cos.f64 (fabs.f64 y))
(cos.f64 y)
(+.f64 (*.f64 (sin.f64 y) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))) (*.f64 (cos.f64 y) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))))
y
(*.f64 z (/.f64 #s(literal 1 binary64) x))
(/.f64 (neg.f64 (neg.f64 z)) (neg.f64 (neg.f64 x)))
(/.f64 (neg.f64 z) (neg.f64 x))
(/.f64 z x)
z
x
(sin.f64 y)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 y x)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 y x))
(*.f64 y x)
(*.f64 x y)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z))
(fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z)
(fma.f64 y #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) z)
(-.f64 (*.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y) (neg.f64 z))
(+.f64 (*.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y) z)
(+.f64 z (*.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64)))
(*.f64 (*.f64 #s(literal -1/2 binary64) y) z)
(*.f64 (*.f64 z y) #s(literal -1/2 binary64))
(*.f64 #s(literal -1/2 binary64) (*.f64 z y))
(*.f64 z (*.f64 #s(literal -1/2 binary64) y))
(*.f64 z y)
(*.f64 y z)
#s(literal -1/2 binary64)
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (cos y) (fma.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z))
(*.f64 #s(approx (cos y) (fma.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z)
(*.f64 z #s(approx (cos y) (fma.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))))
#s(approx (cos y) (fma.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64)))
(fma.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) y) y #s(literal 1 binary64))
(fma.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))
(fma.f64 (*.f64 y y) (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) #s(literal 1 binary64))
(-.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) y) y) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (*.f64 y y)) (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64))))
(-.f64 #s(literal 1 binary64) (neg.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) y) y)))
(+.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) y) y) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) y) y))
(neg.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 y y) #s(literal 1/2 binary64)))
(fma.f64 (*.f64 #s(literal 1/24 binary64) y) y #s(literal -1/2 binary64))
(fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64))
(fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64))
(-.f64 (*.f64 (*.f64 #s(literal 1/24 binary64) y) y) #s(literal 1/2 binary64))
(+.f64 (*.f64 (*.f64 #s(literal 1/24 binary64) y) y) #s(literal -1/2 binary64))
(+.f64 #s(literal -1/2 binary64) (*.f64 (*.f64 #s(literal 1/24 binary64) y) y))
#s(literal 1/24 binary64)
(*.f64 (neg.f64 (neg.f64 y)) (neg.f64 (neg.f64 y)))
(*.f64 (neg.f64 (fabs.f64 y)) (neg.f64 (fabs.f64 y)))
(*.f64 (fabs.f64 (fabs.f64 y)) (fabs.f64 (fabs.f64 y)))
(*.f64 (neg.f64 y) (neg.f64 y))
(*.f64 (fabs.f64 y) (fabs.f64 y))
(*.f64 y y)
(pow.f64 (neg.f64 (neg.f64 y)) #s(literal 2 binary64))
(pow.f64 (neg.f64 (fabs.f64 y)) #s(literal 2 binary64))
(pow.f64 (fabs.f64 (fabs.f64 y)) #s(literal 2 binary64))
(pow.f64 (neg.f64 y) #s(literal 2 binary64))
(pow.f64 (fabs.f64 y) #s(literal 2 binary64))
(pow.f64 y #s(literal 2 binary64))
(sqrt.f64 (*.f64 (*.f64 y y) (*.f64 y y)))
(fabs.f64 (neg.f64 (*.f64 y y)))
(fabs.f64 (*.f64 y y))
#s(literal 1 binary64)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) (*.f64 y y) z)))
#s(approx (* (cos y) z) (fma.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) (*.f64 y y) z))
(fma.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y z)
(fma.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) (*.f64 y y) z)
(fma.f64 (*.f64 y y) (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) z)
(-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y) (neg.f64 z))
(-.f64 z (*.f64 (neg.f64 (*.f64 y y)) (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z)))
(-.f64 z (neg.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y)))
(+.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y) z)
(+.f64 z (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y))
(*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z)
(*.f64 z (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)))
(fma.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64) (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 (*.f64 (*.f64 #s(literal 1/24 binary64) y) y) z (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 #s(literal 1/24 binary64) (*.f64 (*.f64 y y) z) (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 #s(literal -1/2 binary64) z (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64)))
(fma.f64 z (*.f64 (*.f64 #s(literal 1/24 binary64) y) y) (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 z #s(literal -1/2 binary64) (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64)))
(-.f64 (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64)) (neg.f64 (*.f64 #s(literal -1/2 binary64) z)))
(-.f64 (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64)) (*.f64 #s(literal 1/2 binary64) z))
(-.f64 (*.f64 #s(literal -1/2 binary64) z) (*.f64 #s(literal -1/24 binary64) (*.f64 (*.f64 y y) z)))
(-.f64 (*.f64 #s(literal -1/2 binary64) z) (neg.f64 (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64))))
(+.f64 (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64)) (*.f64 #s(literal -1/2 binary64) z))
(+.f64 (*.f64 #s(literal -1/2 binary64) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64)))
(*.f64 (*.f64 #s(literal 1/24 binary64) y) y)
(*.f64 (*.f64 y y) #s(literal 1/24 binary64))
(*.f64 #s(literal 1/24 binary64) (*.f64 y y))
(*.f64 #s(literal -1/2 binary64) z)
(*.f64 z #s(literal -1/2 binary64))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x)))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) (/.f64 (*.f64 (cos.f64 y) z) x))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) (/.f64 (fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x)) x))
#s(approx (/ z x) (/.f64 z x))
#s(approx x x)
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) z))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (+.f64 (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) (*.f64 y x)) z))
#s(approx (* x y) (*.f64 y x))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64)))
#s(approx (+ (* (* z y) -1/2) x) (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y)) x))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) (sin.f64 y))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) (fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (+.f64 (/.f64 (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) z) x) y) x))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (neg.f64 x) (+.f64 (neg.f64 (/.f64 (*.f64 (cos.f64 y) z) x)) (neg.f64 (sin.f64 y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (neg.f64 x) (+.f64 (neg.f64 y) (neg.f64 (/.f64 (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) z) x)))))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (neg.f64 x) (fma.f64 #s(literal 1/2 binary64) (*.f64 y (/.f64 z x)) #s(literal -1 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) (+.f64 (/.f64 z x) y))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) (fma.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) y (/.f64 z x)))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) y (*.f64 (/.f64 z x) #s(literal -1/2 binary64))) y #s(literal 1 binary64)) y (/.f64 z x)))
#s(approx (cos y) #s(literal 1 binary64))
#s(approx (cos y) (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) #s(literal 1 binary64)))
#s(approx (cos y) (fma.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64)))
#s(approx (cos y) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 y y) #s(literal 1/24 binary64)) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64)))
#s(approx y y)
#s(approx (sin y) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64)) y))
#s(approx (sin y) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y))
#s(approx (sin y) (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y))
#s(approx (* z y) (*.f64 z y))
#s(approx (* (cos y) z) (fma.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) (*.f64 y y) z))
#s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 y y) (fma.f64 (*.f64 #s(literal -1/720 binary64) (*.f64 y y)) z (*.f64 #s(literal 1/24 binary64) z)) (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z))
#s(approx (+ (* 1/24 (* y y)) -1/2) #s(literal -1/2 binary64))
#s(approx (+ (* 1/24 (* y y)) -1/2) (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)))
#s(approx (* y y) (*.f64 y y))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 #s(literal -1/2 binary64) z))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z))
#s(approx (* 1/24 (* y y)) (*.f64 (*.f64 #s(literal 1/24 binary64) y) y))
#s(approx (cos y) (cos.f64 y))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) (*.f64 y y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (+.f64 (/.f64 z (*.f64 y y)) (/.f64 x y))) (*.f64 y y)))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y))
#s(approx (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) (*.f64 (pow.f64 y #s(literal 4 binary64)) #s(literal 1/24 binary64)))
#s(approx (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) (*.f64 (-.f64 #s(literal 1/24 binary64) (/.f64 #s(literal 1/2 binary64) (*.f64 y y))) (pow.f64 y #s(literal 4 binary64))))
#s(approx (+ (* (+ (* 1/24 (* y y)) -1/2) (* y y)) 1) (*.f64 (-.f64 (+.f64 (pow.f64 y #s(literal -4 binary64)) #s(literal 1/24 binary64)) (/.f64 #s(literal 1/2 binary64) (*.f64 y y))) (pow.f64 y #s(literal 4 binary64))))
#s(approx (+ (* 1/24 (* y y)) -1/2) (*.f64 (-.f64 #s(literal 1/24 binary64) (/.f64 #s(literal 1/2 binary64) (*.f64 y y))) (*.f64 y y)))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) (*.f64 (*.f64 (pow.f64 y #s(literal 4 binary64)) z) #s(literal 1/24 binary64)))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) (*.f64 (fma.f64 (/.f64 z (*.f64 y y)) #s(literal -1/2 binary64) (*.f64 #s(literal 1/24 binary64) z)) (pow.f64 y #s(literal 4 binary64))))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) (*.f64 (fma.f64 (/.f64 z (*.f64 y y)) #s(literal -1/2 binary64) (fma.f64 #s(literal 1/24 binary64) z (*.f64 z (pow.f64 y #s(literal -4 binary64))))) (pow.f64 y #s(literal 4 binary64))))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64)))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (fma.f64 (/.f64 z (*.f64 y y)) #s(literal -1/2 binary64) (*.f64 #s(literal 1/24 binary64) z)) (*.f64 y y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (neg.f64 (/.f64 (+.f64 (neg.f64 x) (neg.f64 (/.f64 z y))) y))) (*.f64 y y)))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (neg.f64 y) (fma.f64 #s(literal 1/2 binary64) z (/.f64 (neg.f64 x) y))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (fma.f64 (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) #s(literal 1 binary64)) z (*.f64 y x)))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) (*.f64 (fma.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64)) z))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 x (/.f64 (sin.f64 y) z) (cos.f64 y)) z))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) (*.f64 (+.f64 (/.f64 (sin.f64 y) z) (/.f64 (cos.f64 y) x)) z))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) #s(literal 1 binary64)) z))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (+.f64 (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) (/.f64 (*.f64 y x) z)) #s(literal 1 binary64)) z))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) y (/.f64 x z)) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (neg.f64 (*.f64 (+.f64 (neg.f64 (/.f64 (*.f64 (sin.f64 y) x) z)) (neg.f64 (cos.f64 y))) z)))
#s(approx (+ (* (cos y) (/ z x)) (sin y)) (neg.f64 (*.f64 (+.f64 (/.f64 (neg.f64 (sin.f64 y)) z) (/.f64 (neg.f64 (cos.f64 y)) x)) z)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (neg.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) (*.f64 y y) #s(literal -1 binary64)) z)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (neg.f64 (*.f64 (-.f64 (fma.f64 #s(literal 1/2 binary64) (*.f64 y y) (neg.f64 (/.f64 (*.f64 y x) z))) #s(literal 1 binary64)) z)))
#s(approx (+ (* (* z y) -1/2) x) (neg.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) y (/.f64 (neg.f64 x) z)) z)))
#s(approx (+ (* (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (* y y)) z) (neg.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 y y) #s(literal 1/2 binary64)) (*.f64 y y) #s(literal -1 binary64)) z)))
#s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (neg.f64 (*.f64 (fma.f64 #s(literal -1/24 binary64) (*.f64 y y) #s(literal 1/2 binary64)) z)))

eval23.0ms (0.6%)

Memory
-2.2MiB live, 45.1MiB allocated; 5ms collecting garbage
Compiler

Compiled 1 756 to 854 computations (51.4% saved)

prune17.0ms (0.4%)

Memory
23.6MiB live, 23.6MiB allocated; 0ms collecting garbage
Pruning

25 alts after pruning (18 fresh and 7 done)

PrunedKeptTotal
New1718179
Fresh01010
Picked235
Done044
Total17325198
Accuracy
99.9%
Counts
198 → 25
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(fma.f64 (sin.f64 y) x (*.f64 (cos.f64 y) z))
99.8%
(fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x))
72.4%
(fma.f64 #s(approx (cos y) #s(literal 1 binary64)) z (*.f64 (sin.f64 y) x))
45.8%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
41.4%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) x)) y z))
33.7%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z))
30.6%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z))
46.6%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
85.3%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (sin.f64 y) (/.f64 x z) (cos.f64 y)) z))
90.6%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y)) x))
90.5%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (*.f64 z (/.f64 #s(literal 1 binary64) x)) (sin.f64 y)) x))
90.5%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 z (/.f64 (cos.f64 y) x) (sin.f64 y)) x))
89.4%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 x (/.f64 (sin.f64 y) z) (cos.f64 y)) z))
43.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
58.5%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
41.1%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) y (*.f64 (/.f64 z x) #s(literal -1/2 binary64))) y #s(literal 1 binary64)) y (/.f64 z x))) x))
42.4%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (+.f64 (/.f64 z x) y)) x))
7.4%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) (*.f64 y y))))
3.1%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64))))
18.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
30.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 (*.f64 #s(literal 1/24 binary64) y) y) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
30.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y z)))
9.9%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (fma.f64 (/.f64 z (*.f64 y y)) #s(literal -1/2 binary64) (*.f64 #s(literal 1/24 binary64) z)) (*.f64 y y))) (*.f64 y y) z)))
30.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64))) (*.f64 y y) z)))
32.7%
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
Compiler

Compiled 729 to 705 computations (3.3% saved)

series43.0ms (1.1%)

Memory
1.2MiB live, 47.6MiB allocated; 3ms collecting garbage
Counts
29 → 108
Calls
Call 1
Inputs
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (*.f64 z (/.f64 #s(literal 1 binary64) x)) (sin.f64 y)) x))
(*.f64 (fma.f64 (cos.f64 y) (*.f64 z (/.f64 #s(literal 1 binary64) x)) (sin.f64 y)) x)
(fma.f64 (cos.f64 y) (*.f64 z (/.f64 #s(literal 1 binary64) x)) (sin.f64 y))
(cos.f64 y)
y
(*.f64 z (/.f64 #s(literal 1 binary64) x))
z
(/.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
(sin.f64 y)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
(fma.f64 y x z)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z))
(fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z)
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y))
(*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)
(fma.f64 #s(literal -1/2 binary64) z (/.f64 x y))
#s(literal -1/2 binary64)
(/.f64 x y)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z)
(fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x)
(fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z))
#s(literal -1/6 binary64)
(*.f64 y x)
(*.f64 #s(literal -1/2 binary64) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
(*.f64 (sin.f64 y) x)
Outputs
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (cos y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ (* x (sin y)) (* z (cos y)))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (/ (* z (cos y)) x)))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (/ (+ (* x (sin y)) (* z (cos y))) x)))
#s(approx (* z (/ 1 x)) #s(hole binary64 (/ z x)))
#s(approx (/ 1 x) #s(hole binary64 (/ 1 x)))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* y x) z) #s(hole binary64 z))
#s(approx (+ (* y x) z) #s(hole binary64 (+ z (* x y))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (* -1/2 (* (pow y 2) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (+ (* -1/2 (* (pow y 2) z)) (* x y)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1/2 (* y z))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (+ x (* -1/2 (* y z)))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (* -1/2 z)))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (+ (* -1/2 z) (/ x y))))
#s(approx (/ x y) #s(hole binary64 (/ x y)))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (+ z (+ (* -1/2 (* (pow y 2) z)) (* x (* y (+ 1 (* -1/6 (pow y 2)))))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (+ (* -1/2 (* y z)) (* x (+ 1 (* -1/6 (pow y 2)))))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (+ (* -1/2 z) (* -1/6 (* x y)))))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (* (sin y) x) #s(hole binary64 (* x (sin y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* x (+ (sin y) (/ (* z (cos y)) x)))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (sin y)))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (+ (sin y) (/ (* z (cos y)) x))))
#s(approx (+ (* y x) z) #s(hole binary64 (* x (+ y (/ z x)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* x (+ y (+ (* -1/2 (/ (* (pow y 2) z) x)) (/ z x))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* x (+ 1 (* -1/2 (/ (* y z) x))))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (* x (+ (* -1/2 (/ z x)) (/ 1 y)))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* x (* y (+ 1 (* -1/6 (pow y 2)))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* x (+ (* -1/2 (/ (* (pow y 2) z) x)) (+ (* y (+ 1 (* -1/6 (pow y 2)))) (/ z x))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* x (+ 1 (* -1/6 (pow y 2))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* x (+ 1 (+ (* -1/2 (/ (* y z) x)) (* -1/6 (pow y 2)))))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* -1/6 (* x y))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* x (+ (* -1/2 (/ z x)) (* -1/6 y)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* x (+ (* -1 (sin y)) (* -1 (/ (* z (cos y)) x)))))))
#s(approx (+ (* y x) z) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ z x)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1/2 (* (pow y 2) z))) x)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* x (- (* 1/2 (/ (* y z) x)) 1)))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (* -1 (* x (- (* 1/2 (/ z x)) (/ 1 y))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* x (* y (- (* 1/6 (pow y 2)) 1))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* x (+ (* -1 (/ (+ z (* -1/2 (* (pow y 2) z))) x)) (* y (- (* 1/6 (pow y 2)) 1)))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* -1 (* x (- (* 1/6 (pow y 2)) 1)))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* -1 (* x (- (+ (* 1/6 (pow y 2)) (* 1/2 (/ (* y z) x))) 1)))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* -1 (* x (+ (* 1/6 y) (* 1/2 (/ z x)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* -1/2 (* y z)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* y (+ (* -1/2 z) (* -1/6 (* x y)))))))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (+ y (/ z x))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (+ (* y (+ 1 (* -1/2 (/ (* y z) x)))) (/ z x))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (+ (* y (+ 1 (* y (+ (* -1/2 (/ z x)) (* -1/6 y))))) (/ z x))))
#s(approx (cos y) #s(hole binary64 1))
#s(approx (cos y) #s(hole binary64 (+ 1 (* -1/2 (pow y 2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* 1/24 (pow y 2)) 1/2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/24 (* -1/720 (pow y 2)))) 1/2)))))
#s(approx y #s(hole binary64 y))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* -1/6 (pow y 2))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (/ (+ x (* -1/2 (* y z))) y)))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (+ x (* y (+ (* -1/2 z) (* -1/6 (* x y)))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* -1/6 (* x (pow y 2)))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))))
#s(approx (cos y) #s(hole binary64 (cos y)))
#s(approx (+ (* y x) z) #s(hole binary64 (* y (+ x (/ z y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1/2 (* (pow y 2) z))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (+ (/ x y) (/ z (pow y 2)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* y (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1/6 (* x (pow y 3)))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* (pow y 3) (+ (* -1/2 (/ z y)) (* -1/6 x)))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* (pow y 3) (+ (* -1/2 (/ z y)) (+ (* -1/6 x) (/ x (pow y 2)))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* (pow y 3) (+ (* -1/2 (/ z y)) (+ (* -1/6 x) (+ (/ x (pow y 2)) (/ z (pow y 3))))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* -1/6 (* x (pow y 2)))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* (pow y 2) (+ (* -1/2 (/ z y)) (* -1/6 x)))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* (pow y 2) (+ (* -1/2 (/ z y)) (+ (* -1/6 x) (/ x (pow y 2)))))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* y (+ (* -1/2 (/ z y)) (* -1/6 x)))))
#s(approx (+ (* y x) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ z y)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1 (/ (+ (* -1 x) (* -1 (/ z y))) y)) (* -1/2 z)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x y)) (* 1/2 z))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* (pow y 3) (+ (* 1/6 x) (* 1/2 (/ z y)))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* (pow y 3) (+ (* -1 (/ (+ (* -1/2 z) (/ x y)) y)) (* 1/6 x))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* (pow y 3) (+ (* -1 (/ (+ (* -1 (/ (+ (* -1 x) (* -1 (/ z y))) y)) (* -1/2 z)) y)) (* 1/6 x))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* (pow y 2) (+ (* -1 (/ (+ (* -1 (/ x y)) (* 1/2 z)) y)) (* -1/6 x)))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* -1 (* y (+ (* 1/6 x) (* 1/2 (/ z y)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ (* x y) (* z (+ 1 (* -1/2 (pow y 2)))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (+ (* y (+ x (* -1/6 (* x (pow y 2))))) (* z (+ 1 (* -1/2 (pow y 2)))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (+ x (* -1/6 (* x (pow y 2))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (+ x (+ (* -1/2 (* y z)) (* -1/6 (* x (pow y 2)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (+ (cos y) (/ (* x (sin y)) z)))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (* z (+ (/ (cos y) x) (/ (sin y) z)))))
#s(approx (+ (* y x) z) #s(hole binary64 (* z (+ 1 (/ (* x y) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (* -1/2 (pow y 2))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (+ (* -1/2 (pow y 2)) (/ (* x y) z))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* z (+ (* -1/2 y) (/ x z)))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (* z (- (/ x (* y z)) 1/2))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* z (+ 1 (+ (* -1/2 (pow y 2)) (/ (* y (+ x (* -1/6 (* x (pow y 2))))) z))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* z (+ (* -1/2 y) (+ (* -1/6 (/ (* x (pow y 2)) z)) (/ x z))))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* z (- (* -1/6 (/ (* x y) z)) 1/2))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* z (+ (* -1 (cos y)) (* -1 (/ (* x (sin y)) z)))))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (cos y) x)) (* -1 (/ (sin y) z)))))))
#s(approx (+ (* y x) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x y) z)) 1)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (* 1/2 (pow y 2)) 1)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (+ (* -1 (/ (* x y) z)) (* 1/2 (pow y 2))) 1)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* z (+ (* -1 (/ x z)) (* 1/2 y))))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (* -1 (* z (+ 1/2 (* -1 (/ x (* y z))))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* z (- (+ (* -1 (/ (* y (+ x (* -1/6 (* x (pow y 2))))) z)) (* 1/2 (pow y 2))) 1)))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (+ x (* -1/6 (* x (pow y 2)))) z)) (* 1/2 y))))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* -1 (* z (+ 1/2 (* 1/6 (/ (* x y) z)))))))
Calls

9 calls:

TimeVariablePointExpression
13.0ms
x
@inf
((+ (* x (sin y)) (* z (cos y))) (* (+ (* (cos y) (* z (/ 1 x))) (sin y)) x) (+ (* (cos y) (* z (/ 1 x))) (sin y)) (cos y) y (* z (/ 1 x)) z (/ 1 x) 1 x (sin y) (+ (* x (sin y)) (* z (cos y))) (+ (* y x) z) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* (+ (* -1/2 z) (/ x y)) y) (+ (* -1/2 z) (/ x y)) -1/2 (/ x y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (+ (* -1/6 (* y x)) (* -1/2 z)) -1/6 (* y x) (* -1/2 z) (+ (* x (sin y)) (* z (cos y))) (* (sin y) x))
7.0ms
z
@0
((+ (* x (sin y)) (* z (cos y))) (* (+ (* (cos y) (* z (/ 1 x))) (sin y)) x) (+ (* (cos y) (* z (/ 1 x))) (sin y)) (cos y) y (* z (/ 1 x)) z (/ 1 x) 1 x (sin y) (+ (* x (sin y)) (* z (cos y))) (+ (* y x) z) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* (+ (* -1/2 z) (/ x y)) y) (+ (* -1/2 z) (/ x y)) -1/2 (/ x y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (+ (* -1/6 (* y x)) (* -1/2 z)) -1/6 (* y x) (* -1/2 z) (+ (* x (sin y)) (* z (cos y))) (* (sin y) x))
4.0ms
x
@-inf
((+ (* x (sin y)) (* z (cos y))) (* (+ (* (cos y) (* z (/ 1 x))) (sin y)) x) (+ (* (cos y) (* z (/ 1 x))) (sin y)) (cos y) y (* z (/ 1 x)) z (/ 1 x) 1 x (sin y) (+ (* x (sin y)) (* z (cos y))) (+ (* y x) z) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* (+ (* -1/2 z) (/ x y)) y) (+ (* -1/2 z) (/ x y)) -1/2 (/ x y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (+ (* -1/6 (* y x)) (* -1/2 z)) -1/6 (* y x) (* -1/2 z) (+ (* x (sin y)) (* z (cos y))) (* (sin y) x))
3.0ms
x
@0
((+ (* x (sin y)) (* z (cos y))) (* (+ (* (cos y) (* z (/ 1 x))) (sin y)) x) (+ (* (cos y) (* z (/ 1 x))) (sin y)) (cos y) y (* z (/ 1 x)) z (/ 1 x) 1 x (sin y) (+ (* x (sin y)) (* z (cos y))) (+ (* y x) z) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* (+ (* -1/2 z) (/ x y)) y) (+ (* -1/2 z) (/ x y)) -1/2 (/ x y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (+ (* -1/6 (* y x)) (* -1/2 z)) -1/6 (* y x) (* -1/2 z) (+ (* x (sin y)) (* z (cos y))) (* (sin y) x))
3.0ms
y
@-inf
((+ (* x (sin y)) (* z (cos y))) (* (+ (* (cos y) (* z (/ 1 x))) (sin y)) x) (+ (* (cos y) (* z (/ 1 x))) (sin y)) (cos y) y (* z (/ 1 x)) z (/ 1 x) 1 x (sin y) (+ (* x (sin y)) (* z (cos y))) (+ (* y x) z) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (* z y) -1/2) x) y) z) (+ (* (* z y) -1/2) x) (* (+ (* -1/2 z) (/ x y)) y) (+ (* -1/2 z) (/ x y)) -1/2 (/ x y) (+ (* x (sin y)) (* z (cos y))) (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (+ (* -1/6 (* y x)) (* -1/2 z)) -1/6 (* y x) (* -1/2 z) (+ (* x (sin y)) (* z (cos y))) (* (sin y) x))

rewrite252.0ms (6.4%)

Memory
-37.7MiB live, 246.6MiB allocated; 65ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
04622600
04912501
129622501
090352349
1306022349
Stop Event
saturated
node-limit
iter-limit
Counts
137 → 230
Calls
Call 1
Inputs
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (*.f64 z (/.f64 #s(literal 1 binary64) x)) (sin.f64 y)) x))
(*.f64 (fma.f64 (cos.f64 y) (*.f64 z (/.f64 #s(literal 1 binary64) x)) (sin.f64 y)) x)
(fma.f64 (cos.f64 y) (*.f64 z (/.f64 #s(literal 1 binary64) x)) (sin.f64 y))
(cos.f64 y)
y
(*.f64 z (/.f64 #s(literal 1 binary64) x))
z
(/.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
(sin.f64 y)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
(fma.f64 y x z)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z))
(fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z)
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y))
(*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)
(fma.f64 #s(literal -1/2 binary64) z (/.f64 x y))
#s(literal -1/2 binary64)
(/.f64 x y)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z)
(fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x)
(fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z))
#s(literal -1/6 binary64)
(*.f64 y x)
(*.f64 #s(literal -1/2 binary64) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
(*.f64 (sin.f64 y) x)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (cos y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ (* x (sin y)) (* z (cos y)))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (/ (* z (cos y)) x)))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (/ (+ (* x (sin y)) (* z (cos y))) x)))
#s(approx (* z (/ 1 x)) #s(hole binary64 (/ z x)))
#s(approx (/ 1 x) #s(hole binary64 (/ 1 x)))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* y x) z) #s(hole binary64 z))
#s(approx (+ (* y x) z) #s(hole binary64 (+ z (* x y))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (* -1/2 (* (pow y 2) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ z (+ (* -1/2 (* (pow y 2) z)) (* x y)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1/2 (* y z))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (+ x (* -1/2 (* y z)))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (* -1/2 z)))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (+ (* -1/2 z) (/ x y))))
#s(approx (/ x y) #s(hole binary64 (/ x y)))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (+ z (+ (* -1/2 (* (pow y 2) z)) (* x (* y (+ 1 (* -1/6 (pow y 2)))))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (+ (* -1/2 (* y z)) (* x (+ 1 (* -1/6 (pow y 2)))))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (+ (* -1/2 z) (* -1/6 (* x y)))))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (* (sin y) x) #s(hole binary64 (* x (sin y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* x (+ (sin y) (/ (* z (cos y)) x)))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (sin y)))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (+ (sin y) (/ (* z (cos y)) x))))
#s(approx (+ (* y x) z) #s(hole binary64 (* x (+ y (/ z x)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* x (+ y (+ (* -1/2 (/ (* (pow y 2) z) x)) (/ z x))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* x (+ 1 (* -1/2 (/ (* y z) x))))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (* x (+ (* -1/2 (/ z x)) (/ 1 y)))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* x (* y (+ 1 (* -1/6 (pow y 2)))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* x (+ (* -1/2 (/ (* (pow y 2) z) x)) (+ (* y (+ 1 (* -1/6 (pow y 2)))) (/ z x))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* x (+ 1 (* -1/6 (pow y 2))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* x (+ 1 (+ (* -1/2 (/ (* y z) x)) (* -1/6 (pow y 2)))))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* -1/6 (* x y))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* x (+ (* -1/2 (/ z x)) (* -1/6 y)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* x (+ (* -1 (sin y)) (* -1 (/ (* z (cos y)) x)))))))
#s(approx (+ (* y x) z) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ z x)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* x (+ (* -1 y) (* -1 (/ (+ z (* -1/2 (* (pow y 2) z))) x)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* x (- (* 1/2 (/ (* y z) x)) 1)))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (* -1 (* x (- (* 1/2 (/ z x)) (/ 1 y))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* x (* y (- (* 1/6 (pow y 2)) 1))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* x (+ (* -1 (/ (+ z (* -1/2 (* (pow y 2) z))) x)) (* y (- (* 1/6 (pow y 2)) 1)))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* -1 (* x (- (* 1/6 (pow y 2)) 1)))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* -1 (* x (- (+ (* 1/6 (pow y 2)) (* 1/2 (/ (* y z) x))) 1)))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* -1 (* x (+ (* 1/6 y) (* 1/2 (/ z x)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* -1/2 (* y z)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (+ z (* y (+ x (* y (+ (* -1/2 z) (* -1/6 (* x y)))))))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (+ y (/ z x))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (+ (* y (+ 1 (* -1/2 (/ (* y z) x)))) (/ z x))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (+ (* y (+ 1 (* y (+ (* -1/2 (/ z x)) (* -1/6 y))))) (/ z x))))
#s(approx (cos y) #s(hole binary64 1))
#s(approx (cos y) #s(hole binary64 (+ 1 (* -1/2 (pow y 2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* 1/24 (pow y 2)) 1/2)))))
#s(approx (cos y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/24 (* -1/720 (pow y 2)))) 1/2)))))
#s(approx y #s(hole binary64 y))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* -1/6 (pow y 2))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (/ (+ x (* -1/2 (* y z))) y)))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (+ x (* y (+ (* -1/2 z) (* -1/6 (* x y)))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* -1/6 (* x (pow y 2)))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))))
#s(approx (cos y) #s(hole binary64 (cos y)))
#s(approx (+ (* y x) z) #s(hole binary64 (* y (+ x (/ z y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1/2 (* (pow y 2) z))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1/2 z) (+ (/ x y) (/ z (pow y 2)))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* y (+ (* -1/2 z) (/ x y)))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1/6 (* x (pow y 3)))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* (pow y 3) (+ (* -1/2 (/ z y)) (* -1/6 x)))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* (pow y 3) (+ (* -1/2 (/ z y)) (+ (* -1/6 x) (/ x (pow y 2)))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* (pow y 3) (+ (* -1/2 (/ z y)) (+ (* -1/6 x) (+ (/ x (pow y 2)) (/ z (pow y 3))))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* -1/6 (* x (pow y 2)))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* (pow y 2) (+ (* -1/2 (/ z y)) (* -1/6 x)))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* (pow y 2) (+ (* -1/2 (/ z y)) (+ (* -1/6 x) (/ x (pow y 2)))))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* y (+ (* -1/2 (/ z y)) (* -1/6 x)))))
#s(approx (+ (* y x) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ z y)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* (pow y 2) (+ (* -1 (/ (+ (* -1 x) (* -1 (/ z y))) y)) (* -1/2 z)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 (/ x y)) (* 1/2 z))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* (pow y 3) (+ (* 1/6 x) (* 1/2 (/ z y)))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* (pow y 3) (+ (* -1 (/ (+ (* -1/2 z) (/ x y)) y)) (* 1/6 x))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* (pow y 3) (+ (* -1 (/ (+ (* -1 (/ (+ (* -1 x) (* -1 (/ z y))) y)) (* -1/2 z)) y)) (* 1/6 x))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* (pow y 2) (+ (* -1 (/ (+ (* -1 (/ x y)) (* 1/2 z)) y)) (* -1/6 x)))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* -1 (* y (+ (* 1/6 x) (* 1/2 (/ z y)))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (+ (* x y) (* z (+ 1 (* -1/2 (pow y 2)))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (+ (* y (+ x (* -1/6 (* x (pow y 2))))) (* z (+ 1 (* -1/2 (pow y 2)))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (+ x (* -1/6 (* x (pow y 2))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (+ x (+ (* -1/2 (* y z)) (* -1/6 (* x (pow y 2)))))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* z (+ (cos y) (/ (* x (sin y)) z)))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (* z (+ (/ (cos y) x) (/ (sin y) z)))))
#s(approx (+ (* y x) z) #s(hole binary64 (* z (+ 1 (/ (* x y) z)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (* -1/2 (pow y 2))))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* z (+ 1 (+ (* -1/2 (pow y 2)) (/ (* x y) z))))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* z (+ (* -1/2 y) (/ x z)))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (* z (- (/ x (* y z)) 1/2))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* z (+ 1 (+ (* -1/2 (pow y 2)) (/ (* y (+ x (* -1/6 (* x (pow y 2))))) z))))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* z (+ (* -1/2 y) (+ (* -1/6 (/ (* x (pow y 2)) z)) (/ x z))))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* z (- (* -1/6 (/ (* x y) z)) 1/2))))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(hole binary64 (* -1 (* z (+ (* -1 (cos y)) (* -1 (/ (* x (sin y)) z)))))))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (cos y) x)) (* -1 (/ (sin y) z)))))))
#s(approx (+ (* y x) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x y) z)) 1)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (* 1/2 (pow y 2)) 1)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) #s(hole binary64 (* -1 (* z (- (+ (* -1 (/ (* x y) z)) (* 1/2 (pow y 2))) 1)))))
#s(approx (+ (* (* z y) -1/2) x) #s(hole binary64 (* -1 (* z (+ (* -1 (/ x z)) (* 1/2 y))))))
#s(approx (+ (* -1/2 z) (/ x y)) #s(hole binary64 (* -1 (* z (+ 1/2 (* -1 (/ x (* y z))))))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) #s(hole binary64 (* -1 (* z (- (+ (* -1 (/ (* y (+ x (* -1/6 (* x (pow y 2))))) z)) (* 1/2 (pow y 2))) 1)))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (+ x (* -1/6 (* x (pow y 2)))) z)) (* 1/2 y))))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) #s(hole binary64 (* -1 (* z (+ 1/2 (* 1/6 (/ (* x y) z)))))))
Outputs
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y)) x))
(*.f64 (fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y)) x)
(*.f64 x (fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y)))
(fma.f64 (sin.f64 y) x (*.f64 x (/.f64 (*.f64 (cos.f64 y) z) x)))
(fma.f64 (sin.f64 y) x (*.f64 (/.f64 (*.f64 (cos.f64 y) z) x) x))
(fma.f64 x (sin.f64 y) (*.f64 x (/.f64 (*.f64 (cos.f64 y) z) x)))
(fma.f64 x (sin.f64 y) (*.f64 (/.f64 (*.f64 (cos.f64 y) z) x) x))
(+.f64 (*.f64 (sin.f64 y) x) (*.f64 x (/.f64 (*.f64 (cos.f64 y) z) x)))
(+.f64 (*.f64 (sin.f64 y) x) (*.f64 (/.f64 (*.f64 (cos.f64 y) z) x) x))
(fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y))
(fma.f64 (*.f64 (cos.f64 y) z) (/.f64 #s(literal 1 binary64) x) (sin.f64 y))
(fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y))
(fma.f64 z (/.f64 (cos.f64 y) x) (sin.f64 y))
(-.f64 (/.f64 (*.f64 (cos.f64 y) z) x) (neg.f64 (sin.f64 y)))
(-.f64 (sin.f64 y) (neg.f64 (/.f64 (*.f64 (cos.f64 y) z) x)))
(+.f64 (/.f64 (*.f64 (cos.f64 y) z) x) (sin.f64 y))
(+.f64 (sin.f64 y) (/.f64 (*.f64 (cos.f64 y) z) x))
(sin.f64 (+.f64 (fabs.f64 y) (/.f64 (PI.f64) #s(literal 2 binary64))))
(sin.f64 (+.f64 (neg.f64 y) (/.f64 (PI.f64) #s(literal 2 binary64))))
(sin.f64 (+.f64 y (/.f64 (PI.f64) #s(literal 2 binary64))))
(fma.f64 (sin.f64 y) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64))) (*.f64 (cos.f64 y) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))))
(cos.f64 (neg.f64 (fabs.f64 y)))
(cos.f64 (neg.f64 (neg.f64 y)))
(cos.f64 (fabs.f64 (fabs.f64 y)))
(cos.f64 (fabs.f64 y))
(cos.f64 (neg.f64 y))
(cos.f64 y)
(+.f64 (*.f64 (sin.f64 y) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))) (*.f64 (cos.f64 y) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))))
y
(*.f64 (/.f64 #s(literal 1 binary64) x) z)
(*.f64 z (/.f64 #s(literal 1 binary64) x))
(/.f64 (neg.f64 (*.f64 z #s(literal 1 binary64))) (neg.f64 x))
(/.f64 (neg.f64 (neg.f64 z)) (neg.f64 (neg.f64 x)))
(/.f64 (*.f64 z #s(literal 1 binary64)) x)
(/.f64 (neg.f64 z) (neg.f64 x))
(/.f64 z x)
z
(*.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x))
(pow.f64 x #s(literal -1 binary64))
(/.f64 #s(literal -2 binary64) (*.f64 #s(literal 2 binary64) (neg.f64 x)))
(/.f64 #s(literal -1 binary64) (neg.f64 x))
(/.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) x))
(/.f64 #s(literal 1 binary64) (neg.f64 (neg.f64 x)))
(/.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
(sin.f64 y)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
(fma.f64 y x z)
(fma.f64 x y z)
(-.f64 (*.f64 y x) (neg.f64 z))
(-.f64 z (*.f64 (neg.f64 x) y))
(-.f64 z (neg.f64 (*.f64 y x)))
(+.f64 (*.f64 y x) z)
(+.f64 z (*.f64 y x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z))
(fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z)
(fma.f64 y #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) z)
(-.f64 (*.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y) (neg.f64 z))
(+.f64 (*.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y) z)
(+.f64 z (*.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y))
(*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)
(*.f64 y (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)))
(fma.f64 (*.f64 #s(literal -1/2 binary64) z) y (*.f64 (/.f64 x y) y))
(fma.f64 y (*.f64 #s(literal -1/2 binary64) z) (*.f64 y (/.f64 x y)))
(+.f64 (*.f64 y (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y (/.f64 x y)))
(+.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) z) y) (*.f64 (/.f64 x y) y))
(fma.f64 (/.f64 #s(literal -1 binary64) y) (/.f64 x #s(literal -1 binary64)) (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 (/.f64 x #s(literal -1 binary64)) (/.f64 #s(literal -1 binary64) y) (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 (/.f64 x y) #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 #s(literal -1/2 binary64) z (/.f64 x y))
(fma.f64 #s(literal 1 binary64) (/.f64 x y) (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 z #s(literal -1/2 binary64) (/.f64 x y))
(fma.f64 x (/.f64 #s(literal 1 binary64) y) (*.f64 #s(literal -1/2 binary64) z))
(-.f64 (*.f64 #s(literal -1/2 binary64) z) (/.f64 (neg.f64 x) y))
(+.f64 (/.f64 x y) (*.f64 #s(literal -1/2 binary64) z))
(+.f64 (*.f64 #s(literal -1/2 binary64) z) (/.f64 x y))
#s(literal -1/2 binary64)
(*.f64 (/.f64 #s(literal -1 binary64) y) (/.f64 x #s(literal -1 binary64)))
(*.f64 (/.f64 x #s(literal -1 binary64)) (/.f64 #s(literal -1 binary64) y))
(*.f64 (/.f64 x y) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (/.f64 x y))
(*.f64 x (/.f64 #s(literal 1 binary64) y))
(/.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 y)))
(/.f64 (neg.f64 x) (neg.f64 y))
(/.f64 x y)
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
(fma.f64 (fma.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y x) y z)
(fma.f64 y (fma.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y x) z)
(-.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y x) y) (neg.f64 z))
(-.f64 z (*.f64 (neg.f64 y) (fma.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y x)))
(-.f64 z (neg.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y x) y)))
(+.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y x) y) z)
(+.f64 z (*.f64 (fma.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y x) y))
(fma.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y x)
(fma.f64 y (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) x)
(-.f64 (*.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y) (neg.f64 x))
(-.f64 x (*.f64 (neg.f64 y) (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z))))
(-.f64 x (neg.f64 (*.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y)))
(+.f64 (*.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y) x)
(+.f64 x (*.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y))
(fma.f64 (*.f64 #s(literal -1/6 binary64) x) y (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) x (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z))
(fma.f64 #s(literal -1/2 binary64) z (*.f64 (*.f64 y x) #s(literal -1/6 binary64)))
(fma.f64 z #s(literal -1/2 binary64) (*.f64 (*.f64 y x) #s(literal -1/6 binary64)))
(-.f64 (*.f64 (*.f64 y x) #s(literal -1/6 binary64)) (neg.f64 (*.f64 #s(literal -1/2 binary64) z)))
(-.f64 (*.f64 (*.f64 y x) #s(literal -1/6 binary64)) (*.f64 #s(literal 1/2 binary64) z))
(-.f64 (*.f64 #s(literal -1/2 binary64) z) (*.f64 #s(literal 1/6 binary64) (*.f64 y x)))
(-.f64 (*.f64 #s(literal -1/2 binary64) z) (neg.f64 (*.f64 (*.f64 y x) #s(literal -1/6 binary64))))
(+.f64 (*.f64 (*.f64 y x) #s(literal -1/6 binary64)) (*.f64 #s(literal -1/2 binary64) z))
(+.f64 (*.f64 #s(literal -1/2 binary64) z) (*.f64 (*.f64 y x) #s(literal -1/6 binary64)))
#s(literal -1/6 binary64)
(*.f64 y x)
(*.f64 x y)
(*.f64 #s(literal -1/2 binary64) z)
(*.f64 z #s(literal -1/2 binary64))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
(*.f64 (sin.f64 y) x)
(*.f64 x (sin.f64 y))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x)))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) (/.f64 (*.f64 (cos.f64 y) z) x))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) (/.f64 (fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x)) x))
#s(approx (* z (/ 1 x)) (/.f64 z x))
#s(approx (/ 1 x) (/.f64 #s(literal 1 binary64) x))
#s(approx x x)
#s(approx (+ (* y x) z) z)
#s(approx (+ (* y x) z) (fma.f64 y x z))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) z))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (+.f64 (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) (*.f64 y x)) z))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64)))
#s(approx (+ (* (* z y) -1/2) x) (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x))
#s(approx (+ (* -1/2 z) (/ x y)) (*.f64 #s(literal -1/2 binary64) z))
#s(approx (+ (* -1/2 z) (/ x y)) (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)))
#s(approx (/ x y) (/.f64 x y))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (+.f64 (fma.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) y) x (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64))) z))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (fma.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x (*.f64 (*.f64 z y) #s(literal -1/2 binary64))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)))
#s(approx (* y x) (*.f64 y x))
#s(approx (* (sin y) x) (*.f64 (sin.f64 y) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y)) x))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) (sin.f64 y))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) (fma.f64 (/.f64 z x) (cos.f64 y) (sin.f64 y)))
#s(approx (+ (* y x) z) (*.f64 (+.f64 (/.f64 z x) y) x))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (+.f64 (/.f64 (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) z) x) y) x))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) x))
#s(approx (+ (* -1/2 z) (/ x y)) (*.f64 (fma.f64 (/.f64 z x) #s(literal -1/2 binary64) (/.f64 #s(literal 1 binary64) y)) x))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) y) x))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (fma.f64 (/.f64 (*.f64 (*.f64 y y) z) x) #s(literal -1/2 binary64) (fma.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) y (/.f64 z x))) x))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (+.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) (*.f64 (*.f64 y y) #s(literal -1/6 binary64))) #s(literal 1 binary64)) x))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (*.f64 y x) #s(literal -1/6 binary64)))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (fma.f64 (/.f64 z x) #s(literal -1/2 binary64) (*.f64 #s(literal -1/6 binary64) y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (neg.f64 x) (+.f64 (neg.f64 (/.f64 (*.f64 (cos.f64 y) z) x)) (neg.f64 (sin.f64 y)))))
#s(approx (+ (* y x) z) (*.f64 (neg.f64 x) (+.f64 (neg.f64 (/.f64 z x)) (neg.f64 y))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (neg.f64 x) (+.f64 (neg.f64 (/.f64 (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) z) x)) (neg.f64 y))))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (neg.f64 x) (fma.f64 #s(literal 1/2 binary64) (*.f64 y (/.f64 z x)) #s(literal -1 binary64))))
#s(approx (+ (* -1/2 z) (/ x y)) (*.f64 (neg.f64 x) (-.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 z x)) (/.f64 #s(literal 1 binary64) y))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (neg.f64 x) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 y y) #s(literal -1 binary64)) y)))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (neg.f64 x) (fma.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 y y) #s(literal -1 binary64)) y (neg.f64 (/.f64 (fma.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64) z) x)))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (neg.f64 x) (fma.f64 #s(literal 1/6 binary64) (*.f64 y y) #s(literal -1 binary64))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (neg.f64 x) (fma.f64 #s(literal 1/6 binary64) (*.f64 y y) (fma.f64 #s(literal 1/2 binary64) (*.f64 y (/.f64 z x)) #s(literal -1 binary64)))))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (neg.f64 x) (fma.f64 #s(literal 1/6 binary64) y (*.f64 #s(literal 1/2 binary64) (/.f64 z x)))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) (+.f64 (/.f64 z x) y))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) (fma.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) y (/.f64 z x)))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) (fma.f64 (fma.f64 (fma.f64 (/.f64 z x) #s(literal -1/2 binary64) (*.f64 #s(literal -1/6 binary64) y)) y #s(literal 1 binary64)) y (/.f64 z x)))
#s(approx (cos y) #s(literal 1 binary64))
#s(approx (cos y) (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) #s(literal 1 binary64)))
#s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64)))
#s(approx (cos y) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 y y) #s(literal 1/24 binary64)) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64)))
#s(approx y y)
#s(approx (sin y) (*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) y))
#s(approx (sin y) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y))
#s(approx (sin y) (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y))
#s(approx (+ (* -1/2 z) (/ x y)) (/.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) y) z x) y))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (fma.f64 (fma.f64 (*.f64 y x) #s(literal -1/6 binary64) (*.f64 #s(literal -1/2 binary64) z)) y x))
#s(approx (* (sin y) x) (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y))
#s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y))
#s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 (*.f64 y y) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/5040 binary64) (*.f64 #s(literal 1/120 binary64) x)) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y))
#s(approx (cos y) (cos.f64 y))
#s(approx (+ (* y x) z) (*.f64 (+.f64 (/.f64 z y) x) y))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) (*.f64 y y)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (+.f64 (/.f64 z (*.f64 y y)) (/.f64 x y))) (*.f64 y y)))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (*.f64 (*.f64 (*.f64 y y) y) x) #s(literal -1/6 binary64)))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (fma.f64 (/.f64 z y) #s(literal -1/2 binary64) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 (*.f64 y y) y)))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (fma.f64 (/.f64 z y) #s(literal -1/2 binary64) (fma.f64 #s(literal -1/6 binary64) x (/.f64 x (*.f64 y y)))) (*.f64 (*.f64 y y) y)))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (fma.f64 (/.f64 z y) #s(literal -1/2 binary64) (+.f64 (fma.f64 #s(literal -1/6 binary64) x (/.f64 x (*.f64 y y))) (/.f64 z (*.f64 (*.f64 y y) y)))) (*.f64 (*.f64 y y) y)))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (fma.f64 (/.f64 z y) #s(literal -1/2 binary64) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y)))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (fma.f64 (/.f64 z y) #s(literal -1/2 binary64) (fma.f64 #s(literal -1/6 binary64) x (/.f64 x (*.f64 y y)))) (*.f64 y y)))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (fma.f64 (/.f64 z y) #s(literal -1/2 binary64) (*.f64 #s(literal -1/6 binary64) x)) y))
#s(approx (+ (* y x) z) (*.f64 (neg.f64 y) (+.f64 (neg.f64 x) (neg.f64 (/.f64 z y)))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (neg.f64 (/.f64 (+.f64 (neg.f64 x) (neg.f64 (/.f64 z y))) y))) (*.f64 y y)))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (neg.f64 y) (fma.f64 #s(literal 1/2 binary64) z (/.f64 (neg.f64 x) y))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (*.f64 (neg.f64 y) (*.f64 y y)) (fma.f64 (/.f64 z y) #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) x))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (*.f64 (neg.f64 y) (*.f64 y y)) (fma.f64 #s(literal 1/6 binary64) x (neg.f64 (/.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)))))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (*.f64 (neg.f64 y) (*.f64 y y)) (fma.f64 #s(literal 1/6 binary64) x (neg.f64 (/.f64 (fma.f64 #s(literal -1/2 binary64) z (neg.f64 (/.f64 (+.f64 (neg.f64 x) (neg.f64 (/.f64 z y))) y))) y)))))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (fma.f64 #s(literal -1/6 binary64) x (neg.f64 (/.f64 (fma.f64 #s(literal 1/2 binary64) z (/.f64 (neg.f64 x) y)) y))) (*.f64 y y)))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (neg.f64 y) (fma.f64 (/.f64 z y) #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) x))))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (fma.f64 (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) #s(literal 1 binary64)) z (*.f64 y x)))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (fma.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y (*.f64 (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) #s(literal 1 binary64)) z)))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (+.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 x (/.f64 (sin.f64 y) z) (cos.f64 y)) z))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) (*.f64 (+.f64 (/.f64 (sin.f64 y) z) (/.f64 (cos.f64 y) x)) z))
#s(approx (+ (* y x) z) (*.f64 (fma.f64 x (/.f64 y z) #s(literal 1 binary64)) z))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) #s(literal 1 binary64)) z))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (+.f64 (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) (/.f64 (*.f64 y x) z)) #s(literal 1 binary64)) z))
#s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) y (/.f64 x z)) z))
#s(approx (+ (* -1/2 z) (/ x y)) (*.f64 (-.f64 (/.f64 x (*.f64 z y)) #s(literal 1/2 binary64)) z))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (+.f64 (fma.f64 (*.f64 y y) #s(literal -1/2 binary64) (/.f64 (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y) z)) #s(literal 1 binary64)) z))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) y (/.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) z)) z))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (fma.f64 (/.f64 (*.f64 y x) z) #s(literal -1/6 binary64) #s(literal -1/2 binary64)) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (neg.f64 (*.f64 (+.f64 (neg.f64 (/.f64 (*.f64 (sin.f64 y) x) z)) (neg.f64 (cos.f64 y))) z)))
#s(approx (+ (* (cos y) (* z (/ 1 x))) (sin y)) (neg.f64 (*.f64 (+.f64 (/.f64 (neg.f64 (sin.f64 y)) z) (/.f64 (neg.f64 (cos.f64 y)) x)) z)))
#s(approx (+ (* y x) z) (neg.f64 (*.f64 (neg.f64 (fma.f64 x (/.f64 y z) #s(literal 1 binary64))) z)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (neg.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) (*.f64 y y) #s(literal -1 binary64)) z)))
#s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (neg.f64 (*.f64 (-.f64 (fma.f64 #s(literal 1/2 binary64) (*.f64 y y) (neg.f64 (/.f64 (*.f64 y x) z))) #s(literal 1 binary64)) z)))
#s(approx (+ (* (* z y) -1/2) x) (neg.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) y (/.f64 (neg.f64 x) z)) z)))
#s(approx (+ (* -1/2 z) (/ x y)) (neg.f64 (*.f64 (+.f64 (/.f64 (neg.f64 x) (*.f64 z y)) #s(literal 1/2 binary64)) z)))
#s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (neg.f64 (*.f64 (-.f64 (fma.f64 #s(literal 1/2 binary64) (*.f64 y y) (neg.f64 (/.f64 (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y) z))) #s(literal 1 binary64)) z)))
#s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (neg.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) y (neg.f64 (/.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) z))) z)))
#s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (neg.f64 (*.f64 (fma.f64 (/.f64 (*.f64 y x) z) #s(literal 1/6 binary64) #s(literal 1/2 binary64)) z)))

eval33.0ms (0.8%)

Memory
6.2MiB live, 52.5MiB allocated; 13ms collecting garbage
Compiler

Compiled 2 018 to 988 computations (51% saved)

prune21.0ms (0.5%)

Memory
31.2MiB live, 31.2MiB allocated; 0ms collecting garbage
Pruning

31 alts after pruning (20 fresh and 11 done)

PrunedKeptTotal
New1988206
Fresh11213
Picked145
Done077
Total20031231
Accuracy
99.9%
Counts
231 → 31
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(fma.f64 (sin.f64 y) x (*.f64 (cos.f64 y) z))
99.8%
(fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x))
72.4%
(fma.f64 #s(approx (cos y) #s(literal 1 binary64)) z (*.f64 (sin.f64 y) x))
46.1%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 #s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (*.f64 y x) #s(literal -1/6 binary64))) y x) y z))
30.8%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) y z))
41.4%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) x)) y z))
33.7%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z))
30.6%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z))
23.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 #s(approx (+ (* -1/2 z) (/ x y)) (*.f64 (-.f64 (/.f64 x (*.f64 z y)) #s(literal 1/2 binary64)) z)) y)) y z))
46.6%
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
85.3%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (sin.f64 y) (/.f64 x z) (cos.f64 y)) z))
90.6%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y)) x))
90.5%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (*.f64 z (/.f64 #s(literal 1 binary64) x)) (sin.f64 y)) x))
90.5%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 z (/.f64 (cos.f64 y) x) (sin.f64 y)) x))
89.4%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 x (/.f64 (sin.f64 y) z) (cos.f64 y)) z))
43.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
58.5%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
42.4%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (+.f64 (/.f64 z x) y)) x))
17.9%
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (sin y) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y)) x))
3.0%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (*.f64 (*.f64 (*.f64 y y) y) x) #s(literal -1/6 binary64))))
7.4%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) (*.f64 y y))))
3.1%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64))))
18.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
44.0%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* y x) z) (*.f64 (fma.f64 x (/.f64 y z) #s(literal 1 binary64)) z)))
17.9%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y)))
18.1%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y)))
30.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 (*.f64 #s(literal 1/24 binary64) y) y) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
30.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y z)))
9.9%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (fma.f64 (/.f64 z (*.f64 y y)) #s(literal -1/2 binary64) (*.f64 #s(literal 1/24 binary64) z)) (*.f64 y y))) (*.f64 y y) z)))
30.2%
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64))) (*.f64 y y) z)))
32.7%
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
Compiler

Compiled 886 to 727 computations (17.9% saved)

regimes190.0ms (4.8%)

Memory
-4.7MiB live, 87.1MiB allocated; 14ms collecting garbage
Counts
38 → 1
Calls
Call 1
Inputs
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (+.f64 (/.f64 z x) y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* y x) z) (*.f64 (fma.f64 x (/.f64 y z) #s(literal 1 binary64)) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (*.f64 (*.f64 (*.f64 y y) y) x) #s(literal -1/6 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) (*.f64 y y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 #s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (*.f64 y x) #s(literal -1/6 binary64))) y x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64))) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) x)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 #s(approx (+ (* -1/2 z) (/ x y)) (*.f64 (-.f64 (/.f64 x (*.f64 z y)) #s(literal 1/2 binary64)) z)) y)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (sin y) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 (*.f64 #s(literal 1/24 binary64) y) y) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) y (*.f64 (/.f64 z x) #s(literal -1/2 binary64))) y #s(literal 1 binary64)) y (/.f64 z x))) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (fma.f64 (/.f64 z (*.f64 y y)) #s(literal -1/2 binary64) (*.f64 #s(literal 1/24 binary64) z)) (*.f64 y y))) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
(fma.f64 #s(approx (cos y) #s(literal 1 binary64)) z (*.f64 (sin.f64 y) x))
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z #s(approx (cos y) #s(literal 1 binary64))))
(fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x))
(fma.f64 (sin.f64 y) x (*.f64 (cos.f64 y) z))
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 z (/.f64 (cos.f64 y) x) (sin.f64 y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (/.f64 z x) (sin.f64 y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (sin.f64 y) (/.f64 x z) (cos.f64 y)) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 x (/.f64 (sin.f64 y) z) (cos.f64 y)) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (fma.f64 (cos.f64 y) (*.f64 z (/.f64 #s(literal 1 binary64) x)) (sin.f64 y)) x))
Outputs
(fma.f64 (cos.f64 y) z (*.f64 (sin.f64 y) x))
Calls

4 calls:

138.0ms
z
30.0ms
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
10.0ms
y
10.0ms
x
Results
AccuracySegmentsBranch
99.8%1(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
99.8%1x
99.8%1y
99.8%1z
Compiler

Compiled 11 to 17 computations (-54.5% saved)

regimes38.0ms (1%)

Memory
-2.5MiB live, 96.8MiB allocated; 7ms collecting garbage
Counts
30 → 3
Calls
Call 1
Inputs
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (+.f64 (/.f64 z x) y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* y x) z) (*.f64 (fma.f64 x (/.f64 y z) #s(literal 1 binary64)) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (*.f64 (*.f64 (*.f64 y y) y) x) #s(literal -1/6 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) (*.f64 y y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 #s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (*.f64 y x) #s(literal -1/6 binary64))) y x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64))) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) x)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 #s(approx (+ (* -1/2 z) (/ x y)) (*.f64 (-.f64 (/.f64 x (*.f64 z y)) #s(literal 1/2 binary64)) z)) y)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (sin y) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 (*.f64 #s(literal 1/24 binary64) y) y) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) y (*.f64 (/.f64 z x) #s(literal -1/2 binary64))) y #s(literal 1 binary64)) y (/.f64 z x))) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (fma.f64 (/.f64 z (*.f64 y y)) #s(literal -1/2 binary64) (*.f64 #s(literal 1/24 binary64) z)) (*.f64 y y))) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
(fma.f64 #s(approx (cos y) #s(literal 1 binary64)) z (*.f64 (sin.f64 y) x))
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z #s(approx (cos y) #s(literal 1 binary64))))
Outputs
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
(fma.f64 #s(approx (cos y) #s(literal 1 binary64)) z (*.f64 (sin.f64 y) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
Calls

4 calls:

11.0ms
z
9.0ms
x
8.0ms
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
8.0ms
y
Results
AccuracySegmentsBranch
76.2%2(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
84.3%3x
77.0%2y
85.8%3z
Compiler

Compiled 11 to 17 computations (-54.5% saved)

regimes54.0ms (1.4%)

Memory
21.3MiB live, 66.9MiB allocated; 5ms collecting garbage
Counts
28 → 3
Calls
Call 1
Inputs
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (+.f64 (/.f64 z x) y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* y x) z) (*.f64 (fma.f64 x (/.f64 y z) #s(literal 1 binary64)) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (*.f64 (*.f64 (*.f64 y y) y) x) #s(literal -1/6 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) (*.f64 y y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 #s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (*.f64 y x) #s(literal -1/6 binary64))) y x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64))) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) x)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 #s(approx (+ (* -1/2 z) (/ x y)) (*.f64 (-.f64 (/.f64 x (*.f64 z y)) #s(literal 1/2 binary64)) z)) y)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (sin y) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 (*.f64 #s(literal 1/24 binary64) y) y) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) y (*.f64 (/.f64 z x) #s(literal -1/2 binary64))) y #s(literal 1 binary64)) y (/.f64 z x))) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (fma.f64 (/.f64 z (*.f64 y y)) #s(literal -1/2 binary64) (*.f64 #s(literal 1/24 binary64) z)) (*.f64 y y))) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
Outputs
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (cos.f64 y) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 #s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (*.f64 y x) #s(literal -1/6 binary64))) y x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
Calls

4 calls:

29.0ms
x
8.0ms
y
8.0ms
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
8.0ms
z
Results
AccuracySegmentsBranch
65.4%3(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
76.0%3y
75.4%3x
75.8%3z
Compiler

Compiled 11 to 17 computations (-54.5% saved)

regimes27.0ms (0.7%)

Memory
-0.0MiB live, 45.9MiB allocated; 4ms collecting garbage
Counts
27 → 3
Calls
Call 1
Inputs
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (+.f64 (/.f64 z x) y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* y x) z) (*.f64 (fma.f64 x (/.f64 y z) #s(literal 1 binary64)) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (*.f64 (*.f64 (*.f64 y y) y) x) #s(literal -1/6 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) (*.f64 y y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 #s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (*.f64 y x) #s(literal -1/6 binary64))) y x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64))) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) x)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 #s(approx (+ (* -1/2 z) (/ x y)) (*.f64 (-.f64 (/.f64 x (*.f64 z y)) #s(literal 1/2 binary64)) z)) y)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (sin y) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 (*.f64 #s(literal 1/24 binary64) y) y) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) y (*.f64 (/.f64 z x) #s(literal -1/2 binary64))) y #s(literal 1 binary64)) y (/.f64 z x))) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (fma.f64 (/.f64 z (*.f64 y y)) #s(literal -1/2 binary64) (*.f64 #s(literal 1/24 binary64) z)) (*.f64 y y))) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
Outputs
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 (sin.f64 y) x))
Calls

3 calls:

7.0ms
y
7.0ms
z
7.0ms
x
Results
AccuracySegmentsBranch
53.4%2x
60.2%3z
70.9%3y
Compiler

Compiled 3 to 9 computations (-200% saved)

regimes54.0ms (1.4%)

Memory
-27.0MiB live, 65.7MiB allocated; 14ms collecting garbage
Counts
26 → 1
Calls
Call 1
Inputs
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (*.f64 (*.f64 y y) z) #s(literal -1/2 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (+.f64 (/.f64 z x) y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (*.f64 z y) #s(literal -1/2 binary64))) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* y x) z) (*.f64 (fma.f64 x (/.f64 y z) #s(literal 1 binary64)) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) y) z) (*.f64 (*.f64 (*.f64 (*.f64 y y) y) x) #s(literal -1/6 binary64))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (*.f64 z y) #s(literal -1/2 binary64) x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (+ (* -1/6 (* y x)) (* -1/2 z)) y) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) (*.f64 y y))))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 #s(approx (+ (* -1/6 (* y x)) (* -1/2 z)) (*.f64 (*.f64 y x) #s(literal -1/6 binary64))) y x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 #s(literal -1/2 binary64) z (/.f64 x y)) y)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (*.f64 (*.f64 y y) z) #s(literal 1/24 binary64))) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (*.f64 (*.f64 (fma.f64 (*.f64 y y) #s(literal 1/24 binary64) #s(literal -1/2 binary64)) z) y) y z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (cos y) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 y y) #s(literal -1/2 binary64)) (*.f64 y y) #s(literal 1 binary64))) z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 (fma.f64 (*.f64 y (/.f64 z x)) #s(literal -1/2 binary64) #s(literal 1 binary64)) x)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 #s(approx (+ (* (* z y) -1/2) x) (*.f64 #s(approx (+ (* -1/2 z) (/ x y)) (*.f64 (-.f64 (/.f64 x (*.f64 z y)) #s(literal 1/2 binary64)) z)) y)) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y x) (*.f64 #s(literal -1/2 binary64) z)) y x) y z))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (sin y) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y)) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 y y)) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 (fma.f64 (*.f64 (*.f64 #s(literal 1/24 binary64) y) y) z (*.f64 #s(literal -1/2 binary64) z)) (*.f64 y y) z)))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) (*.f64 #s(approx (+ (* (cos y) (/ z x)) (sin y)) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) y (*.f64 (/.f64 z x) #s(literal -1/2 binary64))) y #s(literal 1 binary64)) y (/.f64 z x))) x))
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (* (cos y) z) (fma.f64 #s(approx (+ (* (* 1/24 (* y y)) z) (* -1/2 z)) (*.f64 (fma.f64 (/.f64 z (*.f64 y y)) #s(literal -1/2 binary64) (*.f64 #s(literal 1/24 binary64) z)) (*.f64 y y))) (*.f64 y y) z)))
Outputs
#s(approx (+ (* x (sin y)) (* z (cos y))) (fma.f64 y x z))
Calls

4 calls:

28.0ms
y
10.0ms
x
7.0ms
z
7.0ms
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
Results
AccuracySegmentsBranch
46.6%1x
46.6%1z
46.6%1(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
46.6%1y
Compiler

Compiled 11 to 17 computations (-54.5% saved)

regimes5.0ms (0.1%)

Memory
19.1MiB live, 19.1MiB allocated; 0ms collecting garbage
Counts
2 → 3
Calls
Call 1
Inputs
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
Outputs
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
#s(approx (+ (* x (sin y)) (* z (cos y))) #s(approx (+ (* (+ (* (* z y) -1/2) x) y) z) (*.f64 x y)))
Calls

4 calls:

1.0ms
x
1.0ms
(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
1.0ms
z
1.0ms
y
Results
AccuracySegmentsBranch
39.7%3x
32.7%1y
32.7%1(+.f64 (*.f64 x (sin.f64 y)) (*.f64 z (cos.f64 y)))
37.6%3z
Compiler

Compiled 11 to 17 computations (-54.5% saved)

regimes2.0ms (0.1%)

Memory
8.7MiB live, 8.7MiB allocated; 0ms collecting garbage
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
Outputs
#s(approx (+ (* x (sin y)) (* z (cos y))) z)
Calls

2 calls:

1.0ms
x
1.0ms
z
Results
AccuracySegmentsBranch
32.7%1z
32.7%1x
Compiler

Compiled 2 to 6 computations (-200% saved)

bsearch45.0ms (1.1%)

Memory
1.4MiB live, 91.2MiB allocated; 11ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
19.0ms
3.435210157701915e+73
1.3275701554613201e+76
23.0ms
-4.3477256450029946e+81
-8.708540586535102e+70
Samples
28.0ms288×0valid
Compiler

Compiled 372 to 410 computations (-10.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-cos: 10.0ms (47% of total)
ival-sin: 7.0ms (32.9% of total)
ival-mult!: 3.0ms (14.1% of total)
ival-add!: 1.0ms (4.7% of total)
adjust: 0.0ms (0% of total)

bsearch46.0ms (1.2%)

Memory
-2.8MiB live, 90.1MiB allocated; 26ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
21.0ms
13185648334567910.0
654562490352796500.0
24.0ms
-116854670385.66815
-11976630375.788538
Samples
26.0ms208×0valid
Compiler

Compiled 428 to 456 computations (-6.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-sin: 8.0ms (38.6% of total)
ival-mult!: 7.0ms (33.7% of total)
ival-cos: 6.0ms (28.9% of total)
adjust: 0.0ms (0% of total)
ival-add!: 0.0ms (0% of total)

bsearch20.0ms (0.5%)

Memory
2.3MiB live, 47.3MiB allocated; 9ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
13185648334567910.0
654562490352796500.0
18.0ms
-0.0007780860885120256
-1.7430734267191215e-9
Samples
12.0ms144×0valid
Compiler

Compiled 348 to 382 computations (-9.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-sin: 2.0ms (44.4% of total)
ival-mult!: 2.0ms (44.4% of total)
ival-cos: 1.0ms (22.2% of total)
adjust: 0.0ms (0% of total)
ival-add!: 0.0ms (0% of total)

bsearch70.0ms (1.8%)

Memory
-19.1MiB live, 97.5MiB allocated; 18ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
19.0ms
2.937583700553967e+108
1.0374817309376921e+110
48.0ms
-6.818691964079099e+144
-1.1888449320724549e+139
Samples
57.0ms256×0valid
Compiler

Compiled 428 to 462 computations (-7.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 51.0ms
ival-sin: 43.0ms (84.3% of total)
ival-cos: 5.0ms (9.8% of total)
ival-mult!: 2.0ms (3.9% of total)
ival-add!: 1.0ms (2% of total)
adjust: 0.0ms (0% of total)

derivations558.0ms (14.2%)

Memory
22.3MiB live, 476.6MiB allocated; 96ms collecting garbage
Stop Event
fuel
Compiler

Compiled 95 to 64 computations (32.6% saved)

preprocess96.0ms (2.4%)

Memory
-5.9MiB live, 92.6MiB allocated; 36ms collecting garbage
Compiler

Compiled 103 to 72 computations (30.1% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...