FastMath dist

Time bar (total: 1.9s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.5MiB live, 0.5MiB 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 9 to 8 computations (11.1% saved)

sample1.0s (55.7%)

Memory
-26.6MiB live, 673.6MiB allocated; 789ms collecting garbage
Samples
823.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 113.0ms
ival-mult!: 95.0ms (84% of total)
ival-add!: 17.0ms (15% of total)
adjust: 1.0ms (0.9% of total)
Bogosity

explain73.0ms (3.9%)

Memory
-10.3MiB live, 90.9MiB allocated; 12ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
40-0-(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
00-0-d2
00-0-d1
00-0-d3
00-0-(*.f64 d1 d2)
00-0-(*.f64 d1 d3)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
+.f64(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))nan-rescue40
(*.f64 d1 d2)overflow29
(*.f64 d1 d3)overflow33
Confusion
Predicted +Predicted -
+40
-0252
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+400
-00252
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0252
14
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
37.0ms512×0valid
Compiler

Compiled 43 to 22 computations (48.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-mult!: 5.0ms (79.8% of total)
ival-add!: 1.0ms (16% of total)
adjust: 0.0ms (0% of total)

preprocess57.0ms (3.1%)

Memory
-5.9MiB live, 39.9MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02655
17855
219651
334751
444051
554751
660051
764051
865051
067
095
1175
2335
3565
4915
51145
61515
71705
81805
91855
01855
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
Outputs
(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 (+.f64 d3 d2) d1)
Symmetry

(negabs d1)

(sort d2 d3)

Compiler

Compiled 7 to 6 computations (14.3% saved)

eval0.0ms (0%)

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

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.4%
(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
Compiler

Compiled 7 to 6 computations (14.3% saved)

series7.0ms (0.4%)

Memory
14.6MiB live, 14.6MiB allocated; 0ms collecting garbage
Counts
6 → 14
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 d2)
d1
d2
(*.f64 d1 d3)
d3
Outputs
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 (+ d2 d3))))
#s(approx (* d1 d2) #s(hole binary64 (* d1 d2)))
#s(approx d1 #s(hole binary64 d1))
#s(approx (* d1 d3) #s(hole binary64 (* d1 d3)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d1 (+ (* -1 d2) (* -1 d3))))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 d3)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (+ (* d1 d2) (* d1 d3))))
#s(approx d2 #s(hole binary64 d2))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 d2)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d2 (+ d1 (/ (* d1 d3) d2)))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))))
#s(approx d3 #s(hole binary64 d3))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d3 (+ d1 (/ (* d1 d2) d3)))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))))
Calls

9 calls:

TimeVariablePointExpression
1.0ms
d1
@-inf
((+ (* d1 d2) (* d1 d3)) (* d1 d2) d1 d2 (* d1 d3) d3)
1.0ms
d1
@inf
((+ (* d1 d2) (* d1 d3)) (* d1 d2) d1 d2 (* d1 d3) d3)
1.0ms
d3
@0
((+ (* d1 d2) (* d1 d3)) (* d1 d2) d1 d2 (* d1 d3) d3)
1.0ms
d1
@0
((+ (* d1 d2) (* d1 d3)) (* d1 d2) d1 d2 (* d1 d3) d3)
1.0ms
d2
@-inf
((+ (* d1 d2) (* d1 d3)) (* d1 d2) d1 d2 (* d1 d3) d3)

rewrite232.0ms (12.5%)

