Quotient of products

Time bar (total: 1.8s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze136.0ms (7.6%)

Memory
-14.2MiB live, 217.2MiB allocated
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)

sample687.0ms (38.7%)

Memory
24.5MiB live, 1 219.9MiB allocated
Samples
408.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 173.0ms
ival-mult: 114.0ms (65.9% of total)
ival-div: 50.0ms (28.9% of total)
ival-true: 6.0ms (3.5% of total)
ival-assert: 3.0ms (1.7% of total)
Bogosity

explain61.0ms (3.5%)

Memory
17.2MiB live, 151.9MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
381(-1.8613666098665938e+208 3.5285870233146436e-87 -4.78685883583738e+154 3.883901883718237e+290)4(-1.745259740098451e-121 -2.0406228160134861e-197 2.649308341013732e-88 -7.301655490912872e-26)(/.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/o110
(*.f64 b1 b2)overflow39
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/u80
(*.f64 b1 b2)underflow21
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/n70
(*.f64 a1 a2)underflow38
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/o40
(*.f64 a1 a2)overflow18
(*.f64 b1 b2)overflow39
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/n40
(*.f64 a1 a2)overflow18
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/u10
(*.f64 a1 a2)underflow38
(*.f64 b1 b2)underflow21
Confusion
Predicted +Predicted -
+344
-1217
Precision
0.9714285714285714
Recall
0.8947368421052632
Confusion?
Predicted +Predicted MaybePredicted -
+3404
-10217
Precision?
0.9714285714285714
Recall?
0.8947368421052632
Freqs
test
numberfreq
0221
135
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
32.0ms512×0valid
Compiler

Compiled 45 to 25 computations (44.4% saved)

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

preprocess48.0ms (2.7%)

Memory
-2.7MiB live, 93.5MiB allocated
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
Compiler

Compiled 0 to 4 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
86.6%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 7 to 7 computations (0% saved)

simplify4.0ms (0.2%)

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

localize21.0ms (1.2%)

Memory
-9.4MiB live, 36.4MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 b1 b2)
accuracy0.0
(*.f64 a1 a2)
accuracy8.502879931230288
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Samples
17.0ms256×0valid
Compiler

Compiled 19 to 9 computations (52.6% saved)

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

series16.0ms (0.9%)

Memory
-8.8MiB live, 36.8MiB allocated
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
4.0ms
a2
@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
6.3MiB live, 6.3MiB allocated
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.3%)

Memory
-9.4MiB live, 43.4MiB allocated
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
9.9MiB live, 9.9MiB allocated
Compiler

Compiled 304 to 77 computations (74.7% saved)

prune5.0ms (0.3%)

Memory
7.3MiB live, 7.3MiB allocated
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)
92.3%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
86.6%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
83.5%
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
91.2%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
81.7%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
97.7%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
76.6%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Compiler

Compiled 109 to 109 computations (0% saved)

simplify4.0ms (0.2%)

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

localize50.0ms (2.8%)

Memory
-4.9MiB live, 86.4MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 a1 b1)
accuracy1.7842989874760187
(*.f64 (/.f64 a1 b1) a2)
accuracy4.589989771542092
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
accuracy0.0
(/.f64 a2 b2)
accuracy2.490746733753702
(/.f64 (/.f64 a2 b2) b1)
accuracy5.256653878697989
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
accuracy0.0
(/.f64 a1 b2)
accuracy5.875254772278841
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
accuracy7.9310086148571814
(/.f64 (/.f64 a1 b2) b1)
accuracy0.0
(/.f64 a2 b1)
accuracy0.0
(/.f64 a1 b2)
accuracy14.917033977310275
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
accuracy0.0
(/.f64 a2 b2)
accuracy0.0
(/.f64 a1 b1)
accuracy1.4617550942130586
(*.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: 19.0ms
ival-div: 12.0ms (64.5% of total)
ival-mult: 7.0ms (37.6% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series27.0ms (1.5%)

Memory
4.8MiB live, 49.5MiB allocated
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
8.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
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
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))

simplify3.0ms (0.2%)

Memory
5.5MiB live, 5.5MiB allocated
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)

rewrite23.0ms (1.3%)

Memory
-43.6MiB live, 16.9MiB allocated
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))

eval7.0ms (0.4%)

Memory
21.3MiB live, 21.3MiB allocated
Compiler

