Quotient of products

Time bar (total: 1.9s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze143.0ms (7.4%)

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

sample752.0ms (38.7%)

Memory
25.2MiB live, 775.0MiB allocated
Samples
455.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 182.0ms
ival-mult: 113.0ms (62.1% of total)
ival-div: 61.0ms (33.5% of total)
ival-true: 5.0ms (2.7% of total)
ival-assert: 3.0ms (1.6% of total)
Bogosity

explain62.0ms (3.2%)

Memory
20.8MiB live, 106.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
330-1(-8.211306213542959e-179 -1.3965146894327567e-120 1.6360313545245775e-86 1.4917839746992495e-226)(/.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)overflow32
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/n60
(*.f64 a1 a2)underflow28
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/o50
(*.f64 a1 a2)overflow30
(*.f64 b1 b2)overflow32
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/u40
(*.f64 a1 a2)underflow28
(*.f64 b1 b2)underflow21
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/u40
(*.f64 b1 b2)underflow21
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/n20
(*.f64 a1 a2)overflow30
Confusion
Predicted +Predicted -
+321
-0223
Precision
1.0
Recall
0.9696969696969697
Confusion?
Predicted +Predicted MaybePredicted -
+3201
-00223
Precision?
1.0
Recall?
0.9696969696969697
Freqs
test
numberfreq
0224
132
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
30.0ms512×0valid
Compiler

Compiled 45 to 25 computations (44.4% saved)

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

preprocess36.0ms (1.9%)

Memory
9.5MiB live, 56.4MiB 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
87.8%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 7 to 7 computations (0% saved)

simplify4.0ms (0.2%)

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

localize28.0ms (1.5%)

Memory
-49.5MiB live, 18.2MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 b1 b2)
accuracy0.0
(*.f64 a1 a2)
accuracy7.7197720446456835
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Samples
22.0ms256×0valid
Compiler

Compiled 19 to 9 computations (52.6% saved)

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

series12.0ms (0.6%)

Memory
15.2MiB live, 15.2MiB 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
2.0ms
a2
@-inf
((/ (* a1 a2) (* b1 b2)) (* a1 a2) (* b1 b2))
1.0ms
a1
@-inf
((/ (* a1 a2) (* b1 b2)) (* a1 a2) (* b1 b2))
1.0ms
a1
@0
((/ (* a1 a2) (* b1 b2)) (* a1 a2) (* b1 b2))
1.0ms
b2
@-inf
((/ (* a1 a2) (* b1 b2)) (* a1 a2) (* b1 b2))
1.0ms
b1
@-inf
((/ (* a1 a2) (* b1 b2)) (* a1 a2) (* b1 b2))

simplify3.0ms (0.2%)

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

rewrite21.0ms (1.1%)

Memory
-19.4MiB live, 26.3MiB 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
6.2MiB live, 6.2MiB allocated
Compiler

Compiled 304 to 77 computations (74.7% saved)

prune4.0ms (0.2%)

Memory
7.7MiB live, 7.7MiB allocated
Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New31536
Fresh000
Picked011
Done000
Total31637
Accuracy
100.0%
Counts
37 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
89.8%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
87.8%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
92.4%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
83.2%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
98.1%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
73.0%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Compiler

Compiled 77 to 77 computations (0% saved)

simplify4.0ms (0.2%)

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

localize47.0ms (2.4%)

Memory
-14.1MiB live, 77.5MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 a1 b1)
accuracy1.977281975441126
(*.f64 (/.f64 a1 b1) a2)
accuracy6.202863798182142
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
accuracy0.0
(/.f64 a2 b2)
accuracy1.807371456232603
(/.f64 (/.f64 a2 b2) b1)
accuracy4.817269173225165
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
accuracy0.0
(/.f64 a1 b2)
accuracy5.214777070077568
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
accuracy6.319746277197936
(/.f64 (/.f64 a1 b2) b1)
accuracy0.0
(/.f64 a2 b1)
accuracy0.0
(/.f64 a1 b2)
accuracy17.18947055416984
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
accuracy0.0
(/.f64 a2 b2)
accuracy0.0
(/.f64 a1 b1)
accuracy1.2282772533042303
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Samples
35.0ms256×0valid
Compiler

Compiled 93 to 18 computations (80.6% saved)

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

series26.0ms (1.3%)

Memory
-4.4MiB live, 47.4MiB 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
6.0ms
b2
@-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))
3.0ms
a1
@0
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) (/ a1 b1) (* (/ a2 b1) (/ a1 b2)) (/ a2 b1) (/ a1 b2) (* (/ (/ a1 b2) b1) a2) (/ (/ a1 b2) b1) (* (/ (/ a2 b2) b1) a1) (/ (/ a2 b2) b1) (/ (* (/ a1 b1) a2) b2) (* (/ a1 b1) a2))
2.0ms
a1
@-inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) (/ a1 b1) (* (/ a2 b1) (/ a1 b2)) (/ a2 b1) (/ a1 b2) (* (/ (/ a1 b2) b1) a2) (/ (/ a1 b2) b1) (* (/ (/ a2 b2) b1) a1) (/ (/ a2 b2) b1) (/ (* (/ a1 b1) a2) b2) (* (/ a1 b1) a2))
2.0ms
b1
@-inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) (/ a1 b1) (* (/ a2 b1) (/ a1 b2)) (/ a2 b1) (/ a1 b2) (* (/ (/ a1 b2) b1) a2) (/ (/ a1 b2) b1) (* (/ (/ a2 b2) b1) a1) (/ (/ a2 b2) b1) (/ (* (/ a1 b1) a2) b2) (* (/ a1 b1) a2))
2.0ms
a2
@-inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) (/ a1 b1) (* (/ a2 b1) (/ a1 b2)) (/ a2 b1) (/ a1 b2) (* (/ (/ a1 b2) b1) a2) (/ (/ a1 b2) b1) (* (/ (/ a2 b2) b1) a1) (/ (/ a2 b2) b1) (/ (* (/ a1 b1) a2) b2) (* (/ a1 b1) a2))