Memory
29.9MiB live, 259.3MiB allocated; 27ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046188
048151
1220150
21703150
08708146
Stop Event
iter limit
node limit
iter limit
Counts
20 → 82
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 d2)
d1
d2
(*.f64 d1 d3)
d3
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 (+ d2 d3))))
#s(approx (* d1 d2) #s(hole binary64 (* d1 d2)))
#s(approx d1 #s(hole binary64 d1))
#s(approx (* d1 d3) #s(hole binary64 (* d1 d3)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d1 (+ (* -1 d2) (* -1 d3))))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 d3)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (+ (* d1 d2) (* d1 d3))))
#s(approx d2 #s(hole binary64 d2))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 d2)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d2 (+ d1 (/ (* d1 d3) d2)))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))))
#s(approx d3 #s(hole binary64 d3))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d3 (+ d1 (/ (* d1 d2) d3)))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))))
Outputs
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) d1) d1) (/.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 d2 d3)))
(*.f64 (+.f64 d3 d2) d1)
(*.f64 d1 (+.f64 d3 d2))
(/.f64 (-.f64 (*.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3)))) (*.f64 (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))))) (+.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3)))))
(/.f64 (-.f64 (*.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))))) (*.f64 (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))))) (-.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))))))
(/.f64 (-.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 (*.f64 d3 d1) (*.f64 (neg.f64 d1) d2)))))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) #s(literal 3 binary64))) (fma.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (fma.f64 (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (*.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3)))))))
(/.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) #s(literal 3 binary64))) (fma.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) (-.f64 (*.f64 (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))))) (*.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))))))))
(/.f64 (+.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 (neg.f64 d1)) d3) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 (*.f64 d2 d1) (*.f64 (neg.f64 (neg.f64 d1)) d3)))))
(/.f64 (neg.f64 (*.f64 (+.f64 (pow.f64 d3 #s(literal 3 binary64)) (pow.f64 d2 #s(literal 3 binary64))) d1)) (neg.f64 (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2))))
(/.f64 (neg.f64 (*.f64 d1 (+.f64 (pow.f64 d3 #s(literal 3 binary64)) (pow.f64 d2 #s(literal 3 binary64))))) (neg.f64 (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 d3 d1) (*.f64 d2 d1))))
(/.f64 (neg.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64))))) (neg.f64 (neg.f64 (*.f64 d1 (-.f64 d2 d3)))))
(/.f64 (neg.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64))))) (neg.f64 (neg.f64 (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d1) d3))))))
(/.f64 (neg.f64 (*.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) d1)) (neg.f64 (-.f64 d2 d3)))
(/.f64 (neg.f64 (*.f64 d1 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)))) (neg.f64 (-.f64 d2 d3)))
(/.f64 (-.f64 (*.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (*.f64 (*.f64 d1 (-.f64 d2 d3)) (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)))) (*.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d2 d3))))
(/.f64 (fma.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))) (*.f64 (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))) (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)))) (*.f64 (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))))
(/.f64 (*.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) d1) (-.f64 d2 d3))
(/.f64 (*.f64 (+.f64 (pow.f64 d3 #s(literal 3 binary64)) (pow.f64 d2 #s(literal 3 binary64))) d1) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3))) (-.f64 d2 d3))
(/.f64 (*.f64 d1 (+.f64 (pow.f64 d3 #s(literal 3 binary64)) (pow.f64 d2 #s(literal 3 binary64)))) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2)))
(/.f64 (-.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))) (fma.f64 d3 d1 (*.f64 (neg.f64 d1) d2)))
(/.f64 (-.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)))
(/.f64 (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d1) d3)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)))) (neg.f64 (*.f64 d1 (-.f64 d2 d3))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 d2 d1) d3) d1)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64))) (-.f64 (*.f64 d2 d1) (*.f64 (neg.f64 (neg.f64 d1)) d3)))
(/.f64 (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64))) (*.f64 d1 (-.f64 d2 d3)))
(/.f64 (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 d2 d1) d3) d1))))
(/.f64 (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64))) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))))
(fma.f64 (/.f64 (*.f64 (*.f64 d2 d1) d2) d1) (/.f64 d1 (-.f64 d2 d3)) (/.f64 (*.f64 (*.f64 (neg.f64 d1) d3) (*.f64 d3 d1)) (*.f64 d1 (-.f64 d2 d3))))
(fma.f64 (/.f64 (*.f64 (*.f64 d2 d1) d1) d1) (/.f64 d2 (-.f64 d2 d3)) (/.f64 (*.f64 (*.f64 (neg.f64 d1) d3) (*.f64 d3 d1)) (*.f64 d1 (-.f64 d2 d3))))
(fma.f64 (/.f64 (fabs.f64 (*.f64 d2 d1)) d1) (/.f64 (fabs.f64 (*.f64 d2 d1)) (-.f64 d2 d3)) (/.f64 (*.f64 (*.f64 (neg.f64 d1) d3) (*.f64 d3 d1)) (*.f64 d1 (-.f64 d2 d3))))
(fma.f64 (/.f64 (*.f64 (neg.f64 d1) d2) d1) (/.f64 (*.f64 (neg.f64 d1) d2) (-.f64 d2 d3)) (/.f64 (*.f64 (*.f64 (neg.f64 d1) d3) (*.f64 d3 d1)) (*.f64 d1 (-.f64 d2 d3))))
(fma.f64 (/.f64 (*.f64 d1 d1) d1) (/.f64 (*.f64 d2 d2) (-.f64 d2 d3)) (/.f64 (*.f64 (*.f64 (neg.f64 d1) d3) (*.f64 d3 d1)) (*.f64 d1 (-.f64 d2 d3))))
(fma.f64 (/.f64 (*.f64 d2 d2) d1) (/.f64 (*.f64 d1 d1) (-.f64 d2 d3)) (/.f64 (*.f64 (*.f64 (neg.f64 d1) d3) (*.f64 d3 d1)) (*.f64 d1 (-.f64 d2 d3))))
(fma.f64 (/.f64 (*.f64 d2 d1) d1) (/.f64 (*.f64 d2 d1) (-.f64 d2 d3)) (/.f64 (*.f64 (*.f64 (neg.f64 d1) d3) (*.f64 d3 d1)) (*.f64 d1 (-.f64 d2 d3))))
(fma.f64 (/.f64 d2 d1) (/.f64 (*.f64 d1 (*.f64 d2 d1)) (-.f64 d2 d3)) (/.f64 (*.f64 (*.f64 (neg.f64 d1) d3) (*.f64 d3 d1)) (*.f64 d1 (-.f64 d2 d3))))
(fma.f64 (/.f64 d1 d1) (/.f64 (*.f64 d2 (*.f64 d2 d1)) (-.f64 d2 d3)) (/.f64 (*.f64 (*.f64 (neg.f64 d1) d3) (*.f64 d3 d1)) (*.f64 d1 (-.f64 d2 d3))))
(fma.f64 d3 d1 (*.f64 d2 d1))
(fma.f64 d2 d1 (*.f64 (neg.f64 (neg.f64 d1)) d3))
(fma.f64 d2 d1 (*.f64 d3 d1))
(fma.f64 d1 d3 (*.f64 d2 d1))
(fma.f64 d1 d2 (*.f64 (neg.f64 (neg.f64 d1)) d3))
(fma.f64 d1 d2 (*.f64 d3 d1))
(-.f64 (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1))) (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1))))
(-.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d1) d3))))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d1) d3))))))
(-.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))))
(-.f64 (*.f64 d3 d1) (*.f64 (neg.f64 d1) d2))
(-.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d1) d3))
(+.f64 (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 d2 d1) d3) d1)))) (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 d2 d1) d3) d1)))))
(+.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 d2 d1) d3) d1)))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 d2 d1) d3) d1)))))
(+.f64 (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))))
(+.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))))
(+.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (/.f64 (*.f64 (*.f64 (neg.f64 d1) d3) (*.f64 d3 d1)) (*.f64 d1 (-.f64 d2 d3))))
(+.f64 (*.f64 d3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 (neg.f64 (neg.f64 d1)) d3))
(+.f64 (*.f64 d2 d1) (*.f64 d3 d1))
(*.f64 d2 d1)
(*.f64 d1 d2)
d1
d2
(*.f64 d3 d1)
(*.f64 d1 d3)
d3
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (+.f64 d3 d2) d1))
#s(approx (* d1 d2) (*.f64 d2 d1))
#s(approx d1 d1)
#s(approx (* d1 d3) (*.f64 d3 d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (neg.f64 d1) (-.f64 (neg.f64 d2) d3)))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (+.f64 d3 d2) d1))
#s(approx d2 d2)
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (fma.f64 (/.f64 d3 d2) d1 d1) d2))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (fma.f64 (/.f64 d3 d2) d1 d1) d2))
#s(approx d3 d3)
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (fma.f64 (/.f64 d2 d3) d1 d1) d3))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (fma.f64 (/.f64 d2 d3) d1 d1) d3))

