Quotient of products

Time bar (total: 2.7s)

start0.0ms (0%)

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

analyze214.0ms (7.9%)

Memory
-10.0MiB live, 305.2MiB allocated; 86ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
25%25%74.9%0.2%0%0%0%5
25%25%74.9%0.2%0%0%0%6
25%25%74.9%0.2%0%0%0%7
37.5%37.4%62.4%0.2%0%0%0%8
56.3%56.1%43.7%0.2%0%0%0%9
56.3%56.1%43.7%0.2%0%0%0%10
56.3%56.1%43.7%0.2%0%0%0%11
65.6%65.5%34.3%0.2%0%0%0%12
Compiler

Compiled 9 to 9 computations (0% saved)

sample1.1s (39.7%)

Memory
15.6MiB live, 1 243.0MiB allocated; 176ms collecting garbage
Samples
675.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 307.0ms
ival-mult: 212.0ms (69.1% of total)
ival-div: 84.0ms (27.4% of total)
ival-true: 6.0ms (2% of total)
ival-assert: 3.0ms (1% of total)
adjust: 2.0ms (0.7% of total)
Bogosity

explain120.0ms (4.4%)

Memory
-10.7MiB live, 107.9MiB allocated; 11ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
470-2(1.1121191645146059e-246 -4.2178869691601585e-69 1.4257715916629296e-300 -4906234538417143.0)(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
00-0-(*.f64 b1 b2)
00-0-(*.f64 a1 a2)
00-0-a1
00-0-b2
00-0-b1
00-0-a2
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/n100
(*.f64 a1 a2)overflow39
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/n80
(*.f64 a1 a2)underflow30
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/u80
(*.f64 b1 b2)underflow37
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/o80
(*.f64 b1 b2)overflow36
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/o70
(*.f64 a1 a2)overflow39
(*.f64 b1 b2)overflow36
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/u40
(*.f64 a1 a2)underflow30
(*.f64 b1 b2)underflow37
Confusion
Predicted +Predicted -
+452
-0209
Precision
1.0
Recall
0.9574468085106383
Confusion?
Predicted +Predicted MaybePredicted -
+4502
-00209
Precision?
1.0
Recall?
0.9574468085106383
Freqs
test
numberfreq
0211
145
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
26.0ms512×0valid
Compiler

Compiled 45 to 25 computations (44.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 7.0ms (64.3% of total)
ival-div: 3.0ms (27.6% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess50.0ms (1.8%)

Memory
-23.7MiB live, 69.5MiB allocated; 7ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036114
1116102
2326102
3697102
4997102
51879102
61895102
077
0107
1197
2377
3487
4487
0487
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
Symmetry

(negabs b2)

(negabs b1)

(negabs a2)

(negabs a1)

(sort a1 a2)

(sort b1 b2)

Compiler

Compiled 7 to 7 computations (0% saved)

eval0.0ms (0%)

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

Compiled 0 to 4 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
82.7%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 7 to 7 computations (0% saved)

simplify4.0ms (0.1%)

Memory
8.5MiB live, 8.5MiB allocated; 0ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 b1 b2)
cost-diff0
(*.f64 a1 a2)
cost-diff0
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
01017
11917
23717
34817
44817
04817
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 a1 a2)
a1
a2
(*.f64 b1 b2)
b1
b2
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 a1 a2)
(*.f64 a2 a1)
a1
a2
(*.f64 b1 b2)
(*.f64 b2 b1)
b1
b2

localize41.0ms (1.5%)

Memory
-17.7MiB live, 31.2MiB allocated; 5ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 b1 b2)
accuracy0.0
(*.f64 a1 a2)
accuracy11.019809219504786
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Samples
12.0ms256×0valid
Compiler

