FastMath dist3

Time bar (total: 3.8s)

analyze0.0ms (0%)

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 17 to 12 computations (29.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-add: 0.0ms (0% of total)
ival-mult: 0.0ms (0% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

sample917.0ms (24.1%)

Results
616.0ms8215×0valid
5.0ms33×1valid
3.0ms2valid
Precisions
Click to see histograms. Total time spent on operations: 321.0ms
ival-mult: 175.0ms (54.6% of total)
ival-add: 127.0ms (39.6% of total)
const: 15.0ms (4.7% of total)
backward-pass: 4.0ms (1.2% of total)
Bogosity

preprocess73.0ms (1.9%)

Algorithm
egg-herbie
Rules
1962×sum4-define
1760×sum5-define
1690×fnmadd-define
1650×sum3-define
968×fmsub-define
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
045129
1135103
245377
3223566
01112
12110
2527
31886
43836
55906
66126
06126
Stop Event
iter limit
saturated
node limit
Calls
Call 1
Inputs
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))
Outputs
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
Call 2
Inputs
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))
(+ (+ (* (neg d1) d2) (* (+ d3 5) (neg d1))) (* (neg d1) 32))
(+ (+ (* d1 (neg d2)) (* (+ d3 5) d1)) (* d1 32))
(+ (+ (* d1 d2) (* (+ (neg d3) 5) d1)) (* d1 32))
(neg (+ (+ (* (neg d1) d2) (* (+ d3 5) (neg d1))) (* (neg d1) 32)))
(neg (+ (+ (* d1 (neg d2)) (* (+ d3 5) d1)) (* d1 32)))
(neg (+ (+ (* d1 d2) (* (+ (neg d3) 5) d1)) (* d1 32)))
(+ (+ (* d2 d1) (* (+ d3 5) d2)) (* d2 32))
(+ (+ (* d3 d2) (* (+ d1 5) d3)) (* d3 32))
(+ (+ (* d1 d3) (* (+ d2 5) d1)) (* d1 32))
Outputs
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))
(* d1 (sum3 d2 37 d3))
(+ (+ (* (neg d1) d2) (* (+ d3 5) (neg d1))) (* (neg d1) 32))
(* (neg d1) (sum3 d2 37 d3))
(+ (+ (* d1 (neg d2)) (* (+ d3 5) d1)) (* d1 32))
(* d1 (- (+ d3 37) d2))
(+ (+ (* d1 d2) (* (+ (neg d3) 5) d1)) (* d1 32))
(* d1 (sum3 (neg d3) 37 d2))
(neg (+ (+ (* (neg d1) d2) (* (+ d3 5) (neg d1))) (* (neg d1) 32)))
(* d1 (sum3 d2 37 d3))
(neg (+ (+ (* d1 (neg d2)) (* (+ d3 5) d1)) (* d1 32)))
(* d1 (- d2 (+ d3 37)))
(neg (+ (+ (* d1 d2) (* (+ (neg d3) 5) d1)) (* d1 32)))
(* (neg d1) (sum3 (neg d3) 37 d2))
(+ (+ (* d2 d1) (* (+ d3 5) d2)) (* d2 32))
(* d2 (sum3 d3 37 d1))
(+ (+ (* d3 d2) (* (+ d1 5) d3)) (* d3 32))
(* d3 (sum3 d1 37 d2))
(+ (+ (* d1 d3) (* (+ d2 5) d1)) (* d1 32))
(* d1 (sum3 d2 37 d3))
Symmetry

(negabs d1)

(sort d2 d3)