eval10.0ms (0.5%)

Memory
-30.8MiB live, 15.9MiB allocated; 3ms collecting garbage
Compiler

Compiled 2 030 to 237 computations (88.3% saved)

prune3.0ms (0.2%)

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

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New78381
Fresh000
Picked101
Done000
Total79382
Accuracy
100.0%
Counts
82 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (+.f64 d3 d2) d1)
51.7%
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1))
55.0%
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
Compiler

Compiled 27 to 21 computations (22.2% saved)

series25.0ms (1.3%)

Memory
-11.2MiB live, 44.1MiB allocated; 9ms collecting garbage
Counts
9 → 29
Calls
Call 1
Inputs
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
d2
d1
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1))
(*.f64 d3 d1)
d3
(*.f64 (+.f64 d3 d2) d1)
(+.f64 d3 d2)
Outputs
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 (+ d2 d3))))
#s(approx (* d2 d1) #s(hole binary64 (* d1 d2)))
#s(approx d1 #s(hole binary64 d1))
#s(approx (* d3 d1) #s(hole binary64 (* d1 d3)))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* d1 (+ d2 d3))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d1 (+ (* -1 d2) (* -1 d3))))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 d3)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (+ (* d1 d2) (* d1 d3))))
#s(approx d2 #s(hole binary64 d2))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* d1 d3)))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (+ (* d1 d2) (* d1 d3))))
#s(approx (+ d3 d2) #s(hole binary64 d3))
#s(approx (+ d3 d2) #s(hole binary64 (+ d2 d3)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 d2)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d2 (+ d1 (/ (* d1 d3) d2)))))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* d1 d2)))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* d2 (+ d1 (/ (* d1 d3) d2)))))
#s(approx (+ d3 d2) #s(hole binary64 d2))
#s(approx (+ d3 d2) #s(hole binary64 (* d2 (+ 1 (/ d3 d2)))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))))
#s(approx (+ d3 d2) #s(hole binary64 (* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))))
#s(approx d3 #s(hole binary64 d3))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d3 (+ d1 (/ (* d1 d2) d3)))))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* d3 (+ d1 (/ (* d1 d2) d3)))))
#s(approx (+ d3 d2) #s(hole binary64 (* d3 (+ 1 (/ d2 d3)))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))))
#s(approx (+ d3 d2) #s(hole binary64 (* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))))
Calls