simplify3.0ms (0.2%)

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

rewrite13.0ms (0.7%)

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

eval10.0ms (0.5%)

Memory
-27.8MiB live, 19.3MiB allocated
Compiler

Compiled 694 to 153 computations (78% saved)

prune4.0ms (0.2%)

Memory
16.2MiB live, 16.2MiB allocated
Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New78280
Fresh000
Picked055
Done011
Total78886
Accuracy
100.0%
Counts
86 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
89.8%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
87.8%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
92.4%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
83.2%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
86.5%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
98.1%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
73.0%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
86.1%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 56 to 56 computations (0% saved)

simplify4.0ms (0.2%)

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

localize26.0ms (1.3%)

Memory
1.2MiB live, 48.0MiB allocated
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 b1 b2)
accuracy4.817269173225165
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
accuracy5.5244606354648464
(/.f64 a2 (*.f64 b1 b2))
accuracy0.0
(*.f64 b1 b2)
accuracy5.214777070077568
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
accuracy5.267536224318943
(/.f64 a1 (*.f64 b1 b2))
Samples
20.0ms256×0valid
Compiler

Compiled 40 to 11 computations (72.5% saved)

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

series15.0ms (0.8%)

Memory
-20.4MiB live, 26.3MiB 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
4.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
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
@0
((* (/ a1 (* b1 b2)) a2) (/ a1 (* b1 b2)) (* b1 b2) (* (/ a2 (* b1 b2)) a1) (/ a2 (* b1 b2)))

simplify3.0ms (0.2%)

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

rewrite12.0ms (0.6%)

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

eval8.0ms (0.4%)

Memory
-36.5MiB live, 13.1MiB allocated
Compiler

Compiled 444 to 110 computations (75.2% saved)

prune5.0ms (0.3%)

Memory
7.5MiB live, 7.5MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New52052
Fresh000
Picked022
Done066
Total52860
Accuracy
100.0%
Counts
60 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
89.8%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
87.8%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
92.4%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
83.2%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
86.5%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
98.1%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
73.0%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
86.1%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 112 to 79 computations (29.5% saved)

regimes20.0ms (1%)

Memory
-8.2MiB live, 38.7MiB allocated
Counts
8 → 1
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Calls

7 calls:

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

Compiled 17 to 33 computations (-94.1% saved)

regimes13.0ms (0.7%)

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

2.0ms
a1
2.0ms
a2
2.0ms
b2
2.0ms
(*.f64 b1 b2)
2.0ms
b1
Results
AccuracySegmentsBranch
97.9%4(*.f64 b1 b2)
93.1%3(*.f64 a1 a2)
96.8%3(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
90.9%2a1
91.2%2a2
94.2%3b1
92.0%2b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes13.0ms (0.7%)

Memory
-18.5MiB live, 28.8MiB 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:

3.0ms
(*.f64 a1 a2)
2.0ms
a2
2.0ms
a1
2.0ms
b2
2.0ms
b1
Results
AccuracySegmentsBranch
87.8%1a1
90.0%2a2
90.0%2(*.f64 a1 a2)
90.4%2b2
90.5%2b1
90.8%2(*.f64 b1 b2)
90.8%2(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes7.0ms (0.4%)

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

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

Compiled 17 to 33 computations (-94.1% saved)

bsearch1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.2705037529060577e+308
+inf
0.0ms
0.0
2.73964e-319
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch11.0ms (0.6%)

Memory
-28.7MiB live, 18.0MiB allocated
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
10.0ms
4.3467959206387394e+60
1.263481064621393e+63
Samples
6.0ms112×0valid
Compiler

Compiled 80 to 112 computations (-40% saved)

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

simplify10.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02669
12969
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 0 binary64)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal +inf.0 binary64)) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))
(if (<=.f64 (*.f64 b1 b2) #s(literal 5500000000000000078441167310397074032871539922947539497648128 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(if (<=.f64 (/.f64 (*.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 +inf.0 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 +inf.0 binary64)))) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)))
(if (<=.f64 (*.f64 b1 b2) #s(literal 5500000000000000078441167310397074032871539922947539497648128 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)

soundness78.0ms (4%)

Memory
7.2MiB live, 103.3MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 181 to 107 computations (40.9% saved)

preprocess539.0ms (27.7%)

Memory
28.6MiB live, 827.9MiB allocated
Compiler

Compiled 250 to 166 computations (33.6% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...