explain138.0ms (3.6%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
20-0-(+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 #s(literal 5 binary64)) d1))
00-0-d3
00-0-d1
00-0-d2
00-0-(*.f64 d1 d2)
00-0-(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 #s(literal 5 binary64)) d1)) (*.f64 d1 #s(literal 32 binary64)))
00-0-#s(literal 5 binary64)
00-0-(+.f64 d3 #s(literal 5 binary64))
00-0-(*.f64 (+.f64 d3 #s(literal 5 binary64)) d1)
00-0-#s(literal 32 binary64)
00-0-(*.f64 d1 #s(literal 32 binary64))
Results
72.0ms480×0valid
6.0ms18×1valid
5.0ms12×2valid
1.0ms3valid
Compiler

Compiled 106 to 35 computations (67% saved)

Precisions
Click to see histograms. Total time spent on operations: 23.0ms
ival-mult: 11.0ms (48.4% of total)
ival-add: 8.0ms (35.2% of total)
backward-pass: 3.0ms (13.2% of total)
const: 1.0ms (4.4% of total)

eval0.0ms (0%)

Compiler

Compiled 10 to 7 computations (30% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
99.2%
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 #s(literal 5 binary64)) d1)) (*.f64 d1 #s(literal 32 binary64)))
100.0%
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
Compiler

Compiled 26 to 18 computations (30.8% saved)

simplify63.0ms (1.7%)

Algorithm
egg-herbie
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (+.f64 d3 #s(literal 5 binary64)) d1)
cost-diff0
(*.f64 d1 d2)
cost-diff128
(+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 #s(literal 5 binary64)) d1))
cost-diff256
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 #s(literal 5 binary64)) d1)) (*.f64 d1 #s(literal 32 binary64)))
cost-diff0
(+.f64 d3 #s(literal 37 binary64))
cost-diff0
(+.f64 d2 (+.f64 d3 #s(literal 37 binary64)))
cost-diff0
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
Rules
254×sum3-define
248×fma-define
200×fma-lowering-fma.f32
200×fma-lowering-fma.f64
196×+-lowering-+.f64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01553
13549
29248
327248
445148
561548
662948
062948
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(* d1 (+ d2 (+ d3 37)))
d1
(+ d2 (+ d3 37))
d2
(+ d3 37)
d3
37
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))
(+ (* d1 d2) (* (+ d3 5) d1))
(* d1 d2)
d1
d2
(* (+ d3 5) d1)
(+ d3 5)
d3
5
(* d1 32)
32
Outputs
(* d1 (+ d2 (+ d3 37)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
d1
(+ d2 (+ d3 37))
(+.f64 d2 (+.f64 d3 #s(literal 37 binary64)))
d2
(+ d3 37)
(+.f64 d3 #s(literal 37 binary64))
d3
37
#s(literal 37 binary64)
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
(+ (* d1 d2) (* (+ d3 5) d1))
(*.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3)))
(* d1 d2)
(*.f64 d1 d2)
d1
d2
(* (+ d3 5) d1)
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(+ d3 5)
(+.f64 d3 #s(literal 5 binary64))
d3
5
#s(literal 5 binary64)
(* d1 32)
(*.f64 d1 #s(literal 32 binary64))
32
#s(literal 32 binary64)

localize68.0ms (1.8%)

Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 d1 #s(literal 32 binary64))
accuracy100.0%
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 #s(literal 5 binary64)) d1)) (*.f64 d1 #s(literal 32 binary64)))
accuracy99.9%
(*.f64 (+.f64 d3 #s(literal 5 binary64)) d1)
accuracy99.2%
(+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 #s(literal 5 binary64)) d1))
accuracy100.0%
(+.f64 d3 #s(literal 37 binary64))
accuracy100.0%
(+.f64 d2 (+.f64 d3 #s(literal 37 binary64)))
accuracy100.0%
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
Results
44.0ms240×0valid
3.0ms1valid
3.0ms2valid
1.0ms3valid
Compiler

Compiled 64 to 16 computations (75% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-mult: 8.0ms (48.2% of total)
ival-add: 7.0ms (42.1% of total)
const: 1.0ms (6% of total)
backward-pass: 1.0ms (6% of total)

series17.0ms (0.5%)

Counts
8 → 204
Calls
Call 1
Inputs
#<alt (* d1 (+ d2 (+ d3 37)))>
#<alt (+ d2 (+ d3 37))>
#<alt (+ d3 37)>
#<alt (+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))>
#<alt (+ (* d1 d2) (* (+ d3 5) d1))>
#<alt (* d1 d2)>
#<alt (* (+ d3 5) d1)>
#<alt (* d1 32)>
Outputs
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 d3))>
#<alt (+ (* d1 d2) (* d1 (+ 37 d3)))>
#<alt (+ (* d1 d2) (* d1 (+ 37 d3)))>
#<alt (+ (* d1 d2) (* d1 (+ 37 d3)))>
#<alt (* d1 d2)>
#<alt (* d2 (+ d1 (/ (* d1 (+ 37 d3)) d2)))>
#<alt (* d2 (+ d1 (/ (* d1 (+ 37 d3)) d2)))>
#<alt (* d2 (+ d1 (/ (* d1 (+ 37 d3)) d2)))>
#<alt (* d1 d2)>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d3)) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d3)) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d3)) d2)))))>
#<alt (* d1 (+ 37 d2))>
#<alt (+ (* d1 d3) (* d1 (+ 37 d2)))>
#<alt (+ (* d1 d3) (* d1 (+ 37 d2)))>
#<alt (+ (* d1 d3) (* d1 (+ 37 d2)))>
#<alt (* d1 d3)>
#<alt (* d3 (+ d1 (/ (* d1 (+ 37 d2)) d3)))>
#<alt (* d3 (+ d1 (/ (* d1 (+ 37 d2)) d3)))>
#<alt (* d3 (+ d1 (/ (* d1 (+ 37 d2)) d3)))>
#<alt (* d1 d3)>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d2)) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d2)) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d2)) d3)))))>
#<alt (+ 37 d3)>
#<alt (+ 37 (+ d2 d3))>
#<alt (+ 37 (+ d2 d3))>
#<alt (+ 37 (+ d2 d3))>
#<alt d2>
#<alt (* d2 (+ 1 (+ (* 37 (/ 1 d2)) (/ d3 d2))))>
#<alt (* d2 (+ 1 (+ (* 37 (/ 1 d2)) (/ d3 d2))))>
#<alt (* d2 (+ 1 (+ (* 37 (/ 1 d2)) (/ d3 d2))))>
#<alt d2>
#<alt (* -1 (* d2 (- (* -1 (/ (+ 37 d3) d2)) 1)))>
#<alt (* -1 (* d2 (- (* -1 (/ (+ 37 d3) d2)) 1)))>
#<alt (* -1 (* d2 (- (* -1 (/ (+ 37 d3) d2)) 1)))>
#<alt (+ 37 d2)>
#<alt (+ 37 (+ d2 d3))>
#<alt (+ 37 (+ d2 d3))>
#<alt (+ 37 (+ d2 d3))>
#<alt d3>
#<alt (* d3 (+ 1 (+ (* 37 (/ 1 d3)) (/ d2 d3))))>
#<alt (* d3 (+ 1 (+ (* 37 (/ 1 d3)) (/ d2 d3))))>
#<alt (* d3 (+ 1 (+ (* 37 (/ 1 d3)) (/ d2 d3))))>
#<alt d3>
#<alt (* -1 (* d3 (- (* -1 (/ (+ 37 d2) d3)) 1)))>
#<alt (* -1 (* d3 (- (* -1 (/ (+ 37 d2) d3)) 1)))>
#<alt (* -1 (* d3 (- (* -1 (/ (+ 37 d2) d3)) 1)))>
#<alt 37>
#<alt (+ 37 d3)>
#<alt (+ 37 d3)>
#<alt (+ 37 d3)>
#<alt d3>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt d3>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))>
#<alt (* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))>
#<alt (* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))>
#<alt (* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))>
#<alt (+ (* 32 d1) (* d1 (+ 5 d3)))>
#<alt (+ (* 32 d1) (+ (* d1 d2) (* d1 (+ 5 d3))))>
#<alt (+ (* 32 d1) (+ (* d1 d2) (* d1 (+ 5 d3))))>
#<alt (+ (* 32 d1) (+ (* d1 d2) (* d1 (+ 5 d3))))>
#<alt (* d1 d2)>
#<alt (* d2 (+ d1 (+ (* 32 (/ d1 d2)) (/ (* d1 (+ 5 d3)) d2))))>
#<alt (* d2 (+ d1 (+ (* 32 (/ d1 d2)) (/ (* d1 (+ 5 d3)) d2))))>
#<alt (* d2 (+ d1 (+ (* 32 (/ d1 d2)) (/ (* d1 (+ 5 d3)) d2))))>
#<alt (* d1 d2)>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 32 d1) (* d1 (+ 5 d3))) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 32 d1) (* d1 (+ 5 d3))) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 32 d1) (* d1 (+ 5 d3))) d2)))))>
#<alt (+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))>
#<alt (+ (* 5 d1) (+ (* 32 d1) (+ (* d1 d2) (* d1 d3))))>
#<alt (+ (* 5 d1) (+ (* 32 d1) (+ (* d1 d2) (* d1 d3))))>
#<alt (+ (* 5 d1) (+ (* 32 d1) (+ (* d1 d2) (* d1 d3))))>
#<alt (* d1 d3)>
#<alt (* d3 (+ d1 (+ (* 5 (/ d1 d3)) (+ (* 32 (/ d1 d3)) (/ (* d1 d2) d3)))))>
#<alt (* d3 (+ d1 (+ (* 5 (/ d1 d3)) (+ (* 32 (/ d1 d3)) (/ (* d1 d2) d3)))))>
#<alt (* d3 (+ d1 (+ (* 5 (/ d1 d3)) (+ (* 32 (/ d1 d3)) (/ (* d1 d2) d3)))))>
#<alt (* d1 d3)>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (+ (* 32 d1) (* d1 d2))) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (+ (* 32 d1) (* d1 d2))) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (+ (* 32 d1) (* d1 d2))) d3)))))>
#<alt (* d1 (+ 5 (+ d2 d3)))>
#<alt (* d1 (+ 5 (+ d2 d3)))>
#<alt (* d1 (+ 5 (+ d2 d3)))>
#<alt (* d1 (+ 5 (+ d2 d3)))>
#<alt (* d1 (+ 5 (+ d2 d3)))>
#<alt (* d1 (+ 5 (+ d2 d3)))>
#<alt (* d1 (+ 5 (+ d2 d3)))>
#<alt (* d1 (+ 5 (+ d2 d3)))>
#<alt (* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))>
#<alt (* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))>
#<alt (* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))>
#<alt (* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))>
#<alt (* d1 (+ 5 d3))>
#<alt (+ (* d1 d2) (* d1 (+ 5 d3)))>
#<alt (+ (* d1 d2) (* d1 (+ 5 d3)))>
#<alt (+ (* d1 d2) (* d1 (+ 5 d3)))>
#<alt (* d1 d2)>
#<alt (* d2 (+ d1 (/ (* d1 (+ 5 d3)) d2)))>
#<alt (* d2 (+ d1 (/ (* d1 (+ 5 d3)) d2)))>
#<alt (* d2 (+ d1 (/ (* d1 (+ 5 d3)) d2)))>
#<alt (* d1 d2)>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 5 d3)) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 5 d3)) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 5 d3)) d2)))))>
#<alt (+ (* 5 d1) (* d1 d2))>
#<alt (+ (* 5 d1) (+ (* d1 d2) (* d1 d3)))>
#<alt (+ (* 5 d1) (+ (* d1 d2) (* d1 d3)))>
#<alt (+ (* 5 d1) (+ (* d1 d2) (* d1 d3)))>
#<alt (* d1 d3)>
#<alt (* d3 (+ d1 (+ (* 5 (/ d1 d3)) (/ (* d1 d2) d3))))>
#<alt (* d3 (+ d1 (+ (* 5 (/ d1 d3)) (/ (* d1 d2) d3))))>
#<alt (* d3 (+ d1 (+ (* 5 (/ d1 d3)) (/ (* d1 d2) d3))))>
#<alt (* d1 d3)>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* d1 d2)) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* d1 d2)) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* d1 d2)) d3)))))>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* 5 d1)>
#<alt (+ (* 5 d1) (* d1 d3))>
#<alt (+ (* 5 d1) (* d1 d3))>
#<alt (+ (* 5 d1) (* d1 d3))>
#<alt (* d1 d3)>
#<alt (* d3 (+ d1 (* 5 (/ d1 d3))))>
#<alt (* d3 (+ d1 (* 5 (/ d1 d3))))>
#<alt (* d3 (+ d1 (* 5 (/ d1 d3))))>
#<alt (* d1 d3)>
#<alt (* -1 (* d3 (+ (* -5 (/ d1 d3)) (* -1 d1))))>
#<alt (* -1 (* d3 (+ (* -5 (/ d1 d3)) (* -1 d1))))>
#<alt (* -1 (* d3 (+ (* -5 (/ d1 d3)) (* -1 d1))))>
#<alt (* d1 (+ 5 d3))>
#<alt (* d1 (+ 5 d3))>
#<alt (* d1 (+ 5 d3))>
#<alt (* d1 (+ 5 d3))>
#<alt (* d1 (+ 5 d3))>
#<alt (* d1 (+ 5 d3))>
#<alt (* d1 (+ 5 d3))>
#<alt (* d1 (+ 5 d3))>
#<alt (* d1 (+ 5 d3))>
#<alt (* d1 (+ 5 d3))>
#<alt (* d1 (+ 5 d3))>
#<alt (* d1 (+ 5 d3))>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
Calls

51 calls:

TimeVariablePointExpression
5.0ms
d1
@inf
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))
1.0ms
d3
@-inf
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))
1.0ms
d1
@0
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))
1.0ms
d1
@-inf
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))
1.0ms
d1
@0
(* d1 (+ d2 (+ d3 37)))

rewrite49.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
254×sum3-define
248×fma-define
200×fma-lowering-fma.f32
200×fma-lowering-fma.f64
196×+-lowering-+.f64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01541
13537
29236
327236
445136
561536
662936
062936
Stop Event
iter limit
saturated
Counts
8 → 140
Calls
Call 1
Inputs
(* d1 (+ d2 (+ d3 37)))
(+ d2 (+ d3 37))
(+ d3 37)
(+ (+ (* d1 d2) (* (+ d3 5) d1)) (* d1 32))
(+ (* d1 d2) (* (+ d3 5) d1))
(* d1 d2)
(* (+ d3 5) d1)
(* d1 32)
Outputs
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))))
(+.f64 (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))) (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(+.f64 (*.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3))) (*.f64 d1 #s(literal 32 binary64)))
(+.f64 (*.f64 d1 #s(literal 32 binary64)) (*.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3))))
(+.f64 (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))))
(+.f64 (*.f64 d1 #s(literal 5 binary64)) (*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64)))))
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
(+.f64 (*.f64 d1 #s(literal 37 binary64)) (*.f64 d1 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))) (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64)))) (*.f64 d1 #s(literal 5 binary64)))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))))
(+.f64 (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))) (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 d1 d2 (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))))
(fma.f64 d1 d3 (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))))
(fma.f64 d1 #s(literal 37 binary64) (*.f64 d1 (+.f64 d2 d3)))
(fma.f64 d1 (+.f64 d3 #s(literal 37 binary64)) (*.f64 d1 d2))
(fma.f64 d1 #s(literal 5 binary64) (*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64)))))
(fma.f64 d1 (+.f64 d3 #s(literal 5 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(fma.f64 d1 #s(literal 32 binary64) (*.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3))))
(fma.f64 d1 (+.f64 d2 d3) (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3)) (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 d1 (+.f64 d2 #s(literal 37 binary64)) (*.f64 d1 d3))
(fma.f64 d1 (+.f64 d2 #s(literal 32 binary64)) (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(fma.f64 d1 (+.f64 d2 #s(literal 5 binary64)) (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))))
(fma.f64 d1 (+.f64 d3 #s(literal 32 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64))) (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 d2 d1 (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))))
(fma.f64 d3 d1 (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))))
(fma.f64 #s(literal 37 binary64) d1 (*.f64 d1 (+.f64 d2 d3)))
(fma.f64 (+.f64 d3 #s(literal 37 binary64)) d1 (*.f64 d1 d2))
(fma.f64 #s(literal 5 binary64) d1 (*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64)))))
(fma.f64 (+.f64 d3 #s(literal 5 binary64)) d1 (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(fma.f64 #s(literal 32 binary64) d1 (*.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3))))
(fma.f64 (+.f64 d2 d3) d1 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3)) d1 (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 (+.f64 d2 #s(literal 37 binary64)) d1 (*.f64 d1 d3))
(fma.f64 (+.f64 d2 #s(literal 32 binary64)) d1 (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(fma.f64 (+.f64 d2 #s(literal 5 binary64)) d1 (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))))
(fma.f64 (+.f64 d3 #s(literal 32 binary64)) d1 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64))) d1 (*.f64 d1 #s(literal 5 binary64)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
(*.f64 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))) d1)
(+.f64 d2 (+.f64 d3 #s(literal 37 binary64)))
(+.f64 d3 (+.f64 d2 #s(literal 37 binary64)))
(+.f64 #s(literal 37 binary64) (+.f64 d2 d3))
(+.f64 (+.f64 d3 #s(literal 37 binary64)) d2)
(+.f64 #s(literal 5 binary64) (+.f64 d2 (+.f64 d3 #s(literal 32 binary64))))
(+.f64 (+.f64 d3 #s(literal 5 binary64)) (+.f64 d2 #s(literal 32 binary64)))
(+.f64 #s(literal 32 binary64) (+.f64 #s(literal 5 binary64) (+.f64 d2 d3)))
(+.f64 (+.f64 d2 d3) #s(literal 37 binary64))
(+.f64 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3)) #s(literal 32 binary64))
(+.f64 (+.f64 d2 #s(literal 37 binary64)) d3)
(+.f64 (+.f64 d2 #s(literal 32 binary64)) (+.f64 d3 #s(literal 5 binary64)))
(+.f64 (+.f64 d2 #s(literal 5 binary64)) (+.f64 d3 #s(literal 32 binary64)))
(+.f64 (+.f64 d3 #s(literal 32 binary64)) (+.f64 d2 #s(literal 5 binary64)))
(+.f64 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64))) #s(literal 5 binary64))
(+.f64 d3 #s(literal 37 binary64))
(+.f64 #s(literal 37 binary64) d3)
(+.f64 #s(literal 5 binary64) (+.f64 d3 #s(literal 32 binary64)))
(+.f64 (+.f64 d3 #s(literal 5 binary64)) #s(literal 32 binary64))
(+.f64 #s(literal 32 binary64) (+.f64 d3 #s(literal 5 binary64)))
(+.f64 (+.f64 d3 #s(literal 32 binary64)) #s(literal 5 binary64))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))))
(+.f64 (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))) (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(+.f64 (*.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3))) (*.f64 d1 #s(literal 32 binary64)))
(+.f64 (*.f64 d1 #s(literal 32 binary64)) (*.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3))))
(+.f64 (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))))
(+.f64 (*.f64 d1 #s(literal 5 binary64)) (*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64)))))
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
(+.f64 (*.f64 d1 #s(literal 37 binary64)) (*.f64 d1 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))) (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64)))) (*.f64 d1 #s(literal 5 binary64)))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))))
(+.f64 (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))) (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 d1 d2 (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))))
(fma.f64 d1 d3 (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))))
(fma.f64 d1 #s(literal 37 binary64) (*.f64 d1 (+.f64 d2 d3)))
(fma.f64 d1 (+.f64 d3 #s(literal 37 binary64)) (*.f64 d1 d2))
(fma.f64 d1 #s(literal 5 binary64) (*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64)))))
(fma.f64 d1 (+.f64 d3 #s(literal 5 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(fma.f64 d1 #s(literal 32 binary64) (*.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3))))
(fma.f64 d1 (+.f64 d2 d3) (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3)) (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 d1 (+.f64 d2 #s(literal 37 binary64)) (*.f64 d1 d3))
(fma.f64 d1 (+.f64 d2 #s(literal 32 binary64)) (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(fma.f64 d1 (+.f64 d2 #s(literal 5 binary64)) (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))))
(fma.f64 d1 (+.f64 d3 #s(literal 32 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64))) (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 d2 d1 (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))))
(fma.f64 d3 d1 (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))))
(fma.f64 #s(literal 37 binary64) d1 (*.f64 d1 (+.f64 d2 d3)))
(fma.f64 (+.f64 d3 #s(literal 37 binary64)) d1 (*.f64 d1 d2))
(fma.f64 #s(literal 5 binary64) d1 (*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64)))))
(fma.f64 (+.f64 d3 #s(literal 5 binary64)) d1 (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(fma.f64 #s(literal 32 binary64) d1 (*.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3))))
(fma.f64 (+.f64 d2 d3) d1 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3)) d1 (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 (+.f64 d2 #s(literal 37 binary64)) d1 (*.f64 d1 d3))
(fma.f64 (+.f64 d2 #s(literal 32 binary64)) d1 (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(fma.f64 (+.f64 d2 #s(literal 5 binary64)) d1 (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))))
(fma.f64 (+.f64 d3 #s(literal 32 binary64)) d1 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 (+.f64 d2 (+.f64 d3 #s(literal 32 binary64))) d1 (*.f64 d1 #s(literal 5 binary64)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
(*.f64 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))) d1)
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(+.f64 (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(+.f64 (*.f64 d1 #s(literal 5 binary64)) (*.f64 d1 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 5 binary64)))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 d3))
(fma.f64 d1 d2 (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(fma.f64 d1 d3 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 d1 #s(literal 5 binary64) (*.f64 d1 (+.f64 d2 d3)))
(fma.f64 d1 (+.f64 d3 #s(literal 5 binary64)) (*.f64 d1 d2))
(fma.f64 d1 (+.f64 d2 d3) (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 d1 (+.f64 d2 #s(literal 5 binary64)) (*.f64 d1 d3))
(fma.f64 d2 d1 (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(fma.f64 d3 d1 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 #s(literal 5 binary64) d1 (*.f64 d1 (+.f64 d2 d3)))
(fma.f64 (+.f64 d3 #s(literal 5 binary64)) d1 (*.f64 d1 d2))
(fma.f64 (+.f64 d2 d3) d1 (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 (+.f64 d2 #s(literal 5 binary64)) d1 (*.f64 d1 d3))
(*.f64 d1 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3)))
(*.f64 (+.f64 #s(literal 5 binary64) (+.f64 d2 d3)) d1)
(*.f64 d1 d2)
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d3) (*.f64 d1 #s(literal 5 binary64)))
(+.f64 (*.f64 d1 #s(literal 5 binary64)) (*.f64 d1 d3))
(fma.f64 d1 d3 (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 d1 #s(literal 5 binary64) (*.f64 d1 d3))
(fma.f64 d3 d1 (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 #s(literal 5 binary64) d1 (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(*.f64 (+.f64 d3 #s(literal 5 binary64)) d1)
(*.f64 d1 #s(literal 32 binary64))
(*.f64 #s(literal 32 binary64) d1)

simplify211.0ms (5.5%)

Algorithm
egg-herbie
Rules
2618×*-lowering-*.f32
2618×*-lowering-*.f64
1382×fma-lowering-fma.f32
1382×fma-lowering-fma.f64
1322×fmsub-define
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01281157
14801042
216061021
350561015
084571015
Stop Event
iter limit
node limit
Counts
204 → 204
Calls
Call 1
Inputs
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 d3))
(+ (* d1 d2) (* d1 (+ 37 d3)))
(+ (* d1 d2) (* d1 (+ 37 d3)))
(+ (* d1 d2) (* d1 (+ 37 d3)))
(* d1 d2)
(* d2 (+ d1 (/ (* d1 (+ 37 d3)) d2)))
(* d2 (+ d1 (/ (* d1 (+ 37 d3)) d2)))
(* d2 (+ d1 (/ (* d1 (+ 37 d3)) d2)))
(* d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d3)) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d3)) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d3)) d2)))))
(* d1 (+ 37 d2))
(+ (* d1 d3) (* d1 (+ 37 d2)))
(+ (* d1 d3) (* d1 (+ 37 d2)))
(+ (* d1 d3) (* d1 (+ 37 d2)))
(* d1 d3)
(* d3 (+ d1 (/ (* d1 (+ 37 d2)) d3)))
(* d3 (+ d1 (/ (* d1 (+ 37 d2)) d3)))
(* d3 (+ d1 (/ (* d1 (+ 37 d2)) d3)))
(* d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d2)) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d2)) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d2)) d3)))))
(+ 37 d3)
(+ 37 (+ d2 d3))
(+ 37 (+ d2 d3))
(+ 37 (+ d2 d3))
d2
(* d2 (+ 1 (+ (* 37 (/ 1 d2)) (/ d3 d2))))
(* d2 (+ 1 (+ (* 37 (/ 1 d2)) (/ d3 d2))))
(* d2 (+ 1 (+ (* 37 (/ 1 d2)) (/ d3 d2))))
d2
(* -1 (* d2 (- (* -1 (/ (+ 37 d3) d2)) 1)))
(* -1 (* d2 (- (* -1 (/ (+ 37 d3) d2)) 1)))
(* -1 (* d2 (- (* -1 (/ (+ 37 d3) d2)) 1)))
(+ 37 d2)
(+ 37 (+ d2 d3))
(+ 37 (+ d2 d3))
(+ 37 (+ d2 d3))
d3
(* d3 (+ 1 (+ (* 37 (/ 1 d3)) (/ d2 d3))))
(* d3 (+ 1 (+ (* 37 (/ 1 d3)) (/ d2 d3))))
(* d3 (+ 1 (+ (* 37 (/ 1 d3)) (/ d2 d3))))
d3
(* -1 (* d3 (- (* -1 (/ (+ 37 d2) d3)) 1)))
(* -1 (* d3 (- (* -1 (/ (+ 37 d2) d3)) 1)))
(* -1 (* d3 (- (* -1 (/ (+ 37 d2) d3)) 1)))
37
(+ 37 d3)
(+ 37 d3)
(+ 37 d3)
d3
(* d3 (+ 1 (* 37 (/ 1 d3))))
(* d3 (+ 1 (* 37 (/ 1 d3))))
(* d3 (+ 1 (* 37 (/ 1 d3))))
d3
(* d3 (+ 1 (* 37 (/ 1 d3))))
(* d3 (+ 1 (* 37 (/ 1 d3))))
(* d3 (+ 1 (* 37 (/ 1 d3))))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))
(* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))
(* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))
(* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))
(+ (* 32 d1) (* d1 (+ 5 d3)))
(+ (* 32 d1) (+ (* d1 d2) (* d1 (+ 5 d3))))
(+ (* 32 d1) (+ (* d1 d2) (* d1 (+ 5 d3))))
(+ (* 32 d1) (+ (* d1 d2) (* d1 (+ 5 d3))))
(* d1 d2)
(* d2 (+ d1 (+ (* 32 (/ d1 d2)) (/ (* d1 (+ 5 d3)) d2))))
(* d2 (+ d1 (+ (* 32 (/ d1 d2)) (/ (* d1 (+ 5 d3)) d2))))
(* d2 (+ d1 (+ (* 32 (/ d1 d2)) (/ (* d1 (+ 5 d3)) d2))))
(* d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 32 d1) (* d1 (+ 5 d3))) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 32 d1) (* d1 (+ 5 d3))) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 32 d1) (* d1 (+ 5 d3))) d2)))))
(+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))
(+ (* 5 d1) (+ (* 32 d1) (+ (* d1 d2) (* d1 d3))))
(+ (* 5 d1) (+ (* 32 d1) (+ (* d1 d2) (* d1 d3))))
(+ (* 5 d1) (+ (* 32 d1) (+ (* d1 d2) (* d1 d3))))
(* d1 d3)
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (+ (* 32 (/ d1 d3)) (/ (* d1 d2) d3)))))
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (+ (* 32 (/ d1 d3)) (/ (* d1 d2) d3)))))
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (+ (* 32 (/ d1 d3)) (/ (* d1 d2) d3)))))
(* d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (+ (* 32 d1) (* d1 d2))) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (+ (* 32 d1) (* d1 d2))) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (+ (* 32 d1) (* d1 d2))) d3)))))
(* d1 (+ 5 (+ d2 d3)))
(* d1 (+ 5 (+ d2 d3)))
(* d1 (+ 5 (+ d2 d3)))
(* d1 (+ 5 (+ d2 d3)))
(* d1 (+ 5 (+ d2 d3)))
(* d1 (+ 5 (+ d2 d3)))
(* d1 (+ 5 (+ d2 d3)))
(* d1 (+ 5 (+ d2 d3)))
(* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))
(* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))
(* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))
(* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))
(* d1 (+ 5 d3))
(+ (* d1 d2) (* d1 (+ 5 d3)))
(+ (* d1 d2) (* d1 (+ 5 d3)))
(+ (* d1 d2) (* d1 (+ 5 d3)))
(* d1 d2)
(* d2 (+ d1 (/ (* d1 (+ 5 d3)) d2)))
(* d2 (+ d1 (/ (* d1 (+ 5 d3)) d2)))
(* d2 (+ d1 (/ (* d1 (+ 5 d3)) d2)))
(* d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 5 d3)) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 5 d3)) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 5 d3)) d2)))))
(+ (* 5 d1) (* d1 d2))
(+ (* 5 d1) (+ (* d1 d2) (* d1 d3)))
(+ (* 5 d1) (+ (* d1 d2) (* d1 d3)))
(+ (* 5 d1) (+ (* d1 d2) (* d1 d3)))
(* d1 d3)
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (/ (* d1 d2) d3))))
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (/ (* d1 d2) d3))))
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (/ (* d1 d2) d3))))
(* d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* d1 d2)) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* d1 d2)) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* d1 d2)) d3)))))
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* 5 d1)
(+ (* 5 d1) (* d1 d3))
(+ (* 5 d1) (* d1 d3))
(+ (* 5 d1) (* d1 d3))
(* d1 d3)
(* d3 (+ d1 (* 5 (/ d1 d3))))
(* d3 (+ d1 (* 5 (/ d1 d3))))
(* d3 (+ d1 (* 5 (/ d1 d3))))
(* d1 d3)
(* -1 (* d3 (+ (* -5 (/ d1 d3)) (* -1 d1))))
(* -1 (* d3 (+ (* -5 (/ d1 d3)) (* -1 d1))))
(* -1 (* d3 (+ (* -5 (/ d1 d3)) (* -1 d1))))
(* d1 (+ 5 d3))
(* d1 (+ 5 d3))
(* d1 (+ 5 d3))
(* d1 (+ 5 d3))
(* d1 (+ 5 d3))
(* d1 (+ 5 d3))
(* d1 (+ 5 d3))
(* d1 (+ 5 d3))
(* d1 (+ 5 d3))
(* d1 (+ 5 d3))
(* d1 (+ 5 d3))
(* d1 (+ 5 d3))
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
Outputs
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(+ (* d1 d2) (* d1 (+ 37 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(+ (* d1 d2) (* d1 (+ 37 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(+ (* d1 d2) (* d1 (+ 37 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 d2)
(*.f64 d1 d2)
(* d2 (+ d1 (/ (* d1 (+ 37 d3)) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d2 (+ d1 (/ (* d1 (+ 37 d3)) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d2 (+ d1 (/ (* d1 (+ 37 d3)) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 d2)
(*.f64 d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d3)) d2)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d3)) d2)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d3)) d2)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(+ (* d1 d3) (* d1 (+ 37 d2)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(+ (* d1 d3) (* d1 (+ 37 d2)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(+ (* d1 d3) (* d1 (+ 37 d2)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 d3)
(*.f64 d1 d3)
(* d3 (+ d1 (/ (* d1 (+ 37 d2)) d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d3 (+ d1 (/ (* d1 (+ 37 d2)) d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d3 (+ d1 (/ (* d1 (+ 37 d2)) d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 d3)
(*.f64 d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d2)) d3)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d2)) d3)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 (+ 37 d2)) d3)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(+ 37 d3)
(+.f64 #s(literal 37 binary64) d3)
(+ 37 (+ d2 d3))
(+.f64 d2 (+.f64 #s(literal 37 binary64) d3))
(+ 37 (+ d2 d3))
(+.f64 d2 (+.f64 #s(literal 37 binary64) d3))
(+ 37 (+ d2 d3))
(+.f64 d2 (+.f64 #s(literal 37 binary64) d3))
d2
(* d2 (+ 1 (+ (* 37 (/ 1 d2)) (/ d3 d2))))
(+.f64 #s(literal 37 binary64) (*.f64 d2 (+.f64 #s(literal 1 binary64) (/.f64 d3 d2))))
(* d2 (+ 1 (+ (* 37 (/ 1 d2)) (/ d3 d2))))
(+.f64 #s(literal 37 binary64) (*.f64 d2 (+.f64 #s(literal 1 binary64) (/.f64 d3 d2))))
(* d2 (+ 1 (+ (* 37 (/ 1 d2)) (/ d3 d2))))
(+.f64 #s(literal 37 binary64) (*.f64 d2 (+.f64 #s(literal 1 binary64) (/.f64 d3 d2))))
d2
(* -1 (* d2 (- (* -1 (/ (+ 37 d3) d2)) 1)))
(*.f64 d2 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 #s(literal 37 binary64) d3) d2)))
(* -1 (* d2 (- (* -1 (/ (+ 37 d3) d2)) 1)))
(*.f64 d2 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 #s(literal 37 binary64) d3) d2)))
(* -1 (* d2 (- (* -1 (/ (+ 37 d3) d2)) 1)))
(*.f64 d2 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 #s(literal 37 binary64) d3) d2)))
(+ 37 d2)
(+.f64 #s(literal 37 binary64) d2)
(+ 37 (+ d2 d3))
(+.f64 d2 (+.f64 #s(literal 37 binary64) d3))
(+ 37 (+ d2 d3))
(+.f64 d2 (+.f64 #s(literal 37 binary64) d3))
(+ 37 (+ d2 d3))
(+.f64 d2 (+.f64 #s(literal 37 binary64) d3))
d3
(* d3 (+ 1 (+ (* 37 (/ 1 d3)) (/ d2 d3))))
(+.f64 #s(literal 37 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d3)) d3))
(* d3 (+ 1 (+ (* 37 (/ 1 d3)) (/ d2 d3))))
(+.f64 #s(literal 37 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d3)) d3))
(* d3 (+ 1 (+ (* 37 (/ 1 d3)) (/ d2 d3))))
(+.f64 #s(literal 37 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d3)) d3))
d3
(* -1 (* d3 (- (* -1 (/ (+ 37 d2) d3)) 1)))
(*.f64 d3 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 #s(literal 37 binary64) d2) d3)))
(* -1 (* d3 (- (* -1 (/ (+ 37 d2) d3)) 1)))
(*.f64 d3 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 #s(literal 37 binary64) d2) d3)))
(* -1 (* d3 (- (* -1 (/ (+ 37 d2) d3)) 1)))
(*.f64 d3 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 #s(literal 37 binary64) d2) d3)))
37
#s(literal 37 binary64)
(+ 37 d3)
(+.f64 #s(literal 37 binary64) d3)
(+ 37 d3)
(+.f64 #s(literal 37 binary64) d3)
(+ 37 d3)
(+.f64 #s(literal 37 binary64) d3)
d3
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
d3
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d1 (- (+ (* -1 d2) (* -1 (+ 5 d3))) 32)))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(+ (* 32 d1) (* d1 (+ 5 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(+ (* 32 d1) (+ (* d1 d2) (* d1 (+ 5 d3))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(+ (* 32 d1) (+ (* d1 d2) (* d1 (+ 5 d3))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(+ (* 32 d1) (+ (* d1 d2) (* d1 (+ 5 d3))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 d2)
(*.f64 d1 d2)
(* d2 (+ d1 (+ (* 32 (/ d1 d2)) (/ (* d1 (+ 5 d3)) d2))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d2 (+ d1 (+ (* 32 (/ d1 d2)) (/ (* d1 (+ 5 d3)) d2))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d2 (+ d1 (+ (* 32 (/ d1 d2)) (/ (* d1 (+ 5 d3)) d2))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 d2)
(*.f64 d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 32 d1) (* d1 (+ 5 d3))) d2)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 32 d1) (* d1 (+ 5 d3))) d2)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 32 d1) (* d1 (+ 5 d3))) d2)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(+ (* 5 d1) (+ (* 32 d1) (+ (* d1 d2) (* d1 d3))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(+ (* 5 d1) (+ (* 32 d1) (+ (* d1 d2) (* d1 d3))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(+ (* 5 d1) (+ (* 32 d1) (+ (* d1 d2) (* d1 d3))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 d3)
(*.f64 d1 d3)
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (+ (* 32 (/ d1 d3)) (/ (* d1 d2) d3)))))
(*.f64 d3 (+.f64 (/.f64 (*.f64 d1 #s(literal 37 binary64)) d3) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d3)) d1)))
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (+ (* 32 (/ d1 d3)) (/ (* d1 d2) d3)))))
(*.f64 d3 (+.f64 (/.f64 (*.f64 d1 #s(literal 37 binary64)) d3) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d3)) d1)))
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (+ (* 32 (/ d1 d3)) (/ (* d1 d2) d3)))))
(*.f64 d3 (+.f64 (/.f64 (*.f64 d1 #s(literal 37 binary64)) d3) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d3)) d1)))
(* d1 d3)
(*.f64 d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (+ (* 32 d1) (* d1 d2))) d3)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (+ (* 32 d1) (* d1 d2))) d3)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (+ (* 32 d1) (* d1 d2))) d3)))))
(*.f64 d1 (+.f64 d2 (+.f64 #s(literal 37 binary64) d3)))
(* d1 (+ 5 (+ d2 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 (+ 5 (+ d2 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 (+ 5 (+ d2 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 (+ 5 (+ d2 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 (+ 5 (+ d2 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 (+ 5 (+ d2 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 (+ 5 (+ d2 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 (+ 5 (+ d2 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* -1 (* d1 (+ (* -1 d2) (* -1 (+ 5 d3)))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(+ (* d1 d2) (* d1 (+ 5 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(+ (* d1 d2) (* d1 (+ 5 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(+ (* d1 d2) (* d1 (+ 5 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 d2)
(*.f64 d1 d2)
(* d2 (+ d1 (/ (* d1 (+ 5 d3)) d2)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d2 (+ d1 (/ (* d1 (+ 5 d3)) d2)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d2 (+ d1 (/ (* d1 (+ 5 d3)) d2)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 d2)
(*.f64 d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 5 d3)) d2)))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 5 d3)) d2)))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 (+ 5 d3)) d2)))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(+ (* 5 d1) (* d1 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(+ (* 5 d1) (+ (* d1 d2) (* d1 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(+ (* 5 d1) (+ (* d1 d2) (* d1 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(+ (* 5 d1) (+ (* d1 d2) (* d1 d3)))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 d3)
(*.f64 d1 d3)
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (/ (* d1 d2) d3))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (/ (* d1 d2) d3))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d3 (+ d1 (+ (* 5 (/ d1 d3)) (/ (* d1 d2) d3))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 d3)
(*.f64 d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* d1 d2)) d3)))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* d1 d2)) d3)))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* d1 d2)) d3)))))
(*.f64 d1 (-.f64 d2 (-.f64 #s(literal -5 binary64) d3)))
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* 5 d1)
(*.f64 d1 #s(literal 5 binary64))
(+ (* 5 d1) (* d1 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(+ (* 5 d1) (* d1 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(+ (* 5 d1) (* d1 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 d3)
(*.f64 d1 d3)
(* d3 (+ d1 (* 5 (/ d1 d3))))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d3 (+ d1 (* 5 (/ d1 d3))))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d3 (+ d1 (* 5 (/ d1 d3))))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 d3)
(*.f64 d1 d3)
(* -1 (* d3 (+ (* -5 (/ d1 d3)) (* -1 d1))))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* -1 (* d3 (+ (* -5 (/ d1 d3)) (* -1 d1))))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* -1 (* d3 (+ (* -5 (/ d1 d3)) (* -1 d1))))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* d1 (+ 5 d3))
(*.f64 d1 (+.f64 d3 #s(literal 5 binary64)))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))

eval36.0ms (0.9%)

Compiler

Compiled 3311 to 218 computations (93.4% saved)

prune36.0ms (1%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New3377344
Fresh000
Picked112
Done000
Total3388346
Accuracy
100.0%
Counts
346 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
66.2%
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 #s(literal 32 binary64)))
100.0%
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
69.6%
(*.f64 d1 (+.f64 d2 d3))
66.2%
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
66.7%
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
38.1%
(*.f64 d1 d3)
35.9%
(*.f64 d1 d2)
Compiler

Compiled 130 to 91 computations (30% saved)

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Localize:

Found 10 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 d2 #s(literal 37 binary64))
cost-diff0
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
cost-diff0
(+.f64 #s(literal 37 binary64) d3)
cost-diff0
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
cost-diff0
(*.f64 d1 d3)
cost-diff0
(*.f64 d1 d2)
cost-diff0
(*.f64 d1 #s(literal 37 binary64))
cost-diff0
(+.f64 d2 d3)
cost-diff0
(*.f64 d1 (+.f64 d2 d3))
cost-diff128
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
Rules
48×fma-lowering-fma.f32
48×fma-define
48×+-lowering-+.f64
48×+-lowering-+.f32
48×fma-lowering-fma.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01454
13353
25553
37353
48353
08353
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(+ (* d1 (+ d2 d3)) (* d1 37))
(* d1 (+ d2 d3))
d1
(+ d2 d3)
d2
d3
(* d1 37)
37
(* d1 d2)
d1
d2
(* d1 d3)
d1
d3
(* d1 (+ 37 d3))
d1
(+ 37 d3)
37
d3
(* d1 (+ d2 37))
d1
(+ d2 37)
d2
37
Outputs
(+ (* d1 (+ d2 d3)) (* d1 37))
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
d1
(+ d2 d3)
(+.f64 d2 d3)
d2
d3
(* d1 37)
(*.f64 d1 #s(literal 37 binary64))
37
#s(literal 37 binary64)
(* d1 d2)
(*.f64 d1 d2)
d1
d2
(* d1 d3)
(*.f64 d1 d3)
d1
d3
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
d1
(+ 37 d3)
(+.f64 d3 #s(literal 37 binary64))
37
#s(literal 37 binary64)
d3
(* d1 (+ d2 37))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
d1
(+ d2 37)
(+.f64 d2 #s(literal 37 binary64))
d2
37
#s(literal 37 binary64)

localize94.0ms (2.5%)

Localize:

Found 10 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(+.f64 d2 #s(literal 37 binary64))
accuracy100.0%
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
accuracy100.0%
(+.f64 #s(literal 37 binary64) d3)
accuracy100.0%
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
accuracy100.0%
(*.f64 d1 d3)
accuracy100.0%
(*.f64 d1 d2)
accuracy100.0%
(+.f64 d2 d3)
accuracy100.0%
(*.f64 d1 #s(literal 37 binary64))
accuracy100.0%
(*.f64 d1 (+.f64 d2 d3))
accuracy100.0%
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
Results
74.0ms254×0valid
1.0ms2valid
Compiler

Compiled 60 to 15 computations (75% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-mult: 9.0ms (55.8% of total)
ival-add: 6.0ms (37.2% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series15.0ms (0.4%)

Counts
10 → 228
Calls
Call 1
Inputs
#<alt (+ (* d1 (+ d2 d3)) (* d1 37))>
#<alt (* d1 (+ d2 d3))>
#<alt (+ d2 d3)>
#<alt (* d1 37)>
#<alt (* d1 d2)>
#<alt (* d1 d3)>
#<alt (* d1 (+ 37 d3))>
#<alt (+ 37 d3)>
#<alt (* d1 (+ d2 37))>
#<alt (+ d2 37)>
Outputs
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* d1 (+ 37 (+ d2 d3)))>
#<alt (* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))>
#<alt (* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))>
#<alt (* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))>
#<alt (* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))>
#<alt (+ (* 37 d1) (* d1 d3))>
#<alt (+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))>
#<alt (+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))>
#<alt (+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))>
#<alt (* d1 d2)>
#<alt (* d2 (+ d1 (+ (* 37 (/ d1 d2)) (/ (* d1 d3) d2))))>
#<alt (* d2 (+ d1 (+ (* 37 (/ d1 d2)) (/ (* d1 d3) d2))))>
#<alt (* d2 (+ d1 (+ (* 37 (/ d1 d2)) (/ (* d1 d3) d2))))>
#<alt (* d1 d2)>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d3)) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d3)) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d3)) d2)))))>
#<alt (+ (* 37 d1) (* d1 d2))>
#<alt (+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))>
#<alt (+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))>
#<alt (+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))>
#<alt (* d1 d3)>
#<alt (* d3 (+ d1 (+ (* 37 (/ d1 d3)) (/ (* d1 d2) d3))))>
#<alt (* d3 (+ d1 (+ (* 37 (/ d1 d3)) (/ (* d1 d2) d3))))>
#<alt (* d3 (+ d1 (+ (* 37 (/ d1 d3)) (/ (* d1 d2) d3))))>
#<alt (* d1 d3)>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d2)) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d2)) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d2)) d3)))))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 d3)>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (* d1 d2)>
#<alt (* d2 (+ d1 (/ (* d1 d3) d2)))>
#<alt (* d2 (+ d1 (/ (* d1 d3) d2)))>
#<alt (* d2 (+ d1 (/ (* d1 d3) d2)))>
#<alt (* d1 d2)>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))>
#<alt (* d1 d2)>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (* d1 d3)>
#<alt (* d3 (+ d1 (/ (* d1 d2) d3)))>
#<alt (* d3 (+ d1 (/ (* d1 d2) d3)))>
#<alt (* d3 (+ d1 (/ (* d1 d2) d3)))>
#<alt (* d1 d3)>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))>
#<alt d3>
#<alt (+ d2 d3)>
#<alt (+ d2 d3)>
#<alt (+ d2 d3)>
#<alt d2>
#<alt (* d2 (+ 1 (/ d3 d2)))>
#<alt (* d2 (+ 1 (/ d3 d2)))>
#<alt (* d2 (+ 1 (/ d3 d2)))>
#<alt d2>
#<alt (* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))>
#<alt (* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))>
#<alt (* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))>
#<alt d2>
#<alt (+ d2 d3)>
#<alt (+ d2 d3)>
#<alt (+ d2 d3)>
#<alt d3>
#<alt (* d3 (+ 1 (/ d2 d3)))>
#<alt (* d3 (+ 1 (/ d2 d3)))>
#<alt (* d3 (+ 1 (/ d2 d3)))>
#<alt d3>
#<alt (* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))>
#<alt (* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))>
#<alt (* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* 37 d1)>
#<alt (+ (* 37 d1) (* d1 d3))>
#<alt (+ (* 37 d1) (* d1 d3))>
#<alt (+ (* 37 d1) (* d1 d3))>
#<alt (* d1 d3)>
#<alt (* d3 (+ d1 (* 37 (/ d1 d3))))>
#<alt (* d3 (+ d1 (* 37 (/ d1 d3))))>
#<alt (* d3 (+ d1 (* 37 (/ d1 d3))))>
#<alt (* d1 d3)>
#<alt (* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))>
#<alt (* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))>
#<alt (* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))>
#<alt 37>
#<alt (+ 37 d3)>
#<alt (+ 37 d3)>
#<alt (+ 37 d3)>
#<alt d3>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt d3>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt (* d3 (+ 1 (* 37 (/ 1 d3))))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* 37 d1)>
#<alt (+ (* 37 d1) (* d1 d2))>
#<alt (+ (* 37 d1) (* d1 d2))>
#<alt (+ (* 37 d1) (* d1 d2))>
#<alt (* d1 d2)>
#<alt (* d2 (+ d1 (* 37 (/ d1 d2))))>
#<alt (* d2 (+ d1 (* 37 (/ d1 d2))))>
#<alt (* d2 (+ d1 (* 37 (/ d1 d2))))>
#<alt (* d1 d2)>
#<alt (* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))>
#<alt (* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))>
#<alt (* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))>
#<alt 37>
#<alt (+ 37 d2)>
#<alt (+ 37 d2)>
#<alt (+ 37 d2)>
#<alt d2>
#<alt (* d2 (+ 1 (* 37 (/ 1 d2))))>
#<alt (* d2 (+ 1 (* 37 (/ 1 d2))))>
#<alt (* d2 (+ 1 (* 37 (/ 1 d2))))>
#<alt d2>
#<alt (* d2 (+ 1 (* 37 (/ 1 d2))))>
#<alt (* d2 (+ 1 (* 37 (/ 1 d2))))>
#<alt (* d2 (+ 1 (* 37 (/ 1 d2))))>
Calls

57 calls:

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

rewrite19.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
48×fma-lowering-fma.f32
48×fma-define
48×+-lowering-+.f64
48×+-lowering-+.f32
48×fma-lowering-fma.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01440
13339
25539
37339
48339
08339
Stop Event
iter limit
saturated
Counts
10 → 56
Calls
Call 1
Inputs
(+ (* d1 (+ d2 d3)) (* d1 37))
(* d1 (+ d2 d3))
(+ d2 d3)
(* d1 37)
(* d1 d2)
(* d1 d3)
(* d1 (+ 37 d3))
(+ 37 d3)
(* d1 (+ d2 37))
(+ d2 37)
Outputs
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
(+.f64 (*.f64 d1 #s(literal 37 binary64)) (*.f64 d1 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))))
(+.f64 (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))) (*.f64 d1 d3))
(fma.f64 d1 d2 (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))))
(fma.f64 d1 d3 (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))))
(fma.f64 d1 (+.f64 d2 d3) (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 d1 #s(literal 37 binary64) (*.f64 d1 (+.f64 d2 d3)))
(fma.f64 d1 (+.f64 d3 #s(literal 37 binary64)) (*.f64 d1 d2))
(fma.f64 d1 (+.f64 d2 #s(literal 37 binary64)) (*.f64 d1 d3))
(fma.f64 d2 d1 (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))))
(fma.f64 d3 d1 (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))))
(fma.f64 (+.f64 d2 d3) d1 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 #s(literal 37 binary64) d1 (*.f64 d1 (+.f64 d2 d3)))
(fma.f64 (+.f64 d3 #s(literal 37 binary64)) d1 (*.f64 d1 d2))
(fma.f64 (+.f64 d2 #s(literal 37 binary64)) d1 (*.f64 d1 d3))
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
(*.f64 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))) d1)
(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(+.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(fma.f64 d1 d2 (*.f64 d1 d3))
(fma.f64 d1 d3 (*.f64 d1 d2))
(fma.f64 d2 d1 (*.f64 d1 d3))
(fma.f64 d3 d1 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 d3))
(*.f64 (+.f64 d2 d3) d1)
(+.f64 d2 d3)
(+.f64 d3 d2)
(*.f64 d1 #s(literal 37 binary64))
(*.f64 #s(literal 37 binary64) d1)
(*.f64 d1 d2)
(*.f64 d2 d1)
(*.f64 d1 d3)
(*.f64 d3 d1)
(+.f64 (*.f64 d1 #s(literal 37 binary64)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 d3) (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 d1 d3 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 d1 #s(literal 37 binary64) (*.f64 d1 d3))
(fma.f64 d3 d1 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 #s(literal 37 binary64) d1 (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(*.f64 (+.f64 d3 #s(literal 37 binary64)) d1)
(+.f64 d3 #s(literal 37 binary64))
(+.f64 #s(literal 37 binary64) d3)
(+.f64 (*.f64 d1 #s(literal 37 binary64)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 d1 d2 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 d1 #s(literal 37 binary64) (*.f64 d1 d2))
(fma.f64 d2 d1 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 #s(literal 37 binary64) d1 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(*.f64 (+.f64 d2 #s(literal 37 binary64)) d1)
(+.f64 d2 #s(literal 37 binary64))
(+.f64 #s(literal 37 binary64) d2)

simplify413.0ms (10.8%)

Algorithm
egg-herbie
Rules
2788×*-lowering-*.f32
2788×*-lowering-*.f64
1692×fmsub-define
1436×fnmsub-define
1376×sum3-define
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
095928
1344898
21059898
33449898
47974898
08587898
Stop Event
iter limit
node limit
Counts
228 → 228
Calls
Call 1
Inputs
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))
(* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))
(* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))
(* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))
(+ (* 37 d1) (* d1 d3))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(* d1 d2)
(* d2 (+ d1 (+ (* 37 (/ d1 d2)) (/ (* d1 d3) d2))))
(* d2 (+ d1 (+ (* 37 (/ d1 d2)) (/ (* d1 d3) d2))))
(* d2 (+ d1 (+ (* 37 (/ d1 d2)) (/ (* d1 d3) d2))))
(* d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d3)) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d3)) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d3)) d2)))))
(+ (* 37 d1) (* d1 d2))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(* d1 d3)
(* d3 (+ d1 (+ (* 37 (/ d1 d3)) (/ (* d1 d2) d3))))
(* d3 (+ d1 (+ (* 37 (/ d1 d3)) (/ (* d1 d2) d3))))
(* d3 (+ d1 (+ (* 37 (/ d1 d3)) (/ (* d1 d2) d3))))
(* d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d2)) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d2)) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d2)) d3)))))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 d3)
(+ (* d1 d2) (* d1 d3))
(+ (* d1 d2) (* d1 d3))
(+ (* d1 d2) (* d1 d3))
(* d1 d2)
(* d2 (+ d1 (/ (* d1 d3) d2)))
(* d2 (+ d1 (/ (* d1 d3) d2)))
(* d2 (+ d1 (/ (* d1 d3) d2)))
(* d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(* d1 d2)
(+ (* d1 d2) (* d1 d3))
(+ (* d1 d2) (* d1 d3))
(+ (* d1 d2) (* d1 d3))
(* d1 d3)
(* d3 (+ d1 (/ (* d1 d2) d3)))
(* d3 (+ d1 (/ (* d1 d2) d3)))
(* d3 (+ d1 (/ (* d1 d2) d3)))
(* d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
d3
(+ d2 d3)
(+ d2 d3)
(+ d2 d3)
d2
(* d2 (+ 1 (/ d3 d2)))
(* d2 (+ 1 (/ d3 d2)))
(* d2 (+ 1 (/ d3 d2)))
d2
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
d2
(+ d2 d3)
(+ d2 d3)
(+ d2 d3)
d3
(* d3 (+ 1 (/ d2 d3)))
(* d3 (+ 1 (/ d2 d3)))
(* d3 (+ 1 (/ d2 d3)))
d3
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* 37 d1)
(+ (* 37 d1) (* d1 d3))
(+ (* 37 d1) (* d1 d3))
(+ (* 37 d1) (* d1 d3))
(* d1 d3)
(* d3 (+ d1 (* 37 (/ d1 d3))))
(* d3 (+ d1 (* 37 (/ d1 d3))))
(* d3 (+ d1 (* 37 (/ d1 d3))))
(* d1 d3)
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
37
(+ 37 d3)
(+ 37 d3)
(+ 37 d3)
d3
(* d3 (+ 1 (* 37 (/ 1 d3))))
(* d3 (+ 1 (* 37 (/ 1 d3))))
(* d3 (+ 1 (* 37 (/ 1 d3))))
d3
(* d3 (+ 1 (* 37 (/ 1 d3))))
(* d3 (+ 1 (* 37 (/ 1 d3))))
(* d3 (+ 1 (* 37 (/ 1 d3))))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* 37 d1)
(+ (* 37 d1) (* d1 d2))
(+ (* 37 d1) (* d1 d2))
(+ (* 37 d1) (* d1 d2))
(* d1 d2)
(* d2 (+ d1 (* 37 (/ d1 d2))))
(* d2 (+ d1 (* 37 (/ d1 d2))))
(* d2 (+ d1 (* 37 (/ d1 d2))))
(* d1 d2)
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
37
(+ 37 d2)
(+ 37 d2)
(+ 37 d2)
d2
(* d2 (+ 1 (* 37 (/ 1 d2))))
(* d2 (+ 1 (* 37 (/ 1 d2))))
(* d2 (+ 1 (* 37 (/ 1 d2))))
d2
(* d2 (+ 1 (* 37 (/ 1 d2))))
(* d2 (+ 1 (* 37 (/ 1 d2))))
(* d2 (+ 1 (* 37 (/ 1 d2))))
Outputs
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 (+ 37 (+ d2 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* -1 (* d1 (- (* -1 (+ d2 d3)) 37)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(+ (* 37 d1) (* d1 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 d2)
(*.f64 d1 d2)
(* d2 (+ d1 (+ (* 37 (/ d1 d2)) (/ (* d1 d3) d2))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d2 (+ d1 (+ (* 37 (/ d1 d2)) (/ (* d1 d3) d2))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d2 (+ d1 (+ (* 37 (/ d1 d2)) (/ (* d1 d3) d2))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 d2)
(*.f64 d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d3)) d2)))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d3)) d2)))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d3)) d2)))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(+ (* 37 d1) (* d1 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(+ (* 37 d1) (+ (* d1 d2) (* d1 d3)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 d3)
(*.f64 d1 d3)
(* d3 (+ d1 (+ (* 37 (/ d1 d3)) (/ (* d1 d2) d3))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d3 (+ d1 (+ (* 37 (/ d1 d3)) (/ (* d1 d2) d3))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d3 (+ d1 (+ (* 37 (/ d1 d3)) (/ (* d1 d2) d3))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 d3)
(*.f64 d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d2)) d3)))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d2)) d3)))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (+ (* 37 d1) (* d1 d2)) d3)))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) (+.f64 d2 d3)))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d3)
(*.f64 d1 d3)
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d2)
(*.f64 d1 d2)
(* d2 (+ d1 (/ (* d1 d3) d2)))
(*.f64 d1 (+.f64 d2 d3))
(* d2 (+ d1 (/ (* d1 d3) d2)))
(*.f64 d1 (+.f64 d2 d3))
(* d2 (+ d1 (/ (* d1 d3) d2)))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d2)
(*.f64 d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(*.f64 d1 (+.f64 d2 d3))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(*.f64 d1 (+.f64 d2 d3))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d2)
(*.f64 d1 d2)
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d3)
(*.f64 d1 d3)
(* d3 (+ d1 (/ (* d1 d2) d3)))
(*.f64 d1 (+.f64 d2 d3))
(* d3 (+ d1 (/ (* d1 d2) d3)))
(*.f64 d1 (+.f64 d2 d3))
(* d3 (+ d1 (/ (* d1 d2) d3)))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d3)
(*.f64 d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
(*.f64 d1 (+.f64 d2 d3))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
(*.f64 d1 (+.f64 d2 d3))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
(*.f64 d1 (+.f64 d2 d3))
d3
(+ d2 d3)
(+.f64 d2 d3)
(+ d2 d3)
(+.f64 d2 d3)
(+ d2 d3)
(+.f64 d2 d3)
d2
(* d2 (+ 1 (/ d3 d2)))
(+.f64 d2 d3)
(* d2 (+ 1 (/ d3 d2)))
(+.f64 d2 d3)
(* d2 (+ 1 (/ d3 d2)))
(+.f64 d2 d3)
d2
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
(+.f64 d2 d3)
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
(+.f64 d2 d3)
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
(+.f64 d2 d3)
d2
(+ d2 d3)
(+.f64 d2 d3)
(+ d2 d3)
(+.f64 d2 d3)
(+ d2 d3)
(+.f64 d2 d3)
d3
(* d3 (+ 1 (/ d2 d3)))
(+.f64 d2 d3)
(* d3 (+ 1 (/ d2 d3)))
(+.f64 d2 d3)
(* d3 (+ 1 (/ d2 d3)))
(+.f64 d2 d3)
d3
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(+.f64 d2 d3)
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(+.f64 d2 d3)
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(+.f64 d2 d3)
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(+ (* 37 d1) (* d1 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(+ (* 37 d1) (* d1 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(+ (* 37 d1) (* d1 d3))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 d3)
(*.f64 d1 d3)
(* d3 (+ d1 (* 37 (/ d1 d3))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d3 (+ d1 (* 37 (/ d1 d3))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d3 (+ d1 (* 37 (/ d1 d3))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* d1 d3)
(*.f64 d1 d3)
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
37
#s(literal 37 binary64)
(+ 37 d3)
(+.f64 #s(literal 37 binary64) d3)
(+ 37 d3)
(+.f64 #s(literal 37 binary64) d3)
(+ 37 d3)
(+.f64 #s(literal 37 binary64) d3)
d3
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
d3
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
(* d3 (+ 1 (* 37 (/ 1 d3))))
(+.f64 #s(literal 37 binary64) d3)
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(+ (* 37 d1) (* d1 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(+ (* 37 d1) (* d1 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(+ (* 37 d1) (* d1 d2))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 d2)
(*.f64 d1 d2)
(* d2 (+ d1 (* 37 (/ d1 d2))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d2 (+ d1 (* 37 (/ d1 d2))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d2 (+ d1 (* 37 (/ d1 d2))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* d1 d2)
(*.f64 d1 d2)
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d2))
37
#s(literal 37 binary64)
(+ 37 d2)
(+.f64 #s(literal 37 binary64) d2)
(+ 37 d2)
(+.f64 #s(literal 37 binary64) d2)
(+ 37 d2)
(+.f64 #s(literal 37 binary64) d2)
d2
(* d2 (+ 1 (* 37 (/ 1 d2))))
(+.f64 #s(literal 37 binary64) d2)
(* d2 (+ 1 (* 37 (/ 1 d2))))
(+.f64 #s(literal 37 binary64) d2)
(* d2 (+ 1 (* 37 (/ 1 d2))))
(+.f64 #s(literal 37 binary64) d2)
d2
(* d2 (+ 1 (* 37 (/ 1 d2))))
(+.f64 #s(literal 37 binary64) d2)
(* d2 (+ 1 (* 37 (/ 1 d2))))
(+.f64 #s(literal 37 binary64) d2)
(* d2 (+ 1 (* 37 (/ 1 d2))))
(+.f64 #s(literal 37 binary64) d2)

eval31.0ms (0.8%)

Compiler

Compiled 1747 to 75 computations (95.7% saved)

prune14.0ms (0.4%)

Pruning

11 alts after pruning (5 fresh and 6 done)

PrunedKeptTotal
New2813284
Fresh022
Picked055
Done011
Total28111292
Accuracy
100.0%
Counts
292 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
66.2%
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 #s(literal 32 binary64)))
66.7%
(+.f64 (*.f64 d1 d3) (*.f64 d1 #s(literal 37 binary64)))
66.2%
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 37 binary64)))
100.0%
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
69.6%
(*.f64 d1 (+.f64 d2 d3))
66.2%
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
66.7%
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
38.1%
(*.f64 d1 d3)
35.9%
(*.f64 d1 d2)
31.8%
(*.f64 d1 #s(literal 37 binary64))
Compiler

Compiled 142 to 101 computations (28.9% saved)

simplify11.0ms (0.3%)

Algorithm
egg-herbie
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 d1 #s(literal 32 binary64))
cost-diff0
(+.f64 d2 #s(literal 5 binary64))
cost-diff0
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
cost-diff256
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 #s(literal 32 binary64)))
cost-diff0
(*.f64 d1 #s(literal 37 binary64))
cost-diff0
(*.f64 d1 d3)
cost-diff128
(+.f64 (*.f64 d1 d3) (*.f64 d1 #s(literal 37 binary64)))
cost-diff0
(*.f64 d1 #s(literal 37 binary64))
cost-diff0
(*.f64 d1 d2)
cost-diff128
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 37 binary64)))
cost-diff0
(*.f64 d1 #s(literal 37 binary64))
cost-diff0
(+.f64 d2 d3)
cost-diff0
(*.f64 d1 (+.f64 d2 d3))
Rules
112×fma-define
96×fma-lowering-fma.f32
96×fma-lowering-fma.f64
92×+-lowering-+.f64
92×+-lowering-+.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01764
14464
28464
311064
413564
516064
618464
719164
019164
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(* d1 (+ d2 d3))
d1
(+ d2 d3)
d2
d3
(* d1 37)
d1
37
(+ (* d1 d2) (* d1 37))
(* d1 d2)
d1
d2
(* d1 37)
37
(+ (* d1 d3) (* d1 37))
(* d1 d3)
d1
d3
(* d1 37)
37
(+ (* d1 (+ d2 5)) (* d1 32))
(* d1 (+ d2 5))
d1
(+ d2 5)
d2
5
(* d1 32)
32
Outputs
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
d1
(+ d2 d3)
(+.f64 d2 d3)
d2
d3
(* d1 37)
(*.f64 d1 #s(literal 37 binary64))
d1
37
#s(literal 37 binary64)
(+ (* d1 d2) (* d1 37))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 d2)
(*.f64 d1 d2)
d1
d2
(* d1 37)
(*.f64 d1 #s(literal 37 binary64))
37
#s(literal 37 binary64)
(+ (* d1 d3) (* d1 37))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d1 d3)
(*.f64 d1 d3)
d1
d3
(* d1 37)
(*.f64 d1 #s(literal 37 binary64))
37
#s(literal 37 binary64)
(+ (* d1 (+ d2 5)) (* d1 32))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ d2 5))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
d1
(+ d2 5)
(+.f64 d2 #s(literal 5 binary64))
d2
5
#s(literal 5 binary64)
(* d1 32)
(*.f64 d1 #s(literal 32 binary64))
32
#s(literal 32 binary64)

localize136.0ms (3.6%)

Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(+.f64 d2 #s(literal 5 binary64))
accuracy100.0%
(*.f64 d1 #s(literal 32 binary64))
accuracy100.0%
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 #s(literal 32 binary64)))
accuracy99.9%
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
accuracy100.0%
(*.f64 d1 d3)
accuracy100.0%
(*.f64 d1 #s(literal 37 binary64))
accuracy100.0%
(+.f64 (*.f64 d1 d3) (*.f64 d1 #s(literal 37 binary64)))
accuracy100.0%
(*.f64 d1 d2)
accuracy100.0%
(*.f64 d1 #s(literal 37 binary64))
accuracy100.0%
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 37 binary64)))
accuracy100.0%
(*.f64 d1 #s(literal 37 binary64))
accuracy100.0%
(+.f64 d2 d3)
accuracy100.0%
(*.f64 d1 (+.f64 d2 d3))
Results
104.0ms240×0valid
6.0ms2valid
4.0ms1valid
Compiler

Compiled 76 to 18 computations (76.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 62.0ms
ival-add: 50.0ms (80.8% of total)
ival-mult: 10.0ms (16.2% of total)
const: 1.0ms (1.6% of total)
backward-pass: 1.0ms (1.6% of total)

series5.0ms (0.1%)

Counts
11 → 240
Calls
Call 1
Inputs
#<alt (* d1 (+ d2 d3))>
#<alt (+ d2 d3)>
#<alt (* d1 37)>
#<alt (+ (* d1 d2) (* d1 37))>
#<alt (* d1 d2)>
#<alt (+ (* d1 d3) (* d1 37))>
#<alt (* d1 d3)>
#<alt (+ (* d1 (+ d2 5)) (* d1 32))>
#<alt (* d1 (+ d2 5))>
#<alt (+ d2 5)>
#<alt (* d1 32)>
Outputs
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 (+ d2 d3))>
#<alt (* d1 d3)>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (* d1 d2)>
#<alt (* d2 (+ d1 (/ (* d1 d3) d2)))>
#<alt (* d2 (+ d1 (/ (* d1 d3) d2)))>
#<alt (* d2 (+ d1 (/ (* d1 d3) d2)))>
#<alt (* d1 d2)>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))>
#<alt (* d1 d2)>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (+ (* d1 d2) (* d1 d3))>
#<alt (* d1 d3)>
#<alt (* d3 (+ d1 (/ (* d1 d2) d3)))>
#<alt (* d3 (+ d1 (/ (* d1 d2) d3)))>
#<alt (* d3 (+ d1 (/ (* d1 d2) d3)))>
#<alt (* d1 d3)>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))>
#<alt (* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))>
#<alt d3>
#<alt (+ d2 d3)>
#<alt (+ d2 d3)>
#<alt (+ d2 d3)>
#<alt d2>
#<alt (* d2 (+ 1 (/ d3 d2)))>
#<alt (* d2 (+ 1 (/ d3 d2)))>
#<alt (* d2 (+ 1 (/ d3 d2)))>
#<alt d2>
#<alt (* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))>
#<alt (* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))>
#<alt (* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))>
#<alt d2>
#<alt (+ d2 d3)>
#<alt (+ d2 d3)>
#<alt (+ d2 d3)>
#<alt d3>
#<alt (* d3 (+ 1 (/ d2 d3)))>
#<alt (* d3 (+ 1 (/ d2 d3)))>
#<alt (* d3 (+ 1 (/ d2 d3)))>
#<alt d3>
#<alt (* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))>
#<alt (* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))>
#<alt (* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* 37 d1)>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* -1 (* d1 (- (* -1 d2) 37)))>
#<alt (* -1 (* d1 (- (* -1 d2) 37)))>
#<alt (* -1 (* d1 (- (* -1 d2) 37)))>
#<alt (* -1 (* d1 (- (* -1 d2) 37)))>
#<alt (* 37 d1)>
#<alt (+ (* 37 d1) (* d1 d2))>
#<alt (+ (* 37 d1) (* d1 d2))>
#<alt (+ (* 37 d1) (* d1 d2))>
#<alt (* d1 d2)>
#<alt (* d2 (+ d1 (* 37 (/ d1 d2))))>
#<alt (* d2 (+ d1 (* 37 (/ d1 d2))))>
#<alt (* d2 (+ d1 (* 37 (/ d1 d2))))>
#<alt (* d1 d2)>
#<alt (* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))>
#<alt (* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))>
#<alt (* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 d2)>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* d1 (+ 37 d3))>
#<alt (* -1 (* d1 (- (* -1 d3) 37)))>
#<alt (* -1 (* d1 (- (* -1 d3) 37)))>
#<alt (* -1 (* d1 (- (* -1 d3) 37)))>
#<alt (* -1 (* d1 (- (* -1 d3) 37)))>
#<alt (* 37 d1)>
#<alt (+ (* 37 d1) (* d1 d3))>
#<alt (+ (* 37 d1) (* d1 d3))>
#<alt (+ (* 37 d1) (* d1 d3))>
#<alt (* d1 d3)>
#<alt (* d3 (+ d1 (* 37 (/ d1 d3))))>
#<alt (* d3 (+ d1 (* 37 (/ d1 d3))))>
#<alt (* d3 (+ d1 (* 37 (/ d1 d3))))>
#<alt (* d1 d3)>
#<alt (* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))>
#<alt (* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))>
#<alt (* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 d3)>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* d1 (+ 37 d2))>
#<alt (* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))>
#<alt (* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))>
#<alt (* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))>
#<alt (* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))>
#<alt (+ (* 5 d1) (* 32 d1))>
#<alt (+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))>
#<alt (+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))>
#<alt (+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))>
#<alt (* d1 d2)>
#<alt (* d2 (+ d1 (+ (* 5 (/ d1 d2)) (* 32 (/ d1 d2)))))>
#<alt (* d2 (+ d1 (+ (* 5 (/ d1 d2)) (* 32 (/ d1 d2)))))>
#<alt (* d2 (+ d1 (+ (* 5 (/ d1 d2)) (* 32 (/ d1 d2)))))>
#<alt (* d1 d2)>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* 32 d1)) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* 32 d1)) d2)))))>
#<alt (* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* 32 d1)) d2)))))>
#<alt (* d1 (+ 5 d2))>
#<alt (* d1 (+ 5 d2))>
#<alt (* d1 (+ 5 d2))>
#<alt (* d1 (+ 5 d2))>
#<alt (* d1 (+ 5 d2))>
#<alt (* d1 (+ 5 d2))>
#<alt (* d1 (+ 5 d2))>
#<alt (* d1 (+ 5 d2))>
#<alt (* d1 (+ 5 d2))>
#<alt (* d1 (+ 5 d2))>
#<alt (* d1 (+ 5 d2))>
#<alt (* d1 (+ 5 d2))>
#<alt (* 5 d1)>
#<alt (+ (* 5 d1) (* d1 d2))>
#<alt (+ (* 5 d1) (* d1 d2))>
#<alt (+ (* 5 d1) (* d1 d2))>
#<alt (* d1 d2)>
#<alt (* d2 (+ d1 (* 5 (/ d1 d2))))>
#<alt (* d2 (+ d1 (* 5 (/ d1 d2))))>
#<alt (* d2 (+ d1 (* 5 (/ d1 d2))))>
#<alt (* d1 d2)>
#<alt (* -1 (* d2 (+ (* -5 (/ d1 d2)) (* -1 d1))))>
#<alt (* -1 (* d2 (+ (* -5 (/ d1 d2)) (* -1 d1))))>
#<alt (* -1 (* d2 (+ (* -5 (/ d1 d2)) (* -1 d1))))>
#<alt 5>
#<alt (+ 5 d2)>
#<alt (+ 5 d2)>
#<alt (+ 5 d2)>
#<alt d2>
#<alt (* d2 (+ 1 (* 5 (/ 1 d2))))>
#<alt (* d2 (+ 1 (* 5 (/ 1 d2))))>
#<alt (* d2 (+ 1 (* 5 (/ 1 d2))))>
#<alt d2>
#<alt (* d2 (+ 1 (* 5 (/ 1 d2))))>
#<alt (* d2 (+ 1 (* 5 (/ 1 d2))))>
#<alt (* d2 (+ 1 (* 5 (/ 1 d2))))>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
#<alt (* 32 d1)>
Calls

60 calls:

TimeVariablePointExpression
1.0ms
d1
@-inf
(+ (* d1 (+ d2 5)) (* d1 32))
0.0ms
d1
@0
(+ (* d1 (+ d2 5)) (* d1 32))
0.0ms
d2
@inf
(+ (* d1 (+ d2 5)) (* d1 32))
0.0ms
d2
@-inf
(+ (* d1 (+ d2 5)) (* d1 32))
0.0ms
d2
@0
(+ (* d1 (+ d2 5)) (* d1 32))

rewrite27.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
112×fma-define
96×fma-lowering-fma.f32
96×fma-lowering-fma.f64
92×+-lowering-+.f64
92×+-lowering-+.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01743
14443
28443
311043
413543
516043
618443
719143
019143
Stop Event
iter limit
saturated
Counts
11 → 94
Calls
Call 1
Inputs
(* d1 (+ d2 d3))
(+ d2 d3)
(* d1 37)
(+ (* d1 d2) (* d1 37))
(* d1 d2)
(+ (* d1 d3) (* d1 37))
(* d1 d3)
(+ (* d1 (+ d2 5)) (* d1 32))
(* d1 (+ d2 5))
(+ d2 5)
(* d1 32)
Outputs
(+.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(+.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(fma.f64 d1 d2 (*.f64 d1 d3))
(fma.f64 d1 d3 (*.f64 d1 d2))
(fma.f64 d2 d1 (*.f64 d1 d3))
(fma.f64 d3 d1 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 d3))
(*.f64 (+.f64 d2 d3) d1)
(+.f64 d2 d3)
(+.f64 d3 d2)
(+.f64 (*.f64 d1 #s(literal 32 binary64)) (*.f64 d1 #s(literal 5 binary64)))
(+.f64 (*.f64 d1 #s(literal 5 binary64)) (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 d1 #s(literal 5 binary64) (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 d1 #s(literal 32 binary64) (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 #s(literal 5 binary64) d1 (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 #s(literal 32 binary64) d1 (*.f64 d1 #s(literal 5 binary64)))
(*.f64 d1 #s(literal 37 binary64))
(*.f64 #s(literal 37 binary64) d1)
(+.f64 (*.f64 d1 #s(literal 37 binary64)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 37 binary64)))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 #s(literal 32 binary64)))
(+.f64 (*.f64 d1 #s(literal 32 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(+.f64 (*.f64 d1 #s(literal 5 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))) (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 d1 d2 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 d1 #s(literal 37 binary64) (*.f64 d1 d2))
(fma.f64 d1 #s(literal 5 binary64) (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(fma.f64 d1 (+.f64 d2 #s(literal 5 binary64)) (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 d1 #s(literal 32 binary64) (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 d1 (+.f64 d2 #s(literal 32 binary64)) (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 d2 d1 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 #s(literal 37 binary64) d1 (*.f64 d1 d2))
(fma.f64 #s(literal 5 binary64) d1 (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(fma.f64 (+.f64 d2 #s(literal 5 binary64)) d1 (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 #s(literal 32 binary64) d1 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 (+.f64 d2 #s(literal 32 binary64)) d1 (*.f64 d1 #s(literal 5 binary64)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(*.f64 (+.f64 d2 #s(literal 37 binary64)) d1)
(*.f64 d1 d2)
(*.f64 d2 d1)
(+.f64 (*.f64 d1 #s(literal 37 binary64)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 d3) (*.f64 d1 #s(literal 37 binary64)))
(+.f64 (*.f64 d1 #s(literal 32 binary64)) (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(+.f64 (*.f64 d1 #s(literal 5 binary64)) (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))))
(+.f64 (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))) (*.f64 d1 #s(literal 32 binary64)))
(+.f64 (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))) (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 d1 d3 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 d1 #s(literal 37 binary64) (*.f64 d1 d3))
(fma.f64 d1 #s(literal 5 binary64) (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))))
(fma.f64 d1 #s(literal 32 binary64) (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(fma.f64 d1 (+.f64 d3 #s(literal 32 binary64)) (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 d1 (+.f64 d3 #s(literal 5 binary64)) (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 d3 d1 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 #s(literal 37 binary64) d1 (*.f64 d1 d3))
(fma.f64 #s(literal 5 binary64) d1 (*.f64 d1 (+.f64 d3 #s(literal 32 binary64))))
(fma.f64 #s(literal 32 binary64) d1 (*.f64 d1 (+.f64 d3 #s(literal 5 binary64))))
(fma.f64 (+.f64 d3 #s(literal 32 binary64)) d1 (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 (+.f64 d3 #s(literal 5 binary64)) d1 (*.f64 d1 #s(literal 32 binary64)))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(*.f64 (+.f64 d3 #s(literal 37 binary64)) d1)
(*.f64 d1 d3)
(*.f64 d3 d1)
(+.f64 (*.f64 d1 #s(literal 37 binary64)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 37 binary64)))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 #s(literal 32 binary64)))
(+.f64 (*.f64 d1 #s(literal 32 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(+.f64 (*.f64 d1 #s(literal 5 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))) (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 d1 d2 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 d1 #s(literal 37 binary64) (*.f64 d1 d2))
(fma.f64 d1 #s(literal 5 binary64) (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(fma.f64 d1 (+.f64 d2 #s(literal 5 binary64)) (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 d1 #s(literal 32 binary64) (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 d1 (+.f64 d2 #s(literal 32 binary64)) (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 d2 d1 (*.f64 d1 #s(literal 37 binary64)))
(fma.f64 #s(literal 37 binary64) d1 (*.f64 d1 d2))
(fma.f64 #s(literal 5 binary64) d1 (*.f64 d1 (+.f64 d2 #s(literal 32 binary64))))
(fma.f64 (+.f64 d2 #s(literal 5 binary64)) d1 (*.f64 d1 #s(literal 32 binary64)))
(fma.f64 #s(literal 32 binary64) d1 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))))
(fma.f64 (+.f64 d2 #s(literal 32 binary64)) d1 (*.f64 d1 #s(literal 5 binary64)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(*.f64 (+.f64 d2 #s(literal 37 binary64)) d1)
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 5 binary64)))
(+.f64 (*.f64 d1 #s(literal 5 binary64)) (*.f64 d1 d2))
(fma.f64 d1 d2 (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 d1 #s(literal 5 binary64) (*.f64 d1 d2))
(fma.f64 d2 d1 (*.f64 d1 #s(literal 5 binary64)))
(fma.f64 #s(literal 5 binary64) d1 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(*.f64 (+.f64 d2 #s(literal 5 binary64)) d1)
(+.f64 d2 #s(literal 5 binary64))
(+.f64 #s(literal 5 binary64) d2)
(*.f64 d1 #s(literal 32 binary64))
(*.f64 #s(literal 32 binary64) d1)

simplify182.0ms (4.8%)

Algorithm
egg-herbie
Rules
2860×*-lowering-*.f32
2860×*-lowering-*.f64
1606×fmsub-define
1492×+-lowering-+.f64
1492×+-lowering-+.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0107930
1377930
21090930
33688930
08234930
Stop Event
iter limit
node limit
Counts
240 → 240
Calls
Call 1
Inputs
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 (+ d2 d3))
(* d1 d3)
(+ (* d1 d2) (* d1 d3))
(+ (* d1 d2) (* d1 d3))
(+ (* d1 d2) (* d1 d3))
(* d1 d2)
(* d2 (+ d1 (/ (* d1 d3) d2)))
(* d2 (+ d1 (/ (* d1 d3) d2)))
(* d2 (+ d1 (/ (* d1 d3) d2)))
(* d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(* d1 d2)
(+ (* d1 d2) (* d1 d3))
(+ (* d1 d2) (* d1 d3))
(+ (* d1 d2) (* d1 d3))
(* d1 d3)
(* d3 (+ d1 (/ (* d1 d2) d3)))
(* d3 (+ d1 (/ (* d1 d2) d3)))
(* d3 (+ d1 (/ (* d1 d2) d3)))
(* d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
d3
(+ d2 d3)
(+ d2 d3)
(+ d2 d3)
d2
(* d2 (+ 1 (/ d3 d2)))
(* d2 (+ 1 (/ d3 d2)))
(* d2 (+ 1 (/ d3 d2)))
d2
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
d2
(+ d2 d3)
(+ d2 d3)
(+ d2 d3)
d3
(* d3 (+ 1 (/ d2 d3)))
(* d3 (+ 1 (/ d2 d3)))
(* d3 (+ 1 (/ d2 d3)))
d3
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* 37 d1)
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* -1 (* d1 (- (* -1 d2) 37)))
(* -1 (* d1 (- (* -1 d2) 37)))
(* -1 (* d1 (- (* -1 d2) 37)))
(* -1 (* d1 (- (* -1 d2) 37)))
(* 37 d1)
(+ (* 37 d1) (* d1 d2))
(+ (* 37 d1) (* d1 d2))
(+ (* 37 d1) (* d1 d2))
(* d1 d2)
(* d2 (+ d1 (* 37 (/ d1 d2))))
(* d2 (+ d1 (* 37 (/ d1 d2))))
(* d2 (+ d1 (* 37 (/ d1 d2))))
(* d1 d2)
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 d2)
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* d1 (+ 37 d3))
(* -1 (* d1 (- (* -1 d3) 37)))
(* -1 (* d1 (- (* -1 d3) 37)))
(* -1 (* d1 (- (* -1 d3) 37)))
(* -1 (* d1 (- (* -1 d3) 37)))
(* 37 d1)
(+ (* 37 d1) (* d1 d3))
(+ (* 37 d1) (* d1 d3))
(+ (* 37 d1) (* d1 d3))
(* d1 d3)
(* d3 (+ d1 (* 37 (/ d1 d3))))
(* d3 (+ d1 (* 37 (/ d1 d3))))
(* d3 (+ d1 (* 37 (/ d1 d3))))
(* d1 d3)
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 d3)
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* d1 (+ 37 d2))
(* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))
(* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))
(* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))
(* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))
(+ (* 5 d1) (* 32 d1))
(+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))
(+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))
(+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))
(* d1 d2)
(* d2 (+ d1 (+ (* 5 (/ d1 d2)) (* 32 (/ d1 d2)))))
(* d2 (+ d1 (+ (* 5 (/ d1 d2)) (* 32 (/ d1 d2)))))
(* d2 (+ d1 (+ (* 5 (/ d1 d2)) (* 32 (/ d1 d2)))))
(* d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* 32 d1)) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* 32 d1)) d2)))))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* 32 d1)) d2)))))
(* d1 (+ 5 d2))
(* d1 (+ 5 d2))
(* d1 (+ 5 d2))
(* d1 (+ 5 d2))
(* d1 (+ 5 d2))
(* d1 (+ 5 d2))
(* d1 (+ 5 d2))
(* d1 (+ 5 d2))
(* d1 (+ 5 d2))
(* d1 (+ 5 d2))
(* d1 (+ 5 d2))
(* d1 (+ 5 d2))
(* 5 d1)
(+ (* 5 d1) (* d1 d2))
(+ (* 5 d1) (* d1 d2))
(+ (* 5 d1) (* d1 d2))
(* d1 d2)
(* d2 (+ d1 (* 5 (/ d1 d2))))
(* d2 (+ d1 (* 5 (/ d1 d2))))
(* d2 (+ d1 (* 5 (/ d1 d2))))
(* d1 d2)
(* -1 (* d2 (+ (* -5 (/ d1 d2)) (* -1 d1))))
(* -1 (* d2 (+ (* -5 (/ d1 d2)) (* -1 d1))))
(* -1 (* d2 (+ (* -5 (/ d1 d2)) (* -1 d1))))
5
(+ 5 d2)
(+ 5 d2)
(+ 5 d2)
d2
(* d2 (+ 1 (* 5 (/ 1 d2))))
(* d2 (+ 1 (* 5 (/ 1 d2))))
(* d2 (+ 1 (* 5 (/ 1 d2))))
d2
(* d2 (+ 1 (* 5 (/ 1 d2))))
(* d2 (+ 1 (* 5 (/ 1 d2))))
(* d2 (+ 1 (* 5 (/ 1 d2))))
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
(* 32 d1)
Outputs
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 (+ d2 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d3)
(*.f64 d1 d3)
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d2)
(*.f64 d1 d2)
(* d2 (+ d1 (/ (* d1 d3) d2)))
(*.f64 d1 (+.f64 d2 d3))
(* d2 (+ d1 (/ (* d1 d3) d2)))
(*.f64 d1 (+.f64 d2 d3))
(* d2 (+ d1 (/ (* d1 d3) d2)))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d2)
(*.f64 d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(*.f64 d1 (+.f64 d2 d3))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(*.f64 d1 (+.f64 d2 d3))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (* d1 d3) d2)))))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d2)
(*.f64 d1 d2)
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(+ (* d1 d2) (* d1 d3))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d3)
(*.f64 d1 d3)
(* d3 (+ d1 (/ (* d1 d2) d3)))
(*.f64 d1 (+.f64 d2 d3))
(* d3 (+ d1 (/ (* d1 d2) d3)))
(*.f64 d1 (+.f64 d2 d3))
(* d3 (+ d1 (/ (* d1 d2) d3)))
(*.f64 d1 (+.f64 d2 d3))
(* d1 d3)
(*.f64 d1 d3)
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
(*.f64 d1 (+.f64 d2 d3))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
(*.f64 d1 (+.f64 d2 d3))
(* -1 (* d3 (+ (* -1 d1) (* -1 (/ (* d1 d2) d3)))))
(*.f64 d1 (+.f64 d2 d3))
d3
(+ d2 d3)
(+.f64 d2 d3)
(+ d2 d3)
(+.f64 d2 d3)
(+ d2 d3)
(+.f64 d2 d3)
d2
(* d2 (+ 1 (/ d3 d2)))
(+.f64 d2 d3)
(* d2 (+ 1 (/ d3 d2)))
(+.f64 d2 d3)
(* d2 (+ 1 (/ d3 d2)))
(+.f64 d2 d3)
d2
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
(+.f64 d2 d3)
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
(+.f64 d2 d3)
(* -1 (* d2 (- (* -1 (/ d3 d2)) 1)))
(+.f64 d2 d3)
d2
(+ d2 d3)
(+.f64 d2 d3)
(+ d2 d3)
(+.f64 d2 d3)
(+ d2 d3)
(+.f64 d2 d3)
d3
(* d3 (+ 1 (/ d2 d3)))
(+.f64 d2 d3)
(* d3 (+ 1 (/ d2 d3)))
(+.f64 d2 d3)
(* d3 (+ 1 (/ d2 d3)))
(+.f64 d2 d3)
d3
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(+.f64 d2 d3)
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(+.f64 d2 d3)
(* -1 (* d3 (- (* -1 (/ d2 d3)) 1)))
(+.f64 d2 d3)
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 d2) 37)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 d2) 37)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 d2) 37)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 d2) 37)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(+ (* 37 d1) (* d1 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(+ (* 37 d1) (* d1 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(+ (* 37 d1) (* d1 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 d2)
(*.f64 d1 d2)
(* d2 (+ d1 (* 37 (/ d1 d2))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d2 (+ d1 (* 37 (/ d1 d2))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d2 (+ d1 (* 37 (/ d1 d2))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 d2)
(*.f64 d1 d2)
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d2 (+ (* -37 (/ d1 d2)) (* -1 d1))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 d2)
(*.f64 d1 d2)
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d1 (+ 37 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 d3) 37)))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 d3) 37)))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 d3) 37)))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 d3) 37)))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* 37 d1)
(*.f64 d1 #s(literal 37 binary64))
(+ (* 37 d1) (* d1 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(+ (* 37 d1) (* d1 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(+ (* 37 d1) (* d1 d3))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d1 d3)
(*.f64 d1 d3)
(* d3 (+ d1 (* 37 (/ d1 d3))))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d3 (+ d1 (* 37 (/ d1 d3))))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d3 (+ d1 (* 37 (/ d1 d3))))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d1 d3)
(*.f64 d1 d3)
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* -1 (* d3 (+ (* -37 (/ d1 d3)) (* -1 d1))))
(*.f64 d1 (+.f64 d3 #s(literal 37 binary64)))
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 d3)
(*.f64 d1 d3)
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 37 d2))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d1 (- (* -1 (+ 5 d2)) 32)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(+ (* 5 d1) (* 32 d1))
(*.f64 d1 #s(literal 37 binary64))
(+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(+ (* 5 d1) (+ (* 32 d1) (* d1 d2)))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 d2)
(*.f64 d1 d2)
(* d2 (+ d1 (+ (* 5 (/ d1 d2)) (* 32 (/ d1 d2)))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d2 (+ d1 (+ (* 5 (/ d1 d2)) (* 32 (/ d1 d2)))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d2 (+ d1 (+ (* 5 (/ d1 d2)) (* 32 (/ d1 d2)))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 d2)
(*.f64 d1 d2)
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* 32 d1)) d2)))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* 32 d1)) d2)))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* -1 (* d2 (+ (* -1 d1) (* -1 (/ (+ (* 5 d1) (* 32 d1)) d2)))))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 (+ 5 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* 5 d1)
(*.f64 d1 #s(literal 5 binary64))
(+ (* 5 d1) (* d1 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(+ (* 5 d1) (* d1 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(+ (* 5 d1) (* d1 d2))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 d2)
(*.f64 d1 d2)
(* d2 (+ d1 (* 5 (/ d1 d2))))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d2 (+ d1 (* 5 (/ d1 d2))))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d2 (+ d1 (* 5 (/ d1 d2))))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* d1 d2)
(*.f64 d1 d2)
(* -1 (* d2 (+ (* -5 (/ d1 d2)) (* -1 d1))))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* -1 (* d2 (+ (* -5 (/ d1 d2)) (* -1 d1))))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
(* -1 (* d2 (+ (* -5 (/ d1 d2)) (* -1 d1))))
(*.f64 d1 (+.f64 d2 #s(literal 5 binary64)))
5
#s(literal 5 binary64)
(+ 5 d2)
(+.f64 d2 #s(literal 5 binary64))
(+ 5 d2)
(+.f64 d2 #s(literal 5 binary64))
(+ 5 d2)
(+.f64 d2 #s(literal 5 binary64))
d2
(* d2 (+ 1 (* 5 (/ 1 d2))))
(+.f64 d2 #s(literal 5 binary64))
(* d2 (+ 1 (* 5 (/ 1 d2))))
(+.f64 d2 #s(literal 5 binary64))
(* d2 (+ 1 (* 5 (/ 1 d2))))
(+.f64 d2 #s(literal 5 binary64))
d2
(* d2 (+ 1 (* 5 (/ 1 d2))))
(+.f64 d2 #s(literal 5 binary64))
(* d2 (+ 1 (* 5 (/ 1 d2))))
(+.f64 d2 #s(literal 5 binary64))
(* d2 (+ 1 (* 5 (/ 1 d2))))
(+.f64 d2 #s(literal 5 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))
(* 32 d1)
(*.f64 d1 #s(literal 32 binary64))

eval41.0ms (1.1%)

Compiler

Compiled 2423 to 117 computations (95.2% saved)

prune35.0ms (0.9%)

Pruning

11 alts after pruning (0 fresh and 11 done)

PrunedKeptTotal
New3740374
Fresh000
Picked055
Done066
Total37411385
Accuracy
100.0%
Counts
385 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
66.2%
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 #s(literal 32 binary64)))
66.7%
(+.f64 (*.f64 d1 d3) (*.f64 d1 #s(literal 37 binary64)))
66.2%
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 37 binary64)))
100.0%
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
69.6%
(*.f64 d1 (+.f64 d2 d3))
66.2%
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
66.7%
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
38.1%
(*.f64 d1 d3)
35.9%
(*.f64 d1 d2)
31.8%
(*.f64 d1 #s(literal 37 binary64))
Compiler

Compiled 175 to 97 computations (44.6% saved)

regimes23.0ms (0.6%)

Counts
12 → 1
Calls
Call 1
Inputs
(*.f64 d1 #s(literal 37 binary64))
(*.f64 d1 d2)
(*.f64 d1 d3)
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(*.f64 d1 (+.f64 d2 d3))
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 37 binary64)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 #s(literal 37 binary64)))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 #s(literal 32 binary64)))
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 #s(literal 5 binary64)) d1)) (*.f64 d1 #s(literal 32 binary64)))
Outputs
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
Calls

5 calls:

6.0ms
d2
4.0ms
d3
4.0ms
d1
4.0ms
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 #s(literal 5 binary64)) d1)) (*.f64 d1 #s(literal 32 binary64)))
4.0ms
(+.f64 d3 #s(literal 5 binary64))
Results
AccuracySegmentsBranch
100.0%1d1
100.0%1d2
100.0%1d3
100.0%1(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 #s(literal 5 binary64)) d1)) (*.f64 d1 #s(literal 32 binary64)))
100.0%1(+.f64 d3 #s(literal 5 binary64))
Compiler

Compiled 34 to 25 computations (26.5% saved)

regimes13.0ms (0.3%)

Counts
10 → 1
Calls
Call 1
Inputs
(*.f64 d1 #s(literal 37 binary64))
(*.f64 d1 d2)
(*.f64 d1 d3)
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(*.f64 d1 (+.f64 d2 d3))
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
(+.f64 (*.f64 d1 d2) (*.f64 d1 #s(literal 37 binary64)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 #s(literal 37 binary64)))
(+.f64 (*.f64 d1 (+.f64 d2 #s(literal 5 binary64))) (*.f64 d1 #s(literal 32 binary64)))
Outputs
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
Calls

3 calls:

5.0ms
d1
4.0ms
d3
4.0ms
d2
Results
AccuracySegmentsBranch
100.0%1d1
100.0%1d2
100.0%1d3
Compiler

Compiled 12 to 9 computations (25% saved)

regimes9.0ms (0.2%)

Counts
6 → 2
Calls
Call 1
Inputs
(*.f64 d1 #s(literal 37 binary64))
(*.f64 d1 d2)
(*.f64 d1 d3)
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(*.f64 d1 (+.f64 d2 d3))
Outputs
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(*.f64 d1 (+.f64 d2 d3))
Calls

3 calls:

3.0ms
d3
3.0ms
d1
3.0ms
d2
Results
AccuracySegmentsBranch
75.6%3d1
98.4%2d2
98.7%2d3
Compiler

Compiled 12 to 9 computations (25% saved)

regimes5.0ms (0.1%)

Counts
5 → 2
Calls
Call 1
Inputs
(*.f64 d1 #s(literal 37 binary64))
(*.f64 d1 d2)
(*.f64 d1 d3)
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
Outputs
(*.f64 d1 (+.f64 d2 #s(literal 37 binary64)))
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
Calls

2 calls:

2.0ms
d3
2.0ms
d2
Results
AccuracySegmentsBranch
96.2%2d2
91.6%2d3
Compiler

Compiled 8 to 6 computations (25% saved)

regimes2.0ms (0.1%)

Counts
4 → 2
Calls
Call 1
Inputs
(*.f64 d1 #s(literal 37 binary64))
(*.f64 d1 d2)
(*.f64 d1 d3)
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
Outputs
(*.f64 d1 d2)
(*.f64 d1 (+.f64 #s(literal 37 binary64) d3))
Calls

1 calls:

2.0ms
d2
Results
AccuracySegmentsBranch
95.1%2d2
Compiler

Compiled 4 to 3 computations (25% saved)

regimes5.0ms (0.1%)

Counts
3 → 3
Calls
Call 1
Inputs
(*.f64 d1 #s(literal 37 binary64))
(*.f64 d1 d2)
(*.f64 d1 d3)
Outputs
(*.f64 d1 d2)
(*.f64 d1 #s(literal 37 binary64))
(*.f64 d1 d3)
Calls

2 calls:

3.0ms
d3
2.0ms
d2
Results
AccuracySegmentsBranch
70.7%3d3
79.2%3d2
Compiler

Compiled 8 to 6 computations (25% saved)

regimes5.0ms (0.1%)

Counts
2 → 2
Calls
Call 1
Inputs
(*.f64 d1 #s(literal 37 binary64))
(*.f64 d1 d2)
Outputs
(*.f64 d1 d2)
(*.f64 d1 #s(literal 37 binary64))
Calls

3 calls:

2.0ms
d2
1.0ms
d1
1.0ms
d3
Results
AccuracySegmentsBranch
46.2%3d3
41.2%3d1
63.5%2d2
Compiler

Compiled 12 to 9 computations (25% saved)

regimes4.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 d1 #s(literal 37 binary64))
Outputs
(*.f64 d1 #s(literal 37 binary64))
Calls

3 calls:

1.0ms
d3
1.0ms
d1
1.0ms
d2
Results
AccuracySegmentsBranch
31.8%1d1
31.8%1d3
31.8%1d2
Compiler

Compiled 12 to 9 computations (25% saved)

bsearch16.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
14.0ms
3.6228138796305686e-5
16879.604702026434
Results
10.0ms144×0valid
Compiler

Compiled 184 to 133 computations (27.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 3.0ms (60.5% of total)
ival-add: 2.0ms (40.3% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

bsearch15.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
14.0ms
-2.084996200278021e-6
-4.0844611384844013e-10
Results
10.0ms128×0valid
Compiler

Compiled 166 to 128 computations (22.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 4.0ms
ival-add: 2.0ms (45% of total)
ival-mult: 2.0ms (45% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

bsearch18.0ms (0.5%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
15.0ms
-20314.057710023535
-0.1434677267924405
Results
10.0ms144×0valid
Compiler

Compiled 166 to 124 computations (25.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 3.0ms (58.6% of total)
ival-add: 2.0ms (39.1% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

bsearch33.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
15.0ms
-1.2384201101487537e-234
-1.5645568605547747e-241
15.0ms
-20314.057710023535
-0.1434677267924405
Results
20.0ms285×0valid
1.0ms2valid
Compiler

Compiled 274 to 214 computations (21.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 6.0ms (57.7% of total)
ival-add: 4.0ms (38.5% of total)
const: 1.0ms (9.6% of total)
backward-pass: 0.0ms (0% of total)

bsearch26.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
24.0ms
-20314.057710023535
-0.1434677267924405
Results
20.0ms144×0valid
Compiler

Compiled 148 to 115 computations (22.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 3.0ms (60% of total)
ival-add: 2.0ms (40% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Rules
14×*-commutative_binary64
10×+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03286
14486
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
(if (<=.f64 d3 #s(literal 37 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))) (*.f64 d1 (+.f64 d2 d3)))
(if (<=.f64 d2 #s(literal -4722366482869645/2361183241434822606848 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))) (*.f64 d1 (+.f64 #s(literal 37 binary64) d3)))
(if (<=.f64 d2 #s(literal -20000 binary64)) (*.f64 d1 d2) (*.f64 d1 (+.f64 #s(literal 37 binary64) d3)))
(if (<=.f64 d2 #s(literal -37 binary64)) (*.f64 d1 d2) (if (<=.f64 d2 #s(literal -3849068686643035/1832889850782397517082802171755189663406191307018921761884252780947908096342585866198098193012776216027479008590015982084761399088452696108828481666660133095712823955710669574545075280734654641679682560526831695838459555430831205351382962374814354898944 binary64)) (*.f64 d1 #s(literal 37 binary64)) (*.f64 d1 d3)))
(if (<=.f64 d2 #s(literal -37 binary64)) (*.f64 d1 d2) (*.f64 d1 #s(literal 37 binary64)))
(*.f64 d1 #s(literal 37 binary64))
Outputs
(+.f64 (*.f64 d1 (+.f64 d2 d3)) (*.f64 d1 #s(literal 37 binary64)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 #s(literal 37 binary64))))
(if (<=.f64 d3 #s(literal 37 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))) (*.f64 d1 (+.f64 d2 d3)))
(if (<=.f64 d2 #s(literal -4722366482869645/2361183241434822606848 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))) (*.f64 d1 (+.f64 #s(literal 37 binary64) d3)))
(if (<=.f64 d2 #s(literal -4722366482869645/2361183241434822606848 binary64)) (*.f64 d1 (+.f64 d2 #s(literal 37 binary64))) (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))))
(if (<=.f64 d2 #s(literal -20000 binary64)) (*.f64 d1 d2) (*.f64 d1 (+.f64 #s(literal 37 binary64) d3)))
(if (<=.f64 d2 #s(literal -20000 binary64)) (*.f64 d1 d2) (*.f64 d1 (+.f64 d3 #s(literal 37 binary64))))
(if (<=.f64 d2 #s(literal -37 binary64)) (*.f64 d1 d2) (if (<=.f64 d2 #s(literal -3849068686643035/1832889850782397517082802171755189663406191307018921761884252780947908096342585866198098193012776216027479008590015982084761399088452696108828481666660133095712823955710669574545075280734654641679682560526831695838459555430831205351382962374814354898944 binary64)) (*.f64 d1 #s(literal 37 binary64)) (*.f64 d1 d3)))
(if (<=.f64 d2 #s(literal -37 binary64)) (*.f64 d1 d2) (*.f64 d1 #s(literal 37 binary64)))
(*.f64 d1 #s(literal 37 binary64))

soundness918.0ms (24.1%)

Rules
2788×*-lowering-*.f32
2788×*-lowering-*.f64
2618×*-lowering-*.f32
2618×*-lowering-*.f64
1692×fmsub-define
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
095928
1344898
21059898
33449898
47974898
08587898
01281157
14801042
216061021
350561015
084571015
01112
12110
2527
31886
43836
55906
66126
06126
01541
13537
29236
327236
445136
561536
662936
062936
Stop Event
done
iter limit
saturated
iter limit
saturated
iter limit
node limit
iter limit
node limit
Compiler

Compiled 347 to 215 computations (38% saved)

preprocess67.0ms (1.8%)

Remove

(sort d2 d3)

(negabs d1)

Compiler

Compiled 326 to 162 computations (50.3% saved)

end0.0ms (0%)

Profiling

Loading profile data...