Compiled 694 to 153 computations (78% saved)

prune4.0ms (0.2%)

Memory
10.5MiB live, 10.5MiB allocated
Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New77380
Fresh112
Picked325
Done011
Total81788
Accuracy
100.0%
Counts
88 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
87.5%
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
82.8%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
86.6%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
86.5%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
97.7%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
76.6%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
85.2%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 49 to 49 computations (0% saved)

simplify8.0ms (0.4%)

Memory
-39.2MiB live, 7.2MiB allocated
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 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
01576
02676
14076
25376
35576
05576
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
(/.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 b2) a2) b1)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
a1
b2
a2
b1
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(/.f64 (*.f64 a1 a2) b1)
(/.f64 (*.f64 a2 a1) b1)
(*.f64 a1 a2)
(*.f64 a2 a1)
a1
a2
b1
b2

localize41.0ms (2.3%)

Memory
32.4MiB live, 78.0MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 a1 a2)
accuracy4.589989771542092
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
accuracy4.873587968573501
(/.f64 (*.f64 a1 a2) b1)
accuracy0.0
(/.f64 a1 b2)
accuracy5.620501640082097
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
accuracy6.141630984762835
(*.f64 (/.f64 a1 b2) a2)
accuracy0.0
(*.f64 b1 b2)
accuracy4.358861036917706
(/.f64 a2 (*.f64 b1 b2))
accuracy5.256653878697989
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
accuracy0.0
(*.f64 b1 b2)
accuracy4.611216323033102
(/.f64 a1 (*.f64 b1 b2))
accuracy5.875254772278841
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Samples
32.0ms256×0valid
Compiler

Compiled 78 to 17 computations (78.2% saved)

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

series23.0ms (1.3%)

Memory
2.4MiB live, 47.2MiB allocated
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 a1 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(/.f64 (*.f64 a1 a2) b1)
(*.f64 a1 a2)
Outputs
(/ (* a1 a2) (* b1 b2))
(/ a1 (* b1 b2))
(/ (* a1 a2) b2)
(/ a1 b2)
(/ (* a1 a2) b1)
(* a1 a2)
(/ a2 (* b1 b2))
(* b1 b2)
Calls

12 calls:

TimeVariablePointExpression
7.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) (/ (/ (* a1 a2) b1) b2) (/ (* a1 a2) b1) (* a1 a2))
2.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) (/ (/ (* 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 b2) a2) b1) (* (/ a1 b2) a2) (/ a1 b2) (/ (/ (* 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 b2) a2) b1) (* (/ a1 b2) a2) (/ a1 b2) (/ (/ (* 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 b2) a2) b1) (* (/ a1 b2) a2) (/ a1 b2) (/ (/ (* a1 a2) b1) b2) (/ (* a1 a2) b1) (* a1 a2))

simplify3.0ms (0.2%)

Memory
5.8MiB live, 5.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01236
12436
23836
34136
04136
Stop Event
iter limit
saturated
Counts
8 → 8
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(/ a1 (* b1 b2))
(/ (* a1 a2) b2)
(/ a1 b2)
(/ (* a1 a2) b1)
(* a1 a2)
(/ 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)
(/ (* 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)

rewrite17.0ms (1%)

Memory
-35.9MiB live, 18.5MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01557
02657
15457
213457
335557
439557
039557
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 a1 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(/.f64 (*.f64 a1 a2) b1)
(*.f64 a1 a2)
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 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.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 b1) a2) 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 b2) (neg.f64 b1))
(*.f64 (neg.f64 b1) (neg.f64 b2))
(*.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 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.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 b1) a2) 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 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.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 b1) a2) 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))
(*.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 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.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 b1) a2) b2)
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(*.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 a1))
(*.f64 (/.f64 a1 b1) a2)
(*.f64 (/.f64 a2 b1) a1)
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b1))
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b1))
(*.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 a1) 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.4%)

Memory
26.7MiB live, 26.7MiB allocated
Compiler

Compiled 736 to 182 computations (75.3% saved)

prune10.0ms (0.5%)

Memory
-31.0MiB live, 15.2MiB allocated
Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New86086
Fresh000
Picked044
Done033
Total86793
Accuracy
100.0%
Counts
93 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
87.5%
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
82.8%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
86.6%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
86.5%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
97.7%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
76.6%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
85.2%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 128 to 81 computations (36.7% saved)