Compiled 19 to 9 computations (52.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 3.0ms (60.4% of total)
ival-div: 1.0ms (20.1% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series12.0ms (0.5%)

Memory
22.4MiB live, 22.4MiB allocated; 0ms collecting garbage
Counts
3 → 3
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 a1 a2)
(*.f64 b1 b2)
Outputs
(/ (* a1 a2) (* b1 b2))
(* a1 a2)
(* b1 b2)
Calls

12 calls:

TimeVariablePointExpression
2.0ms
a2
@-inf
((/ (* a1 a2) (* b1 b2)) (* a1 a2) (* b1 b2))
1.0ms
a1
@-inf
((/ (* a1 a2) (* b1 b2)) (* a1 a2) (* b1 b2))
1.0ms
a1
@0
((/ (* a1 a2) (* b1 b2)) (* a1 a2) (* b1 b2))
1.0ms
b2
@-inf
((/ (* a1 a2) (* b1 b2)) (* a1 a2) (* b1 b2))
1.0ms
b1
@-inf
((/ (* a1 a2) (* b1 b2)) (* a1 a2) (* b1 b2))

simplify3.0ms (0.1%)

Memory
3.4MiB live, 3.4MiB allocated; 0ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
11613
23413
34513
44513
04513
Stop Event
iter limit
saturated
Counts
3 → 3
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(* a1 a2)
(* b1 b2)
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(* a1 a2)
(*.f64 a2 a1)
(* b1 b2)
(*.f64 b2 b1)

rewrite47.0ms (1.7%)

Memory
-21.4MiB live, 24.6MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
01013
12213
26513
320913
454813
555713
055713
Stop Event
iter limit
saturated
iter limit
Counts
3 → 33
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 a1 a2)
(*.f64 b1 b2)
Outputs
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(*.f64 (neg.f64 a1) (neg.f64 a2))
(*.f64 (neg.f64 a2) (neg.f64 a1))
(*.f64 a2 a1)
(*.f64 a1 a2)
(neg.f64 (*.f64 (neg.f64 a1) a2))
(*.f64 (neg.f64 b2) (neg.f64 b1))
(*.f64 (neg.f64 b1) (neg.f64 b2))
(*.f64 b2 b1)
(*.f64 b1 b2)
(neg.f64 (*.f64 (neg.f64 b2) b1))

eval3.0ms (0.1%)

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

Compiled 304 to 77 computations (74.7% saved)

prune4.0ms (0.1%)

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

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New31536
Fresh000
Picked011
Done000
Total31637
Accuracy
100.0%
Counts
37 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
92.7%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
82.7%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
93.0%
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
91.1%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
83.9%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
99.3%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Compiler

Compiled 81 to 81 computations (0% saved)

simplify8.0ms (0.3%)

Memory
14.1MiB live, 14.1MiB allocated; 0ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
cost-diff0
(neg.f64 a1)
cost-diff0
(/.f64 (neg.f64 a1) b1)
cost-diff0
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
cost-diff2
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
cost-diff0
(/.f64 a1 b1)
cost-diff0
(*.f64 (/.f64 a1 b1) a2)
cost-diff0
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
cost-diff0
(/.f64 a2 b2)
cost-diff0
(/.f64 (/.f64 a2 b2) b1)
cost-diff0
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
cost-diff0
(/.f64 a1 b2)
cost-diff0
(/.f64 (/.f64 a1 b2) b1)
cost-diff0
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
cost-diff0
(/.f64 a1 b1)
cost-diff0
(/.f64 a2 b2)
cost-diff0
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019101
03499
15699
29999
318099
432399
542799
042799
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(/.f64 a2 b2)
a2
b2
(/.f64 a1 b1)
a1
b1
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(/.f64 (/.f64 a1 b2) b1)
(/.f64 a1 b2)
a1
b2
b1
a2
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (/.f64 a2 b2) b1)
(/.f64 a2 b2)
a2
b2
b1
a1
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(*.f64 (/.f64 a1 b1) a2)
(/.f64 a1 b1)
a1
b1
a2
b2
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) b1)
(neg.f64 a1)
a1
b1
b2
(neg.f64 a2)
a2
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 a2 b2)
a2
b2
(/.f64 a1 b1)
a1
b1
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (/.f64 a1 b2) b1)
(/.f64 a1 b2)
a1
b2
b1
a2
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (/.f64 a2 b2) b1)
(/.f64 a2 b2)
a2
b2
b1
a1
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a1 b1) a2)
(/.f64 a1 b1)
a1
b1
a2
b2
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) b1)
(neg.f64 a1)
a1
b1
b2
(neg.f64 a2)
a2

