Quotient of products

Time bar (total: 2.9s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze222.0ms (7.7%)

Memory
4.4MiB live, 340.9MiB 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)

sample1.2s (40.2%)

Memory
-6.0MiB live, 1 147.2MiB allocated
Samples
703.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 351.0ms
ival-mult: 237.0ms (67.5% of total)
ival-div: 103.0ms (29.4% of total)
ival-true: 6.0ms (1.7% of total)
adjust: 3.0ms (0.9% of total)
ival-assert: 3.0ms (0.9% of total)
Bogosity

explain120.0ms (4.2%)

Memory
17.2MiB live, 162.8MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
360-1(3.2569091945572376e-12 1.6313278636929646e-303 -4.857505266120179e-121 6.3449531123788964e+60)(/.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/u90
(*.f64 b1 b2)underflow44
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/n70
(*.f64 a1 a2)underflow38
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/u60
(*.f64 a1 a2)underflow38
(*.f64 b1 b2)underflow44
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/n60
(*.f64 a1 a2)overflow26
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/o40
(*.f64 b1 b2)overflow31
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/o30
(*.f64 a1 a2)overflow26
(*.f64 b1 b2)overflow31
Confusion
Predicted +Predicted -
+351
-0220
Precision
1.0
Recall
0.9722222222222222
Confusion?
Predicted +Predicted MaybePredicted -
+3501
-00220
Precision?
1.0
Recall?
0.9722222222222222
Freqs
test
numberfreq
0221
135
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
37.0ms512×0valid
Compiler

Compiled 45 to 25 computations (44.4% saved)

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

preprocess122.0ms (4.2%)

Memory
-24.5MiB live, 109.0MiB 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.3MiB live, 0.3MiB allocated
Compiler

Compiled 0 to 4 computations (-∞% saved)

prune0.0ms (0%)

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

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

localize42.0ms (1.4%)

Memory
-13.2MiB live, 46.4MiB allocated
Localize:

Found 3 expressions of interest:

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

Compiled 19 to 9 computations (52.6% saved)

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

series34.0ms (1.2%)

Memory
-12.5MiB live, 33.3MiB 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
22.0ms
b2
@0
((/ (* 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.1%)

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

rewrite39.0ms (1.3%)

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

Memory
9.2MiB live, 9.2MiB allocated
Compiler

Compiled 304 to 77 computations (74.7% saved)

prune5.0ms (0.2%)

Memory
15.0MiB live, 15.1MiB 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
81.3%
(/.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))
81.3%
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
93.9%
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
91.7%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
81.2%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
98.0%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Compiler

Compiled 113 to 113 computations (0% saved)

simplify4.0ms (0.2%)

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

localize87.0ms (3%)

Memory
-13.1MiB live, 96.2MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 a1 b2)
accuracy5.532961496348599
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
accuracy7.63010464659265
(*.f64 (/.f64 a1 b2) a2)
accuracy0.0
(/.f64 a1 b1)
accuracy1.156337642792202
(*.f64 (/.f64 a1 b1) a2)
accuracy4.857119901938315
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
accuracy0.0
(/.f64 a2 b2)
accuracy1.522570274268911
(/.f64 (/.f64 a2 b2) b1)
accuracy4.816452630922271
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
accuracy0.0
(/.f64 a1 b2)
accuracy3.889983436795268
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
accuracy8.99049116637464
(/.f64 (/.f64 a1 b2) b1)
accuracy0.0
(/.f64 a2 b2)
accuracy0.0
(/.f64 a1 b1)
accuracy1.3097361419113178
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Samples
76.0ms256×0valid
Compiler

Compiled 95 to 18 computations (81.1% saved)

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

series42.0ms (1.5%)

Memory
3.1MiB live, 49.9MiB allocated
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
21.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))
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))
2.0ms
b1
@-inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) (/ a1 b1) (* (/ (/ a1 b2) b1) a2) (/ (/ a1 b2) b1) (/ a1 b2) (* (/ (/ a2 b2) b1) a1) (/ (/ a2 b2) b1) (/ (* (/ a1 b1) a2) b2) (* (/ a1 b1) a2) (/ (* (/ a1 b2) a2) b1) (* (/ a1 b2) a2))

simplify18.0ms (0.6%)

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

rewrite14.0ms (0.5%)

Memory
20.3MiB live, 20.3MiB allocated
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
15.2MiB live, 15.2MiB allocated
Compiler

Compiled 760 to 172 computations (77.4% saved)

prune23.0ms (0.8%)

