Quotient of products

Time bar (total: 2.1s)

start0.0ms (0%)

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

analyze140.0ms (6.8%)

Memory
-21.3MiB live, 216.0MiB allocated; 29ms 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)

sample917.0ms (44.6%)

Memory
25.0MiB live, 1 715.1MiB allocated; 249ms collecting garbage
Samples
599.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 242.0ms
ival-mult: 174.0ms (71.8% of total)
ival-div: 58.0ms (23.9% of total)
ival-true: 5.0ms (2.1% of total)
ival-assert: 3.0ms (1.2% of total)
adjust: 2.0ms (0.8% of total)
Bogosity

explain137.0ms (6.7%)

Memory
-4.7MiB live, 120.7MiB allocated; 105ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
500-2(-1.8132312786354988e-93 -7.282817041516154e+31 8.780208522857792e-194 2.3850309520388994e-124)(/.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))n/o120
(*.f64 b1 b2)overflow39
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/n90
(*.f64 a1 a2)overflow38
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/o80
(*.f64 a1 a2)overflow38
(*.f64 b1 b2)overflow39
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/n70
(*.f64 a1 a2)underflow26
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/u70
(*.f64 b1 b2)underflow31
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/u50
(*.f64 a1 a2)underflow26
(*.f64 b1 b2)underflow31
Confusion
Predicted +Predicted -
+482
-0206
Precision
1.0
Recall
0.96
Confusion?
Predicted +Predicted MaybePredicted -
+4802
-00206
Precision?
1.0
Recall?
0.96
Freqs
test
numberfreq
0208
148
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
40.0ms512×0valid
Compiler

Compiled 45 to 25 computations (44.4% saved)

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

preprocess43.0ms (2.1%)

Memory
1.6MiB live, 45.3MiB allocated; 11ms 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.8MiB live, 0.8MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
82.0%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 7 to 7 computations (0% saved)

simplify4.0ms (0.2%)

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

localize30.0ms (1.5%)

Memory
-2.4MiB live, 40.6MiB allocated; 10ms collecting garbage
Localize:

Found 3 expressions of interest:

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

Compiled 19 to 9 computations (52.6% saved)

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

series20.0ms (1%)

Memory
-18.8MiB live, 32.1MiB allocated; 17ms 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
9.0ms
b1
@-inf
((/ (* a1 a2) (* b1 b2)) (* a1 a2) (* b1 b2))
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))

simplify3.0ms (0.2%)

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

rewrite23.0ms (1.1%)

Memory
-2.3MiB live, 42.3MiB allocated; 7ms 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.2%)

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

Compiled 304 to 77 computations (74.7% saved)

prune5.0ms (0.2%)

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

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New29736
Fresh000
Picked011
Done000
Total29837
Accuracy
100.0%
Counts
37 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
82.8%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
89.8%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
82.0%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
79.9%
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
89.1%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
81.7%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
98.5%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
74.3%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Compiler

Compiled 109 to 109 computations (0% saved)

simplify4.0ms (0.2%)

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

Found 15 expressions of interest:

NewMetricScoreProgram
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 b2)
cost-diff0
(/.f64 a2 b1)
cost-diff0
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
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
01691
02891
14791
26191
36291
06291
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 a2 b1) (/.f64 a1 b2))
(/.f64 a2 b1)
a2
b1
(/.f64 a1 b2)
a1
b2
(*.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
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(/.f64 a2 b2)
a2
b2
(/.f64 a1 b1)
a1
b1
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(/.f64 a2 b1)
a2
b1
(/.f64 a1 b2)
a1
b2
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(/.f64 (/.f64 a1 b2) b1)
(/.f64 a1 b2)
a1
b2
b1
a2
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(/.f64 (/.f64 a2 b2) b1)
(/.f64 (/.f64 a2 b1) b2)
(/.f64 a2 b2)
a2
b2
b1
a1
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(*.f64 (/.f64 a1 b1) a2)
(*.f64 (/.f64 a2 b1) a1)
(/.f64 a1 b1)
a1
b1
a2
b2

localize57.0ms (2.8%)

Memory
-39.8MiB live, 105.8MiB allocated; 24ms collecting garbage
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 a1 b1)
accuracy1.4357999630471043
(*.f64 (/.f64 a1 b1) a2)
accuracy6.213342346175102
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
accuracy0.0
(/.f64 a2 b2)
accuracy1.2014792794202447
(/.f64 (/.f64 a2 b2) b1)
accuracy6.690549500474569
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
accuracy0.0
(/.f64 a1 b2)
accuracy6.004389779905785
(/.f64 (/.f64 a1 b2) b1)
accuracy6.598330053473804
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
accuracy0.0
(/.f64 a2 b1)
accuracy0.0
(/.f64 a1 b2)
accuracy16.380468812870088
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
accuracy0.0
(/.f64 a2 b2)
accuracy0.0
(/.f64 a1 b1)
accuracy0.9683122221439969
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Samples
37.0ms256×0valid
Compiler