localize94.0ms (3.5%)

Memory
-30.8MiB live, 113.8MiB allocated; 13ms collecting garbage
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(neg.f64 a2)
accuracy0.0
(neg.f64 a1)
accuracy3.007893343034302
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
accuracy4.456958759123136
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
accuracy0.0
(/.f64 a1 b1)
accuracy0.9059937294921984
(*.f64 (/.f64 a1 b1) a2)
accuracy4.391553657101004
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
accuracy0.0
(/.f64 a2 b2)
accuracy1.8630636588166862
(/.f64 (/.f64 a2 b2) b1)
accuracy5.5796763922580555
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
accuracy0.0
(/.f64 a1 b2)
accuracy4.456958759123136
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
accuracy7.42379823562727
(/.f64 (/.f64 a1 b2) b1)
accuracy0.0
(/.f64 a2 b2)
accuracy0.0
(/.f64 a1 b1)
accuracy0.4768345906510346
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Samples
46.0ms256×0valid
Compiler

Compiled 103 to 21 computations (79.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 30.0ms
ival-div: 21.0ms (69.5% of total)
ival-mult: 7.0ms (23.2% of total)
ival-neg: 2.0ms (6.6% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series34.0ms (1.3%)

Memory
10.4MiB live, 57.2MiB allocated; 2ms collecting garbage
Counts
15 → 11
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(/.f64 a2 b2)
(/.f64 a1 b1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(/.f64 (/.f64 a1 b2) b1)
(/.f64 a1 b2)
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (/.f64 a2 b2) b1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(*.f64 (/.f64 a1 b1) a2)
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) b1)
(neg.f64 a1)
(neg.f64 a2)
Outputs
(/ (* a1 a2) (* b1 b2))
(/ a1 b1)
(/ a1 (* b1 b2))
(/ a1 b2)
(/ (* a1 a2) b1)
(* -1 (/ a1 (* b1 b2)))
(* -1 (/ a1 b1))
(* -1 a1)
(/ a2 b2)
(/ a2 (* b1 b2))
(* -1 a2)
Calls

12 calls:

TimeVariablePointExpression
10.0ms
b1
@inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) (/ a1 b1) (* (/ (/ a1 b2) b1) a2) (/ (/ a1 b2) b1) (/ a1 b2) (* (/ (/ a2 b2) b1) a1) (/ (/ a2 b2) b1) (/ (* (/ a1 b1) a2) b2) (* (/ a1 b1) a2) (* (/ (/ (neg a1) b1) b2) (neg a2)) (/ (/ (neg a1) b1) b2) (/ (neg a1) b1) (neg a1) (neg a2))
4.0ms
a1
@0
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) (/ a1 b1) (* (/ (/ a1 b2) b1) a2) (/ (/ a1 b2) b1) (/ a1 b2) (* (/ (/ a2 b2) b1) a1) (/ (/ a2 b2) b1) (/ (* (/ a1 b1) a2) b2) (* (/ a1 b1) a2) (* (/ (/ (neg a1) b1) b2) (neg a2)) (/ (/ (neg a1) b1) b2) (/ (neg a1) b1) (neg a1) (neg a2))
3.0ms
a1
@inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) (/ a1 b1) (* (/ (/ a1 b2) b1) a2) (/ (/ a1 b2) b1) (/ a1 b2) (* (/ (/ a2 b2) b1) a1) (/ (/ a2 b2) b1) (/ (* (/ a1 b1) a2) b2) (* (/ a1 b1) a2) (* (/ (/ (neg a1) b1) b2) (neg a2)) (/ (/ (neg a1) b1) b2) (/ (neg a1) b1) (neg a1) (neg a2))
3.0ms
a1
@-inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) (/ a1 b1) (* (/ (/ a1 b2) b1) a2) (/ (/ a1 b2) b1) (/ a1 b2) (* (/ (/ a2 b2) b1) a1) (/ (/ a2 b2) b1) (/ (* (/ a1 b1) a2) b2) (* (/ a1 b1) a2) (* (/ (/ (neg a1) b1) b2) (neg a2)) (/ (/ (neg a1) b1) b2) (/ (neg a1) b1) (neg a1) (neg a2))
2.0ms
b1
@-inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) (/ a1 b1) (* (/ (/ a1 b2) b1) a2) (/ (/ a1 b2) b1) (/ a1 b2) (* (/ (/ a2 b2) b1) a1) (/ (/ a2 b2) b1) (/ (* (/ a1 b1) a2) b2) (* (/ a1 b1) a2) (* (/ (/ (neg a1) b1) b2) (neg a2)) (/ (/ (neg a1) b1) b2) (/ (neg a1) b1) (neg a1) (neg a2))

