Quotient of products

Time bar (total: 1.7s)

start0.0ms (0%)

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

analyze138.0ms (8.1%)

Memory
-17.0MiB live, 315.7MiB allocated; 31ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
25%25%74.9%0.2%0%0%0%5
25%25%74.9%0.2%0%0%0%6
25%25%74.9%0.2%0%0%0%7
37.5%37.4%62.4%0.2%0%0%0%8
56.3%56.1%43.7%0.2%0%0%0%9
56.3%56.1%43.7%0.2%0%0%0%10
56.3%56.1%43.7%0.2%0%0%0%11
65.6%65.5%34.3%0.2%0%0%0%12
Compiler

Compiled 9 to 9 computations (0% saved)

sample725.0ms (42.6%)

Memory
28.4MiB live, 1 514.0MiB allocated; 167ms collecting garbage
Samples
418.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 196.0ms
ival-mult: 123.0ms (62.8% of total)
ival-div: 63.0ms (32.2% of total)
ival-true: 5.0ms (2.6% of total)
ival-assert: 3.0ms (1.5% of total)
adjust: 2.0ms (1% of total)
Bogosity

explain74.0ms (4.3%)

Memory
2.3MiB live, 146.8MiB allocated; 12ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
461(1.5360682635299698e-45 -2.0548860357823748e+39 1.807488917273857e+248 -3.3743535774423275e+68)2(-5.868428393307135e-147 2.199952190268337e+61 -2.496679768603324e-50 -7.292541004985169e-271)(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
00-0-(*.f64 b1 b2)
00-0-(*.f64 a1 a2)
00-0-a1
00-0-b2
00-0-b1
00-0-a2
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/n120
(*.f64 a1 a2)underflow34
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/o90
(*.f64 b1 b2)overflow28
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/u80
(*.f64 b1 b2)underflow30
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/o70
(*.f64 a1 a2)overflow38
(*.f64 b1 b2)overflow28
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/n60
(*.f64 a1 a2)overflow38
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/u30
(*.f64 a1 a2)underflow34
(*.f64 b1 b2)underflow30
Confusion
Predicted +Predicted -
+442
-1209
Precision
0.9777777777777777
Recall
0.9565217391304348
Confusion?
Predicted +Predicted MaybePredicted -
+4402
-10209
Precision?
0.9777777777777777
Recall?
0.9565217391304348
Freqs
test
numberfreq
0211
145
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
44.0ms512×0valid
Compiler

Compiled 45 to 25 computations (44.4% saved)

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

preprocess40.0ms (2.4%)

Memory
-30.4MiB live, 77.1MiB allocated; 7ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036114
1116102
2326102
3697102
4997102
51879102
61895102
077
0107
1197
2377
3487
4487
0487
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
Symmetry

(negabs b2)

(negabs b1)

(negabs a2)

(negabs a1)

(sort a1 a2)

(sort b1 b2)

Compiler

Compiled 7 to 7 computations (0% saved)

eval0.0ms (0%)

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

Compiled 0 to 4 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 7 to 7 computations (0% saved)

simplify0.0ms (0%)

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

series17.0ms (1%)

Memory
-8.1MiB live, 37.8MiB allocated; 4ms collecting garbage
Counts
7 → 7
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 a1 a2)
a1
a2
(*.f64 b1 b2)
b1
b2
Outputs
(/ (* a1 a2) (* b1 b2))
(* a1 a2)
a1
a2
(* b1 b2)
b1
b2
Calls

12 calls:

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

simplify3.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
11617
23417
34517
44517
04517
Stop Event
iter limit
saturated
Counts
7 → 3
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(* a1 a2)
a1
a2
(* b1 b2)
b1
b2
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(* a1 a2)
(*.f64 a2 a1)
a1
a2
(* b1 b2)
(*.f64 b2 b1)
b1
b2

rewrite20.0ms (1.2%)

Memory
-8.6MiB live, 37.8MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
01017
12217
26517
320917
454817
555717
055717
Stop Event
iter limit
saturated
iter limit
Counts
7 → 41
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 a1 a2)
a1
a2
(*.f64 b1 b2)
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))
(neg.f64 (neg.f64 a1))
a1
(neg.f64 (neg.f64 a2))
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))
(neg.f64 (neg.f64 b1))
b1
(neg.f64 (neg.f64 b2))
b2

