Quotient of products

Time bar (total: 1.9s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze161.0ms (8.4%)

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

sample648.0ms (33.7%)

Memory
21.1MiB live, 801.2MiB allocated
Samples
408.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 169.0ms
ival-mult: 110.0ms (64.9% of total)
ival-div: 52.0ms (30.7% of total)
ival-true: 5.0ms (3% of total)
ival-assert: 3.0ms (1.8% of total)
Bogosity

explain61.0ms (3.2%)

Memory
3.3MiB live, 76.6MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
340-3(2.38605192427101e-242 7.766865548471148e-73 -4.4932948377527454e-209 -1.6704628744171025e-96)(/.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)underflow32
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/n60
(*.f64 a1 a2)underflow26
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/o50
(*.f64 a1 a2)overflow27
(*.f64 b1 b2)overflow42
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/o40
(*.f64 b1 b2)overflow42
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/n40
(*.f64 a1 a2)overflow27
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/u30
(*.f64 a1 a2)underflow26
(*.f64 b1 b2)underflow32
Confusion
Predicted +Predicted -
+313
-0222
Precision
1.0
Recall
0.9117647058823529
Confusion?
Predicted +Predicted MaybePredicted -
+3103
-00222
Precision?
1.0
Recall?
0.9117647058823529
Freqs
test
numberfreq
0225
131
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
24.0ms512×0valid
Compiler

Compiled 45 to 25 computations (44.4% saved)

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

preprocess41.0ms (2.1%)

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

Compiled 7 to 7 computations (0% saved)

simplify4.0ms (0.2%)

Memory
6.5MiB live, 6.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

localize17.0ms (0.9%)

Memory
7.4MiB live, 38.6MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 b1 b2)
accuracy0.0
(*.f64 a1 a2)
accuracy7.7885068510550415
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Samples
12.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 (65.6% of total)
ival-div: 1.0ms (21.9% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series13.0ms (0.7%)

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

simplify4.0ms (0.2%)

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

rewrite20.0ms (1%)

Memory
2.8MiB live, 34.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
7.3MiB live, 7.3MiB allocated
Compiler

Compiled 304 to 77 computations (74.7% saved)

prune4.0ms (0.2%)

Memory
9.6MiB live, 9.6MiB allocated
Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New30636
Fresh000
Picked011
Done000
Total30737
Accuracy
100.0%
Counts
37 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
84.5%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
91.6%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
87.7%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
94.2%
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
90.6%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
85.4%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
75.1%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Compiler

Compiled 95 to 95 computations (0% saved)

simplify9.0ms (0.5%)

Memory
-17.4MiB live, 14.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 16 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
(neg.f64 a1)
cost-diff0
(/.f64 (neg.f64 a1) b1)
cost-diff0
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
cost-diff2
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
020101
036109
162109
210399
318299
432299
543299
043299
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) b1)
(neg.f64 a1)
a1
b1
b2
(neg.f64 a2)
a2
(*.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 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) b1)
(neg.f64 a1)
a1
b1
b2
(neg.f64 a2)
a2
(*.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 a1 b1)
a1
b1
a2
b2

localize56.0ms (2.9%)

Memory
28.9MiB live, 116.7MiB allocated
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 a1 b1)
accuracy2.2812490753669863
(*.f64 (/.f64 a1 b1) a2)
accuracy5.326140729670182
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
accuracy0.0
(/.f64 a2 b2)
accuracy2.985421054242946
(/.f64 (/.f64 a2 b2) b1)
accuracy5.469227316020499
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
accuracy0.0
(/.f64 a1 b2)
accuracy2.9505740629263566
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
accuracy8.709411160267365
(/.f64 (/.f64 a1 b2) b1)
accuracy0.0
(/.f64 a2 b1)
accuracy0.0
(/.f64 a1 b2)
accuracy15.825232758166347
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
accuracy0.0
(neg.f64 a2)
accuracy0.0
(neg.f64 a1)
accuracy1.5476432217570477
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
accuracy2.9505740629263566
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
Samples
45.0ms256×0valid
Compiler

