FastMath test3

Time bar (total: 3.3s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
1.6MiB live, 1.6MiB 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 13 to 11 computations (15.4% saved)

sample906.0ms (27.8%)

Memory
31.4MiB live, 1 180.6MiB allocated; 385ms collecting garbage
Samples
601.0ms7 801×0valid
36.0ms370×1valid
9.0ms85×2valid
Precisions
Click to see histograms. Total time spent on operations: 366.0ms
ival-mult!: 301.0ms (82.3% of total)
ival-add!: 53.0ms (14.5% of total)
adjust: 12.0ms (3.3% of total)
Bogosity

preprocess45.0ms (1.4%)

Memory
-4.1MiB live, 42.4MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03797
129673
2272173
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
97.1%
(+.f64 (+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2)) (*.f64 d1 d3))
Symmetry

(negabs d1)

(sort d2 d3)

Compiler

Compiled 22 to 18 computations (18.2% saved)

series84.0ms (2.6%)

Memory
34.5MiB live, 86.8MiB allocated; 14ms collecting garbage
Counts
9 → 19
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2))
(*.f64 d1 #s(literal 3 binary64))
d1
#s(literal 3 binary64)
(*.f64 d1 d2)
d2
(*.f64 d1 d3)
d3
Outputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 (+.f64 #s(literal 3 binary64) (+.f64 d2 d3))))
#s(approx (+ (* d1 3) (* d1 d2)) (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)))
#s(approx (* d1 3) (*.f64 #s(literal 3 binary64) d1))
#s(approx d1 d1)
#s(approx (* d1 d2) (*.f64 d1 d2))
#s(approx (* d1 d3) (*.f64 d1 d3))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d3)) #s(literal 3 binary64)))))
#s(approx (+ (* d1 3) (* d1 d2)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) d2) #s(literal 3 binary64)))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3))))
#s(approx (+ (* d1 3) (* d1 d2)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)))
#s(approx d2 d2)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d2 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d2) (/.f64 (*.f64 d1 d3) d2)))))
#s(approx (+ (* d1 3) (* d1 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2)))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)) d2))))))
#s(approx (+ (* d1 3) (* d1 d2)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -3 binary64) (/.f64 d1 d2) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx d3 d3)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)) d3))))))
Calls

9 calls:

TimeVariablePoint
2.0ms
d1
-inf
2.0ms
d1
inf
1.0ms
d1
0
1.0ms
d2
-inf
1.0ms
d2
inf

rewrite275.0ms (8.4%)

Memory
-46.7MiB live, 180.2MiB allocated; 210ms collecting garbage
Counts
9 → 23
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2))
(*.f64 d1 #s(literal 3 binary64))
d1
#s(literal 3 binary64)
(*.f64 d1 d2)
d2
(*.f64 d1 d3)
d3
Outputs
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
(*.f64 d1 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3))
(*.f64 d1 (-.f64 (+.f64 d2 #s(literal 3 binary64)) (neg.f64 d3)))
(*.f64 (/.f64 (*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1) d1) (/.f64 (*.f64 (-.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1) (-.f64 (+.f64 d2 #s(literal 3 binary64)) d3)))
(*.f64 (*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1) (/.f64 (*.f64 (-.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1) (*.f64 (-.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)))
(*.f64 (+.f64 d2 #s(literal 3 binary64)) d1)
(*.f64 d1 (+.f64 d2 #s(literal 3 binary64)))
(*.f64 d1 (-.f64 #s(literal 3 binary64) (neg.f64 d2)))
(*.f64 d1 (-.f64 d2 (neg.f64 #s(literal 3 binary64))))
(*.f64 (/.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) d1) d1) (/.f64 (*.f64 (-.f64 #s(literal 3 binary64) d2) d1) (-.f64 #s(literal 3 binary64) d2)))
(*.f64 d1 #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) d1)
d1
(neg.f64 (neg.f64 d1))
#s(literal 3 binary64)
(*.f64 d1 d2)
(*.f64 d2 d1)
(neg.f64 (neg.f64 (*.f64 d1 d2)))
d2
(*.f64 d1 d3)
(*.f64 d3 d1)
(neg.f64 (neg.f64 (*.f64 d1 d3)))
d3

eval4.0ms (0.1%)

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

Compiled 584 to 154 computations (73.6% saved)

prune3.0ms (0.1%)

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

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New30535
Fresh000
Picked101
Done000
Total31536
Accuracy
100.0%
Counts
36 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
90.6%
(+.f64 #s(approx (+ (* d1 3) (* d1 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2))))) (*.f64 d1 d3))
99.9%
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
98.0%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3))))
65.0%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
80.2%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))))
Compiler

Compiled 186 to 132 computations (29% saved)

series152.0ms (4.7%)

Memory
-32.0MiB live, 165.7MiB allocated; 33ms collecting garbage
Counts
26 → 75
Calls
Call 1
Inputs
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
(+.f64 (+.f64 d2 #s(literal 3 binary64)) d3)
(+.f64 d2 #s(literal 3 binary64))
d2
#s(literal 3 binary64)
d3
d1
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
(fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3))
(*.f64 d1 d3)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3))))
(fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3)))
(fma.f64 d1 d2 (*.f64 d1 d3))
(+.f64 #s(approx (+ (* d1 3) (* d1 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2))))) (*.f64 d1 d3))
#s(approx (+ (* d1 3) (* d1 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2)))))
(*.f64 d2 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2))))
(+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2)))
(*.f64 #s(literal 3 binary64) (/.f64 d1 d2))
(/.f64 d1 d2)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))))
(*.f64 d3 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3))))
(+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))
(fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3))
(/.f64 d1 d3)
(/.f64 (*.f64 d1 d2) d3)
(*.f64 d1 d2)
Outputs
#s(approx (* (+ (+ d2 3) d3) d1) (*.f64 d1 (+.f64 #s(literal 3 binary64) (+.f64 d2 d3))))
#s(approx d1 d1)
#s(approx (+ (* 3 d1) (* d1 d3)) (*.f64 d1 (+.f64 #s(literal 3 binary64) d3)))
#s(approx (* d1 d3) (*.f64 d1 d3))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d1 (+.f64 d2 d3)))
#s(approx (+ (* d1 3) (* d1 d2)) (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)))
#s(approx (* d2 (+ d1 (* 3 (/ d1 d2)))) (*.f64 d1 (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d2))))))
#s(approx (+ d1 (* 3 (/ d1 d2))) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d2)))))
#s(approx (* 3 (/ d1 d2)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d2)))
#s(approx (/ d1 d2) (/.f64 d1 d2))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 d1 (*.f64 d3 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3) (/.f64 d2 d3))))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (*.f64 d1 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3) (/.f64 d2 d3)))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3) (/.f64 d2 d3))))
#s(approx (/ d1 d3) (/.f64 d1 d3))
#s(approx (/ (* d1 d2) d3) (/.f64 (*.f64 d1 d2) d3))
#s(approx (* d1 d2) (*.f64 d1 d2))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d3)) #s(literal 3 binary64)))))
#s(approx (+ (* 3 d1) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) d3) #s(literal 3 binary64)))))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d3)))))
#s(approx (+ (* d1 3) (* d1 d2)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) d2) #s(literal 3 binary64)))))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 #s(literal -1 binary64) (*.f64 d1 (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d2 d3)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3))))))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d2 d3)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3)))))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d2 d3)) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3))))))
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d2 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3))))
#s(approx (+ (+ d2 3) d3) (+.f64 #s(literal 3 binary64) d3))
#s(approx (+ (+ d2 3) d3) (+.f64 #s(literal 3 binary64) (+.f64 d2 d3)))
#s(approx (+ d2 3) #s(literal 3 binary64))
#s(approx (+ d2 3) (+.f64 #s(literal 3 binary64) d2))
#s(approx d2 d2)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3))))
#s(approx (+ (* d1 d2) (* d1 d3)) (fma.f64 d1 d2 (*.f64 d1 d3)))
#s(approx (+ (* d1 3) (* d1 d2)) (*.f64 #s(literal 3 binary64) d1))
#s(approx (+ (* d1 3) (* d1 d2)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)))
#s(approx (+ d1 (* 3 (/ d1 d2))) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)) d2))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (fma.f64 d1 d2 (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))
#s(approx (* (+ (+ d2 3) d3) d1) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3)) d2))))
#s(approx (+ (+ d2 3) d3) (*.f64 d2 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d2) (/.f64 d3 d2)))))
#s(approx (+ d2 3) (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d2)))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d2 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d2) (/.f64 (*.f64 d1 d3) d2)))))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 d3) d2))))
#s(approx (+ (* d1 3) (* d1 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2)))))
#s(approx (+ d1 (* 3 (/ d1 d2))) (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2))))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))) d2))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (*.f64 d2 (fma.f64 #s(literal 3 binary64) (/.f64 d1 (*.f64 d2 d3)) (+.f64 (/.f64 d1 d2) (/.f64 d1 d3)))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 d2 (fma.f64 #s(literal 3 binary64) (/.f64 d1 (*.f64 d2 d3)) (/.f64 d1 d3))))
#s(approx (* (+ (+ d2 3) d3) d1) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3)) d2))))))
#s(approx (+ (+ d2 3) d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 #s(literal 3 binary64) d3) d2)) #s(literal 1 binary64)))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)) d2))))))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d3) d2))))))
#s(approx (+ (* d1 3) (* d1 d2)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -3 binary64) (/.f64 d1 d2) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))) d2))))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) (/.f64 d1 d3) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))) d2))))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -3 binary64) (/.f64 d1 (*.f64 d2 d3)) (*.f64 #s(literal -1 binary64) (/.f64 d1 d3))))))
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
#s(approx d3 d3)
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)) d3))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3))) d3))
#s(approx (* (+ (+ d2 3) d3) d1) (*.f64 d3 (+.f64 d1 (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)) d3))))
#s(approx (+ (+ d2 3) d3) (*.f64 d3 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3) (/.f64 d2 d3)))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 (+.f64 d1 (/.f64 (*.f64 d1 d2) d3))))
#s(approx (* (+ (+ d2 3) d3) d1) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)) d3))))))
#s(approx (+ (+ d2 3) d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 #s(literal 3 binary64) d2) d3)) #s(literal 1 binary64)))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)) d3))))))
#s(approx (+ (* 3 d1) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -3 binary64) (/.f64 d1 d3) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d3))))))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -3 binary64) (/.f64 d1 d3) (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d3)))))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -3 binary64) d1 (*.f64 #s(literal -1 binary64) (*.f64 d1 d2))) d3))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -3 binary64) d1 (*.f64 #s(literal -1 binary64) (*.f64 d1 d2))) d3)))
Calls