eval4.0ms (0.2%)

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

Compiled 368 to 89 computations (75.8% saved)

prune5.0ms (0.3%)

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

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New39544
Fresh000
Picked011
Done000
Total39645
Accuracy
100.0%
Counts
45 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
89.2%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
83.7%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
91.6%
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
93.1%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
81.9%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
98.1%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Compiler

Compiled 81 to 81 computations (0% saved)

simplify0.0ms (0%)

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

series26.0ms (1.5%)

Memory
14.9MiB live, 61.5MiB allocated; 2ms collecting garbage
Counts
19 → 15
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)
(*.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 (neg.f64 a1) b1) b2) (neg.f64 a2))
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) b1)
(neg.f64 a1)
(neg.f64 a2)
Outputs
(/ (* a1 a2) (* b1 b2))
(/ a1 b1)
a1
(/ a1 (* b1 b2))
(/ a1 b2)
(/ (* a1 a2) b1)
(* -1 (/ a1 (* b1 b2)))
(* -1 (/ a1 b1))
(* -1 a1)
(/ a2 b2)
a2
(/ a2 (* b1 b2))
(* -1 a2)
b1
b2
Calls

12 calls:

TimeVariablePointExpression
4.0ms
a1
@-inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) a2 b2 (/ a1 b1) 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) (* (/ (/ (neg a1) b1) b2) (neg a2)) (/ (/ (neg a1) b1) b2) (/ (neg a1) b1) (neg a1) (neg a2))
3.0ms
a1
@inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) a2 b2 (/ a1 b1) 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) (* (/ (/ (neg a1) b1) b2) (neg a2)) (/ (/ (neg a1) b1) b2) (/ (neg a1) b1) (neg a1) (neg a2))
2.0ms
a1
@0
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) a2 b2 (/ a1 b1) 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) (* (/ (/ (neg a1) b1) b2) (neg a2)) (/ (/ (neg a1) b1) b2) (/ (neg a1) b1) (neg a1) (neg a2))
2.0ms
a2
@-inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) a2 b2 (/ a1 b1) 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) (* (/ (/ (neg a1) b1) b2) (neg a2)) (/ (/ (neg a1) b1) b2) (/ (neg a1) b1) (neg a1) (neg a2))
2.0ms
b1
@-inf
((* (/ a2 b2) (/ a1 b1)) (/ a2 b2) a2 b2 (/ a1 b1) 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) (* (/ (/ (neg a1) b1) b2) (neg a2)) (/ (/ (neg a1) b1) b2) (/ (neg a1) b1) (neg a1) (neg a2))

simplify9.0ms (0.5%)

Memory
-39.9MiB live, 10.1MiB allocated; 6ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01849
13749
27049
39649
49749
09749
Stop Event
iter limit
saturated
Counts
15 → 11
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(/ a1 b1)
a1
(/ a1 (* b1 b2))
(/ a1 b2)
(/ (* a1 a2) b1)
(* -1 (/ a1 (* b1 b2)))
(* -1 (/ a1 b1))
(* -1 a1)
(/ a2 b2)
a2
(/ a2 (* b1 b2))
(* -1 a2)
b1
b2
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/ a1 b1)
(/.f64 a1 b1)
a1
(/ a1 (* b1 b2))
(/.f64 (/.f64 a1 b1) b2)
(/ a1 b2)
(/.f64 a1 b2)
(/ (* a1 a2) b1)
(*.f64 (/.f64 a2 b1) a1)
(* -1 (/ a1 (* b1 b2)))
(/.f64 (/.f64 (neg.f64 a1) b2) b1)
(* -1 (/ a1 b1))
(/.f64 (neg.f64 a1) b1)
(* -1 a1)
(neg.f64 a1)
(/ a2 b2)
(/.f64 a2 b2)
a2
(/ a2 (* b1 b2))
(/.f64 (/.f64 a2 b2) b1)
(* -1 a2)
(neg.f64 a2)
b1
b2

