FastMath test2

Time bar (total: 11.0s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.2MiB live, 0.2MiB 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)

sample553.0ms (5%)

Memory
29.7MiB live, 396.0MiB allocated; 65ms collecting garbage
Samples
344.0ms8 130×0valid
5.0ms55×2valid
5.0ms71×1valid
Precisions
Click to see histograms. Total time spent on operations: 191.0ms
ival-mult!: 122.0ms (63.9% of total)
ival-add!: 64.0ms (33.5% of total)
adjust: 5.0ms (2.6% of total)
Bogosity

preprocess29.0ms (0.3%)

Memory
18.8MiB live, 18.8MiB allocated; 0ms collecting garbage
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02658
19944
237232
380130
498630
5100730
Stop Event
saturated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.0%
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64)))
Symmetry

(negabs d1)

Compiler

Compiled 18 to 18 computations (0% saved)

series190.0ms (1.7%)

Memory
-44.6MiB live, 53.8MiB allocated; 132ms collecting garbage
Counts
9 → 16
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64)))
(+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2))
(*.f64 d1 #s(literal 10 binary64))
d1
#s(literal 10 binary64)
(*.f64 d1 d2)
d2
(*.f64 d1 #s(literal 20 binary64))
#s(literal 20 binary64)
Outputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
#s(approx (+ (* d1 10) (* d1 d2)) (*.f64 d1 (+.f64 #s(literal 10 binary64) d2)))
#s(approx (* d1 10) (*.f64 #s(literal 10 binary64) d1))
#s(approx d1 d1)
#s(approx (* d1 d2) (*.f64 d1 d2))
#s(approx (* d1 20) (*.f64 #s(literal 20 binary64) d1))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) d2) #s(literal 30 binary64)))))
#s(approx (+ (* d1 10) (* d1 d2)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) d2) #s(literal 10 binary64)))))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 #s(literal 10 binary64) d1 (*.f64 #s(literal 20 binary64) d1)))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 #s(literal 10 binary64) d1 (fma.f64 #s(literal 20 binary64) d1 (*.f64 d1 d2))))
#s(approx (+ (* d1 10) (* d1 d2)) (fma.f64 #s(literal 10 binary64) d1 (*.f64 d1 d2)))
#s(approx d2 d2)
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 (+.f64 d1 (fma.f64 #s(literal 10 binary64) (/.f64 d1 d2) (*.f64 #s(literal 20 binary64) (/.f64 d1 d2))))))
#s(approx (+ (* d1 10) (* d1 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 10 binary64) (/.f64 d1 d2)))))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 10 binary64) d1 (*.f64 #s(literal 20 binary64) d1)) d2))))))
#s(approx (+ (* d1 10) (* d1 d2)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -10 binary64) (/.f64 d1 d2) (*.f64 #s(literal -1 binary64) d1)))))
Calls

6 calls:

TimeVariablePointExpression
7.0ms
d1
@inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 10) (* d1 d2)) (* d1 10) d1 10 (* d1 d2) d2 (* d1 20) 20)
3.0ms
d1
@-inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 10) (* d1 d2)) (* d1 10) d1 10 (* d1 d2) d2 (* d1 20) 20)
1.0ms
d1
@0
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 10) (* d1 d2)) (* d1 10) d1 10 (* d1 d2) d2 (* d1 20) 20)
1.0ms
d2
@-inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 10) (* d1 d2)) (* d1 10) d1 10 (* d1 d2) d2 (* d1 20) 20)
1.0ms
d2
@inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 10) (* d1 d2)) (* d1 10) d1 10 (* d1 d2) d2 (* d1 20) 20)

rewrite3.2s (28.8%)