Compiled 103 to 22 computations (78.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 29.0ms
ival-div: 18.0ms (63% of total)
ival-mult: 8.0ms (28% of total)
ival-neg: 2.0ms (7% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series64.0ms (3.4%)

Memory
-17.9MiB live, 71.8MiB allocated
Counts
16 → 12
Calls
Call 1
Inputs
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) b1)
(neg.f64 a1)
(*.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 a2 b2)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(*.f64 (/.f64 a1 b1) a2)
(/.f64 a1 b1)
(neg.f64 a2)
Outputs
(/ (* a1 a2) (* b1 b2))
(* -1 (/ a1 (* b1 b2)))
(* -1 (/ a1 b1))
(* -1 a1)
(/ a1 b2)
(/ a1 (* b1 b2))
(/ (* a1 a2) b1)
(/ a1 b1)
(/ a2 b1)
(/ a2 (* b1 b2))
(/ a2 b2)
(* -1 a2)
Calls

12 calls:

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

simplify4.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01948
13748
27048
39648
49748
09748
Stop Event
iter limit
saturated
Counts
12 → 12
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(* -1 (/ a1 (* b1 b2)))
(* -1 (/ a1 b1))
(* -1 a1)
(/ a1 b2)
(/ a1 (* b1 b2))
(/ (* a1 a2) b1)
(/ a1 b1)
(/ a2 b1)
(/ a2 (* b1 b2))
(/ a2 b2)
(* -1 a2)
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(* -1 (/ a1 (* b1 b2)))
(/.f64 (/.f64 (neg.f64 a1) b2) b1)
(* -1 (/ a1 b1))
(/.f64 (neg.f64 a1) b1)
(* -1 a1)
(neg.f64 a1)
(/ a1 b2)
(/.f64 a1 b2)
(/ a1 (* b1 b2))
(/.f64 a1 (*.f64 b2 b1))
(/ (* a1 a2) b1)
(*.f64 (/.f64 a2 b1) a1)
(/ a1 b1)
(/.f64 a1 b1)
(/ a2 b1)
(/.f64 a2 b1)
(/ a2 (* b1 b2))
(/.f64 (/.f64 a2 b1) b2)
(/ a2 b2)
(/.f64 a2 b2)
(* -1 a2)
(neg.f64 a2)

rewrite15.0ms (0.8%)

