Quotient of products

Time bar (total: 2.4s)

start0.0ms (0%)

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

analyze182.0ms (7.7%)

Memory
-28.8MiB live, 215.0MiB allocated; 49ms 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)

sample1.0s (44.2%)

Memory
4.3MiB live, 2 161.0MiB allocated; 239ms collecting garbage
Samples
635.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 374.0ms
ival-mult: 275.0ms (73.5% of total)
ival-div: 87.0ms (23.3% of total)
ival-true: 6.0ms (1.6% of total)
adjust: 3.0ms (0.8% of total)
ival-assert: 3.0ms (0.8% of total)
Bogosity

explain126.0ms (5.3%)

Memory
-1.0MiB live, 239.1MiB allocated; 10ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
440-0-(/.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))o/n110
(*.f64 a1 a2)overflow35
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/o100
(*.f64 b1 b2)overflow39
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/n70
(*.f64 a1 a2)underflow30
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))n/u60
(*.f64 b1 b2)underflow29
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))o/o50
(*.f64 a1 a2)overflow35
(*.f64 b1 b2)overflow39
/.f64(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))u/u50
(*.f64 a1 a2)underflow30
(*.f64 b1 b2)underflow29
Confusion
Predicted +Predicted -
+440
-0212
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+4400
-00212
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0212
144
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
57.0ms512×0valid
Compiler

Compiled 45 to 25 computations (44.4% saved)

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

preprocess40.0ms (1.7%)

Memory
14.0MiB live, 106.8MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037109
1117109
2328109
3696109
4996109
51875109
61891109
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 a1)

(negabs a2)

(negabs b1)

(negabs b2)

(sort a1 a2)

(sort b1 b2)

Compiler

Compiled 7 to 7 computations (0% saved)

eval0.0ms (0%)

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

Compiled 0 to 4 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 7 to 7 computations (0% saved)

simplify4.0ms (0.2%)

Memory
16.4MiB live, 16.4MiB allocated; 0ms collecting garbage
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

localize26.0ms (1.1%)

Memory
-5.1MiB live, 90.3MiB allocated; 7ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 b1 b2)
accuracy0.0
(*.f64 a1 a2)
accuracy10.539909726375384
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Samples
21.0ms256×0valid
Compiler

Compiled 19 to 9 computations (52.6% saved)

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

series17.0ms (0.7%)

Memory
-30.3MiB live, 61.9MiB allocated; 7ms collecting garbage
Counts
3 → 3
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 a1 a2)
(*.f64 b1 b2)
Outputs
#s(approx (/ (* a1 a2) (* b1 b2)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* a1 a2) #s(hole binary64 (* a1 a2)))
#s(approx (* b1 b2) #s(hole binary64 (* b1 b2)))
Calls

12 calls:

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

simplify4.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01029
11929
23729
34829
44829
04829
Stop Event
iter limit
saturated
Counts
3 → 3
Calls
Call 1
Inputs
#s(approx (/ (* a1 a2) (* b1 b2)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* a1 a2) #s(hole binary64 (* a1 a2)))
#s(approx (* b1 b2) #s(hole binary64 (* b1 b2)))
Outputs
#s(approx (/ (* a1 a2) (* b1 b2)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ (* a1 a2) (* b1 b2)) (*.f64 (/.f64 (/.f64 a1 b2) b1) a2))
#s(approx (* a1 a2) #s(hole binary64 (* a1 a2)))
#s(approx (* a1 a2) (*.f64 a2 a1))
#s(approx (* b1 b2) #s(hole binary64 (* b1 b2)))
#s(approx (* b1 b2) (*.f64 b2 b1))

rewrite56.0ms (2.4%)