Compiled 93 to 18 computations (80.6% saved)

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

series28.0ms (1.3%)

Memory
-2.2MiB live, 41.7MiB allocated; 8ms collecting garbage
Counts
12 → 8
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(/.f64 a2 b2)
(/.f64 a1 b1)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 a2 b1)
(/.f64 a1 b2)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(/.f64 (/.f64 a1 b2) b1)
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (/.f64 a2 b2) b1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(*.f64 (/.f64 a1 b1) a2)
Outputs
(/ (* a1 a2) (* b1 b2))
(/ a1 b1)
(/ a1 b2)
(/ a1 (* b1 b2))
(/ (* a1 a2) b1)
(/ a2 b2)
(/ a2 b1)
(/ a2 (* b1 b2))
Calls

12 calls:

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

simplify4.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01434
12234
23734
34434
44434
04434
Stop Event
iter limit
saturated
Counts
8 → 8
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(/ a1 b1)
(/ a1 b2)
(/ a1 (* b1 b2))
(/ (* a1 a2) b1)
(/ a2 b2)
(/ a2 b1)
(/ a2 (* b1 b2))
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(/ a1 b1)
(/.f64 a1 b1)
(/ a1 b2)
(/.f64 a1 b2)
(/ a1 (* b1 b2))
(/.f64 (/.f64 a1 b2) b1)
(/ (* a1 a2) b1)
(*.f64 (/.f64 a2 b1) a1)
(/ a2 b2)
(/.f64 a2 b2)
(/ a2 b1)
(/.f64 a2 b1)
(/ a2 (* b1 b2))
(/.f64 (/.f64 a2 b1) b2)

rewrite14.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01662
02862
16562
220362
354962
458662
058662
Stop Event
iter limit
saturated
iter limit
Counts
12 → 152
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(/.f64 a2 b2)
(/.f64 a1 b1)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 a2 b1)
(/.f64 a1 b2)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(/.f64 (/.f64 a1 b2) b1)
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (/.f64 a2 b2) b1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(*.f64 (/.f64 a1 b1) a2)
Outputs
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b2) b1) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b2) b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(neg.f64 (/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) b1))
(/.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 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b2) b1) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b2) b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(neg.f64 (/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) b1))
(/.f64 (neg.f64 a2) (neg.f64 b1))
(/.f64 a2 b1)
(neg.f64 (/.f64 (neg.f64 a2) b1))
(/.f64 (neg.f64 a1) (neg.f64 b2))
(/.f64 a1 b2)
(neg.f64 (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b2) b1) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b2) b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(neg.f64 (/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) b1))
(/.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 b2))
(/.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 b1))
(/.f64 (neg.f64 a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (/.f64 a1 b2) b1)
(/.f64 (/.f64 a1 b1) b2)
(/.f64 a1 (*.f64 b1 b2))
(neg.f64 (/.f64 (/.f64 (neg.f64 a1) b2) b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b2) b1) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b2) b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(neg.f64 (/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) b1))
(/.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 b2))
(/.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 b1))
(/.f64 (neg.f64 a2) (*.f64 b1 (neg.f64 b2)))
(/.f64 (/.f64 a2 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 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b2) b1) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b2) b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(neg.f64 (/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 a1))
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 a2 b1) a1)
(*.f64 (/.f64 a1 b1) a2)
(*.f64 a1 (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 b1))
(/.f64 (*.f64 a1 a2) b1)
(/.f64 (*.f64 (neg.f64 a2) a1) (neg.f64 b1))
(neg.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2))