Memory
-0.5MiB live, 32.5MiB allocated
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02078
03686
18076
224876
354876
456776
056776
Stop Event
iter limit
saturated
iter limit
Counts
16 → 164
Calls
Call 1
Inputs
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) b1)
(neg.f64 a1)
(*.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 a2 b2)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(*.f64 (/.f64 a1 b1) a2)
(/.f64 a1 b1)
(neg.f64 a2)
Outputs
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 a2 a1) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(/.f64 (*.f64 a2 (/.f64 (neg.f64 a1) b1)) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(neg.f64 (*.f64 a2 (/.f64 (/.f64 (neg.f64 a1) b1) b2)))
(/.f64 (/.f64 (neg.f64 a1) b2) b1)
(/.f64 (/.f64 a1 b1) (neg.f64 b2))
(/.f64 (/.f64 a1 b2) (neg.f64 b1))
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) (*.f64 b1 b2))
(/.f64 a1 (*.f64 b1 (neg.f64 b2)))
(neg.f64 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (neg.f64 a1) b1)
(/.f64 a1 (neg.f64 b1))
(neg.f64 (/.f64 a1 b1))
(neg.f64 a1)
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 a2 a1) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(/.f64 (*.f64 a2 (/.f64 (neg.f64 a1) b1)) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(neg.f64 (*.f64 a2 (/.f64 (/.f64 (neg.f64 a1) b1) b2)))
(/.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 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 a2 a1) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(/.f64 (*.f64 a2 (/.f64 (neg.f64 a1) b1)) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(neg.f64 (*.f64 a2 (/.f64 (/.f64 (neg.f64 a1) b1) b2)))
(/.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 b1))
(/.f64 (/.f64 a1 b1) b2)
(/.f64 (/.f64 a1 b2) b1)
(/.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 b2))
(/.f64 (neg.f64 a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 a1 (*.f64 b1 b2))
(neg.f64 (/.f64 (/.f64 (neg.f64 a1) b1) 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 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 a2 a1) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(/.f64 (*.f64 a2 (/.f64 (neg.f64 a1) b1)) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(neg.f64 (*.f64 a2 (/.f64 (/.f64 (neg.f64 a1) b1) b2)))
(/.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 b2))
(/.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 b1))
(/.f64 (/.f64 a2 b2) b1)
(/.f64 (/.f64 a2 b1) b2)
(/.f64 (neg.f64 a2) (*.f64 b1 (neg.f64 b2)))
(/.f64 a2 (*.f64 b1 b2))
(neg.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(/.f64 (neg.f64 a2) (neg.f64 b2))
(/.f64 a2 b2)
(neg.f64 (/.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 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))
(/.f64 (*.f64 a2 a1) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(/.f64 (*.f64 a2 (/.f64 (neg.f64 a1) b1)) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(neg.f64 (*.f64 a2 (/.f64 (/.f64 (neg.f64 a1) b1) b2)))
(*.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 a1))
(*.f64 (/.f64 a1 b1) a2)
(*.f64 (/.f64 a2 b1) a1)
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b1))
(*.f64 a2 (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 a2))
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b1))
(*.f64 a1 (/.f64 a2 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (neg.f64 b1))
(/.f64 (*.f64 a2 a1) b1)
(neg.f64 (*.f64 a2 (/.f64 (neg.f64 a1) b1)))
(/.f64 (neg.f64 a1) (neg.f64 b1))
(/.f64 a1 b1)
(neg.f64 (/.f64 (neg.f64 a1) b1))
(neg.f64 a2)

eval10.0ms (0.5%)

Memory
-3.3MiB live, 26.1MiB allocated
Compiler

Compiled 786 to 182 computations (76.8% saved)

prune3.0ms (0.2%)

Memory
11.0MiB live, 11.0MiB allocated
Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New86288
Fresh011
Picked235
Done011
Total88795
Accuracy
100.0%
Counts
95 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
84.5%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
91.6%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
87.7%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
90.6%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
86.3%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
75.1%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
88.2%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 49 to 49 computations (0% saved)

simplify4.0ms (0.2%)

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

Found 9 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 a1 b2)
cost-diff0
(*.f64 (/.f64 a1 b2) a2)
cost-diff0
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
cost-diff0
(*.f64 b1 b2)
cost-diff0
(/.f64 a2 (*.f64 b1 b2))
cost-diff0
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
cost-diff0
(*.f64 b1 b2)
cost-diff0
(/.f64 a1 (*.f64 b1 b2))
cost-diff0
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01257
02057
13457
25457
35657
05657
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(/.f64 a1 (*.f64 b1 b2))
a1
(*.f64 b1 b2)
b1
b2
a2
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 a2 (*.f64 b1 b2))
a2
(*.f64 b1 b2)
b1
b2
a1
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
a1
b2
a2
b1
Outputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(/.f64 a1 (*.f64 b1 b2))
(/.f64 a1 (*.f64 b2 b1))
a1
(*.f64 b1 b2)
(*.f64 b2 b1)
b1
b2
a2
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(/.f64 a2 (*.f64 b1 b2))
(/.f64 a2 (*.f64 b2 b1))
a2
(*.f64 b1 b2)
(*.f64 b2 b1)
b1
b2
a1
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
a1
b2
a2
b1

localize61.0ms (3.2%)

Memory
-13.3MiB live, 55.7MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 a1 b2)
accuracy4.801833819174342
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
accuracy7.345061274244032
(*.f64 (/.f64 a1 b2) a2)
accuracy0.0
(*.f64 b1 b2)
accuracy5.469227316020499
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
accuracy5.9538841911568
(/.f64 a2 (*.f64 b1 b2))
accuracy0.0
(*.f64 b1 b2)
accuracy2.9505740629263566
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
accuracy6.718632140264393
(/.f64 a1 (*.f64 b1 b2))
Samples
54.0ms256×0valid
Compiler

Compiled 59 to 14 computations (76.3% saved)

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

series15.0ms (0.8%)

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

12 calls:

TimeVariablePointExpression
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))
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))
1.0ms
b1
@-inf
((* (/ a1 (* b1 b2)) a2) (/ a1 (* b1 b2)) (* b1 b2) (* (/ a2 (* b1 b2)) a1) (/ a2 (* b1 b2)) (/ (* (/ a1 b2) a2) b1) (* (/ a1 b2) a2) (/ a1 b2))
1.0ms
a1
@-inf
((* (/ a1 (* b1 b2)) a2) (/ a1 (* b1 b2)) (* b1 b2) (* (/ a2 (* b1 b2)) a1) (/ a2 (* b1 b2)) (/ (* (/ a1 b2) a2) b1) (* (/ a1 b2) a2) (/ a1 b2))
1.0ms
a2
@-inf
((* (/ a1 (* b1 b2)) a2) (/ a1 (* b1 b2)) (* b1 b2) (* (/ a2 (* b1 b2)) a1) (/ a2 (* b1 b2)) (/ (* (/ a1 b2) a2) b1) (* (/ a1 b2) a2) (/ a1 b2))

simplify3.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

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