Memory
-15.5MiB live, 83.9MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
01013
12213
26513
320913
454813
555713
055713
Stop Event
iter limit
saturated
iter limit
Counts
3 → 33
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 a1 a2)
(*.f64 b1 b2)
Outputs
(*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) (neg.f64 a2))
(*.f64 (/.f64 (/.f64 (neg.f64 a2) b1) b2) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 (neg.f64 a2) b1) b2))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 (neg.f64 a1) b1) b2))
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(*.f64 a1 (/.f64 (/.f64 a2 b2) b1))
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b2) a2) (neg.f64 b1))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 (/.f64 (neg.f64 a1) b1) a2) (neg.f64 b2))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))
(neg.f64 (*.f64 (/.f64 (/.f64 (neg.f64 a1) b1) b2) a2))
(*.f64 (neg.f64 a1) (neg.f64 a2))
(*.f64 (neg.f64 a2) (neg.f64 a1))
(*.f64 a2 a1)
(*.f64 a1 a2)
(neg.f64 (*.f64 (neg.f64 a1) a2))
(*.f64 (neg.f64 b2) (neg.f64 b1))
(*.f64 (neg.f64 b1) (neg.f64 b2))
(*.f64 b2 b1)
(*.f64 b1 b2)
(neg.f64 (*.f64 (neg.f64 b2) b1))

eval3.0ms (0.1%)

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

Compiled 304 to 77 computations (74.7% saved)

prune5.0ms (0.2%)

Memory
20.6MiB live, 20.6MiB allocated; 0ms collecting garbage
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
79.9%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
92.1%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
83.4%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
95.2%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
80.2%
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
98.6%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
76.9%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Compiler

Compiled 91 to 91 computations (0% saved)

simplify25.0ms (1.1%)

Memory
-31.8MiB live, 15.8MiB allocated; 1ms collecting garbage
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

localize58.0ms (2.5%)

Memory
-6.1MiB live, 185.1MiB allocated; 18ms collecting garbage
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 a1 b1)
accuracy1.761410072769093
(*.f64 (/.f64 a1 b1) a2)
accuracy4.540096102641648
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
accuracy0.0
(/.f64 a2 b2)
accuracy1.6910543580868271
(/.f64 (/.f64 a2 b2) b1)
accuracy2.8786832423958963
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
accuracy0.0
(/.f64 a1 b2)
accuracy6.3656189392983
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
accuracy7.5208708512169595
(/.f64 (/.f64 a1 b2) b1)
accuracy0.0
(/.f64 a2 b1)
accuracy0.0
(/.f64 a1 b2)
accuracy14.680184790217872
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
accuracy0.0
(/.f64 a2 b2)
accuracy0.0
(/.f64 a1 b1)
accuracy0.864600901817838
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Samples
43.0ms256×0valid
Compiler

Compiled 93 to 18 computations (80.6% saved)

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

series29.0ms (1.2%)

Memory
12.6MiB live, 111.1MiB allocated; 7ms collecting garbage
Counts
12 → 12
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
#s(approx (* (/ a2 b2) (/ a1 b1)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ a1 b1) #s(hole binary64 (/ a1 b1)))
#s(approx (* (/ a2 b1) (/ a1 b2)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ a1 b2) #s(hole binary64 (/ a1 b2)))
#s(approx (* (/ (/ a1 b2) b1) a2) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ (/ a1 b2) b1) #s(hole binary64 (/ a1 (* b1 b2))))
#s(approx (* (/ (/ a2 b2) b1) a1) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ (* (/ a1 b1) a2) b2) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a1 b1) a2) #s(hole binary64 (/ (* a1 a2) b1)))
#s(approx (/ a2 b2) #s(hole binary64 (/ a2 b2)))
#s(approx (/ a2 b1) #s(hole binary64 (/ a2 b1)))
#s(approx (/ (/ a2 b2) b1) #s(hole binary64 (/ a2 (* b1 b2))))
Calls

12 calls:

TimeVariablePointExpression
4.0ms
b2
@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))
4.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))
3.0ms
a2
@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))
3.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))
3.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))