rewrite14.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01979
03477
17377
222477
345277
449277
049277
Stop Event
iter limit
saturated
iter limit
Counts
19 → 169
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)
(*.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 (neg.f64 a1) b1) b2) (neg.f64 a2))
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) b1)
(neg.f64 a1)
(neg.f64 a2)
Outputs
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.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 (/.f64 (/.f64 a2 b2) b1) a1)
(*.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 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (neg.f64 a2) (neg.f64 b2))
(/.f64 a2 b2)
(neg.f64 (/.f64 (neg.f64 a2) b2))
(neg.f64 (neg.f64 a2))
a2
(neg.f64 (neg.f64 b2))
b2
(/.f64 (neg.f64 a1) (neg.f64 b1))
(/.f64 a1 b1)
(neg.f64 (/.f64 (neg.f64 a1) b1))
(neg.f64 (neg.f64 a1))
a1
(neg.f64 (neg.f64 b1))
b1
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.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 (/.f64 (/.f64 a2 b2) b1) a1)
(*.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 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 b1))
(/.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 b2))
(/.f64 (neg.f64 a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (/.f64 a1 b2) b1)
(/.f64 (/.f64 a1 b1) b2)
(/.f64 a1 (*.f64 b1 b2))
(neg.f64 (/.f64 (/.f64 (neg.f64 a1) b1) 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 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.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 (/.f64 (/.f64 a2 b2) b1) a1)
(*.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 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) 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 (neg.f64 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 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.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 (/.f64 (/.f64 a2 b2) b1) a1)
(*.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 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(*.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 a1))
(*.f64 (/.f64 a2 b1) a1)
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 a2))
(*.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 a1) b1) a2))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.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 (/.f64 (/.f64 a2 b2) b1) a1)
(*.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 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (/.f64 (neg.f64 a1) b2) b1)
(/.f64 (/.f64 (neg.f64 a1) b1) b2)
(/.f64 (neg.f64 a1) (*.f64 b1 b2))
(/.f64 (/.f64 a1 b2) (neg.f64 b1))
(/.f64 (/.f64 a1 b1) (neg.f64 b2))
(/.f64 a1 (*.f64 (neg.f64 b1) 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)
(neg.f64 a2)

eval14.0ms (0.8%)

Memory
-9.7MiB live, 37.4MiB allocated; 2ms collecting garbage
Compiler

Compiled 1 120 to 222 computations (80.2% saved)

prune5.0ms (0.3%)

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

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New1253128
Fresh000
Picked235
Done011
Total1277134
Accuracy
100.0%
Counts
134 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.7%
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
89.2%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
83.7%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
93.1%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
86.0%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
98.1%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
85.3%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 49 to 49 computations (0% saved)

simplify0.0ms (0%)

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

series20.0ms (1.2%)

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

12 calls:

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

simplify3.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01132
12132
23732
34432
44432
04432
Stop Event
iter limit
saturated
Counts
10 → 6
Calls
Call 1
Inputs
(/ (* a1 a2) (* b1 b2))
(/ a1 (* b1 b2))
a1
(/ (* a1 a2) b1)
a2
(/ a2 (* b1 b2))
(/ a2 b1)
(* b1 b2)
b1
b2
Outputs
(/ (* a1 a2) (* b1 b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/ a1 (* b1 b2))
(/.f64 a1 (*.f64 b2 b1))
a1
(/ (* a1 a2) b1)
(*.f64 (/.f64 a1 b1) a2)
a2
(/ a2 (* b1 b2))
(/.f64 a2 (*.f64 b2 b1))
(/ a2 b1)
(/.f64 a2 b1)
(* b1 b2)
(*.f64 b2 b1)
b1
b2

rewrite14.0ms (0.8%)

Memory
-30.7MiB live, 16.0MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01246
02046
14446
212146
335346
445246
545746
045746
Stop Event
iter limit
saturated
iter limit
Counts
12 → 110
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))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(*.f64 (/.f64 a2 b1) a1)
(/.f64 a2 b1)
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 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(/.f64 (/.f64 (*.f64 (neg.f64 a1) a2) b2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 b1))
(/.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 b2))
(/.f64 (/.f64 a1 b2) b1)
(/.f64 (/.f64 a1 b1) b2)
(/.f64 (neg.f64 a1) (*.f64 (neg.f64 b2) b1))
(/.f64 a1 (*.f64 b2 b1))
(neg.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(neg.f64 (neg.f64 a1))
a1
(*.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))
(neg.f64 (neg.f64 b1))
b1
(neg.f64 (neg.f64 b2))
b2
(neg.f64 (neg.f64 a2))
a2
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(/.f64 (/.f64 (*.f64 (neg.f64 a1) a2) b2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(/.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 b1))
(/.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 b2))
(/.f64 (/.f64 a2 b2) b1)
(/.f64 (neg.f64 a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (/.f64 a2 b1) b2)
(/.f64 a2 (*.f64 b2 b1))
(neg.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b2) b1) (neg.f64 a1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b2) b1))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1) (neg.f64 b2))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(/.f64 (/.f64 (*.f64 (neg.f64 a1) a2) b2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(*.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 a2))
(*.f64 (/.f64 a1 b1) a2)
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b1))
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 a2 b1) a1)
(*.f64 a2 (/.f64 a1 b1))
(*.f64 a1 (/.f64 a2 b1))
(/.f64 (*.f64 a2 a1) b1)
(/.f64 (*.f64 (neg.f64 a1) a2) (neg.f64 b1))
(neg.f64 (*.f64 (/.f64 (neg.f64 a2) b1) a1))
(/.f64 (neg.f64 a2) (neg.f64 b1))
(/.f64 a2 b1)
(neg.f64 (/.f64 (neg.f64 a2) b1))

