Quotient of products

Time bar (total: 2.5s)

start0.0ms (0%)

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

analyze152.0ms (6.2%)

Memory
-23.8MiB live, 210.7MiB allocated; 35ms 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)

sample858.0ms (34.8%)

Memory
67.3MiB live, 1 678.8MiB allocated; 308ms collecting garbage
Samples
547.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 295.0ms
ival-div: 157.0ms (53.2% of total)
ival-mult: 126.0ms (42.7% of total)
ival-true: 6.0ms (2% of total)
ival-assert: 4.0ms (1.4% of total)
adjust: 3.0ms (1% of total)
Bogosity

explain70.0ms (2.8%)

Memory
-2.4MiB live, 187.9MiB allocated; 15ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
450-2(-1.9886711652468795e+125 -1.3518805811273087e-266 2.4997158335564644e-145 -4.026006126542212e-178)(/.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))u/n100
(*.f64 a1 a2)underflow31
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/o100
(*.f64 b1 b2)overflow50
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/n90
(*.f64 a1 a2)overflow29
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/o80
(*.f64 a1 a2)overflow29
(*.f64 b1 b2)overflow50
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/u40
(*.f64 b1 b2)underflow23
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/u20
(*.f64 a1 a2)underflow31
(*.f64 b1 b2)underflow23
Confusion
Predicted +Predicted -
+432
-0211
Precision
1.0
Recall
0.9555555555555556
Confusion?
Predicted +Predicted MaybePredicted -
+4302
-00211
Precision?
1.0
Recall?
0.9555555555555556
Freqs
test
numberfreq
0213
143
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
28.0ms512×0valid
Compiler

Compiled 45 to 25 computations (44.4% saved)

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

preprocess41.0ms (1.7%)

Memory
-2.9MiB live, 95.2MiB 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.3MiB live, 0.3MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 4 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 7 to 7 computations (0% saved)

simplify4.0ms (0.2%)

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

localize20.0ms (0.8%)

Memory
8.1MiB live, 55.0MiB allocated; 2ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 b1 b2)
accuracy0.0
(*.f64 a1 a2)
accuracy10.292656868143125
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Samples
14.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: 4.0ms (66.6% of total)
ival-div: 2.0ms (33.3% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series14.0ms (0.6%)

Memory
-0.9MiB live, 46.2MiB allocated; 2ms 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
3.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
11.5MiB live, 11.5MiB 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 (0.9%)

Memory
-27.5MiB live, 67.7MiB 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.1%)

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

Compiled 304 to 77 computations (74.7% saved)

prune5.0ms (0.2%)

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

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New30636
Fresh000
Picked011
Done000
Total30737
Accuracy
100.0%
Counts
37 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
82.6%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
89.5%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
83.8%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
91.6%
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
92.0%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
83.5%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
97.8%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Compiler

Compiled 95 to 95 computations (0% saved)

simplify5.0ms (0.2%)

Memory
-33.9MiB live, 13.6MiB allocated; 1ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 15 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 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
01693
02893
14493
25893
36193
06193
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 a1 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
a1
b2
a2
b1
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 a1 b2) a2) b1)
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
a1
b2
a2
b1

localize54.0ms (2.2%)

Memory
4.1MiB live, 148.2MiB allocated; 17ms collecting garbage
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 a1 b2)
accuracy5.238317259737448
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
accuracy7.469001784111558
(*.f64 (/.f64 a1 b2) a2)
accuracy0.0
(/.f64 a1 b1)
accuracy2.1041449286550002
(*.f64 (/.f64 a1 b1) a2)
accuracy6.511858353462376
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
accuracy0.0
(/.f64 a2 b2)
accuracy1.5813142569520413
(/.f64 (/.f64 a2 b2) b1)
accuracy5.038394127489044
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
accuracy0.0
(/.f64 a1 b2)
accuracy4.864970113952761
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
accuracy6.632336136660421
(/.f64 (/.f64 a1 b2) b1)
accuracy0.0
(/.f64 a2 b2)
accuracy0.0
(/.f64 a1 b1)
accuracy1.407752152115191
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Samples
37.0ms256×0valid
Compiler

Compiled 95 to 18 computations (81.1% saved)

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

series25.0ms (1%)

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

12 calls:

TimeVariablePointExpression
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) (/ (* (/ a1 b2) a2) b1) (* (/ a1 b2) 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) (/ (* (/ a1 b2) a2) b1) (* (/ a1 b2) a2))
3.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) (/ (* (/ a1 b2) a2) b1) (* (/ a1 b2) a2))
2.0ms
a2
@-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) (/ (* (/ a1 b2) a2) b1) (* (/ a1 b2) a2))
2.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) (/ (* (/ a1 b2) a2) b1) (* (/ a1 b2) 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
01436
12436
23836
34136
04136
Stop Event
iter limit
saturated
Counts
8 → 8
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(/ a1 b1)
(/ a1 (* b1 b2))
(/ a1 b2)
(/ (* a1 a2) b1)
(/ (* a1 a2) b2)
(/ a2 b2)
(/ a2 (* b1 b2))
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)
(/ (* a1 a2) b2)
(*.f64 (/.f64 a1 b2) a2)
(/ a2 b2)
(/.f64 a2 b2)
(/ a2 (* b1 b2))
(/.f64 (/.f64 a2 b2) b1)