simplify4.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
034136
160136
263136
063136
Stop Event
iter limit
saturated
Counts
12 → 12
Calls
Call 1
Inputs
#s(approx (* (/ a2 b2) (/ a1 b1)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ a1 b1) #s(hole binary64 (/ a1 b1)))
#s(approx (* (/ a2 b1) (/ a1 b2)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ a1 b2) #s(hole binary64 (/ a1 b2)))
#s(approx (* (/ (/ a1 b2) b1) a2) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ (/ a1 b2) b1) #s(hole binary64 (/ a1 (* b1 b2))))
#s(approx (* (/ (/ a2 b2) b1) a1) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ (* (/ a1 b1) a2) b2) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a1 b1) a2) #s(hole binary64 (/ (* a1 a2) b1)))
#s(approx (/ a2 b2) #s(hole binary64 (/ a2 b2)))
#s(approx (/ a2 b1) #s(hole binary64 (/ a2 b1)))
#s(approx (/ (/ a2 b2) b1) #s(hole binary64 (/ a2 (* b1 b2))))
Outputs
#s(approx (* (/ a2 b2) (/ a1 b1)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a2 b1) (/ a1 b2)) (*.f64 (/.f64 (/.f64 a2 b1) b2) a1))
#s(approx (/ a1 b1) #s(hole binary64 (/ a1 b1)))
#s(approx (/ a1 b1) (/.f64 a1 b1))
#s(approx (* (/ a2 b1) (/ a1 b2)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a2 b1) (/ a1 b2)) (*.f64 (/.f64 (/.f64 a2 b1) b2) a1))
#s(approx (/ a1 b2) #s(hole binary64 (/ a1 b2)))
#s(approx (/ a1 b2) (/.f64 a1 b2))
#s(approx (* (/ (/ a1 b2) b1) a2) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a2 b1) (/ a1 b2)) (*.f64 (/.f64 (/.f64 a2 b1) b2) a1))
#s(approx (/ (/ a1 b2) b1) #s(hole binary64 (/ a1 (* b1 b2))))
#s(approx (/ (/ a1 b2) b1) (/.f64 (/.f64 a1 b2) b1))
#s(approx (* (/ (/ a2 b2) b1) a1) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a2 b1) (/ a1 b2)) (*.f64 (/.f64 (/.f64 a2 b1) b2) a1))
#s(approx (/ (* (/ a1 b1) a2) b2) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a2 b1) (/ a1 b2)) (*.f64 (/.f64 (/.f64 a2 b1) b2) a1))
#s(approx (* (/ a1 b1) a2) #s(hole binary64 (/ (* a1 a2) b1)))
#s(approx (* (/ a1 b1) a2) (*.f64 (/.f64 a2 b1) a1))
#s(approx (/ a2 b2) #s(hole binary64 (/ a2 b2)))
#s(approx (/ a2 b2) (/.f64 a2 b2))
#s(approx (/ a2 b1) #s(hole binary64 (/ a2 b1)))
#s(approx (/ a2 b1) (/.f64 a2 b1))
#s(approx (/ (/ a2 b2) b1) #s(hole binary64 (/ a2 (* b1 b2))))
#s(approx (/ (/ a2 b2) b1) (/.f64 (/.f64 a2 b1) b2))

rewrite15.0ms (0.6%)

Memory
-17.2MiB live, 29.9MiB allocated; 1ms collecting garbage
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))

eval9.0ms (0.4%)

Memory
-14.1MiB live, 32.7MiB allocated; 3ms collecting garbage
Compiler

Compiled 694 to 153 computations (78% saved)

prune4.0ms (0.2%)

Memory
19.4MiB live, 19.3MiB allocated; 0ms collecting garbage
Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New78280
Fresh011
Picked145
Done011
Total79887
Accuracy
100.0%
Counts
87 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.9%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
92.1%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
83.4%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
95.2%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
87.9%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
98.6%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
76.9%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
84.7%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 56 to 56 computations (0% saved)

simplify4.0ms (0.2%)

Memory
13.5MiB live, 13.5MiB allocated; 0ms collecting garbage
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

localize51.0ms (2.1%)