eval9.0ms (0.5%)

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

Compiled 774 to 172 computations (77.8% saved)

prune13.0ms (0.8%)

Memory
-22.6MiB live, 26.3MiB allocated; 5ms collecting garbage
Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New92092
Fresh000
Picked033
Done044
Total92799
Accuracy
100.0%
Counts
99 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.7%
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
89.2%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
83.7%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
93.1%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
86.0%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
98.1%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
85.3%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 114 to 78 computations (31.6% saved)

regimes21.0ms (1.2%)

Memory
11.4MiB live, 58.6MiB allocated; 1ms collecting garbage
Counts
9 → 1
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Calls

7 calls:

4.0ms
a1
3.0ms
a2
3.0ms
b2
3.0ms
b1
3.0ms
(*.f64 a1 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)

regimes12.0ms (0.7%)

Memory
-11.1MiB live, 36.4MiB allocated; 1ms collecting garbage
Counts
3 → 2
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Outputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
Calls

7 calls:

2.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
2.0ms
a1
2.0ms
b2
2.0ms
b1
2.0ms
a2
Results
AccuracySegmentsBranch
89.7%2(*.f64 b1 b2)
89.7%3(*.f64 a1 a2)
89.6%2(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
86.0%1a1
86.0%1a2
89.3%2b1
88.5%2b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes7.0ms (0.4%)

Memory
25.6MiB live, 25.6MiB allocated; 0ms collecting garbage
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Outputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Calls

7 calls:

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

Compiled 17 to 33 computations (-94.1% saved)

bsearch7.0ms (0.4%)

Memory
-31.6MiB live, 15.4MiB allocated; 1ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
7.0ms
5.310164322472463e-39
1.6633723746974582e-38
Samples
3.0ms80×0valid
Compiler

Compiled 60 to 84 computations (-40% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.0ms
ival-mult: 1.0ms (86.5% of total)
ival-div: 0.0ms (0% 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.5%)

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

Useful iterations: 0 (0.0ms)

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

derivations38.0ms (2.2%)

Memory
7.0MiB live, 56.1MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
01017
12217
26517
320917
454817
555717
055717
01979
03477
17377
222477
345277
449277
049277
Stop Event
done
iter limit
saturated
iter limit
iter limit
saturated
iter limit
Compiler

Compiled 34 to 15 computations (55.9% saved)

preprocess454.0ms (26.7%)

Memory
-8.7MiB live, 843.2MiB allocated; 80ms collecting garbage
Compiler

Compiled 180 to 142 computations (21.1% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...