simplify5.0ms (0.2%)

Memory
7.8MiB live, 7.8MiB allocated; 0ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01845
13745
27045
39645
49745
09745
Stop Event
iter limit
saturated
Counts
11 → 11
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(/ a1 b1)
(/ a1 (* b1 b2))
(/ a1 b2)
(/ (* a1 a2) b1)
(* -1 (/ a1 (* b1 b2)))
(* -1 (/ a1 b1))
(* -1 a1)
(/ a2 b2)
(/ a2 (* b1 b2))
(* -1 a2)
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/ a1 b1)
(/.f64 a1 b1)
(/ a1 (* b1 b2))
(/.f64 (/.f64 a1 b1) b2)
(/ a1 b2)
(/.f64 a1 b2)
(/ (* a1 a2) b1)
(*.f64 (/.f64 a2 b1) a1)
(* -1 (/ a1 (* b1 b2)))
(/.f64 (/.f64 (neg.f64 a1) b2) b1)
(* -1 (/ a1 b1))
(/.f64 (neg.f64 a1) b1)
(* -1 a1)
(neg.f64 a1)
(/ a2 b2)
(/.f64 a2 b2)
(/ a2 (* b1 b2))
(/.f64 (/.f64 a2 b2) b1)
(* -1 a2)
(neg.f64 a2)

rewrite14.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01975
03473
17373
222473
345273
449273
049273
Stop Event
iter limit
saturated
iter limit
Counts
15 → 161
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(/.f64 a2 b2)
(/.f64 a1 b1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(/.f64 (/.f64 a1 b2) b1)
(/.f64 a1 b2)
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (/.f64 a2 b2) b1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(*.f64 (/.f64 a1 b1) a2)
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) b1)
(neg.f64 a1)
(neg.f64 a2)
Outputs
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (neg.f64 a2) (neg.f64 b2))
(/.f64 a2 b2)
(neg.f64 (/.f64 (neg.f64 a2) b2))
(/.f64 (neg.f64 a1) (neg.f64 b1))
(/.f64 a1 b1)
(neg.f64 (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 b1))
(/.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 b2))
(/.f64 (neg.f64 a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (/.f64 a1 b2) b1)
(/.f64 (/.f64 a1 b1) b2)
(/.f64 a1 (*.f64 b1 b2))
(neg.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(/.f64 (neg.f64 a1) (neg.f64 b2))
(/.f64 a1 b2)
(neg.f64 (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 b2))
(/.f64 (/.f64 a2 b1) b2)
(/.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 b1))
(/.f64 (neg.f64 a2) (*.f64 (neg.f64 b1) b2))
(/.f64 (/.f64 a2 b2) b1)
(/.f64 a2 (*.f64 b1 b2))
(neg.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(*.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 a1))
(*.f64 (/.f64 a2 b1) a1)
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 a2))
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 a1 b1) a2)
(*.f64 a1 (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (neg.f64 b1))
(/.f64 (*.f64 a1 a2) b1)
(neg.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (/.f64 (neg.f64 a1) b2) b1)
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) (*.f64 b1 b2))
(/.f64 (/.f64 a1 b2) (neg.f64 b1))
(/.f64 (/.f64 a1 b1) (neg.f64 b2))
(/.f64 a1 (*.f64 (neg.f64 b1) b2))
(neg.f64 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (neg.f64 a1) b1)
(/.f64 a1 (neg.f64 b1))
(neg.f64 (/.f64 a1 b1))
(neg.f64 a1)
(neg.f64 a2)