eval25.0ms (1.2%)

Memory
-29.7MiB live, 16.5MiB allocated; 5ms collecting garbage
Compiler

Compiled 694 to 153 computations (78% saved)

prune4.0ms (0.2%)

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

9 alts after pruning (3 fresh and 6 done)

PrunedKeptTotal
New78280
Fresh112
Picked055
Done011
Total79988
Accuracy
100.0%
Counts
88 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
82.8%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
89.8%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
82.0%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
89.1%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
81.7%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
81.1%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
98.5%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
74.3%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
82.5%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 63 to 63 computations (0% saved)

simplify4.0ms (0.2%)

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

Found 9 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 a1 b2)
cost-diff0
(*.f64 (/.f64 a1 b2) a2)
cost-diff0
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
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
01257
02057
13457
25457
35657
05657
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 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
a1
b2
a2
b1
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 b2) a2) b1)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
a1
b2
a2
b1

localize36.0ms (1.8%)

Memory
22.4MiB live, 66.5MiB allocated; 7ms collecting garbage
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 a1 b2)
accuracy4.396960587515419
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
accuracy8.460204847727242
(*.f64 (/.f64 a1 b2) a2)
accuracy0.0
(*.f64 b1 b2)
accuracy6.690549500474569
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
accuracy7.031762988871527
(/.f64 a2 (*.f64 b1 b2))
accuracy0.0
(*.f64 b1 b2)
accuracy5.816705473652918
(/.f64 a1 (*.f64 b1 b2))
accuracy6.598330053473804
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Samples
28.0ms256×0valid
Compiler

Compiled 59 to 14 computations (76.3% saved)

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

series21.0ms (1%)

Memory
-12.2MiB live, 40.3MiB allocated; 15ms collecting garbage
Counts
8 → 6
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 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
Outputs
(/ (* a1 a2) (* b1 b2))
(/ a1 (* b1 b2))
(/ (* a1 a2) b2)
(/ a1 b2)
(/ a2 (* b1 b2))
(* b1 b2)
Calls

12 calls:

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

simplify3.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01128
12328
23828
34328
04328
Stop Event
iter limit
saturated
Counts
6 → 6
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(/ a1 (* b1 b2))
(/ (* a1 a2) b2)
(/ a1 b2)
(/ a2 (* b1 b2))
(* b1 b2)
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/ a1 (* b1 b2))
(/.f64 a1 (*.f64 b2 b1))
(/ (* a1 a2) b2)
(/.f64 (*.f64 a2 a1) b2)
(/ a1 b2)
(/.f64 a1 b2)
(/ a2 (* b1 b2))
(/.f64 a2 (*.f64 b2 b1))
(* b1 b2)
(*.f64 b2 b1)

rewrite16.0ms (0.8%)

Memory
-12.8MiB live, 32.3MiB allocated; 5ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01242
02042
14442
212542
336242
444042
544142
044142
Stop Event
iter limit
saturated
iter limit
Counts
8 → 102
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 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
Outputs
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 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 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b1) b2))
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(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 (/.f64 a1 b1) b2)
(/.f64 (neg.f64 a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (/.f64 a1 b2) b1)
(/.f64 a1 (*.f64 b2 b1))
(neg.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (neg.f64 b1) (neg.f64 b2))
(*.f64 (neg.f64 b2) (neg.f64 b1))
(*.f64 b2 b1)
(*.f64 b1 b2)
(neg.f64 (*.f64 (neg.f64 b1) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 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 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b1) b2))
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) 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 b1) b2))
(/.f64 a2 (*.f64 b2 b1))
(neg.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 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 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b1) b2))
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(*.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 a2))
(*.f64 (/.f64 a2 b2) a1)
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a2 a1) b2)
(/.f64 (*.f64 (neg.f64 a1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1))
(/.f64 (neg.f64 a1) (neg.f64 b2))
(/.f64 a1 b2)
(neg.f64 (/.f64 (neg.f64 a1) b2))

eval6.0ms (0.3%)

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

Compiled 582 to 143 computations (75.4% saved)

prune11.0ms (0.5%)

Memory
-28.6MiB live, 16.1MiB allocated; 7ms collecting garbage
Pruning

9 alts after pruning (0 fresh and 9 done)

PrunedKeptTotal
New68068
Fresh000
Picked033
Done066
Total68977
Accuracy
100.0%
Counts
77 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
82.8%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
89.8%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
82.0%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
89.1%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
81.7%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
81.1%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
98.5%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
74.3%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
82.5%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 135 to 93 computations (31.1% saved)

regimes25.0ms (1.2%)

Memory
0.7MiB live, 46.3MiB allocated; 4ms 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 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.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 b2) a2) b1)
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Calls