9 calls:

TimeVariablePoint
6.0ms
d2
-inf
5.0ms
d1
-inf
4.0ms
d3
inf
4.0ms
d1
0
3.0ms
d1
inf

rewrite450.0ms (13.8%)

Memory
20.6MiB live, 483.2MiB allocated; 60ms collecting garbage
Counts
26 → 92
Calls
Call 1
Inputs
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
(+.f64 (+.f64 d2 #s(literal 3 binary64)) d3)
(+.f64 d2 #s(literal 3 binary64))
d2
#s(literal 3 binary64)
d3
d1
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
(fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3))
(*.f64 d1 d3)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3))))
(fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3)))
(fma.f64 d1 d2 (*.f64 d1 d3))
(+.f64 #s(approx (+ (* d1 3) (* d1 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2))))) (*.f64 d1 d3))
#s(approx (+ (* d1 3) (* d1 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2)))))
(*.f64 d2 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2))))
(+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2)))
(*.f64 #s(literal 3 binary64) (/.f64 d1 d2))
(/.f64 d1 d2)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))))
(*.f64 d3 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3))))
(+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))
(fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3))
(/.f64 d1 d3)
(/.f64 (*.f64 d1 d2) d3)
(*.f64 d1 d2)
Outputs
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
(*.f64 d1 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3))
(*.f64 d1 (-.f64 (+.f64 d3 #s(literal 3 binary64)) (neg.f64 d2)))
(*.f64 d1 (-.f64 (+.f64 d3 d2) (neg.f64 #s(literal 3 binary64))))
(*.f64 d1 (-.f64 (+.f64 d2 #s(literal 3 binary64)) (neg.f64 d3)))
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) (/.f64 (-.f64 (+.f64 d2 #s(literal 3 binary64)) d3) (-.f64 (+.f64 d2 #s(literal 3 binary64)) d3)))
(*.f64 (/.f64 (*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) (-.f64 (+.f64 d2 #s(literal 3 binary64)) d3)) (-.f64 (*.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (+.f64 d2 #s(literal 3 binary64))) (+.f64 d2 #s(literal 3 binary64))) (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) (*.f64 (+.f64 d2 #s(literal 3 binary64)) (+.f64 d2 #s(literal 3 binary64)))))
(*.f64 (/.f64 (*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) (-.f64 (+.f64 d2 #s(literal 3 binary64)) d3)) (*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) (-.f64 (+.f64 d2 #s(literal 3 binary64)) d3))) (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3))
(*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (-.f64 (+.f64 d2 #s(literal 3 binary64)) d3) (*.f64 d3 d3)) (/.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (-.f64 (+.f64 d2 #s(literal 3 binary64)) d3) (*.f64 d3 d3))))
(*.f64 (/.f64 (fma.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (+.f64 d2 #s(literal 3 binary64))) (+.f64 d2 #s(literal 3 binary64)) (*.f64 (*.f64 d3 d3) d3)) (+.f64 (pow.f64 (*.f64 (-.f64 (-.f64 d3 #s(literal 3 binary64)) d2) d3) #s(literal 3 binary64)) (pow.f64 (+.f64 d2 #s(literal 3 binary64)) (+.f64 #s(literal 3 binary64) #s(literal 3 binary64))))) (fma.f64 (*.f64 (-.f64 (-.f64 d3 #s(literal 3 binary64)) d2) d3) (-.f64 (*.f64 (-.f64 (-.f64 d3 #s(literal 3 binary64)) d2) d3) (*.f64 (+.f64 d2 #s(literal 3 binary64)) (+.f64 d2 #s(literal 3 binary64)))) (*.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (+.f64 d2 #s(literal 3 binary64))) (*.f64 (+.f64 d2 #s(literal 3 binary64)) (+.f64 d2 #s(literal 3 binary64))))))
(*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 (-.f64 d2 #s(literal 3 binary64)) (-.f64 d2 #s(literal 3 binary64))))
(*.f64 (/.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (-.f64 d2 #s(literal 3 binary64))) (*.f64 (+.f64 d2 #s(literal 3 binary64)) (-.f64 d2 #s(literal 3 binary64)))) (+.f64 d2 #s(literal 3 binary64)))
(*.f64 (/.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (-.f64 d2 #s(literal 3 binary64))) (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)) #s(literal 3 binary64)))) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) #s(literal 3 binary64) (*.f64 d2 d2)))
(*.f64 (fma.f64 (-.f64 #s(literal 3 binary64) d2) #s(literal 3 binary64) (*.f64 d2 d2)) (/.f64 (+.f64 d2 #s(literal 3 binary64)) (fma.f64 (-.f64 #s(literal 3 binary64) d2) #s(literal 3 binary64) (*.f64 d2 d2))))
(*.f64 (/.f64 (fma.f64 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)) #s(literal 3 binary64) (*.f64 (*.f64 d2 d2) d2)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (-.f64 #s(literal 3 binary64) d2) #s(literal 3 binary64)) #s(literal 3 binary64)))) (fma.f64 (*.f64 (-.f64 #s(literal 3 binary64) d2) #s(literal 3 binary64)) (-.f64 (*.f64 (-.f64 #s(literal 3 binary64) d2) #s(literal 3 binary64)) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2))))
d2
(neg.f64 (neg.f64 d2))
#s(literal 3 binary64)
(neg.f64 (neg.f64 #s(literal 3 binary64)))
d3
(neg.f64 (neg.f64 d3))
d1
(neg.f64 (neg.f64 d1))
#s(approx (* d1 (+ (+ d2 d3) 3)) (*.f64 (+.f64 d3 #s(literal 3 binary64)) d1))
(*.f64 (+.f64 d3 #s(literal 3 binary64)) d1)
(*.f64 d1 (+.f64 d3 #s(literal 3 binary64)))
(*.f64 d1 (-.f64 #s(literal 3 binary64) (neg.f64 d3)))
(*.f64 d1 (-.f64 d3 (neg.f64 #s(literal 3 binary64))))
(*.f64 (/.f64 (*.f64 (+.f64 d3 #s(literal 3 binary64)) d1) d1) (/.f64 (*.f64 (-.f64 #s(literal 3 binary64) d3) d1) (-.f64 #s(literal 3 binary64) d3)))
(*.f64 d1 d3)
(*.f64 d3 d1)
(neg.f64 (neg.f64 (*.f64 d1 d3)))
#s(approx (* d1 (+ (+ d2 d3) 3)) (*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1))
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
(*.f64 d1 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3))
(*.f64 d1 (-.f64 (+.f64 d3 #s(literal 3 binary64)) (neg.f64 d2)))
(*.f64 d1 (-.f64 (+.f64 d3 d2) (neg.f64 #s(literal 3 binary64))))
(*.f64 d1 (-.f64 (+.f64 d2 #s(literal 3 binary64)) (neg.f64 d3)))
(*.f64 (+.f64 d3 d2) d1)
(*.f64 d1 (+.f64 d3 d2))
(*.f64 d1 (-.f64 d3 (neg.f64 d2)))
(*.f64 d1 (-.f64 d2 (neg.f64 d3)))
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) d1) d1) (/.f64 (*.f64 (-.f64 d2 d3) d1) (-.f64 d2 d3)))
(+.f64 #s(approx (* (+ d2 3) d1) (*.f64 d2 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1))) (*.f64 d1 d3))
#s(approx (* (+ d2 3) d1) (*.f64 d2 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1)))
(*.f64 d2 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1))
(*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1) d2)
(*.f64 (*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1) (-.f64 d1 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2))) (/.f64 d2 (-.f64 d1 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2))))
(*.f64 (/.f64 (*.f64 (*.f64 d2 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1)) (-.f64 d1 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2))) (*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1) (-.f64 d1 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2)))) (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1))
(*.f64 (fma.f64 (*.f64 d1 d1) d1 (pow.f64 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) #s(literal 3 binary64))) (/.f64 d2 (fma.f64 (-.f64 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) d1) (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) (*.f64 d1 d1))))
(*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1) (/.f64 (-.f64 d1 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2)) (-.f64 d1 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2))))
(*.f64 (/.f64 (*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1) (-.f64 d1 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2))) (*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1) (-.f64 d1 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2)))) (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1))
(*.f64 (fma.f64 (-.f64 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) d1) (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) (*.f64 d1 d1)) (/.f64 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1) (fma.f64 (-.f64 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) d1) (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) (*.f64 d1 d1))))
(*.f64 (/.f64 (*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1) (-.f64 d1 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2))) (-.f64 (*.f64 (*.f64 d1 d1) d1) (pow.f64 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) #s(literal 3 binary64)))) (fma.f64 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) (fma.f64 (/.f64 #s(literal 3 binary64) d2) d1 d1) (*.f64 d1 d1)))
(*.f64 (/.f64 (fma.f64 (*.f64 d1 d1) d1 (pow.f64 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) #s(literal 3 binary64))) (-.f64 (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (pow.f64 (*.f64 (-.f64 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) d1) (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2)) #s(literal 2 binary64)))) (-.f64 (*.f64 d1 d1) (*.f64 (-.f64 (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2) d1) (/.f64 (*.f64 d1 #s(literal 3 binary64)) d2))))
(*.f64 #s(literal 3 binary64) (/.f64 d1 d2))
(*.f64 (/.f64 #s(literal 3 binary64) d2) d1)
(*.f64 (/.f64 d1 d2) #s(literal 3 binary64))
(*.f64 d1 (/.f64 #s(literal 3 binary64) d2))
(*.f64 (neg.f64 d1) (/.f64 #s(literal 3 binary64) (neg.f64 d2)))
(/.f64 d1 d2)
(/.f64 (neg.f64 d1) (neg.f64 d2))
(neg.f64 (neg.f64 (/.f64 d1 d2)))
#s(approx (* d1 (+ (+ d2 d3) 3)) (*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3))
(*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3)
(*.f64 d3 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1))
(*.f64 (fma.f64 (*.f64 d1 d1) d1 (pow.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) #s(literal 3 binary64))) (/.f64 d3 (fma.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) (*.f64 d1 d1))))
(*.f64 (*.f64 (-.f64 d1 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3))) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1)) (/.f64 d3 (-.f64 d1 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)))))
(*.f64 (/.f64 (*.f64 (*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3) (-.f64 d1 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)))) (-.f64 (*.f64 (*.f64 d1 d1) d1) (pow.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) #s(literal 3 binary64)))) (fma.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) (*.f64 d1 d1)))
(*.f64 (fma.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) (*.f64 d1 d1)) (/.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) (fma.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) (*.f64 d1 d1))))
(*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) (/.f64 (-.f64 d1 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3))) (-.f64 d1 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)))))
(*.f64 (/.f64 (*.f64 (-.f64 d1 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3))) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1)) (*.f64 (-.f64 d1 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3))) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1))) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1))
(*.f64 (/.f64 (*.f64 (-.f64 d1 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3))) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1)) (-.f64 (*.f64 (*.f64 d1 d1) d1) (pow.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) #s(literal 3 binary64)))) (fma.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) (*.f64 d1 d1)))
(*.f64 (/.f64 (fma.f64 (*.f64 d1 d1) d1 (pow.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 d1 d1) d1) (*.f64 (*.f64 d1 d1) d1) (pow.f64 (*.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3))) #s(literal 3 binary64)))) (fma.f64 (*.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3))) (-.f64 (*.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3))) (*.f64 d1 d1)) (*.f64 (*.f64 d1 d1) (*.f64 d1 d1))))
(*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3))
(*.f64 (/.f64 d1 d3) (+.f64 d2 #s(literal 3 binary64)))
(*.f64 d1 (+.f64 (/.f64 #s(literal 3 binary64) d3) (/.f64 d2 d3)))
(*.f64 d1 (+.f64 (/.f64 d2 d3) (/.f64 #s(literal 3 binary64) d3)))
(*.f64 d1 (/.f64 (+.f64 d2 #s(literal 3 binary64)) d3))
(/.f64 d1 d3)
(/.f64 (neg.f64 d1) (neg.f64 d3))
(neg.f64 (neg.f64 (/.f64 d1 d3)))
(*.f64 (/.f64 d1 d3) d2)
(*.f64 (/.f64 d2 d3) d1)
(*.f64 d1 (/.f64 d2 d3))
(*.f64 d2 (/.f64 d1 d3))
(*.f64 (neg.f64 d1) (/.f64 d2 (neg.f64 d3)))
(*.f64 d1 d2)
(*.f64 d2 d1)
(*.f64 (neg.f64 d1) (neg.f64 d2))
(*.f64 (neg.f64 d2) (neg.f64 d1))
(neg.f64 (neg.f64 (*.f64 d1 d2)))

eval38.0ms (1.2%)

Memory
7.5MiB live, 52.0MiB allocated; 13ms collecting garbage
Compiler

Compiled 5 136 to 891 computations (82.7% saved)

prune11.0ms (0.3%)

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

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New1746180
Fresh000
Picked325
Done000
Total1778185
Accuracy
100.0%
Counts
185 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
65.0%
(*.f64 (+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3) d1)
99.9%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 (+.f64 d3 d2) d1)))
65.0%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
82.8%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3))
55.9%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 #s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))))
99.2%
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
98.0%
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d2 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3))))
Compiler

Compiled 257 to 184 computations (28.4% saved)

series220.0ms (6.7%)

Memory
-39.4MiB live, 107.8MiB allocated; 73ms collecting garbage
Counts
25 → 75
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 (+.f64 d3 d2) d1)))
(fma.f64 #s(literal 3 binary64) d1 (*.f64 (+.f64 d3 d2) d1))
#s(literal 3 binary64)
d1
(*.f64 (+.f64 d3 d2) d1)
(+.f64 d3 d2)
d3
d2
(*.f64 (+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3) d1)
(+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3)
#s(approx (+ d2 3) #s(literal 3 binary64))
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d2 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3))))
(fma.f64 d1 d2 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3)))
(*.f64 d1 (+.f64 #s(literal 3 binary64) d3))
(+.f64 #s(literal 3 binary64) d3)
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
(fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)))
(*.f64 d1 (+.f64 #s(literal 3 binary64) d2))
(+.f64 #s(literal 3 binary64) d2)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 #s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))))
(*.f64 d3 (+.f64 d1 #s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))))
(+.f64 d1 #s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))
(*.f64 #s(literal 3 binary64) (/.f64 d1 d3))
(/.f64 d1 d3)
Outputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 (+.f64 #s(literal 3 binary64) (+.f64 d2 d3))))
#s(approx d1 d1)
#s(approx (* (+ d3 d2) d1) (*.f64 d1 (+.f64 d2 d3)))
#s(approx (* d1 (+ 3 d3)) (*.f64 d1 (+.f64 #s(literal 3 binary64) d3)))
#s(approx (* d1 (+ 3 d2)) (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 d1 (*.f64 d3 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3) (/.f64 d2 d3))))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (*.f64 d1 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3) (/.f64 d2 d3)))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3) (/.f64 d2 d3))))
#s(approx (* 3 (/ d1 d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))
#s(approx (/ d1 d3) (/.f64 d1 d3))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d3)) #s(literal 3 binary64)))))
#s(approx (+ (* 3 d1) (* (+ d3 d2) d1)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) (+.f64 d2 d3)) #s(literal 3 binary64)))))
#s(approx (+ (* d1 d2) (* d1 (+ 3 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d1 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) (+.f64 #s(literal 3 binary64) d3))))))
#s(approx (+ (* d1 d3) (* d1 (+ 3 d2))) (*.f64 #s(literal -1 binary64) (*.f64 d1 (fma.f64 #s(literal -1 binary64) d3 (*.f64 #s(literal -1 binary64) (+.f64 #s(literal 3 binary64) d2))))))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 #s(literal -1 binary64) (*.f64 d1 (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d2 d3)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3))))))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d2 d3)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3)))))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d2 d3)) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3))))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3))))
#s(approx (* (+ d3 d2) d1) (*.f64 d1 d3))
#s(approx (* (+ d3 d2) d1) (fma.f64 d1 d2 (*.f64 d1 d3)))
#s(approx (+ d3 d2) d3)
#s(approx (+ d3 d2) (+.f64 d2 d3))
#s(approx d2 d2)
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d2 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3))))
#s(approx (+ (+ d2 3) d3) (+.f64 #s(literal 3 binary64) d3))
#s(approx (+ (+ d2 3) d3) (+.f64 #s(literal 3 binary64) (+.f64 d2 d3)))
#s(approx (+ d2 3) #s(literal 3 binary64))
#s(approx (+ d2 3) (+.f64 #s(literal 3 binary64) d2))
#s(approx (* d1 (+ 3 d2)) (*.f64 #s(literal 3 binary64) d1))
#s(approx (* d1 (+ 3 d2)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (fma.f64 d1 d2 (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d2 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d2) (/.f64 (*.f64 d1 d3) d2)))))
#s(approx (* (+ d3 d2) d1) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 d3) d2))))
#s(approx (+ d3 d2) (*.f64 d2 (+.f64 #s(literal 1 binary64) (/.f64 d3 d2))))
#s(approx (* (+ (+ d2 3) d3) d1) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3)) d2))))
#s(approx (+ (+ d2 3) d3) (*.f64 d2 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d2) (/.f64 d3 d2)))))
#s(approx (+ d2 3) (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d2)))))
#s(approx (* d1 (+ 3 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2)))))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))) d2))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (/.f64 (*.f64 d1 d2) d3))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (*.f64 d2 (fma.f64 #s(literal 3 binary64) (/.f64 d1 (*.f64 d2 d3)) (+.f64 (/.f64 d1 d2) (/.f64 d1 d3)))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 d2 (fma.f64 #s(literal 3 binary64) (/.f64 d1 (*.f64 d2 d3)) (/.f64 d1 d3))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)) d2))))))
#s(approx (* (+ d3 d2) d1) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d3) d2))))))
#s(approx (+ d3 d2) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d3 d2)) #s(literal 1 binary64)))))
#s(approx (* (+ (+ d2 3) d3) d1) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3)) d2))))))
#s(approx (+ (+ d2 3) d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 #s(literal 3 binary64) d3) d2)) #s(literal 1 binary64)))))
#s(approx (* d1 (+ 3 d2)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -3 binary64) (/.f64 d1 d2) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))) d2))))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) (/.f64 d1 d3) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))) d2))))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -3 binary64) (/.f64 d1 (*.f64 d2 d3)) (*.f64 #s(literal -1 binary64) (/.f64 d1 d3))))))
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)) d3))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3))) d3))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))))
#s(approx (* (+ d3 d2) d1) (*.f64 d3 (+.f64 d1 (/.f64 (*.f64 d1 d2) d3))))
#s(approx (+ d3 d2) (*.f64 d3 (+.f64 #s(literal 1 binary64) (/.f64 d2 d3))))
#s(approx (* (+ (+ d2 3) d3) d1) (*.f64 d3 (+.f64 d1 (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)) d3))))
#s(approx (+ (+ d2 3) d3) (*.f64 d3 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3) (/.f64 d2 d3)))))
#s(approx (+ 3 d3) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3)))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)) d3))))))
#s(approx (* (+ d3 d2) d1) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d3))))))
#s(approx (+ d3 d2) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d2 d3)) #s(literal 1 binary64)))))
#s(approx (* (+ (+ d2 3) d3) d1) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)) d3))))))
#s(approx (+ (+ d2 3) d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 #s(literal 3 binary64) d2) d3)) #s(literal 1 binary64)))))
#s(approx (* d1 (+ 3 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -3 binary64) (/.f64 d1 d3) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx (* d3 (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)))) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -3 binary64) (/.f64 d1 d3) (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d3)))))))
#s(approx (+ d1 (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3))) (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -3 binary64) d1 (*.f64 #s(literal -1 binary64) (*.f64 d1 d2))) d3))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -3 binary64) d1 (*.f64 #s(literal -1 binary64) (*.f64 d1 d2))) d3)))
Calls

9 calls:

TimeVariablePoint
44.0ms
d1
0
7.0ms
d1
-inf
5.0ms
d1
inf
4.0ms
d3
-inf
3.0ms
d2
-inf

rewrite423.0ms (13%)

Memory
4.8MiB live, 283.5MiB allocated; 47ms collecting garbage
Counts
25 → 69
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 (+.f64 d3 d2) d1)))
(fma.f64 #s(literal 3 binary64) d1 (*.f64 (+.f64 d3 d2) d1))
#s(literal 3 binary64)
d1
(*.f64 (+.f64 d3 d2) d1)
(+.f64 d3 d2)
d3
d2
(*.f64 (+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3) d1)
(+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3)
#s(approx (+ d2 3) #s(literal 3 binary64))
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d2 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3))))
(fma.f64 d1 d2 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3)))
(*.f64 d1 (+.f64 #s(literal 3 binary64) d3))
(+.f64 #s(literal 3 binary64) d3)
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
(fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)))
(*.f64 d1 (+.f64 #s(literal 3 binary64) d2))
(+.f64 #s(literal 3 binary64) d2)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 #s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))))
(*.f64 d3 (+.f64 d1 #s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))))
(+.f64 d1 #s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))
#s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))
(*.f64 #s(literal 3 binary64) (/.f64 d1 d3))
(/.f64 d1 d3)
Outputs
#s(approx (* d1 (+ (+ d2 3) d3)) (*.f64 (+.f64 (+.f64 #s(literal 3 binary64) d2) d3) d1))
(*.f64 (+.f64 (+.f64 #s(literal 3 binary64) d2) d3) d1)
(*.f64 d1 (+.f64 (+.f64 #s(literal 3 binary64) d2) d3))
(*.f64 d1 (-.f64 (+.f64 #s(literal 3 binary64) d3) (neg.f64 d2)))
(*.f64 d1 (-.f64 (+.f64 d3 d2) (neg.f64 #s(literal 3 binary64))))
(*.f64 d1 (-.f64 (+.f64 #s(literal 3 binary64) d2) (neg.f64 d3)))
#s(literal 3 binary64)
d1
(neg.f64 (neg.f64 d1))
(*.f64 (+.f64 d3 d2) d1)
(*.f64 d1 (+.f64 d3 d2))
(*.f64 (*.f64 (+.f64 d3 d2) (-.f64 d3 d2)) (/.f64 d1 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 d2 (neg.f64 d3)))
(*.f64 (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d3 d3) d3)) (/.f64 d1 (fma.f64 (-.f64 d2 d3) d2 (*.f64 d3 d3))))
(*.f64 (+.f64 d3 d2) (/.f64 (-.f64 d3 d2) (-.f64 d3 d2)))
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d3 d2)) (-.f64 (*.f64 (*.f64 d3 d3) d3) (*.f64 (*.f64 d2 d2) d2))) (fma.f64 d2 (+.f64 d3 d2) (*.f64 d3 d3)))
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d3 d2)) (*.f64 (+.f64 d3 d2) (-.f64 d3 d2))) (+.f64 d3 d2))
(*.f64 (fma.f64 (-.f64 d2 d3) d2 (*.f64 d3 d3)) (/.f64 (+.f64 d3 d2) (fma.f64 (-.f64 d2 d3) d2 (*.f64 d3 d3))))
(*.f64 (/.f64 (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d3 d3) d3)) (fma.f64 (*.f64 (*.f64 (*.f64 d3 d3) d3) (*.f64 d3 d3)) d3 (pow.f64 (*.f64 (-.f64 d2 d3) d2) #s(literal 3 binary64)))) (fma.f64 (*.f64 (-.f64 d2 d3) d2) (-.f64 (*.f64 (-.f64 d2 d3) d2) (*.f64 d3 d3)) (*.f64 (*.f64 d3 d3) (*.f64 d3 d3))))
d3
(neg.f64 (neg.f64 d3))
d2
(*.f64 (+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3) d1)
(+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3)
#s(approx (+ d2 3) #s(literal 3 binary64))
#s(approx (* d1 (+ (+ d2 3) d3)) (*.f64 (+.f64 (+.f64 #s(literal 3 binary64) d2) d3) d1))
(*.f64 (+.f64 (+.f64 #s(literal 3 binary64) d2) d3) d1)
(*.f64 d1 (+.f64 (+.f64 #s(literal 3 binary64) d2) d3))
(*.f64 d1 (-.f64 (+.f64 #s(literal 3 binary64) d3) (neg.f64 d2)))
(*.f64 d1 (-.f64 (+.f64 d3 d2) (neg.f64 #s(literal 3 binary64))))
(*.f64 d1 (-.f64 (+.f64 #s(literal 3 binary64) d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 #s(literal 3 binary64) d3))
(*.f64 (+.f64 #s(literal 3 binary64) d3) d1)
(*.f64 (*.f64 (+.f64 #s(literal 3 binary64) d3) (-.f64 #s(literal 3 binary64) d3)) (/.f64 d1 (-.f64 #s(literal 3 binary64) d3)))
(*.f64 d1 (-.f64 #s(literal 3 binary64) (neg.f64 d3)))
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)) #s(literal 3 binary64) (*.f64 (*.f64 d3 d3) d3)) (/.f64 d1 (fma.f64 (-.f64 d3 #s(literal 3 binary64)) d3 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)))))
(*.f64 (+.f64 #s(literal 3 binary64) d3) (/.f64 (-.f64 #s(literal 3 binary64) d3) (-.f64 #s(literal 3 binary64) d3)))
(*.f64 (/.f64 (*.f64 (+.f64 #s(literal 3 binary64) d3) (-.f64 #s(literal 3 binary64) d3)) (*.f64 (+.f64 #s(literal 3 binary64) d3) (-.f64 #s(literal 3 binary64) d3))) (+.f64 #s(literal 3 binary64) d3))
(*.f64 (/.f64 (*.f64 (+.f64 #s(literal 3 binary64) d3) (-.f64 #s(literal 3 binary64) d3)) (-.f64 (*.f64 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)) #s(literal 3 binary64)) (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (+.f64 #s(literal 3 binary64) d3) (*.f64 #s(literal 3 binary64) #s(literal 3 binary64))))
(*.f64 (fma.f64 (-.f64 d3 #s(literal 3 binary64)) d3 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64))) (/.f64 (+.f64 #s(literal 3 binary64) d3) (fma.f64 (-.f64 d3 #s(literal 3 binary64)) d3 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)))))
(*.f64 (/.f64 (fma.f64 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)) #s(literal 3 binary64) (*.f64 (*.f64 d3 d3) d3)) (fma.f64 (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)) #s(literal 3 binary64)) (*.f64 #s(literal 3 binary64) #s(literal 3 binary64))) #s(literal 3 binary64) (pow.f64 (*.f64 (-.f64 d3 #s(literal 3 binary64)) d3) #s(literal 3 binary64)))) (fma.f64 (*.f64 (-.f64 d3 #s(literal 3 binary64)) d3) (-.f64 (*.f64 (-.f64 d3 #s(literal 3 binary64)) d3) (*.f64 #s(literal 3 binary64) #s(literal 3 binary64))) (*.f64 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)) (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)))))
#s(approx (* d1 (+ (+ d2 3) d3)) (*.f64 (+.f64 (+.f64 #s(literal 3 binary64) d2) d3) d1))
(*.f64 (+.f64 (+.f64 #s(literal 3 binary64) d2) d3) d1)
(*.f64 d1 (+.f64 (+.f64 #s(literal 3 binary64) d2) d3))
(*.f64 d1 (-.f64 (+.f64 #s(literal 3 binary64) d3) (neg.f64 d2)))
(*.f64 d1 (-.f64 (+.f64 d3 d2) (neg.f64 #s(literal 3 binary64))))
(*.f64 d1 (-.f64 (+.f64 #s(literal 3 binary64) d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 #s(literal 3 binary64) d2))
(*.f64 (+.f64 #s(literal 3 binary64) d2) d1)
(*.f64 (*.f64 (+.f64 #s(literal 3 binary64) d2) (-.f64 d2 #s(literal 3 binary64))) (/.f64 d1 (-.f64 d2 #s(literal 3 binary64))))
(*.f64 (*.f64 (+.f64 #s(literal 3 binary64) d2) (-.f64 #s(literal 3 binary64) d2)) (/.f64 d1 (-.f64 #s(literal 3 binary64) d2)))
(*.f64 d1 (-.f64 #s(literal 3 binary64) (neg.f64 d2)))
(*.f64 (+.f64 #s(literal 3 binary64) d2) (/.f64 (-.f64 d2 #s(literal 3 binary64)) (-.f64 d2 #s(literal 3 binary64))))
(*.f64 (+.f64 #s(literal 3 binary64) d2) (/.f64 (-.f64 #s(literal 3 binary64) d2) (-.f64 #s(literal 3 binary64) d2)))
(*.f64 (/.f64 (*.f64 (+.f64 #s(literal 3 binary64) d2) (-.f64 #s(literal 3 binary64) d2)) (*.f64 (+.f64 #s(literal 3 binary64) d2) (-.f64 #s(literal 3 binary64) d2))) (+.f64 #s(literal 3 binary64) d2))
(*.f64 (/.f64 (*.f64 (+.f64 #s(literal 3 binary64) d2) (-.f64 d2 #s(literal 3 binary64))) (*.f64 (+.f64 #s(literal 3 binary64) d2) (-.f64 d2 #s(literal 3 binary64)))) (+.f64 #s(literal 3 binary64) d2))
(*.f64 (/.f64 (*.f64 (+.f64 #s(literal 3 binary64) d2) (-.f64 #s(literal 3 binary64) d2)) (-.f64 (*.f64 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)) #s(literal 3 binary64)) (*.f64 (*.f64 d2 d2) d2))) (fma.f64 (+.f64 #s(literal 3 binary64) d2) #s(literal 3 binary64) (*.f64 d2 d2)))
#s(approx (* d1 (+ (+ d2 3) d3)) (*.f64 d3 (+.f64 d1 #s(approx (* (+ d2 3) (/ d1 d3)) (/.f64 (*.f64 d1 #s(literal 3 binary64)) d3)))))
(*.f64 d3 (+.f64 d1 #s(approx (* (+ d2 3) (/ d1 d3)) (/.f64 (*.f64 d1 #s(literal 3 binary64)) d3))))
(+.f64 d1 #s(approx (* (+ d2 3) (/ d1 d3)) (/.f64 (*.f64 d1 #s(literal 3 binary64)) d3)))
#s(approx (* (+ d2 3) (/ d1 d3)) (/.f64 (*.f64 d1 #s(literal 3 binary64)) d3))
(*.f64 #s(literal 3 binary64) (/.f64 d1 d3))
(*.f64 (/.f64 #s(literal 3 binary64) d3) d1)
(*.f64 (/.f64 d1 d3) #s(literal 3 binary64))
(*.f64 d1 (/.f64 #s(literal 3 binary64) d3))
(*.f64 (neg.f64 d1) (/.f64 #s(literal 3 binary64) (neg.f64 d3)))
(/.f64 d1 d3)
(/.f64 (neg.f64 d1) (neg.f64 d3))
(neg.f64 (neg.f64 (/.f64 d1 d3)))

eval43.0ms (1.3%)

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

Compiled 3 754 to 681 computations (81.9% saved)

prune7.0ms (0.2%)

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

9 alts after pruning (2 fresh and 7 done)

PrunedKeptTotal
New1291130
Fresh011
Picked055
Done022
Total1299138
Accuracy
100.0%
Counts
138 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
65.0%
(*.f64 (+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3) d1)
99.9%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 (+.f64 d3 d2) d1)))
65.0%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
82.8%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3))
55.9%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 #s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))))
36.0%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
99.2%
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
98.0%
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d2 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3))))
Compiler

Compiled 156 to 113 computations (27.6% saved)

series124.0ms (3.8%)

Memory
-27.5MiB live, 64.6MiB allocated; 13ms collecting garbage
Counts
11 → 38
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
(*.f64 d1 d2)
d1
d2
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3))
(*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3)
(fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1)
(+.f64 d2 #s(literal 3 binary64))
#s(literal 3 binary64)
(/.f64 d1 d3)
d3
Outputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 (+.f64 #s(literal 3 binary64) (+.f64 d2 d3))))
#s(approx (* d1 d2) (*.f64 d1 d2))
#s(approx d1 d1)
#s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d1 (*.f64 d3 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3) (/.f64 d2 d3))))))
#s(approx (+ (* (+ d2 3) (/ d1 d3)) d1) (*.f64 d1 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d3) (/.f64 d2 d3)))))
#s(approx (/ d1 d3) (/.f64 d1 d3))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d3)) #s(literal 3 binary64)))))
#s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 #s(literal -1 binary64) (*.f64 d1 (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 #s(literal 3 binary64) d2) d3)) #s(literal 1 binary64))))))
#s(approx (+ (* (+ d2 3) (/ d1 d3)) d1) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 #s(literal 3 binary64) d2) d3)) #s(literal 1 binary64)))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3))))
#s(approx d2 d2)
#s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))))
#s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (fma.f64 d1 d2 (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))))
#s(approx (+ (* (+ d2 3) (/ d1 d3)) d1) (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))
#s(approx (+ (* (+ d2 3) (/ d1 d3)) d1) (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3))))
#s(approx (+ d2 3) #s(literal 3 binary64))
#s(approx (+ d2 3) (+.f64 #s(literal 3 binary64) d2))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d2 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d2) (/.f64 (*.f64 d1 d3) d2)))))
#s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))) d2))))
#s(approx (+ (* (+ d2 3) (/ d1 d3)) d1) (/.f64 (*.f64 d1 d2) d3))
#s(approx (+ (* (+ d2 3) (/ d1 d3)) d1) (*.f64 d2 (fma.f64 #s(literal 3 binary64) (/.f64 d1 (*.f64 d2 d3)) (+.f64 (/.f64 d1 d2) (/.f64 d1 d3)))))
#s(approx (+ d2 3) (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (/.f64 #s(literal 1 binary64) d2)))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)) d2))))))
#s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d3 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3)))) d2))))))
#s(approx (+ (* (+ d2 3) (/ d1 d3)) d1) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) (/.f64 d1 d3) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))) d2))))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)))
#s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)))
#s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
#s(approx (+ (* (+ d2 3) (/ d1 d3)) d1) (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)) d3))
#s(approx (+ (* (+ d2 3) (/ d1 d3)) d1) (/.f64 (fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))) d3))
#s(approx d3 d3)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d3))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))))
#s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d3 (+.f64 d1 (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)) d3))))
#s(approx (+ (* (+ d2 3) (/ d1 d3)) d1) (+.f64 d1 (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)) d3)))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)) d3))))))
#s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2)) d3))))))
Calls

9 calls:

TimeVariablePoint
6.0ms
d1
-inf
5.0ms
d2
inf
3.0ms
d3
-inf
3.0ms
d1
inf
3.0ms
d2
-inf

rewrite239.0ms (7.3%)

Memory
33.8MiB live, 127.5MiB allocated; 19ms collecting garbage
Counts
11 → 29
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
(*.f64 d1 d2)
d1
d2
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3))
(*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3)
(fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1)
(+.f64 d2 #s(literal 3 binary64))
#s(literal 3 binary64)
(/.f64 d1 d3)
d3
Outputs
#s(approx (* d1 (+ (+ d3 3) d2)) (*.f64 d1 d2))
(*.f64 d1 d2)
(*.f64 d2 d1)
(neg.f64 (neg.f64 (*.f64 d1 d2)))
d1
(neg.f64 (neg.f64 d1))
d2
#s(approx (* d1 (+ (+ d3 3) d2)) (*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3))
(*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3)
(*.f64 d3 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1))
(*.f64 (*.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1)) (/.f64 d3 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1)))
(*.f64 (/.f64 (*.f64 (*.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1)) d3) (-.f64 (pow.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) #s(literal 3 binary64)) (*.f64 (*.f64 d1 d1) d1))) (fma.f64 (*.f64 (/.f64 (*.f64 d1 d1) (*.f64 d3 d3)) (+.f64 d2 #s(literal 3 binary64))) (+.f64 d2 #s(literal 3 binary64)) (*.f64 d1 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1))))
(*.f64 (/.f64 (*.f64 (*.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1)) d3) (*.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1))) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1))
(*.f64 (/.f64 (*.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1)) (-.f64 (pow.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) #s(literal 3 binary64)) (*.f64 (*.f64 d1 d1) d1))) (fma.f64 (*.f64 (/.f64 (*.f64 d1 d1) (*.f64 d3 d3)) (+.f64 d2 #s(literal 3 binary64))) (+.f64 d2 #s(literal 3 binary64)) (*.f64 d1 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1))))
(*.f64 (/.f64 (*.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1)) (*.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1))) (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1))
(*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) (/.f64 (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1)))
(*.f64 (fma.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (*.f64 d1 d1)) (/.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) (fma.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) (-.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) d1) (*.f64 d1 d1))))
(*.f64 (/.f64 (fma.f64 (*.f64 d1 d1) d1 (pow.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) #s(literal 3 binary64))) (-.f64 (pow.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3)) (+.f64 #s(literal 2 binary64) #s(literal 2 binary64))) (pow.f64 (*.f64 (-.f64 d1 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3))) d1) #s(literal 2 binary64)))) (-.f64 (*.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (*.f64 d1 d1)) (/.f64 (+.f64 d2 #s(literal 3 binary64)) (*.f64 d3 d3))) (*.f64 (-.f64 d1 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3))) d1)))
(*.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 (-.f64 d2 #s(literal 3 binary64)) (-.f64 d2 #s(literal 3 binary64))))
(*.f64 (/.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (-.f64 d2 #s(literal 3 binary64))) (*.f64 (+.f64 d2 #s(literal 3 binary64)) (-.f64 d2 #s(literal 3 binary64)))) (+.f64 d2 #s(literal 3 binary64)))
(*.f64 (/.f64 (*.f64 (+.f64 d2 #s(literal 3 binary64)) (-.f64 d2 #s(literal 3 binary64))) (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)) #s(literal 3 binary64)))) (fma.f64 #s(literal 3 binary64) (+.f64 d2 #s(literal 3 binary64)) (*.f64 d2 d2)))
(*.f64 (fma.f64 (-.f64 #s(literal 3 binary64) d2) #s(literal 3 binary64) (*.f64 d2 d2)) (/.f64 (+.f64 d2 #s(literal 3 binary64)) (fma.f64 (-.f64 #s(literal 3 binary64) d2) #s(literal 3 binary64) (*.f64 d2 d2))))
(*.f64 (/.f64 (fma.f64 (*.f64 #s(literal 3 binary64) #s(literal 3 binary64)) #s(literal 3 binary64) (*.f64 (*.f64 d2 d2) d2)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (-.f64 #s(literal 3 binary64) d2) #s(literal 3 binary64)) #s(literal 3 binary64)))) (fma.f64 (*.f64 (-.f64 #s(literal 3 binary64) d2) #s(literal 3 binary64)) (-.f64 (*.f64 (-.f64 #s(literal 3 binary64) d2) #s(literal 3 binary64)) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2))))
#s(literal 3 binary64)
(/.f64 d1 d3)
(/.f64 (neg.f64 d1) (neg.f64 d3))
(neg.f64 (neg.f64 (/.f64 d1 d3)))
d3
(neg.f64 (neg.f64 d3))

eval8.0ms (0.2%)

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

Compiled 2 084 to 334 computations (84% saved)

prune7.0ms (0.2%)

Memory
-40.0MiB live, 5.7MiB allocated; 4ms collecting garbage
Pruning

10 alts after pruning (4 fresh and 6 done)

PrunedKeptTotal
New58462
Fresh000
Picked112
Done257
Total611071
Accuracy
100.0%
Counts
71 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
65.0%
(*.f64 (+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3) d1)
65.0%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
63.9%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)))
55.9%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 (fma.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3))
38.7%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d3))
36.0%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
63.9%
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) #s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
99.2%
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
98.0%
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d2 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3))))
Compiler

Compiled 167 to 123 computations (26.3% saved)

regimes77.0ms (2.4%)

Memory
37.4MiB live, 84.1MiB allocated; 2ms collecting garbage
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
2 → 2
3 → 2
6 → 2
9 → 1
17 → 1
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
Outputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
Call 2
Inputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d3))
Outputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d3))
Call 3
Inputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d3))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) #s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
Outputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) #s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d3))
Call 4
Inputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d3))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) #s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
(*.f64 (+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3) d1)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
Outputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) #s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
(*.f64 (+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3) d1)
Call 5
Inputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d3))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) #s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
(*.f64 (+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3) d1)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d2 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3))))
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
Outputs
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
Call 6
Inputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d2))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d1 d3))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) #s(approx (* (+ (* (+ d2 3) (/ d1 d3)) d1) d3) (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
(*.f64 (+.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) d3) d1)
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d2)))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 d1 d3)))
(*.f64 (+.f64 (+.f64 d2 #s(literal 3 binary64)) d3) d1)
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d2 (*.f64 d1 (+.f64 #s(literal 3 binary64) d3))))
#s(approx (* (+ (+ d2 3) d3) d1) (fma.f64 d1 d3 (*.f64 d1 (+.f64 #s(literal 3 binary64) d2))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 (+.f64 d3 d2) d1)))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 (fma.f64 #s(approx (+ d2 3) #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 #s(approx (+ (* 3 (/ d1 d3)) (/ (* d1 d2) d3)) (*.f64 #s(literal 3 binary64) (/.f64 d1 d3))))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (fma.f64 d1 d2 (*.f64 d1 d3))))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 (fma.f64 (+.f64 d2 #s(literal 3 binary64)) (/.f64 d1 d3) d1) d3))
(+.f64 (+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2)) (*.f64 d1 d3))
(+.f64 #s(approx (+ (* d1 3) (* d1 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 3 binary64) (/.f64 d1 d2))))) (*.f64 d1 d3))
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (*.f64 d3 (+.f64 d1 (fma.f64 #s(literal 3 binary64) (/.f64 d1 d3) (/.f64 (*.f64 d1 d2) d3)))))
Outputs
#s(approx (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)) (fma.f64 #s(literal 3 binary64) d1 (*.f64 (+.f64 d3 d2) d1)))
Calls

22 calls:

5.0ms
d1
5.0ms
d3
5.0ms
d2
5.0ms
d1
5.0ms
(+.f64 (+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2)) (*.f64 d1 d3))
Results
AccuracySegmentsBranch
36.0%1d3
36.0%1d2
36.0%1d1
36.0%1(+.f64 (+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2)) (*.f64 d1 d3))
69.2%2(+.f64 (+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2)) (*.f64 d1 d3))
65.1%2d2
64.2%2d3
91.2%2d3
75.7%2d2
74.8%2(+.f64 (+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2)) (*.f64 d1 d3))
96.5%2(+.f64 (+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2)) (*.f64 d1 d3))
68.6%3d1
92.8%2d2
92.2%2d3
99.9%1(+.f64 (+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2)) (*.f64 d1 d3))
99.9%1d1
99.9%1d2
99.9%1d3
99.9%1(+.f64 (+.f64 (*.f64 d1 #s(literal 3 binary64)) (*.f64 d1 d2)) (*.f64 d1 d3))
99.9%1d1
99.9%1d2
99.9%1d3
Compiler

Compiled 403 to 179 computations (55.6% saved)

bsearch1.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-6.1378081548878795e-229
5.32099534266377e-296
Compiler

Compiled 14 to 15 computations (-7.1% saved)

bsearch11.0ms (0.4%)

Memory
-38.1MiB live, 8.2MiB allocated; 2ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
9.0ms
3035958.2687871926
239230877.067261
Samples
5.0ms112×0valid
Compiler

Compiled 322 to 239 computations (25.8% saved)

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

bsearch0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.5052625720424722e-268
8.80687375735938e-237
Compiler

Compiled 14 to 15 computations (-7.1% saved)

derivations2.0ms (0%)

Memory
2.1MiB live, 2.1MiB allocated; 0ms collecting garbage
Stop Event
fuel
Compiler

Compiled 186 to 45 computations (75.8% saved)

preprocess131.0ms (4%)

Memory
27.8MiB live, 172.1MiB allocated; 98ms collecting garbage
Remove

(sort d2 d3)

(negabs d1)

Compiler

Compiled 1 044 to 533 computations (48.9% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...