eval14.0ms (0.5%)

Memory
-25.5MiB live, 20.1MiB allocated; 5ms collecting garbage
Compiler

Compiled 784 to 176 computations (77.6% saved)

prune4.0ms (0.2%)

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

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New84488
Fresh000
Picked235
Done011
Total86894
Accuracy
100.0%
Counts
94 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.0%
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
92.7%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
82.7%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
83.9%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
93.0%
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
83.6%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
99.3%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
86.0%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 56 to 56 computations (0% saved)

simplify5.0ms (0.2%)

Memory
8.4MiB live, 8.4MiB allocated; 0ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 a1 a2)
cost-diff0
(/.f64 (*.f64 a1 a2) b1)
cost-diff0
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
cost-diff0
(/.f64 a1 b1)
cost-diff0
(/.f64 (/.f64 a1 b1) b2)
cost-diff0
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
cost-diff0
(*.f64 b1 b2)
cost-diff0
(/.f64 a2 (*.f64 b1 b2))
cost-diff0
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
cost-diff0
(*.f64 b1 b2)
cost-diff0
(/.f64 a1 (*.f64 b1 b2))
cost-diff0
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01576
02676
13776
25176
35976
45976
05976
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(/.f64 a1 (*.f64 b1 b2))
a1
(*.f64 b1 b2)
b1
b2
a2
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 a2 (*.f64 b1 b2))
a2
(*.f64 b1 b2)
b1
b2
a1
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(/.f64 (/.f64 a1 b1) b2)
(/.f64 a1 b1)
a1
b1
b2
a2
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(/.f64 (*.f64 a1 a2) b1)
(*.f64 a1 a2)
a1
a2
b1
b2
Outputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(/.f64 a1 (*.f64 b1 b2))
(/.f64 a1 (*.f64 b2 b1))
a1
(*.f64 b1 b2)
(*.f64 b2 b1)
b1
b2
a2
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(/.f64 a2 (*.f64 b1 b2))
(/.f64 a2 (*.f64 b2 b1))
a2
(*.f64 b1 b2)
(*.f64 b2 b1)
b1
b2
a1
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(/.f64 (/.f64 a1 b1) b2)
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 b1)
a1
b1
b2
a2
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(/.f64 (*.f64 a1 a2) b1)
(*.f64 (/.f64 a1 b1) a2)
(*.f64 a1 a2)
(*.f64 a2 a1)
a1
a2
b1
b2

localize58.0ms (2.1%)

Memory
-12.9MiB live, 83.6MiB allocated; 10ms collecting garbage
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 a1 a2)
accuracy4.391553657101004
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
accuracy6.033223002511915
(/.f64 (*.f64 a1 a2) b1)
accuracy0.0
(/.f64 a1 b1)
accuracy3.007893343034302
(/.f64 (/.f64 a1 b1) b2)
accuracy4.456958759123136
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
accuracy0.0
(*.f64 b1 b2)
accuracy5.5796763922580555
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
accuracy6.325279443735923
(/.f64 a2 (*.f64 b1 b2))
accuracy0.0
(*.f64 b1 b2)
accuracy4.456958759123136
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
accuracy6.120377652651163
(/.f64 a1 (*.f64 b1 b2))
Samples
30.0ms256×0valid
Compiler