rewrite14.0ms (0.7%)

Memory
-16.4MiB live, 15.3MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01242
02042
14442
212542
336242
444042
544142
044142
Stop Event
iter limit
saturated
iter limit
Counts
8 → 102
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(/.f64 a1 (*.f64 b1 b2))
(*.f64 b1 b2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 a2 (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
Outputs
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b1) b2))
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 b1))
(/.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 b2))
(/.f64 (/.f64 a1 b1) b2)
(/.f64 (neg.f64 a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (/.f64 a1 b2) b1)
(/.f64 a1 (*.f64 b2 b1))
(neg.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (neg.f64 b1) (neg.f64 b2))
(*.f64 (neg.f64 b2) (neg.f64 b1))
(*.f64 b2 b1)
(*.f64 b1 b2)
(neg.f64 (*.f64 (neg.f64 b1) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b1) b2))
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 b1))
(/.f64 (/.f64 a2 b2) b1)
(/.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 b2))
(/.f64 (/.f64 a2 b1) b2)
(/.f64 (neg.f64 a2) (*.f64 (neg.f64 b1) b2))
(/.f64 a2 (*.f64 b2 b1))
(neg.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b1) b2))
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(*.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 a2))
(*.f64 (/.f64 a2 b2) a1)
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a2 a1) b2)
(/.f64 (*.f64 (neg.f64 a1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1))
(/.f64 (neg.f64 a1) (neg.f64 b2))
(/.f64 a1 b2)
(neg.f64 (/.f64 (neg.f64 a1) b2))

eval6.0ms (0.3%)

Memory
12.0MiB live, 12.0MiB allocated
Compiler

Compiled 582 to 143 computations (75.4% saved)

prune4.0ms (0.2%)

Memory
9.7MiB live, 9.7MiB allocated
Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New67168
Fresh000
Picked033
Done044
Total67875
Accuracy
100.0%
Counts
75 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
87.4%
(/.f64 (/.f64 (*.f64 a2 a1) b2) b1)
84.5%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
91.6%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
87.7%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
90.6%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
86.3%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
75.1%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
88.2%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 56 to 56 computations (0% saved)

simplify5.0ms (0.2%)

Memory
-27.6MiB live, 5.5MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 a2 a1)
cost-diff0
(/.f64 (*.f64 a2 a1) b2)
cost-diff0
(/.f64 (/.f64 (*.f64 a2 a1) b2) b1)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
01019
11519
22919
34419
44819
04819
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(/.f64 (/.f64 (*.f64 a2 a1) b2) b1)
(/.f64 (*.f64 a2 a1) b2)
(*.f64 a2 a1)
a2
a1
b2
b1
Outputs
(/.f64 (/.f64 (*.f64 a2 a1) b2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 (*.f64 a2 a1) b2)
(/.f64 (*.f64 a1 a2) b2)
(*.f64 a2 a1)
(*.f64 a1 a2)
a2
a1
b2
b1

localize16.0ms (0.9%)

Memory
24.7MiB live, 24.7MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 a2 a1)
accuracy4.246925838315082
(/.f64 (*.f64 a2 a1) b2)
accuracy4.801833819174342
(/.f64 (/.f64 (*.f64 a2 a1) b2) b1)
Samples
13.0ms256×0valid
Compiler

Compiled 21 to 9 computations (57.1% saved)

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

series12.0ms (0.6%)

Memory
-13.8MiB live, 17.9MiB allocated
Counts
3 → 3
Calls
Call 1
Inputs
(/.f64 (/.f64 (*.f64 a2 a1) b2) b1)
(/.f64 (*.f64 a2 a1) b2)
(*.f64 a2 a1)
Outputs
(/ (* a1 a2) (* b1 b2))
(/ (* a1 a2) b2)
(* a1 a2)
Calls

12 calls:

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

simplify3.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
11815
23515
34215
04215
Stop Event
iter limit
saturated
Counts
3 → 3
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(/ (* a1 a2) b2)
(* a1 a2)
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(/ (* a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(* a1 a2)
(*.f64 a1 a2)

rewrite12.0ms (0.6%)

Memory
12.9MiB live, 12.9MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0715
01015
12115
26615
317115
434515
536215
036215
Stop Event
iter limit
saturated
iter limit
Counts
3 → 39
Calls
Call 1
Inputs
(/.f64 (/.f64 (*.f64 a2 a1) b2) b1)
(/.f64 (*.f64 a2 a1) b2)
(*.f64 a2 a1)
Outputs
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (/.f64 a2 b1) b2) a1)
(*.f64 (/.f64 (/.f64 a1 b1) b2) a2)
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(*.f64 a2 (/.f64 (/.f64 a1 b1) b2))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) a1))
(*.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 a2))
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b2) a1)
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a1 (/.f64 a2 b2))
(*.f64 a2 (/.f64 a1 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 (neg.f64 a2) a1) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (neg.f64 a2) b2) a1))
(*.f64 (neg.f64 a2) (neg.f64 a1))
(*.f64 (neg.f64 a1) (neg.f64 a2))
(*.f64 a1 a2)
(*.f64 a2 a1)
(neg.f64 (*.f64 (neg.f64 a2) a1))