Memory
-32.2MiB live, 158.9MiB allocated; 12ms collecting garbage
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 a1 b2)
accuracy5.275484998022841
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
accuracy8.423344148718192
(*.f64 (/.f64 a1 b2) a2)
accuracy0.0
(*.f64 b1 b2)
accuracy2.8786832423958963
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
accuracy6.88970292945012
(/.f64 a2 (*.f64 b1 b2))
accuracy0.0
(*.f64 b1 b2)
accuracy4.6772101058943765
(/.f64 a1 (*.f64 b1 b2))
accuracy6.3656189392983
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Samples
32.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.8% of total)
ival-mult: 7.0ms (46.2% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series38.0ms (1.6%)

Memory
27.5MiB live, 75.4MiB allocated; 1ms collecting garbage
Counts
8 → 8
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(/.f64 a1 (*.f64 b1 b2))
(*.f64 b1 b2)
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(/.f64 a2 (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
(/.f64 a1 b2)
Outputs
#s(approx (* (/ a1 (* b1 b2)) a2) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ a1 (* b1 b2)) #s(hole binary64 (/ a1 (* b1 b2))))
#s(approx (* (/ a2 (* b1 b2)) a1) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ (* (/ a1 b2) a2) b1) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a1 b2) a2) #s(hole binary64 (/ (* a1 a2) b2)))
#s(approx (/ a1 b2) #s(hole binary64 (/ a1 b2)))
#s(approx (/ a2 (* b1 b2)) #s(hole binary64 (/ a2 (* b1 b2))))
#s(approx (* b1 b2) #s(hole binary64 (* b1 b2)))
Calls

12 calls:

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

simplify6.0ms (0.2%)

Memory
-29.6MiB live, 18.6MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02392
14192
25492
35492
05492
Stop Event
iter limit
saturated
Counts
8 → 8
Calls
Call 1
Inputs
#s(approx (* (/ a1 (* b1 b2)) a2) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ a1 (* b1 b2)) #s(hole binary64 (/ a1 (* b1 b2))))
#s(approx (* (/ a2 (* b1 b2)) a1) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ (* (/ a1 b2) a2) b1) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a1 b2) a2) #s(hole binary64 (/ (* a1 a2) b2)))
#s(approx (/ a1 b2) #s(hole binary64 (/ a1 b2)))
#s(approx (/ a2 (* b1 b2)) #s(hole binary64 (/ a2 (* b1 b2))))
#s(approx (* b1 b2) #s(hole binary64 (* b1 b2)))
Outputs
#s(approx (* (/ a1 (* b1 b2)) a2) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a1 (* b1 b2)) a2) (*.f64 (/.f64 a1 (*.f64 b2 b1)) a2))
#s(approx (/ a1 (* b1 b2)) #s(hole binary64 (/ a1 (* b1 b2))))
#s(approx (/ a1 (* b1 b2)) (/.f64 a1 (*.f64 b2 b1)))
#s(approx (* (/ a2 (* b1 b2)) a1) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a1 (* b1 b2)) a2) (*.f64 (/.f64 a1 (*.f64 b2 b1)) a2))
#s(approx (/ (* (/ a1 b2) a2) b1) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a1 (* b1 b2)) a2) (*.f64 (/.f64 a1 (*.f64 b2 b1)) a2))
#s(approx (* (/ a1 b2) a2) #s(hole binary64 (/ (* a1 a2) b2)))
#s(approx (* (/ a1 b2) a2) (*.f64 (/.f64 a1 b2) a2))
#s(approx (/ a1 b2) #s(hole binary64 (/ a1 b2)))
#s(approx (/ a1 b2) (/.f64 a1 b2))
#s(approx (/ a2 (* b1 b2)) #s(hole binary64 (/ a2 (* b1 b2))))
#s(approx (/ a2 (* b1 b2)) (/.f64 a2 (*.f64 b2 b1)))
#s(approx (* b1 b2) #s(hole binary64 (* b1 b2)))
#s(approx (* b1 b2) (*.f64 b2 b1))

rewrite16.0ms (0.7%)

Memory
15.3MiB live, 62.2MiB allocated; 2ms collecting garbage
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
22.5MiB live, 22.5MiB allocated; 0ms collecting garbage
Compiler

Compiled 582 to 143 computations (75.4% saved)

prune8.0ms (0.3%)

Memory
-17.5MiB live, 29.4MiB allocated; 2ms collecting garbage
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New68068
Fresh000
Picked033
Done055
Total68876
Accuracy
100.0%
Counts
76 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.9%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
92.1%
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
83.4%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
95.2%
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
87.9%
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
98.6%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
76.9%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
84.7%
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 119 to 81 computations (31.9% saved)

regimes26.0ms (1.1%)

Memory
0.4MiB live, 102.1MiB allocated; 8ms 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 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (/.f64 a1 b2) b1) a2)
(*.f64 (/.f64 (/.f64 a2 b2) b1) a1)
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Calls

7 calls:

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

Compiled 17 to 33 computations (-94.1% saved)

regimes14.0ms (0.6%)

Memory
20.5MiB live, 68.0MiB allocated; 2ms collecting garbage
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

7 calls:

3.0ms
a2
2.0ms
b2
2.0ms
a1
2.0ms
b1
2.0ms
(*.f64 a1 a2)
Results
AccuracySegmentsBranch
98.2%4(*.f64 b1 b2)
94.0%3(*.f64 a1 a2)
96.4%3(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
87.9%1a1
90.0%2a2
91.2%2b1
92.4%2b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes9.0ms (0.4%)

Memory
-6.3MiB live, 41.2MiB 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 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Calls

5 calls:

2.0ms
(*.f64 b1 b2)
2.0ms
b2
2.0ms
b1
2.0ms
(*.f64 a1 a2)
1.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Results
AccuracySegmentsBranch
87.9%1b1
89.7%2b2
87.9%1(*.f64 a1 a2)
90.1%2(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
90.1%2(*.f64 b1 b2)
Compiler

Compiled 15 to 25 computations (-66.7% saved)

regimes8.0ms (0.4%)

Memory
-6.7MiB live, 41.0MiB allocated; 1ms 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:

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

Compiled 17 to 33 computations (-94.1% saved)

bsearch1.0ms (0%)

Memory
2.5MiB live, 2.5MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
6.6077294063634e+307
+inf
0.0ms
39343442770173304.0
137225400682888910.0
0.0ms
0.0
1.1116e-320
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch0.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.3771787575001043e-17
2.810480761034885e-15
Compiler

Compiled 10 to 14 computations (-40% saved)

simplify10.0ms (0.4%)

Memory
-15.6MiB live, 35.2MiB allocated; 1ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02984
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(if (<=.f64 (*.f64 b1 b2) #s(literal 0 binary64)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 b1 b2) #s(literal 50000000000000000 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (if (<=.f64 (*.f64 b1 b2) #s(literal 100000000000000001097906362944045541740492309677311846336810682903157585404911491537163328978494688899061249669721172515611590283743140088328307009198146046031271664502933027185697489699588559043338384466165001178426897626212945177628091195786707458122783970171784415105291802893207873272974885715430223118336 binary64)) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))))
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 6490371073168535/324518553658426726783156020576256 binary64)) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(if (<=.f64 (*.f64 b1 b2) #s(literal 0 binary64)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 b1 b2) #s(literal 50000000000000000 binary64)) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (if (<=.f64 (*.f64 b1 b2) #s(literal 100000000000000001097906362944045541740492309677311846336810682903157585404911491537163328978494688899061249669721172515611590283743140088328307009198146046031271664502933027185697489699588559043338384466165001178426897626212945177628091195786707458122783970171784415105291802893207873272974885715430223118336 binary64)) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))))
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) #s(literal 6490371073168535/324518553658426726783156020576256 binary64)) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)

derivations15.0ms (0.6%)

Memory
0.1MiB live, 47.4MiB allocated; 2ms collecting garbage
Stop Event
done
Compiler

Compiled 84 to 29 computations (65.5% saved)

preprocess499.0ms (21.1%)

Memory
26.5MiB live, 831.8MiB allocated; 153ms collecting garbage
Compiler

Compiled 280 to 170 computations (39.3% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...