rewrite16.0ms (0.6%)

Memory
-16.9MiB live, 29.7MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01664
02864
16164
218364
349564
454364
054364
Stop Event
iter limit
saturated
iter limit
Counts
12 → 160
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 a1 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
Outputs
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 (*.f64 b1 (neg.f64 b2))) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 a1 (*.f64 b1 (neg.f64 b2))))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.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 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(neg.f64 (*.f64 (/.f64 a1 (*.f64 b1 (neg.f64 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 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 (*.f64 b1 (neg.f64 b2))) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 a1 (*.f64 b1 (neg.f64 b2))))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.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 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(neg.f64 (*.f64 (/.f64 a1 (*.f64 b1 (neg.f64 b2))) a2))
(/.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 b2))
(/.f64 (neg.f64 a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 b1))
(/.f64 (/.f64 a1 b2) b1)
(/.f64 (/.f64 a1 b1) b2)
(/.f64 a1 (*.f64 b1 b2))
(neg.f64 (/.f64 a1 (*.f64 b1 (neg.f64 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 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 (*.f64 b1 (neg.f64 b2))) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 a1 (*.f64 b1 (neg.f64 b2))))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.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 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(neg.f64 (*.f64 (/.f64 a1 (*.f64 b1 (neg.f64 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 b1 (neg.f64 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 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 (*.f64 b1 (neg.f64 b2))) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 a1 (*.f64 b1 (neg.f64 b2))))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.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 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(neg.f64 (*.f64 (/.f64 a1 (*.f64 b1 (neg.f64 b2))) a2))
(*.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 a2))
(*.f64 (/.f64 a2 b1) a1)
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b1))
(*.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 a2) b1) a1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 (*.f64 b1 (neg.f64 b2))) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 a1 (*.f64 b1 (neg.f64 b2))))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.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 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(neg.f64 (*.f64 (/.f64 a1 (*.f64 b1 (neg.f64 b2))) a2))
(*.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 a1))
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b2))
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a1 (/.f64 a2 b2))
(*.f64 (/.f64 a2 b2) a1)
(*.f64 a2 (/.f64 a1 b2))
(/.f64 (*.f64 (neg.f64 a2) a1) (neg.f64 b2))
(/.f64 (*.f64 a1 a2) b2)
(neg.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1))

eval8.0ms (0.3%)

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

Compiled 760 to 172 computations (77.4% saved)

prune6.0ms (0.2%)

Memory
-27.5MiB live, 19.6MiB allocated; 2ms collecting garbage
Pruning

9 alts after pruning (4 fresh and 5 done)

PrunedKeptTotal
New84488
Fresh101
Picked145
Done011
Total86995
Accuracy
100.0%
Counts
95 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
85.1%
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
79.0%
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
82.6%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
89.5%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
83.8%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
92.0%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
85.4%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
97.8%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
86.9%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 63 to 63 computations (0% saved)

simplify4.0ms (0.2%)

Memory
13.8MiB live, 13.8MiB 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) b2)
cost-diff0
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
cost-diff0
(/.f64 a2 b1)
cost-diff0
(*.f64 (/.f64 a2 b1) a1)
cost-diff0
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
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
14376
25576
35776
05776
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 a2 b1) a1) b2)
(*.f64 (/.f64 a2 b1) a1)
(/.f64 a2 b1)
a2
b1
a1
b2
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 (*.f64 a1 a2) b2)
(*.f64 a1 a2)
a1
a2
b2
b1
Outputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.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 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 a2 (*.f64 b1 b2))
(/.f64 a2 (*.f64 b2 b1))
a2
(*.f64 b1 b2)
(*.f64 b2 b1)
b1
b2
a1
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 (/.f64 a2 b1) a1)
(/.f64 a2 b1)
a2
b1
a1
b2
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a2 a1) b2)
(*.f64 a1 a2)
(*.f64 a2 a1)
a1
a2
b2
b1

localize47.0ms (1.9%)

Memory
-15.9MiB live, 126.4MiB allocated; 9ms collecting garbage
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 a1 a2)
accuracy5.238317259737448
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
accuracy5.332722734761197
(/.f64 (*.f64 a1 a2) b2)
accuracy0.0
(/.f64 a2 b1)
accuracy6.511858353462376
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
accuracy8.129379770574706
(*.f64 (/.f64 a2 b1) a1)
accuracy0.0
(*.f64 b1 b2)
accuracy5.038394127489044
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
accuracy6.890816900844387
(/.f64 a2 (*.f64 b1 b2))
accuracy0.0
(*.f64 b1 b2)
accuracy4.567906151047609
(/.f64 a1 (*.f64 b1 b2))
accuracy4.864970113952761
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Samples
34.0ms256×0valid
Compiler