Compiled 78 to 17 computations (78.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-div: 9.0ms (52.3% of total)
ival-mult: 8.0ms (46.5% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series20.0ms (0.7%)

Memory
-0.4MiB live, 45.7MiB allocated; 6ms collecting garbage
Counts
11 → 7
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(/.f64 a1 (*.f64 b1 b2))
(*.f64 b1 b2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 a2 (*.f64 b1 b2))
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(/.f64 (/.f64 a1 b1) b2)
(/.f64 a1 b1)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(/.f64 (*.f64 a1 a2) b1)
(*.f64 a1 a2)
Outputs
(/ (* a1 a2) (* b1 b2))
(/ a1 (* b1 b2))
(/ a1 b1)
(/ (* a1 a2) b1)
(* a1 a2)
(/ a2 (* b1 b2))
(* b1 b2)
Calls

12 calls:

TimeVariablePointExpression
4.0ms
a2
@-inf
((* (/ a1 (* b1 b2)) a2) (/ a1 (* b1 b2)) (* b1 b2) (* (/ a2 (* b1 b2)) a1) (/ a2 (* b1 b2)) (* (/ (/ a1 b1) b2) a2) (/ (/ a1 b1) b2) (/ a1 b1) (/ (/ (* a1 a2) b1) b2) (/ (* a1 a2) b1) (* a1 a2))
2.0ms
a1
@-inf
((* (/ a1 (* b1 b2)) a2) (/ a1 (* b1 b2)) (* b1 b2) (* (/ a2 (* b1 b2)) a1) (/ a2 (* b1 b2)) (* (/ (/ a1 b1) b2) a2) (/ (/ a1 b1) b2) (/ a1 b1) (/ (/ (* a1 a2) b1) b2) (/ (* a1 a2) b1) (* a1 a2))
2.0ms
b1
@-inf
((* (/ a1 (* b1 b2)) a2) (/ a1 (* b1 b2)) (* b1 b2) (* (/ a2 (* b1 b2)) a1) (/ a2 (* b1 b2)) (* (/ (/ a1 b1) b2) a2) (/ (/ a1 b1) b2) (/ a1 b1) (/ (/ (* a1 a2) b1) b2) (/ (* a1 a2) b1) (* a1 a2))
2.0ms
b2
@-inf
((* (/ a1 (* b1 b2)) a2) (/ a1 (* b1 b2)) (* b1 b2) (* (/ a2 (* b1 b2)) a1) (/ a2 (* b1 b2)) (* (/ (/ a1 b1) b2) a2) (/ (/ a1 b1) b2) (/ a1 b1) (/ (/ (* a1 a2) b1) b2) (/ (* a1 a2) b1) (* a1 a2))
1.0ms
a1
@inf
((* (/ a1 (* b1 b2)) a2) (/ a1 (* b1 b2)) (* b1 b2) (* (/ a2 (* b1 b2)) a1) (/ a2 (* b1 b2)) (* (/ (/ a1 b1) b2) a2) (/ (/ a1 b1) b2) (/ a1 b1) (/ (/ (* a1 a2) b1) b2) (/ (* a1 a2) b1) (* a1 a2))

simplify4.0ms (0.1%)

Memory
8.7MiB live, 8.7MiB allocated; 0ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01131
12131
23731
34431
44431
04431
Stop Event
iter limit
saturated
Counts
7 → 7
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(/ a1 (* b1 b2))
(/ a1 b1)
(/ (* a1 a2) b1)
(* a1 a2)
(/ a2 (* b1 b2))
(* b1 b2)
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/ a1 (* b1 b2))
(/.f64 a1 (*.f64 b2 b1))
(/ a1 b1)
(/.f64 a1 b1)
(/ (* a1 a2) b1)
(*.f64 (/.f64 a2 b1) a1)
(* a1 a2)
(*.f64 a2 a1)
(/ a2 (* b1 b2))
(/.f64 a2 (*.f64 b2 b1))
(* b1 b2)
(*.f64 b2 b1)

rewrite16.0ms (0.6%)

Memory
-20.7MiB live, 25.5MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01557
02657
15157
212957
329957
439157
540157
040157
Stop Event
iter limit
saturated
iter limit
Counts
11 → 137
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(/.f64 a1 (*.f64 b1 b2))
(*.f64 b1 b2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 a2 (*.f64 b1 b2))
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(/.f64 (/.f64 a1 b1) b2)
(/.f64 a1 b1)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(/.f64 (*.f64 a1 a2) b1)
(*.f64 a1 a2)
Outputs
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 a1 (neg.f64 b1)))
(*.f64 (/.f64 (/.f64 a1 (neg.f64 b1)) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 a1 (neg.f64 b1)) b2))
(*.f64 (/.f64 a1 (neg.f64 b1)) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a1 (neg.f64 b1)) a2) (neg.f64 b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(neg.f64 (*.f64 (/.f64 (/.f64 a1 (neg.f64 b1)) b2) a2))
(/.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 b1))
(/.f64 (/.f64 a1 b2) b1)
(/.f64 (neg.f64 a1) (*.f64 (neg.f64 b2) b1))
(/.f64 (/.f64 a1 (neg.f64 b1)) (neg.f64 b2))
(/.f64 (/.f64 a1 b1) b2)
(/.f64 a1 (*.f64 b2 b1))
(neg.f64 (/.f64 (/.f64 a1 (neg.f64 b1)) b2))
(*.f64 (neg.f64 b2) (neg.f64 b1))
(*.f64 (neg.f64 b1) (neg.f64 b2))
(*.f64 b2 b1)
(*.f64 b1 b2)
(neg.f64 (*.f64 (neg.f64 b2) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 a1 (neg.f64 b1)))
(*.f64 (/.f64 (/.f64 a1 (neg.f64 b1)) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 a1 (neg.f64 b1)) b2))
(*.f64 (/.f64 a1 (neg.f64 b1)) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a1 (neg.f64 b1)) a2) (neg.f64 b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(neg.f64 (*.f64 (/.f64 (/.f64 a1 (neg.f64 b1)) b2) a2))
(/.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 b1))
(/.f64 (/.f64 a2 b2) b1)
(/.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 b2))
(/.f64 (/.f64 a2 b1) b2)
(/.f64 (neg.f64 a2) (*.f64 (neg.f64 b2) b1))
(/.f64 a2 (*.f64 b2 b1))
(neg.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 a1 (neg.f64 b1)))
(*.f64 (/.f64 (/.f64 a1 (neg.f64 b1)) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 a1 (neg.f64 b1)) b2))
(*.f64 (/.f64 a1 (neg.f64 b1)) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a1 (neg.f64 b1)) a2) (neg.f64 b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(neg.f64 (*.f64 (/.f64 (/.f64 a1 (neg.f64 b1)) b2) a2))
(/.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 b1))
(/.f64 (/.f64 a1 b2) b1)
(/.f64 (neg.f64 a1) (*.f64 (neg.f64 b2) b1))
(/.f64 (/.f64 a1 (neg.f64 b1)) (neg.f64 b2))
(/.f64 (/.f64 a1 b1) b2)
(/.f64 a1 (*.f64 b2 b1))
(neg.f64 (/.f64 (/.f64 a1 (neg.f64 b1)) b2))
(/.f64 (neg.f64 a1) (neg.f64 b1))
(/.f64 a1 b1)
(neg.f64 (/.f64 a1 (neg.f64 b1)))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 a1 (neg.f64 b1)))
(*.f64 (/.f64 (/.f64 a1 (neg.f64 b1)) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 a1 (neg.f64 b1)) b2))
(*.f64 (/.f64 a1 (neg.f64 b1)) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a1 (neg.f64 b1)) a2) (neg.f64 b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(neg.f64 (*.f64 (/.f64 (/.f64 a1 (neg.f64 b1)) b2) a2))
(*.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 a1))
(*.f64 (/.f64 a2 b1) a1)
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b1))
(*.f64 (neg.f64 a2) (/.f64 a1 (neg.f64 b1)))
(*.f64 (/.f64 a1 (neg.f64 b1)) (neg.f64 a2))
(*.f64 (/.f64 a1 b1) a2)
(*.f64 a2 (/.f64 a1 b1))
(*.f64 a1 (/.f64 a2 b1))
(/.f64 (*.f64 (neg.f64 a1) a2) (neg.f64 b1))
(/.f64 (*.f64 a2 a1) b1)
(neg.f64 (*.f64 (/.f64 a1 (neg.f64 b1)) a2))
(*.f64 (neg.f64 a1) (neg.f64 a2))
(*.f64 (neg.f64 a2) (neg.f64 a1))
(*.f64 a2 a1)
(*.f64 a1 a2)
(neg.f64 (*.f64 (neg.f64 a1) a2))