9 calls:

TimeVariablePointExpression
18.0ms
d2
@inf
((+ (* d1 d2) (* d1 d3)) (* d2 d1) d2 d1 (+ (* d1 d2) (* d1 d3)) (* d3 d1) d3 (* (+ d3 d2) d1) (+ d3 d2))
1.0ms
d1
@-inf
((+ (* d1 d2) (* d1 d3)) (* d2 d1) d2 d1 (+ (* d1 d2) (* d1 d3)) (* d3 d1) d3 (* (+ d3 d2) d1) (+ d3 d2))
1.0ms
d2
@-inf
((+ (* d1 d2) (* d1 d3)) (* d2 d1) d2 d1 (+ (* d1 d2) (* d1 d3)) (* d3 d1) d3 (* (+ d3 d2) d1) (+ d3 d2))
1.0ms
d1
@inf
((+ (* d1 d2) (* d1 d3)) (* d2 d1) d2 d1 (+ (* d1 d2) (* d1 d3)) (* d3 d1) d3 (* (+ d3 d2) d1) (+ d3 d2))
1.0ms
d3
@-inf
((+ (* d1 d2) (* d1 d3)) (* d2 d1) d2 d1 (+ (* d1 d2) (* d1 d3)) (* d3 d1) d3 (* (+ d3 d2) d1) (+ d3 d2))

rewrite207.0ms (11.1%)