Memory
-35.1MiB live, 11.9MiB allocated
Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New86288
Fresh202
Picked145
Done011
Total89796
Accuracy
100.0%
Counts
96 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.3%
(/.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))
91.7%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
86.5%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
98.0%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
87.6%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 49 to 49 computations (0% saved)

simplify5.0ms (0.2%)

Memory
11.4MiB live, 11.4MiB allocated
Algorithm
egg-herbie
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
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
0938
01438
12538
24938
35738
45738
05738
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
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

localize48.0ms (1.7%)

Memory
0.9MiB live, 47.5MiB allocated
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 b1 b2)
accuracy4.816452630922271
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
accuracy5.046624096756292
(/.f64 a2 (*.f64 b1 b2))
accuracy0.0
(*.f64 b1 b2)
accuracy3.889983436795268
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
accuracy6.080728515056149
(/.f64 a1 (*.f64 b1 b2))
Samples
42.0ms256×0valid
Compiler

Compiled 40 to 11 computations (72.5% saved)

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

series12.0ms (0.4%)

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

12 calls:

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

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0920
12020
23720
34620
44620
04620
Stop Event
iter limit
saturated
Counts
4 → 4
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(/ a1 (* b1 b2))
(/ a2 (* b1 b2))
(* b1 b2)
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/ a1 (* b1 b2))
(/.f64 a1 (*.f64 b2 b1))
(/ a2 (* b1 b2))
(/.f64 a2 (*.f64 b2 b1))
(* b1 b2)
(*.f64 b2 b1)

rewrite36.0ms (1.2%)

Memory
-21.4MiB live, 24.8MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0927
01427
13027
29127
325827
442527
543727
043727
Stop Event
iter limit
saturated
iter limit
Counts
5 → 65
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))
Outputs
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) 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 a1 b2) (/.f64 a2 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 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) 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 (*.f64 (neg.f64 a2) a1) b2) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b2) b1))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 b1))
(/.f64 (/.f64 a1 b2) b1)
(/.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 b2))
(/.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 b2) (neg.f64 b1))
(*.f64 (neg.f64 b1) (neg.f64 b2))
(*.f64 b2 b1)
(*.f64 b1 b2)
(neg.f64 (*.f64 (neg.f64 b2) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) 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 a1 b2) (/.f64 a2 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 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) 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 (*.f64 (neg.f64 a2) a1) b2) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b2) 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 b2) b1))
(/.f64 a2 (*.f64 b2 b1))
(neg.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2))

eval5.0ms (0.2%)

Memory
13.7MiB live, 13.7MiB allocated
Compiler

Compiled 444 to 110 computations (75.2% saved)

prune12.0ms (0.4%)

Memory
-26.0MiB live, 19.0MiB allocated
Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New52052
Fresh000
Picked022
Done055
Total52759
Accuracy
100.0%
Counts
59 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.3%
(/.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))
91.7%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
86.5%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
98.0%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
87.6%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 123 to 80 computations (35% saved)

regimes44.0ms (1.5%)

Memory
1.4MiB live, 48.7MiB allocated
Counts
10 → 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 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 a1) b1) b2) (neg.f64 a2))
(*.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:

25.0ms
(*.f64 b1 b2)
3.0ms
a2
3.0ms
b2
3.0ms
b1
3.0ms
a1
Results
AccuracySegmentsBranch
98.0%1(*.f64 b1 b2)
99.7%2(*.f64 a1 a2)
98.0%1(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
98.0%1a1
98.0%1a2
98.0%1b1
98.0%1b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes9.0ms (0.3%)

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

4 calls:

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

Compiled 8 to 18 computations (-125% saved)

regimes30.0ms (1%)

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

7 calls:

20.0ms
b1
2.0ms
a2
2.0ms
b2
2.0ms
a1
1.0ms
(*.f64 a1 a2)
Results
AccuracySegmentsBranch
91.6%3(*.f64 a1 a2)
91.6%2(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
91.2%3a2
90.8%2b1
91.6%2(*.f64 b1 b2)
87.6%1a1
89.9%2b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes6.0ms (0.2%)

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

6 calls:

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

Compiled 16 to 29 computations (-81.3% saved)

bsearch0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1671261167675.5005
40126734691647740.0
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch14.0ms (0.5%)

Memory
-20.6MiB live, 24.1MiB allocated
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
13.0ms
1.447608472118146e-22
2.825937171403732e-19
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 (48.5% of total)
ival-mult: 1.0ms (48.5% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify9.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

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

derivations44.0ms (1.5%)

Memory
-17.4MiB live, 70.6MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 54 to 21 computations (61.1% saved)

preprocess657.0ms (22.8%)

Memory
15.4MiB live, 730.0MiB allocated
Compiler

Compiled 376 to 226 computations (39.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...