eval7.0ms (0.2%)

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

Compiled 634 to 159 computations (74.9% saved)

prune7.0ms (0.3%)

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

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New74074
Fresh000
Picked044
Done044
Total74882
Accuracy
100.0%
Counts
82 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.0%
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
92.7%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
82.7%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
83.9%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
93.0%
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
83.6%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
99.3%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
86.0%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 128 to 86 computations (32.8% saved)

regimes25.0ms (0.9%)

Memory
-2.6MiB live, 43.2MiB allocated; 5ms collecting garbage
Counts
10 → 1
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Calls

7 calls:

6.0ms
b2
3.0ms
b1
3.0ms
a1
3.0ms
a2
3.0ms
(*.f64 a1 a2)
Results
AccuracySegmentsBranch
99.3%1(*.f64 b1 b2)
99.3%1(*.f64 a1 a2)
99.3%1(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
99.3%1a1
99.3%1a2
99.3%1b1
99.3%1b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes34.0ms (1.3%)

Memory
-33.0MiB live, 20.5MiB allocated; 16ms collecting garbage
Counts
3 → 2
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Outputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
Calls

7 calls:

25.0ms
a2
2.0ms
b2
2.0ms
a1
2.0ms
b1
1.0ms
(*.f64 a1 a2)
Results
AccuracySegmentsBranch
89.5%2(*.f64 b1 b2)
89.5%3(*.f64 a1 a2)
89.5%2(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
86.0%1a1
86.0%1a2
89.5%2b1
88.4%2b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes7.0ms (0.2%)

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

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Outputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Calls

6 calls:

1.0ms
a2
1.0ms
b2
1.0ms
b1
1.0ms
(*.f64 b1 b2)
1.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Results
AccuracySegmentsBranch
86.0%1a2
86.0%1(*.f64 a1 a2)
86.0%1b2
86.0%1b1
86.0%1(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
86.0%1(*.f64 b1 b2)
Compiler

Compiled 16 to 29 computations (-81.3% saved)

bsearch3.0ms (0.1%)

Memory
4.3MiB live, 4.3MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
2.0ms
4.920897598691259e-37
4.55294621067407e-36
Samples
1.0ms32×0valid
Compiler

Compiled 30 to 42 computations (-40% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-div: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-mult: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify9.0ms (0.3%)

Memory
11.7MiB live, 11.7MiB allocated; 0ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01534
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(if (<=.f64 (*.f64 b1 b2) #s(literal 2993155353253689/1496577676626844588240573268701473812127674924007424 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(if (<=.f64 (*.f64 b1 b2) #s(literal 2993155353253689/1496577676626844588240573268701473812127674924007424 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)

derivations61.0ms (2.3%)

Memory
5.3MiB live, 51.2MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01975
03473
17373
222473
345273
449273
049273
0713
01013
12213
26513
320913
454813
555713
055713
Stop Event
done
iter limit
saturated
iter limit
iter limit
saturated
iter limit
Compiler

Compiled 34 to 15 computations (55.9% saved)

preprocess708.0ms (26.1%)

Memory
-29.5MiB live, 789.5MiB allocated; 154ms collecting garbage
Compiler

Compiled 180 to 142 computations (21.1% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...