Memory
44.3MiB live, 1 313.3MiB allocated; 255ms collecting garbage
Counts
9 → 81
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64)))
(+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2))
(*.f64 d1 #s(literal 10 binary64))
d1
#s(literal 10 binary64)
(*.f64 d1 d2)
d2
(*.f64 d1 #s(literal 20 binary64))
#s(literal 20 binary64)
Outputs
(*.f64 (+.f64 (+.f64 d2 #s(literal 10 binary64)) #s(literal 20 binary64)) d1)
(*.f64 (-.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) #s(literal 20 binary64)) (neg.f64 d1))
(*.f64 d1 (+.f64 (+.f64 d2 #s(literal 10 binary64)) #s(literal 20 binary64)))
(*.f64 (neg.f64 d1) (-.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) #s(literal 20 binary64)))
(+.f64 (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1) (*.f64 d1 #s(literal 20 binary64)))
(+.f64 (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1) (*.f64 d1 #s(literal 10 binary64)))
(+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1))
(+.f64 (*.f64 d1 #s(literal 20 binary64)) (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1))
(+.f64 (*.f64 d1 d2) (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1))
(-.f64 (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1) (neg.f64 (*.f64 d1 #s(literal 20 binary64))))
(-.f64 (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1) (neg.f64 (*.f64 d1 d2)))
(-.f64 (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1) (neg.f64 (*.f64 d1 #s(literal 10 binary64))))
(-.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 (-.f64 (neg.f64 #s(literal 20 binary64)) d2) d1))
(-.f64 (*.f64 d1 #s(literal 20 binary64)) (*.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) d1))
(-.f64 (*.f64 d1 d2) (*.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) #s(literal 20 binary64)) d1))
(fma.f64 (+.f64 d2 #s(literal 10 binary64)) d1 (*.f64 d1 #s(literal 20 binary64)))
(fma.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1 (*.f64 d1 d2))
(fma.f64 (+.f64 d2 #s(literal 20 binary64)) d1 (*.f64 d1 #s(literal 10 binary64)))
(fma.f64 d1 (+.f64 d2 #s(literal 10 binary64)) (*.f64 d1 #s(literal 20 binary64)))
(fma.f64 d1 (+.f64 d2 #s(literal 20 binary64)) (*.f64 d1 #s(literal 10 binary64)))
(fma.f64 d1 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) (*.f64 d1 d2))
(fma.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) (neg.f64 d1) (*.f64 d1 #s(literal 20 binary64)))
(fma.f64 (-.f64 (neg.f64 #s(literal 20 binary64)) d2) (neg.f64 d1) (*.f64 d1 #s(literal 10 binary64)))
(fma.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) #s(literal 20 binary64)) (neg.f64 d1) (*.f64 d1 d2))
(fma.f64 (neg.f64 d1) (-.f64 (neg.f64 #s(literal 10 binary64)) d2) (*.f64 d1 #s(literal 20 binary64)))
(fma.f64 (neg.f64 d1) (-.f64 (neg.f64 #s(literal 20 binary64)) d2) (*.f64 d1 #s(literal 10 binary64)))
(fma.f64 (neg.f64 d1) (-.f64 (neg.f64 #s(literal 10 binary64)) #s(literal 20 binary64)) (*.f64 d1 d2))
(fma.f64 d1 #s(literal 10 binary64) (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1))
(fma.f64 d1 #s(literal 20 binary64) (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1))
(fma.f64 #s(literal 10 binary64) d1 (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1))
(fma.f64 d2 d1 (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1))
(fma.f64 #s(literal 20 binary64) d1 (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1))
(fma.f64 d1 d2 (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1))
(fma.f64 (neg.f64 d1) (neg.f64 #s(literal 10 binary64)) (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1))
(fma.f64 (neg.f64 d1) (neg.f64 #s(literal 20 binary64)) (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1))
(fma.f64 (neg.f64 d2) (neg.f64 d1) (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1))
(fma.f64 (neg.f64 #s(literal 20 binary64)) (neg.f64 d1) (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1))
(fma.f64 (neg.f64 #s(literal 10 binary64)) (neg.f64 d1) (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1))
(fma.f64 (neg.f64 d1) (neg.f64 d2) (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1))
(neg.f64 (*.f64 (-.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) #s(literal 20 binary64)) d1))
(*.f64 (+.f64 d2 #s(literal 10 binary64)) d1)
(*.f64 d1 (+.f64 d2 #s(literal 10 binary64)))
(*.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) (neg.f64 d1))
(*.f64 (neg.f64 d1) (-.f64 (neg.f64 #s(literal 10 binary64)) d2))
(+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 10 binary64)))
(-.f64 (*.f64 d1 #s(literal 10 binary64)) (neg.f64 (*.f64 d1 d2)))
(-.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 #s(literal 10 binary64))))
(fma.f64 (neg.f64 #s(literal 10 binary64)) (neg.f64 d1) (*.f64 d1 d2))
(fma.f64 (neg.f64 d1) (neg.f64 d2) (*.f64 d1 #s(literal 10 binary64)))
(fma.f64 (neg.f64 d1) (neg.f64 #s(literal 10 binary64)) (*.f64 d1 d2))
(fma.f64 (neg.f64 d2) (neg.f64 d1) (*.f64 d1 #s(literal 10 binary64)))
(fma.f64 d1 #s(literal 10 binary64) (*.f64 d1 d2))
(fma.f64 #s(literal 10 binary64) d1 (*.f64 d1 d2))
(fma.f64 d2 d1 (*.f64 d1 #s(literal 10 binary64)))
(fma.f64 d1 d2 (*.f64 d1 #s(literal 10 binary64)))
(neg.f64 (*.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) d1))
(*.f64 d1 #s(literal 10 binary64))
(*.f64 #s(literal 10 binary64) d1)
(*.f64 (neg.f64 #s(literal 10 binary64)) (neg.f64 d1))
(*.f64 (neg.f64 d1) (neg.f64 #s(literal 10 binary64)))
(neg.f64 (neg.f64 (*.f64 d1 #s(literal 10 binary64))))
d1
(neg.f64 (neg.f64 d1))
#s(literal 10 binary64)
(neg.f64 (neg.f64 #s(literal 10 binary64)))
(*.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)))
d2
(neg.f64 (neg.f64 d2))
(*.f64 d1 #s(literal 20 binary64))
(*.f64 #s(literal 20 binary64) d1)
(*.f64 (neg.f64 #s(literal 20 binary64)) (neg.f64 d1))
(*.f64 (neg.f64 d1) (neg.f64 #s(literal 20 binary64)))
(neg.f64 (neg.f64 (*.f64 d1 #s(literal 20 binary64))))
#s(literal 20 binary64)
(neg.f64 (neg.f64 #s(literal 20 binary64)))

eval18.0ms (0.2%)

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

Compiled 454 to 225 computations (50.4% saved)

prune5.0ms (0%)

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

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New87289
Fresh000
Picked101
Done000
Total88290
Accuracy
100.0%
Counts
90 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1 (*.f64 d1 d2))
100.0%
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
Compiler

Compiled 20 to 20 computations (0% saved)

series93.0ms (0.9%)

Memory
13.4MiB live, 13.4MiB allocated; 0ms collecting garbage
Counts
11 → 16
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
(*.f64 d1 (+.f64 #s(literal 30 binary64) d2))
d1
(+.f64 #s(literal 30 binary64) d2)
#s(literal 30 binary64)
d2
(fma.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1 (*.f64 d1 d2))
(+.f64 #s(literal 20 binary64) #s(literal 10 binary64))
#s(literal 20 binary64)
#s(literal 10 binary64)
(*.f64 d1 d2)
Outputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
#s(approx d1 d1)
#s(approx (* d1 d2) (*.f64 d1 d2))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) d2) #s(literal 30 binary64)))))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 #s(literal 10 binary64) d1 (*.f64 #s(literal 20 binary64) d1)))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 #s(literal 10 binary64) d1 (fma.f64 #s(literal 20 binary64) d1 (*.f64 d1 d2))))
#s(approx (* d1 (+ 30 d2)) (*.f64 #s(literal 30 binary64) d1))
#s(approx (* d1 (+ 30 d2)) (fma.f64 #s(literal 30 binary64) d1 (*.f64 d1 d2)))
#s(approx (+ 30 d2) #s(literal 30 binary64))
#s(approx (+ 30 d2) (+.f64 #s(literal 30 binary64) d2))
#s(approx d2 d2)
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 (+.f64 d1 (fma.f64 #s(literal 10 binary64) (/.f64 d1 d2) (*.f64 #s(literal 20 binary64) (/.f64 d1 d2))))))
#s(approx (* d1 (+ 30 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 30 binary64) (/.f64 d1 d2)))))
#s(approx (+ 30 d2) (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 30 binary64) (/.f64 #s(literal 1 binary64) d2)))))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 10 binary64) d1 (*.f64 #s(literal 20 binary64) d1)) d2))))))
#s(approx (* d1 (+ 30 d2)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -30 binary64) (/.f64 d1 d2) (*.f64 #s(literal -1 binary64) d1)))))
Calls

6 calls:

TimeVariablePointExpression
3.0ms
d1
@-inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d1 (+ 30 d2)) d1 (+ 30 d2) 30 d2 (+ (* (+ 20 10) d1) (* d1 d2)) (+ 20 10) 20 10 (* d1 d2))
2.0ms
d1
@inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d1 (+ 30 d2)) d1 (+ 30 d2) 30 d2 (+ (* (+ 20 10) d1) (* d1 d2)) (+ 20 10) 20 10 (* d1 d2))
2.0ms
d1
@0
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d1 (+ 30 d2)) d1 (+ 30 d2) 30 d2 (+ (* (+ 20 10) d1) (* d1 d2)) (+ 20 10) 20 10 (* d1 d2))
2.0ms
d2
@-inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d1 (+ 30 d2)) d1 (+ 30 d2) 30 d2 (+ (* (+ 20 10) d1) (* d1 d2)) (+ 20 10) 20 10 (* d1 d2))
2.0ms
d2
@inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d1 (+ 30 d2)) d1 (+ 30 d2) 30 d2 (+ (* (+ 20 10) d1) (* d1 d2)) (+ 20 10) 20 10 (* d1 d2))

rewrite3.6s (33.1%)

Memory
-140.6MiB live, 1 044.1MiB allocated; 1.3s collecting garbage
Counts
11 → 84
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
(*.f64 d1 (+.f64 #s(literal 30 binary64) d2))
d1
(+.f64 #s(literal 30 binary64) d2)
#s(literal 30 binary64)
d2
(fma.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1 (*.f64 d1 d2))
(+.f64 #s(literal 20 binary64) #s(literal 10 binary64))
#s(literal 20 binary64)
#s(literal 10 binary64)
(*.f64 d1 d2)
Outputs
#s(approx (* d1 (+ 20 (+ 10 d2))) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
(*.f64 d1 (+.f64 #s(literal 30 binary64) d2))
(*.f64 (+.f64 #s(literal 30 binary64) d2) d1)
(*.f64 (-.f64 (neg.f64 #s(literal 30 binary64)) d2) (neg.f64 d1))
(*.f64 (neg.f64 d1) (-.f64 (neg.f64 #s(literal 30 binary64)) d2))
(+.f64 (*.f64 d1 #s(literal 30 binary64)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 30 binary64)))
(-.f64 (*.f64 d1 #s(literal 30 binary64)) (neg.f64 (*.f64 d1 d2)))
(-.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 #s(literal 30 binary64))))
(fma.f64 (neg.f64 #s(literal 30 binary64)) (neg.f64 d1) (*.f64 d1 d2))
(fma.f64 (neg.f64 d1) (neg.f64 d2) (*.f64 d1 #s(literal 30 binary64)))
(fma.f64 (neg.f64 d1) (neg.f64 #s(literal 30 binary64)) (*.f64 d1 d2))
(fma.f64 (neg.f64 d2) (neg.f64 d1) (*.f64 d1 #s(literal 30 binary64)))
(fma.f64 d1 #s(literal 30 binary64) (*.f64 d1 d2))
(fma.f64 #s(literal 30 binary64) d1 (*.f64 d1 d2))
(fma.f64 d2 d1 (*.f64 d1 #s(literal 30 binary64)))
(fma.f64 d1 d2 (*.f64 d1 #s(literal 30 binary64)))
(neg.f64 (*.f64 (-.f64 (neg.f64 #s(literal 30 binary64)) d2) d1))
d1
(neg.f64 (neg.f64 d1))
(+.f64 #s(literal 30 binary64) d2)
(+.f64 d2 #s(literal 30 binary64))
(-.f64 #s(literal 30 binary64) (neg.f64 d2))
(-.f64 d2 (neg.f64 #s(literal 30 binary64)))
(neg.f64 (-.f64 (neg.f64 #s(literal 30 binary64)) d2))
#s(literal 30 binary64)
(neg.f64 (neg.f64 #s(literal 30 binary64)))
d2
(neg.f64 (neg.f64 d2))
(*.f64 (-.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) #s(literal 20 binary64)) (neg.f64 d1))
(*.f64 (+.f64 (+.f64 d2 #s(literal 10 binary64)) #s(literal 20 binary64)) d1)
(*.f64 d1 (+.f64 (+.f64 d2 #s(literal 10 binary64)) #s(literal 20 binary64)))
(*.f64 (neg.f64 d1) (-.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) #s(literal 20 binary64)))
(+.f64 (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1) (*.f64 d1 #s(literal 20 binary64)))
(+.f64 (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1) (*.f64 d1 #s(literal 10 binary64)))
(+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1))
(+.f64 (*.f64 d1 #s(literal 20 binary64)) (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1))
(+.f64 (*.f64 d1 d2) (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1))
(-.f64 (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1) (neg.f64 (*.f64 d1 #s(literal 20 binary64))))
(-.f64 (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1) (neg.f64 (*.f64 d1 d2)))
(-.f64 (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1) (neg.f64 (*.f64 d1 #s(literal 10 binary64))))
(-.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 (-.f64 (neg.f64 #s(literal 20 binary64)) d2) d1))
(-.f64 (*.f64 d1 #s(literal 20 binary64)) (*.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) d1))
(-.f64 (*.f64 d1 d2) (*.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) #s(literal 20 binary64)) d1))
(fma.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1 (*.f64 d1 d2))
(fma.f64 (+.f64 d2 #s(literal 10 binary64)) d1 (*.f64 d1 #s(literal 20 binary64)))
(fma.f64 (+.f64 d2 #s(literal 20 binary64)) d1 (*.f64 d1 #s(literal 10 binary64)))
(fma.f64 d1 (+.f64 d2 #s(literal 10 binary64)) (*.f64 d1 #s(literal 20 binary64)))
(fma.f64 d1 (+.f64 d2 #s(literal 20 binary64)) (*.f64 d1 #s(literal 10 binary64)))
(fma.f64 d1 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) (*.f64 d1 d2))
(fma.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) (neg.f64 d1) (*.f64 d1 #s(literal 20 binary64)))
(fma.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) #s(literal 20 binary64)) (neg.f64 d1) (*.f64 d1 d2))
(fma.f64 (-.f64 (neg.f64 #s(literal 20 binary64)) d2) (neg.f64 d1) (*.f64 d1 #s(literal 10 binary64)))
(fma.f64 (neg.f64 d1) (-.f64 (neg.f64 #s(literal 10 binary64)) #s(literal 20 binary64)) (*.f64 d1 d2))
(fma.f64 (neg.f64 d1) (-.f64 (neg.f64 #s(literal 10 binary64)) d2) (*.f64 d1 #s(literal 20 binary64)))
(fma.f64 (neg.f64 d1) (-.f64 (neg.f64 #s(literal 20 binary64)) d2) (*.f64 d1 #s(literal 10 binary64)))
(fma.f64 d1 #s(literal 10 binary64) (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1))
(fma.f64 d1 #s(literal 20 binary64) (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1))
(fma.f64 d2 d1 (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1))
(fma.f64 #s(literal 10 binary64) d1 (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1))
(fma.f64 #s(literal 20 binary64) d1 (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1))
(fma.f64 d1 d2 (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1))
(fma.f64 (neg.f64 d1) (neg.f64 #s(literal 10 binary64)) (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1))
(fma.f64 (neg.f64 d1) (neg.f64 #s(literal 20 binary64)) (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1))
(fma.f64 (neg.f64 d2) (neg.f64 d1) (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1))
(fma.f64 (neg.f64 #s(literal 10 binary64)) (neg.f64 d1) (*.f64 (+.f64 d2 #s(literal 20 binary64)) d1))
(fma.f64 (neg.f64 #s(literal 20 binary64)) (neg.f64 d1) (*.f64 (+.f64 d2 #s(literal 10 binary64)) d1))
(fma.f64 (neg.f64 d1) (neg.f64 d2) (*.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1))
(neg.f64 (*.f64 (-.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) d2) #s(literal 20 binary64)) d1))
(+.f64 #s(literal 20 binary64) #s(literal 10 binary64))
(+.f64 #s(literal 10 binary64) #s(literal 20 binary64))
(-.f64 #s(literal 10 binary64) (neg.f64 #s(literal 20 binary64)))
(-.f64 #s(literal 20 binary64) (neg.f64 #s(literal 10 binary64)))
(neg.f64 (-.f64 (neg.f64 #s(literal 10 binary64)) #s(literal 20 binary64)))
#s(literal 20 binary64)
(neg.f64 (neg.f64 #s(literal 20 binary64)))
#s(literal 10 binary64)
(neg.f64 (neg.f64 #s(literal 10 binary64)))
(*.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)))

eval20.0ms (0.2%)

Memory
-21.4MiB live, 23.4MiB allocated; 7ms collecting garbage
Compiler

Compiled 450 to 240 computations (46.7% saved)

prune4.0ms (0%)

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

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New91293
Fresh000
Picked112
Done000
Total92395
Accuracy
100.0%
Counts
95 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 d1 #s(literal 30 binary64) (*.f64 d1 d2)))
100.0%
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
49.8%
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 #s(approx (+ 30 d2) #s(literal 30 binary64))))
Compiler

Compiled 41 to 41 computations (0% saved)

series101.0ms (0.9%)

Memory
-11.5MiB live, 87.0MiB allocated; 16ms collecting garbage
Counts
9 → 16
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 #s(approx (+ 30 d2) #s(literal 30 binary64))))
(*.f64 d1 #s(approx (+ 30 d2) #s(literal 30 binary64)))
d1
#s(approx (+ 30 d2) #s(literal 30 binary64))
#s(literal 30 binary64)
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 d1 #s(literal 30 binary64) (*.f64 d1 d2)))
(fma.f64 d1 #s(literal 30 binary64) (*.f64 d1 d2))
(*.f64 d1 d2)
d2
Outputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
#s(approx d1 d1)
#s(approx (* d1 d2) (*.f64 d1 d2))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) d2) #s(literal 30 binary64)))))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 #s(literal 10 binary64) d1 (*.f64 #s(literal 20 binary64) d1)))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 #s(literal 10 binary64) d1 (fma.f64 #s(literal 20 binary64) d1 (*.f64 d1 d2))))
#s(approx (* d1 (+ 30 d2)) (*.f64 #s(literal 30 binary64) d1))
#s(approx (* d1 (+ 30 d2)) (fma.f64 #s(literal 30 binary64) d1 (*.f64 d1 d2)))
#s(approx (+ 30 d2) #s(literal 30 binary64))
#s(approx (+ 30 d2) (+.f64 #s(literal 30 binary64) d2))
#s(approx d2 d2)
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d2 (+.f64 d1 (fma.f64 #s(literal 10 binary64) (/.f64 d1 d2) (*.f64 #s(literal 20 binary64) (/.f64 d1 d2))))))
#s(approx (* d1 (+ 30 d2)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal 30 binary64) (/.f64 d1 d2)))))
#s(approx (+ 30 d2) (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 30 binary64) (/.f64 #s(literal 1 binary64) d2)))))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 10 binary64) d1 (*.f64 #s(literal 20 binary64) d1)) d2))))))
#s(approx (* d1 (+ 30 d2)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -30 binary64) (/.f64 d1 d2) (*.f64 #s(literal -1 binary64) d1)))))
Calls

6 calls:

TimeVariablePointExpression
2.0ms
d1
@-inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d1 (+ 30 d2)) d1 (+ 30 d2) 30 (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 30) (* d1 d2)) (* d1 d2) d2)
2.0ms
d1
@inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d1 (+ 30 d2)) d1 (+ 30 d2) 30 (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 30) (* d1 d2)) (* d1 d2) d2)
2.0ms
d2
@-inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d1 (+ 30 d2)) d1 (+ 30 d2) 30 (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 30) (* d1 d2)) (* d1 d2) d2)
1.0ms
d1
@0
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d1 (+ 30 d2)) d1 (+ 30 d2) 30 (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 30) (* d1 d2)) (* d1 d2) d2)
1.0ms
d2
@inf
((+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (* d1 (+ 30 d2)) d1 (+ 30 d2) 30 (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (+ (* d1 30) (* d1 d2)) (* d1 d2) d2)

rewrite3.1s (28.3%)

Memory
42.2MiB live, 1 644.9MiB allocated; 362ms collecting garbage
Counts
9 → 32
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 #s(approx (+ 30 d2) #s(literal 30 binary64))))
(*.f64 d1 #s(approx (+ 30 d2) #s(literal 30 binary64)))
d1
#s(approx (+ 30 d2) #s(literal 30 binary64))
#s(literal 30 binary64)
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 d1 #s(literal 30 binary64) (*.f64 d1 d2)))
(fma.f64 d1 #s(literal 30 binary64) (*.f64 d1 d2))
(*.f64 d1 d2)
d2
Outputs
#s(approx (* d1 (+ 20 (+ 10 d2))) (*.f64 d1 #s(approx (+ d2 30) #s(literal 30 binary64))))
(*.f64 d1 #s(approx (+ d2 30) #s(literal 30 binary64)))
d1
(neg.f64 (neg.f64 d1))
#s(approx (+ d2 30) #s(literal 30 binary64))
#s(literal 30 binary64)
(neg.f64 (neg.f64 #s(literal 30 binary64)))
#s(approx (* d1 (+ 20 (+ 10 d2))) (*.f64 (+.f64 d2 #s(literal 30 binary64)) d1))
(*.f64 (+.f64 d2 #s(literal 30 binary64)) d1)
(*.f64 d1 (+.f64 d2 #s(literal 30 binary64)))
(*.f64 (-.f64 (neg.f64 #s(literal 30 binary64)) d2) (neg.f64 d1))
(*.f64 (neg.f64 d1) (-.f64 (neg.f64 #s(literal 30 binary64)) d2))
(+.f64 (*.f64 d1 #s(literal 30 binary64)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 30 binary64)))
(-.f64 (*.f64 d1 #s(literal 30 binary64)) (neg.f64 (*.f64 d1 d2)))
(-.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 #s(literal 30 binary64))))
(fma.f64 d1 #s(literal 30 binary64) (*.f64 d1 d2))
(fma.f64 (neg.f64 #s(literal 30 binary64)) (neg.f64 d1) (*.f64 d1 d2))
(fma.f64 (neg.f64 d1) (neg.f64 d2) (*.f64 d1 #s(literal 30 binary64)))
(fma.f64 (neg.f64 d1) (neg.f64 #s(literal 30 binary64)) (*.f64 d1 d2))
(fma.f64 (neg.f64 d2) (neg.f64 d1) (*.f64 d1 #s(literal 30 binary64)))
(fma.f64 #s(literal 30 binary64) d1 (*.f64 d1 d2))
(fma.f64 d2 d1 (*.f64 d1 #s(literal 30 binary64)))
(fma.f64 d1 d2 (*.f64 d1 #s(literal 30 binary64)))
(neg.f64 (*.f64 (-.f64 (neg.f64 #s(literal 30 binary64)) d2) d1))
(*.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)))
d2
(neg.f64 (neg.f64 d2))

eval5.0ms (0%)

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

Compiled 261 to 161 computations (38.3% saved)

prune4.0ms (0%)

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

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New44044
Fresh000
Picked022
Done011
Total44347
Accuracy
100.0%
Counts
47 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 d1 #s(literal 30 binary64) (*.f64 d1 d2)))
100.0%
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
49.8%
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 #s(approx (+ 30 d2) #s(literal 30 binary64))))
Compiler

Compiled 72 to 70 computations (2.8% saved)

regimes8.0ms (0.1%)

Memory
6.6MiB live, 6.6MiB allocated; 0ms collecting garbage
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 #s(approx (+ 30 d2) #s(literal 30 binary64))))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 d1 #s(literal 30 binary64) (*.f64 d1 d2)))
(fma.f64 (+.f64 #s(literal 20 binary64) #s(literal 10 binary64)) d1 (*.f64 d1 d2))
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64)))
Outputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (fma.f64 d1 #s(literal 30 binary64) (*.f64 d1 d2)))
Calls

3 calls:

3.0ms
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64)))
2.0ms
d2
2.0ms
d1
Results
AccuracySegmentsBranch
100.0%1(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64)))
100.0%1d1
100.0%1d2
Compiler

Compiled 11 to 13 computations (-18.2% saved)

regimes5.0ms (0%)

Memory
4.6MiB live, 4.6MiB allocated; 0ms collecting garbage
Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 #s(approx (+ 30 d2) #s(literal 30 binary64))))
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
Outputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 (+.f64 #s(literal 30 binary64) d2)))
Calls

3 calls:

2.0ms
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64)))
2.0ms
d1
2.0ms
d2
Results
AccuracySegmentsBranch
100.0%1(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64)))
100.0%1d1
100.0%1d2
Compiler

Compiled 11 to 13 computations (-18.2% saved)

regimes5.0ms (0%)

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

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 #s(approx (+ 30 d2) #s(literal 30 binary64))))
Outputs
#s(approx (+ (+ (* d1 10) (* d1 d2)) (* d1 20)) (*.f64 d1 #s(approx (+ 30 d2) #s(literal 30 binary64))))
Calls

3 calls:

1.0ms
d1
1.0ms
(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64)))
1.0ms
d2
Results
AccuracySegmentsBranch
49.8%1(+.f64 (+.f64 (*.f64 d1 #s(literal 10 binary64)) (*.f64 d1 d2)) (*.f64 d1 #s(literal 20 binary64)))
49.8%1d1
49.8%1d2
Compiler

Compiled 11 to 13 computations (-18.2% saved)

derivations1.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated; 0ms collecting garbage
Stop Event
done
Compiler

Compiled 21 to 21 computations (0% saved)

preprocess34.0ms (0.3%)

Memory
-22.5MiB live, 23.8MiB allocated; 4ms collecting garbage
Remove

(negabs d1)

Compiler

Compiled 117 to 117 computations (0% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...