Memory
22.8MiB live, 250.2MiB allocated; 111ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
083394
086349
1342344
22563344
08208334
Stop Event
iter limit
node limit
iter limit
Counts
38 → 88
Calls
Call 1
Inputs
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
d2
d1
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1))
(*.f64 d3 d1)
d3
(*.f64 (+.f64 d3 d2) d1)
(+.f64 d3 d2)
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 (+ d2 d3))))
#s(approx (* d2 d1) #s(hole binary64 (* d1 d2)))
#s(approx d1 #s(hole binary64 d1))
#s(approx (* d3 d1) #s(hole binary64 (* d1 d3)))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* d1 (+ d2 d3))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d1 (+ (* -1 d2) (* -1 d3))))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 d3)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (+ (* d1 d2) (* d1 d3))))
#s(approx d2 #s(hole binary64 d2))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* d1 d3)))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (+ (* d1 d2) (* d1 d3))))
#s(approx (+ d3 d2) #s(hole binary64 d3))
#s(approx (+ d3 d2) #s(hole binary64 (+ d2 d3)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d1 d2)))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d2 (+ d1 (/ (* d1 d3) d2)))))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* d1 d2)))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* d2 (+ d1 (/ (* d1 d3) d2)))))
#s(approx (+ d3 d2) #s(hole binary64 d2))
#s(approx (+ d3 d2) #s(hole binary64 (* d2 (+ 1 (/ d3 d2)))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))))
#s(approx (+ d3 d2) #s(hole binary64 (* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))))
#s(approx d3 #s(hole binary64 d3))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* d3 (+ d1 (/ (* d1 d2) d3)))))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* d3 (+ d1 (/ (* d1 d2) d3)))))
#s(approx (+ d3 d2) #s(hole binary64 (* d3 (+ 1 (/ d2 d3)))))
#s(approx (+ (* d1 d2) (* d1 d3)) #s(hole binary64 (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))))
#s(approx (* (+ d3 d2) d1) #s(hole binary64 (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))))
#s(approx (+ d3 d2) #s(hole binary64 (* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))))
Outputs
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(*.f64 d1 d2)
d2
d1
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1))
(*.f64 d3 d1)
(*.f64 d1 d3)
d3
(*.f64 (+.f64 d3 d2) d1)
(*.f64 d1 (+.f64 d3 d2))
(/.f64 (-.f64 (*.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (*.f64 (*.f64 d1 (-.f64 d2 d3)) (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)))) (*.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d2 d3))))
(/.f64 (fma.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))) (*.f64 (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))) (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)))) (*.f64 (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))))
(/.f64 (*.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) d1) (-.f64 d2 d3))
(/.f64 (*.f64 (*.f64 (+.f64 d3 d2) (-.f64 d3 d2)) d1) (-.f64 d3 d2))
(/.f64 (*.f64 (+.f64 (pow.f64 d2 #s(literal 3 binary64)) (pow.f64 d3 #s(literal 3 binary64))) d1) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2)))
(/.f64 (*.f64 (+.f64 (pow.f64 d2 #s(literal 3 binary64)) (pow.f64 d3 #s(literal 3 binary64))) d1) (fma.f64 d2 (-.f64 d2 d3) (*.f64 d3 d3)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3))) (-.f64 d2 d3))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d3 d2) (-.f64 d3 d2))) (-.f64 d3 d2))
(/.f64 (*.f64 d1 (+.f64 (pow.f64 d2 #s(literal 3 binary64)) (pow.f64 d3 #s(literal 3 binary64)))) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2)))
(/.f64 (*.f64 d1 (+.f64 (pow.f64 d2 #s(literal 3 binary64)) (pow.f64 d3 #s(literal 3 binary64)))) (fma.f64 d2 (-.f64 d2 d3) (*.f64 d3 d3)))
(/.f64 (-.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)))
(/.f64 (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d1) d3)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)))) (neg.f64 (*.f64 d1 (-.f64 d2 d3))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64))) (*.f64 d1 (-.f64 d2 d3)))
(/.f64 (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 d2 d1) d3) d1))))
(/.f64 (+.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64))) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64))))
(fma.f64 d3 d1 (*.f64 d2 d1))
(fma.f64 d2 d1 (*.f64 (neg.f64 (neg.f64 d1)) d3))
(fma.f64 d2 d1 (*.f64 d3 d1))
(fma.f64 d1 d3 (*.f64 d2 d1))
(fma.f64 d1 d2 (*.f64 (neg.f64 (neg.f64 d1)) d3))
(fma.f64 d1 d2 (*.f64 d3 d1))
(-.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 2 binary64)) (*.f64 d1 (-.f64 d2 d3))))
(-.f64 (*.f64 d3 d1) (*.f64 (neg.f64 d1) d2))
(-.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d1) d3))
(+.f64 (/.f64 (pow.f64 (*.f64 d2 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 d3 d1) #s(literal 3 binary64)) (fma.f64 (*.f64 d3 d1) (-.f64 (*.f64 d3 d1) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) #s(literal 2 binary64)))))
(+.f64 (*.f64 d3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 (neg.f64 (neg.f64 d1)) d3))
(+.f64 (*.f64 d2 d1) (*.f64 d3 d1))
(/.f64 (-.f64 (*.f64 (*.f64 d2 d2) (-.f64 d2 d3)) (*.f64 (-.f64 d2 d3) (*.f64 d3 d3))) (*.f64 (-.f64 d2 d3) (-.f64 d2 d3)))
(/.f64 (-.f64 (*.f64 (*.f64 d3 d3) (-.f64 d3 d2)) (*.f64 (-.f64 d3 d2) (*.f64 d2 d2))) (*.f64 (-.f64 d3 d2) (-.f64 d3 d2)))
(/.f64 (fma.f64 (pow.f64 d2 #s(literal 3 binary64)) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2)) (*.f64 (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2)) (pow.f64 d3 #s(literal 3 binary64)))) (*.f64 (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2)) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2))))
(/.f64 (fma.f64 (pow.f64 d3 #s(literal 3 binary64)) (fma.f64 d2 (-.f64 d2 d3) (*.f64 d3 d3)) (*.f64 (fma.f64 d2 (-.f64 d2 d3) (*.f64 d3 d3)) (pow.f64 d2 #s(literal 3 binary64)))) (*.f64 (fma.f64 d2 (-.f64 d2 d3) (*.f64 d3 d3)) (fma.f64 d2 (-.f64 d2 d3) (*.f64 d3 d3))))
(/.f64 (neg.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3))) (neg.f64 (-.f64 d2 d3)))
(/.f64 (neg.f64 (*.f64 (+.f64 d3 d2) (-.f64 d3 d2))) (neg.f64 (-.f64 d3 d2)))
(/.f64 (neg.f64 (+.f64 (pow.f64 d2 #s(literal 3 binary64)) (pow.f64 d3 #s(literal 3 binary64)))) (neg.f64 (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2))))
(/.f64 (neg.f64 (+.f64 (pow.f64 d2 #s(literal 3 binary64)) (pow.f64 d3 #s(literal 3 binary64)))) (neg.f64 (fma.f64 d2 (-.f64 d2 d3) (*.f64 d3 d3))))
(/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (-.f64 d2 d3))
(/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d3 d2)) (-.f64 d3 d2))
(/.f64 (+.f64 (pow.f64 d2 #s(literal 3 binary64)) (pow.f64 d3 #s(literal 3 binary64))) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2)))
(/.f64 (+.f64 (pow.f64 d2 #s(literal 3 binary64)) (pow.f64 d3 #s(literal 3 binary64))) (fma.f64 d2 (-.f64 d2 d3) (*.f64 d3 d3)))
(-.f64 (/.f64 (*.f64 d2 d2) (-.f64 d2 d3)) (/.f64 (*.f64 d3 d3) (-.f64 d2 d3)))
(-.f64 (/.f64 (*.f64 d3 d3) (-.f64 d3 d2)) (/.f64 (*.f64 d2 d2) (-.f64 d3 d2)))
(+.f64 (/.f64 (pow.f64 d2 #s(literal 3 binary64)) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2))) (/.f64 (pow.f64 d3 #s(literal 3 binary64)) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2))))
(+.f64 (/.f64 (pow.f64 d3 #s(literal 3 binary64)) (fma.f64 d2 (-.f64 d2 d3) (*.f64 d3 d3))) (/.f64 (pow.f64 d2 #s(literal 3 binary64)) (fma.f64 d2 (-.f64 d2 d3) (*.f64 d3 d3))))
(+.f64 d3 d2)
(+.f64 d2 d3)
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (+.f64 d3 d2) d1))
#s(approx (* d2 d1) (*.f64 d2 d1))
#s(approx d1 d1)
#s(approx (* d3 d1) (*.f64 d3 d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (+.f64 d3 d2) d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (neg.f64 d1) (-.f64 (neg.f64 d3) d2)))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (+.f64 d3 d2) d1))
#s(approx d2 d2)
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (+.f64 d3 d2) d1))
#s(approx (+ d3 d2) d3)
#s(approx (+ d3 d2) (+.f64 d3 d2))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (fma.f64 (/.f64 d3 d2) d1 d1) d2))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (fma.f64 (/.f64 d3 d2) d1 d1) d2))
#s(approx (+ d3 d2) d2)
#s(approx (+ d3 d2) (fma.f64 (/.f64 d3 d2) d2 d2))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (neg.f64 (fma.f64 (/.f64 d3 d2) d1 d1)) (neg.f64 d2)))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (neg.f64 (fma.f64 (/.f64 d3 d2) d1 d1)) (neg.f64 d2)))
#s(approx (+ d3 d2) (*.f64 (fma.f64 (/.f64 d3 d2) #s(literal -1 binary64) #s(literal -1 binary64)) (neg.f64 d2)))
#s(approx d3 d3)
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (fma.f64 (/.f64 d2 d3) d1 d1) d3))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (fma.f64 (/.f64 d2 d3) d1 d1) d3))
#s(approx (+ d3 d2) (fma.f64 (/.f64 d2 d3) d3 d3))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (neg.f64 (fma.f64 (/.f64 d2 d3) d1 d1)) (neg.f64 d3)))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 (neg.f64 (fma.f64 (/.f64 d2 d3) d1 d1)) (neg.f64 d3)))
#s(approx (+ d3 d2) (*.f64 (fma.f64 (/.f64 d2 d3) #s(literal -1 binary64) #s(literal -1 binary64)) (neg.f64 d3)))

eval8.0ms (0.4%)

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

Compiled 1 339 to 231 computations (82.7% saved)

prune4.0ms (0.2%)

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

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New85085
Fresh000
Picked033
Done000
Total85388
Accuracy
100.0%
Counts
88 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (+.f64 d3 d2) d1)
51.7%
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1))
55.0%
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
Compiler

Compiled 61 to 36 computations (41% saved)

regimes17.0ms (0.9%)

Memory
-23.4MiB live, 15.6MiB allocated; 13ms collecting garbage
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1))
(*.f64 (+.f64 d3 d2) d1)
(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
Outputs
(*.f64 (+.f64 d3 d2) d1)
Calls

4 calls:

11.0ms
d3
2.0ms
d2
2.0ms
d1
2.0ms
(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
Results
AccuracySegmentsBranch
100.0%1(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
100.0%1d1
100.0%1d2
100.0%1d3
Compiler

Compiled 10 to 15 computations (-50% saved)

regimes5.0ms (0.3%)

Memory
12.3MiB live, 12.3MiB allocated; 0ms collecting garbage
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1))
Outputs
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1))
Calls

4 calls:

1.0ms
d3
1.0ms
d1
1.0ms
d2
1.0ms
(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
Results
AccuracySegmentsBranch
98.6%2(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
62.1%4d1
87.7%2d2
86.3%2d3
Compiler

Compiled 10 to 15 computations (-50% saved)

regimes4.0ms (0.2%)

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

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
Outputs
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
Calls

4 calls:

1.0ms
d1
1.0ms
d3
1.0ms
d2
1.0ms
(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
Results
AccuracySegmentsBranch
55.0%1d1
55.0%1d3
55.0%1d2
55.0%1(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
Compiler

Compiled 10 to 15 computations (-50% saved)

bsearch0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-1.0832799170758924e-294
0.0
Compiler

Compiled 10 to 12 computations (-20% saved)

simplify16.0ms (0.9%)

Memory
-26.5MiB live, 19.7MiB allocated; 5ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01842
12642
24242
36542
410042
512342
616042
717942
818942
919442
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (+.f64 d3 d2) d1)
(if (<=.f64 (+.f64 (*.f64 d1 d2) (*.f64 d1 d3)) #s(literal -5752618031559411/5752618031559410904733776610524879147577526332615381032749762597047445625776030820246671274317041152675843644155884587445081272602061331919771117780463171980088572589595695528841671027239875011822498654466720184602820821834958812207165219537306471589227216341906761543678311870031350921754731402547975172390912 binary64)) #s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1)) #s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1)))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))
Outputs
(*.f64 (+.f64 d3 d2) d1)
(if (<=.f64 (+.f64 (*.f64 d1 d2) (*.f64 d1 d3)) #s(literal -5752618031559411/5752618031559410904733776610524879147577526332615381032749762597047445625776030820246671274317041152675843644155884587445081272602061331919771117780463171980088572589595695528841671027239875011822498654466720184602820821834958812207165219537306471589227216341906761543678311870031350921754731402547975172390912 binary64)) #s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1)) #s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d3 d1)))
#s(approx (+ (* d1 d2) (* d1 d3)) (*.f64 d2 d1))

derivations138.0ms (7.4%)

Memory
-9.8MiB live, 88.4MiB allocated; 55ms collecting garbage
Stop Event
done
Compiler

Compiled 48 to 18 computations (62.5% saved)

preprocess18.0ms (1%)

Memory
34.8MiB live, 34.8MiB allocated; 0ms collecting garbage
Remove

(sort d2 d3)

(negabs d1)

Compiler

Compiled 130 to 68 computations (47.7% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...