regimes26.0ms (1.5%)

Memory
14.0MiB live, 59.6MiB allocated
Counts
11 → 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))
(*.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 a1 a2) b1) b2)
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
Outputs
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(*.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
97.7%1(*.f64 b1 b2)
99.3%2(*.f64 a1 a2)
97.7%1(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
97.7%1a1
97.7%1a2
97.7%1b1
97.7%1b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes7.0ms (0.4%)

Memory
20.4MiB live, 20.4MiB allocated
Counts
7 → 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)
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Calls

3 calls:

2.0ms
b2
2.0ms
(*.f64 a1 a2)
2.0ms
(*.f64 b1 b2)
Results
AccuracySegmentsBranch
97.7%1(*.f64 b1 b2)
97.7%1b2
97.7%1(*.f64 a1 a2)
Compiler

Compiled 7 to 14 computations (-100% saved)

regimes15.0ms (0.9%)

Memory
-18.0MiB live, 27.8MiB allocated
Counts
4 → 3
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 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Calls

7 calls:

5.0ms
b1
2.0ms
a2
2.0ms
a1
2.0ms
b2
2.0ms
(*.f64 b1 b2)
Results
AccuracySegmentsBranch
96.4%3(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
89.3%2a1
90.3%2a2
94.5%3b1
97.8%4(*.f64 b1 b2)
92.3%3(*.f64 a1 a2)
92.7%3b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes5.0ms (0.3%)

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

3 calls:

1.0ms
b1
1.0ms
(*.f64 b1 b2)
1.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Results
AccuracySegmentsBranch
90.7%2b1
91.2%2(*.f64 b1 b2)
91.2%2(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 11 to 16 computations (-45.5% saved)

regimes11.0ms (0.6%)

Memory
-23.5MiB live, 29.6MiB allocated
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:

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

Compiled 17 to 33 computations (-94.1% saved)

bsearch0.0ms (0%)

Memory
2.3MiB live, 2.3MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.0951149472439734e-24
2.0197460184554647e-24
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch0.0ms (0%)

Memory
2.6MiB live, 2.6MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.4627329146725519e+280
+inf
0.0ms
0.0
2.0652e-319
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch10.0ms (0.6%)

Memory
16.6MiB live, 16.6MiB allocated
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
9.0ms
6.956682590268848e-72
2.3193439676261464e-65
Samples
5.0ms128×0valid
Compiler

Compiled 90 to 126 computations (-40% saved)

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

simplify14.0ms (0.8%)

Memory
-29.4MiB live, 16.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03189
13489
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 a1 a2) #s(literal 5444517870735015/2722258935367507707706996859454145691648 binary64)) (/.f64 (*.f64 (/.f64 a1 b1) a2) b2) (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 0 binary64)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 20000000000000000655644919657241964971414105660429871285266671548818852063947486718558687573448235861076349951636483016374032693538213913919879822025860850422495576084912401316305465447102991929806570978250206012581852027848896713042618971296520092441575713536217102114025294004224 binary64)) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))
(if (<=.f64 (*.f64 b1 b2) #s(literal 5828006676677187/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Outputs
(if (<=.f64 (*.f64 a1 a2) #s(literal 5444517870735015/2722258935367507707706996859454145691648 binary64)) (/.f64 (*.f64 (/.f64 a1 b1) a2) b2) (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 0 binary64)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 20000000000000000655644919657241964971414105660429871285266671548818852063947486718558687573448235861076349951636483016374032693538213913919879822025860850422495576084912401316305465447102991929806570978250206012581852027848896713042618971296520092441575713536217102114025294004224 binary64)) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))
(if (or (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 0 binary64)) (not (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 20000000000000000655644919657241964971414105660429871285266671548818852063947486718558687573448235861076349951636483016374032693538213913919879822025860850422495576084912401316305465447102991929806570978250206012581852027848896713042618971296520092441575713536217102114025294004224 binary64)))) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)))
(if (<=.f64 (*.f64 b1 b2) #s(literal 5828006676677187/3885337784451458141838923813647037813284813678104279042503624819477808570410416996352 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)

soundness88.0ms (5%)

Memory
49.4MiB live, 142.6MiB allocated
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 229 to 132 computations (42.4% saved)

preprocess363.0ms (20.5%)

Memory
-14.2MiB live, 656.6MiB allocated
Compiler

Compiled 446 to 248 computations (44.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...