7 calls:

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

Compiled 17 to 33 computations (-94.1% saved)

regimes13.0ms (0.6%)

Memory
25.9MiB live, 25.9MiB allocated; 0ms collecting garbage
Counts
4 → 4
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 b1) (/.f64 a1 b2))
Outputs
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Calls

7 calls:

2.0ms
b2
2.0ms
a2
2.0ms
b1
2.0ms
a1
2.0ms
(*.f64 a1 a2)
Results
AccuracySegmentsBranch
97.9%4(*.f64 b1 b2)
91.7%3(*.f64 a1 a2)
96.1%3(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
88.8%2a1
86.2%2a2
92.6%3b1
91.2%3b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes18.0ms (0.9%)

Memory
-38.0MiB live, 16.4MiB allocated; 23ms 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 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Calls

6 calls:

10.0ms
b1
2.0ms
(*.f64 a1 a2)
2.0ms
b2
2.0ms
a1
1.0ms
(*.f64 b1 b2)
Results
AccuracySegmentsBranch
85.4%2a1
86.7%2b2
87.9%3(*.f64 a1 a2)
87.3%2b1
87.9%2(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
87.9%2(*.f64 b1 b2)
Compiler

Compiled 16 to 29 computations (-81.3% saved)

regimes8.0ms (0.4%)

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

7 calls:

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

Compiled 17 to 33 computations (-94.1% saved)

bsearch1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
6.738886311185434e+306
+inf
0.0ms
1.007579456007266e+24
1.6399022919384516e+25
0.0ms
1.58716251949433e-309
5.1217117593596676e-303
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
578310127765.0776
624935652815333900.0
Compiler

Compiled 10 to 14 computations (-40% saved)

simplify10.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02984
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(if (<=.f64 (*.f64 b1 b2) #s(literal 404804506614621/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 b1 b2) #s(literal 1999999999999999966445568 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (if (<=.f64 (*.f64 b1 b2) #s(literal 9999999999999999860310597602564577717002641838126363875249660735883565852672743849064846414228960666786379280392654615393353172850252103336275952370615397010730691664689375178569039851073146339641623266071126720011020169553304018596457812688561947201171488461172921822139066929851282122002676667750021070848 binary64)) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))))
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 1000000000000 binary64)) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(if (<=.f64 (*.f64 b1 b2) #s(literal 404804506614621/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 b1 b2) #s(literal 1999999999999999966445568 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (if (<=.f64 (*.f64 b1 b2) #s(literal 9999999999999999860310597602564577717002641838126363875249660735883565852672743849064846414228960666786379280392654615393353172850252103336275952370615397010730691664689375178569039851073146339641623266071126720011020169553304018596457812688561947201171488461172921822139066929851282122002676667750021070848 binary64)) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))))
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 1000000000000 binary64)) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)

derivations41.0ms (2%)

Memory
-0.8MiB live, 44.4MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
01013
12213
26513
320913
454813
555713
055713
01662
02862
16562
220362
354962
458662
058662
Stop Event
done
iter limit
saturated
iter limit
iter limit
saturated
iter limit
Compiler

Compiled 84 to 29 computations (65.5% saved)

preprocess381.0ms (18.5%)

Memory
-20.2MiB live, 737.7MiB allocated; 85ms collecting garbage
Compiler

Compiled 280 to 170 computations (39.3% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...