Compiled 78 to 17 computations (78.2% saved)

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

series21.0ms (0.9%)

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

12 calls:

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

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01236
12336
23836
34136
04136
Stop Event
iter limit
saturated
Counts
8 → 8
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(/ a1 (* b1 b2))
(/ (* a1 a2) b1)
(/ (* a1 a2) b2)
(* a1 a2)
(/ a2 (* b1 b2))
(/ a2 b1)
(* b1 b2)
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/ a1 (* b1 b2))
(/.f64 a1 (*.f64 b2 b1))
(/ (* a1 a2) b1)
(*.f64 (/.f64 a1 b1) a2)
(/ (* a1 a2) b2)
(/.f64 (*.f64 a2 a1) b2)
(* a1 a2)
(*.f64 a2 a1)
(/ a2 (* b1 b2))
(/.f64 a2 (*.f64 b2 b1))
(/ a2 b1)
(/.f64 a2 b1)
(* b1 b2)
(*.f64 b2 b1)

rewrite13.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01557
02657
15757
213957
336657
440257
040257
Stop Event
iter limit
saturated
iter limit
Counts
11 → 141
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 a2 b1) a1) b2)
(*.f64 (/.f64 a2 b1) a1)
(/.f64 a2 b1)
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 (*.f64 a1 a2) b2)
(*.f64 a1 a2)
Outputs
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a2 b1) a1) 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 (/.f64 a1 b2) b1)
(/.f64 (/.f64 a1 b1) b2)
(/.f64 (neg.f64 a1) (*.f64 (neg.f64 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 b2) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 b2))
(/.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 b1))
(/.f64 (/.f64 a2 b2) b1)
(/.f64 (neg.f64 a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (/.f64 a2 b1) b2)
(/.f64 a2 (*.f64 b2 b1))
(neg.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(*.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 a2))
(*.f64 (/.f64 a1 b1) a2)
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b1))
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 a2 b1) a1)
(*.f64 a2 (/.f64 a1 b1))
(*.f64 a1 (/.f64 a2 b1))
(/.f64 (*.f64 a2 a1) b1)
(/.f64 (*.f64 (neg.f64 a1) a2) (neg.f64 b1))
(neg.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1))
(/.f64 (neg.f64 a2) (neg.f64 b1))
(/.f64 a2 b1)
(neg.f64 (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(*.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 a1))
(*.f64 (/.f64 a1 b2) 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 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 a1) 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))

eval8.0ms (0.3%)

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

Compiled 736 to 182 computations (75.3% saved)

prune18.0ms (0.7%)

Memory
-32.5MiB live, 14.8MiB allocated; 9ms collecting garbage
Pruning

9 alts after pruning (0 fresh and 9 done)

PrunedKeptTotal
New86086
Fresh000
Picked044
Done055
Total86995
Accuracy
100.0%
Counts
95 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
85.1%
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
79.0%
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
82.6%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
89.5%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
83.8%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
92.0%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
85.4%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
97.8%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
86.9%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 142 to 96 computations (32.4% saved)

regimes24.0ms (1%)

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

7 calls:

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

Compiled 17 to 33 computations (-94.1% saved)

regimes27.0ms (1.1%)

Memory
-22.1MiB live, 23.0MiB allocated; 6ms 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

7 calls:

18.0ms
a1
2.0ms
b2
2.0ms
b1
1.0ms
(*.f64 a1 a2)
1.0ms
a2
Results
AccuracySegmentsBranch
90.9%2(*.f64 b1 b2)
91.0%3(*.f64 a1 a2)
90.9%2(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
86.9%1a1
86.9%1a2
90.1%2b1
90.7%2b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes5.0ms (0.2%)

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

5 calls:

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

Compiled 15 to 25 computations (-66.7% saved)

bsearch1.0ms (0%)

Memory
0.9MiB live, 0.8MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.8922275472333413e-17
4.6282837443920796e-14
Compiler

Compiled 10 to 14 computations (-40% saved)

simplify15.0ms (0.6%)

Memory
-23.2MiB live, 20.7MiB allocated; 11ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01738
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 2028240960365167/40564819207303340847894502572032 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 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 2028240960365167/40564819207303340847894502572032 binary64)) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)

derivations31.0ms (1.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
01013
12213
26513
320913
454813
555713
055713
01664
02864
16164
218364
349564
454364
054364
Stop Event
done
iter limit
saturated
iter limit
iter limit
saturated
iter limit
Compiler

Compiled 38 to 17 computations (55.3% saved)

preprocess935.0ms (37.9%)

Memory
-155.4MiB live, 618.5MiB allocated; 1.1s collecting garbage
Compiler

Compiled 188 to 146 computations (22.3% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...