eval6.0ms (0.3%)

Memory
-23.1MiB live, 7.6MiB allocated
Compiler

Compiled 354 to 95 computations (73.2% saved)

prune4.0ms (0.2%)

Memory
8.4MiB live, 8.4MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New42042
Fresh000
Picked011
Done077
Total42850
Accuracy
100.0%
Counts
50 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
87.4%
(/.f64 (/.f64 (*.f64 a2 a1) b2) b1)
84.5%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
91.6%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
87.7%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
90.6%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
86.3%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
75.1%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
88.2%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 128 to 88 computations (31.3% saved)

regimes22.0ms (1.1%)

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

7 calls:

4.0ms
a1
3.0ms
b2
3.0ms
a2
3.0ms
b1
3.0ms
(*.f64 a1 a2)
Results
AccuracySegmentsBranch
99.4%2(*.f64 b1 b2)
98.6%2(*.f64 a1 a2)
98.7%2(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
98.3%2a1
94.2%1a2
97.9%2b1
98.3%2b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes8.0ms (0.4%)

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

3 calls:

3.0ms
(*.f64 a1 a2)
3.0ms
(*.f64 b1 b2)
2.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Results
AccuracySegmentsBranch
98.6%2(*.f64 a1 a2)
99.7%3(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
99.8%3(*.f64 b1 b2)
Compiler

Compiled 13 to 17 computations (-30.8% saved)

regimes10.0ms (0.5%)

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

4 calls:

3.0ms
(*.f64 a1 a2)
2.0ms
b2
2.0ms
a1
2.0ms
(*.f64 b1 b2)
Results
AccuracySegmentsBranch
99.7%3(*.f64 b1 b2)
97.5%2b2
90.6%1a1
95.9%3(*.f64 a1 a2)
Compiler

Compiled 8 to 18 computations (-125% saved)

regimes8.0ms (0.4%)

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

4 calls:

2.0ms
b2
2.0ms
b1
2.0ms
(*.f64 b1 b2)
2.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Results
AccuracySegmentsBranch
94.9%2b2
91.6%2b1
98.3%3(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
99.2%4(*.f64 b1 b2)
Compiler

Compiled 12 to 20 computations (-66.7% saved)

regimes7.0ms (0.4%)

Memory
-21.7MiB live, 8.8MiB allocated
Counts
4 → 4
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Outputs
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Calls

3 calls:

4.0ms
a2
2.0ms
(*.f64 b1 b2)
1.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Results
AccuracySegmentsBranch
90.6%2a2
98.1%4(*.f64 b1 b2)
96.5%3(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 11 to 16 computations (-45.5% saved)

regimes7.0ms (0.4%)

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

5 calls:

1.0ms
b2
1.0ms
a1
1.0ms
(*.f64 a1 a2)
1.0ms
(*.f64 b1 b2)
1.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Results
AccuracySegmentsBranch
88.2%1a1
90.0%2(*.f64 a1 a2)
90.9%2b2
91.6%2(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
91.6%2(*.f64 b1 b2)
Compiler

Compiled 15 to 25 computations (-66.7% saved)

regimes6.0ms (0.3%)

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

Compiled 16 to 29 computations (-81.3% saved)

bsearch0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
45851838355134.98
104349884677751.11
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.359740684794091e+87
3.819194333108009e+89
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
45851838355134.98
104349884677751.11
0.0ms
4.052560934377e-312
7.505882210275979e-305
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.1860948331174635e+232
6.412444761871242e+236
0.0ms
0.0
3.81094345e-315
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.747134892890934e+301
1.5083769371584616e+304
0.0ms
1.4620772539971794e-31
2.1005949348858668e-28
0.0ms
4.052560934377e-312
7.505882210275979e-305
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch3.0ms (0.1%)

Memory
2.5MiB live, 2.5MiB allocated
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
2.0ms
1.4620772539971794e-31
2.1005949348858668e-28
Samples
1.0ms32×0valid
Compiler

Compiled 30 to 42 computations (-40% saved)

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

simplify25.0ms (1.3%)

Memory
-9.8MiB live, 20.6MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
053189
163189
277187
399187
4135187
5194187
6288187
7436187
8532187
9570187
10574187
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 b1 b2) #s(literal 50000000000000 binary64)) (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2)) (*.f64 (/.f64 (/.f64 a2 b2) b1) a1))
(if (<=.f64 (*.f64 a1 a2) #s(literal 1999999999999999918833448912700725462983992179296902879339478019613407845901908851032064 binary64)) (/.f64 (*.f64 (/.f64 a1 b1) a2) b2) (*.f64 (/.f64 (/.f64 a2 b2) b1) a1))
(if (<=.f64 (*.f64 b1 b2) #s(literal 1012011266537/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) (*.f64 (/.f64 (/.f64 a1 b2) b1) a2) (if (<=.f64 (*.f64 b1 b2) #s(literal 50000000000000 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (*.f64 (/.f64 (/.f64 a2 b2) b1) a1)))
(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 20000000000000001129508220410416828296812527639661167494011303283109131279351563943784395231789199659595363386950727241931319612892138477546103202912065595588395678806081246396371284761651825538391991766106035065448036973925902581760 binary64)) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)))
(if (<=.f64 (*.f64 b1 b2) #s(literal 1012011266537/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 b1 b2) #s(literal 35681192317649/178405961588244985132285746181186892047843328 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (if (<=.f64 (*.f64 b1 b2) #s(literal 20000000000000001050095205104088404974089371622163183098317082310236049159778163915727427501608957280874088876657677563538850464707208611512895843695734139656967744018531516074756604675895761801187379064699415998901622380779352817601493054855602849891585175776401136856762313389443927737309188010803200 binary64)) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))))
(if (<=.f64 (*.f64 b1 b2) #s(literal 7136238463529799/713623846352979940529142984724747568191373312 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 b1 b2) #s(literal 50000000000000 binary64)) (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2)) (*.f64 (/.f64 (/.f64 a2 b2) b1) a1))
(if (<=.f64 (*.f64 b1 b2) #s(literal 50000000000000 binary64)) (*.f64 (/.f64 (/.f64 a1 b1) b2) a2) (*.f64 (/.f64 (/.f64 a2 b2) b1) a1))
(if (<=.f64 (*.f64 a1 a2) #s(literal 1999999999999999918833448912700725462983992179296902879339478019613407845901908851032064 binary64)) (/.f64 (*.f64 (/.f64 a1 b1) a2) b2) (*.f64 (/.f64 (/.f64 a2 b2) b1) a1))
(if (<=.f64 (*.f64 b1 b2) #s(literal 1012011266537/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) (*.f64 (/.f64 (/.f64 a1 b2) b1) a2) (if (<=.f64 (*.f64 b1 b2) #s(literal 50000000000000 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (*.f64 (/.f64 (/.f64 a2 b2) b1) a1)))
(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 20000000000000001129508220410416828296812527639661167494011303283109131279351563943784395231789199659595363386950727241931319612892138477546103202912065595588395678806081246396371284761651825538391991766106035065448036973925902581760 binary64)) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)))
(if (<=.f64 (*.f64 b1 b2) #s(literal 1012011266537/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 b1 b2) #s(literal 35681192317649/178405961588244985132285746181186892047843328 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (if (<=.f64 (*.f64 b1 b2) #s(literal 20000000000000001050095205104088404974089371622163183098317082310236049159778163915727427501608957280874088876657677563538850464707208611512895843695734139656967744018531516074756604675895761801187379064699415998901622380779352817601493054855602849891585175776401136856762313389443927737309188010803200 binary64)) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))))
(if (<=.f64 (*.f64 b1 b2) #s(literal 7136238463529799/713623846352979940529142984724747568191373312 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)

soundness103.0ms (5.3%)

Memory
3.7MiB live, 64.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02078
03686
18076
224876
354876
456776
056776
0713
01013
12213
26513
320913
454813
555713
055713
Stop Event
done
iter limit
saturated
iter limit
iter limit
saturated
iter limit
Compiler

Compiled 483 to 262 computations (45.8% saved)

preprocess417.0ms (21.7%)

Memory
-7.7MiB live, 311.1MiB allocated
Compiler

Compiled 798 to 356 computations (55.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...