Quotient of products

Time bar (total: 2.3s)

start0.0ms (0%)

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

analyze109.0ms (4.8%)

Memory
13.5MiB live, 148.4MiB allocated; 14ms 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)

sample932.0ms (40.7%)

Memory
3.3MiB live, 647.3MiB allocated; 923ms collecting garbage
Samples
663.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 205.0ms
ival-mult!: 165.0ms (80.7% of total)
ival-div!: 38.0ms (18.6% of total)
adjust: 2.0ms (1% of total)
Bogosity

preprocess31.0ms (1.3%)

Memory
5.9MiB live, 48.9MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037109
1117109
2328109
3696109
4996109
51875109
61891109
Stop Event
saturated
Alt Table
Click to see full alt table
StatusAccuracyProgram
85.4%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Symmetry

(negabs a1)

(negabs a2)

(negabs b1)

(negabs b2)

(sort a1 a2)

(sort b1 b2)

Compiler

Compiled 14 to 14 computations (0% saved)

series15.0ms (0.7%)

Memory
36.6MiB live, 36.6MiB allocated; 0ms 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
#s(approx (/ (* a1 a2) (* b1 b2)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* a1 a2) #s(hole binary64 (* a1 a2)))
#s(approx a1 #s(hole binary64 a1))
#s(approx a2 #s(hole binary64 a2))
#s(approx (* b1 b2) #s(hole binary64 (* b1 b2)))
#s(approx b1 #s(hole binary64 b1))
#s(approx b2 #s(hole binary64 b2))
Calls

12 calls:

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

rewrite25.0ms (1.1%)

Memory
-2.2MiB live, 43.7MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01758
01858
13058
27358
321558
455458
556358
056358
Stop Event
iter-limit
saturated
iter-limit
Counts
14 → 44
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 a1 a2)
a1
a2
(*.f64 b1 b2)
b1
b2
#s(approx (/ (* a1 a2) (* b1 b2)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* a1 a2) #s(hole binary64 (* a1 a2)))
#s(approx a1 #s(hole binary64 a1))
#s(approx a2 #s(hole binary64 a2))
#s(approx (* b1 b2) #s(hole binary64 (* b1 b2)))
#s(approx b1 #s(hole binary64 b1))
#s(approx b2 #s(hole binary64 b2))
Outputs
(*.f64 (/.f64 (neg.f64 a1) (*.f64 b2 b1)) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a2) (*.f64 b2 b1)) (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 a1 (*.f64 b2 b1)) a2)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) (*.f64 b2 b1)))
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) (*.f64 b2 b1)))
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 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 (/.f64 a1 b1) a2) b2)
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 a2 a1) (*.f64 b2 b1))
(neg.f64 (*.f64 (/.f64 a1 (*.f64 b2 b1)) (neg.f64 a2)))
(*.f64 (neg.f64 a2) (neg.f64 a1))
(*.f64 (neg.f64 a1) (neg.f64 a2))
(*.f64 a2 a1)
(*.f64 a1 a2)
(neg.f64 (*.f64 (neg.f64 a2) a1))
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))
b1
b2
#s(approx (/ (* a1 a2) (* b1 b2)) (*.f64 (/.f64 a1 (*.f64 b2 b1)) a2))
#s(approx (* a1 a2) (*.f64 a2 a1))
#s(approx a1 a1)
#s(approx a2 a2)
#s(approx (* b1 b2) (*.f64 b2 b1))
#s(approx b1 b1)
#s(approx b2 b2)

eval3.0ms (0.1%)

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

Compiled 154 to 88 computations (42.9% saved)

prune54.0ms (2.3%)

Memory
-52.4MiB live, 5.5MiB allocated; 11ms collecting garbage
Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New33538
Fresh000
Picked011
Done000
Total33639
Accuracy
99.7%
Counts
39 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
85.4%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
85.4%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
85.0%
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
96.6%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
75.2%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
89.5%
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
Compiler

Compiled 77 to 77 computations (0% saved)

series23.0ms (1%)

Memory
22.4MiB live, 22.4MiB allocated; 0ms collecting garbage
Counts
17 → 17
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(/.f64 a2 b2)
a2
b2
(/.f64 a1 b1)
a1
b1
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 a1 (*.f64 b2 b1))
(*.f64 b2 b1)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(/.f64 a2 (*.f64 b2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 a2 b1)
(/.f64 a1 b2)
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(*.f64 (/.f64 a1 b2) 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 a1 #s(hole binary64 a1))
#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 (* (/ a2 b1) (/ a1 b2)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ a1 b2) #s(hole binary64 (/ a1 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 (/ a2 b2) #s(hole binary64 (/ a2 b2)))
#s(approx a2 #s(hole binary64 a2))
#s(approx (/ a2 (* b2 b1)) #s(hole binary64 (/ a2 (* b1 b2))))
#s(approx (/ a2 b1) #s(hole binary64 (/ a2 b1)))
#s(approx b1 #s(hole binary64 b1))
#s(approx (* b2 b1) #s(hole binary64 (* b1 b2)))
#s(approx b2 #s(hole binary64 b2))
Calls

12 calls:

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

rewrite16.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
053224
068224
1116224
2232224
3571224
4581224
0581224
Stop Event
iter-limit
saturated
iter-limit
Counts
34 → 178
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(/.f64 a2 b2)
a2
b2
(/.f64 a1 b1)
a1
b1
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 a1 (*.f64 b2 b1))
(*.f64 b2 b1)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(/.f64 a2 (*.f64 b2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 a2 b1)
(/.f64 a1 b2)
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
#s(approx (* (/ a2 b2) (/ a1 b1)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ a1 b1) #s(hole binary64 (/ a1 b1)))
#s(approx a1 #s(hole binary64 a1))
#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 (* (/ a2 b1) (/ a1 b2)) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (/ a1 b2) #s(hole binary64 (/ a1 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 (/ a2 b2) #s(hole binary64 (/ a2 b2)))
#s(approx a2 #s(hole binary64 a2))
#s(approx (/ a2 (* b2 b1)) #s(hole binary64 (/ a2 (* b1 b2))))
#s(approx (/ a2 b1) #s(hole binary64 (/ a2 b1)))
#s(approx b1 #s(hole binary64 b1))
#s(approx (* b2 b1) #s(hole binary64 (* b1 b2)))
#s(approx b2 #s(hole binary64 b2))
Outputs
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)) (neg.f64 a2))
(*.f64 (/.f64 a2 (*.f64 (neg.f64 b2) b1)) (neg.f64 a1))
(*.f64 (neg.f64 a1) (/.f64 a2 (*.f64 (neg.f64 b2) b1)))
(*.f64 (neg.f64 a2) (/.f64 a1 (*.f64 (neg.f64 b2) b1)))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a2 (/.f64 a1 (*.f64 b1 b2)))
(/.f64 (/.f64 (*.f64 (neg.f64 a1) a2) b1) (neg.f64 b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(/.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 a1 b2) a2) b1)
(neg.f64 (*.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)) a2))
(/.f64 (neg.f64 a2) (neg.f64 b2))
(/.f64 a2 b2)
(neg.f64 (/.f64 (neg.f64 a2) b2))
a2
b2
(/.f64 (neg.f64 a1) (neg.f64 b1))
(/.f64 a1 b1)
(neg.f64 (/.f64 (neg.f64 a1) b1))
a1
b1
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)) (neg.f64 a2))
(*.f64 (/.f64 a2 (*.f64 (neg.f64 b2) b1)) (neg.f64 a1))
(*.f64 (neg.f64 a1) (/.f64 a2 (*.f64 (neg.f64 b2) b1)))
(*.f64 (neg.f64 a2) (/.f64 a1 (*.f64 (neg.f64 b2) b1)))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a2 (/.f64 a1 (*.f64 b1 b2)))
(/.f64 (/.f64 (*.f64 (neg.f64 a1) a2) b1) (neg.f64 b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(/.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 a1 b2) a2) b1)
(neg.f64 (*.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)) a2))
(/.f64 (/.f64 (neg.f64 a1) b1) (neg.f64 b2))
(/.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 b1))
(/.f64 (neg.f64 a1) (*.f64 (neg.f64 b2) b1))
(/.f64 (/.f64 a1 b1) b2)
(/.f64 (/.f64 a1 b2) b1)
(/.f64 a1 (*.f64 b1 b2))
(neg.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)))
(*.f64 (neg.f64 b1) (neg.f64 b2))
(*.f64 (neg.f64 b2) (neg.f64 b1))
(*.f64 b1 b2)
(*.f64 b2 b1)
(neg.f64 (*.f64 (neg.f64 b2) b1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)) (neg.f64 a2))
(*.f64 (/.f64 a2 (*.f64 (neg.f64 b2) b1)) (neg.f64 a1))
(*.f64 (neg.f64 a1) (/.f64 a2 (*.f64 (neg.f64 b2) b1)))
(*.f64 (neg.f64 a2) (/.f64 a1 (*.f64 (neg.f64 b2) b1)))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a2 (/.f64 a1 (*.f64 b1 b2)))
(/.f64 (/.f64 (*.f64 (neg.f64 a1) a2) b1) (neg.f64 b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(/.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 a1 b2) a2) b1)
(neg.f64 (*.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)) a2))
(/.f64 (/.f64 (neg.f64 a2) b1) (neg.f64 b2))
(/.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 b1))
(/.f64 (neg.f64 a2) (*.f64 (neg.f64 b2) b1))
(/.f64 (/.f64 a2 b1) b2)
(/.f64 (/.f64 a2 b2) b1)
(/.f64 a2 (*.f64 b1 b2))
(neg.f64 (/.f64 a2 (*.f64 (neg.f64 b2) b1)))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)) (neg.f64 a2))
(*.f64 (/.f64 a2 (*.f64 (neg.f64 b2) b1)) (neg.f64 a1))
(*.f64 (neg.f64 a1) (/.f64 a2 (*.f64 (neg.f64 b2) b1)))
(*.f64 (neg.f64 a2) (/.f64 a1 (*.f64 (neg.f64 b2) b1)))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a2 (/.f64 a1 (*.f64 b1 b2)))
(/.f64 (/.f64 (*.f64 (neg.f64 a1) a2) b1) (neg.f64 b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(/.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 a1 b2) a2) b1)
(neg.f64 (*.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)) a2))
(/.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 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) 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 a1 (*.f64 (neg.f64 b2) b1)) (neg.f64 a2))
(*.f64 (/.f64 a2 (*.f64 (neg.f64 b2) b1)) (neg.f64 a1))
(*.f64 (neg.f64 a1) (/.f64 a2 (*.f64 (neg.f64 b2) b1)))
(*.f64 (neg.f64 a2) (/.f64 a1 (*.f64 (neg.f64 b2) b1)))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a2 (/.f64 a1 (*.f64 b1 b2)))
(/.f64 (/.f64 (*.f64 (neg.f64 a1) a2) b1) (neg.f64 b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a2 b1) a1) b2)
(/.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 a1 b2) a2) b1)
(neg.f64 (*.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)) a2))
(*.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 a2))
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b2) a1)
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a1 (/.f64 a2 b2))
(*.f64 a2 (/.f64 a1 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 (neg.f64 a1) a2) (neg.f64 b2))
(neg.f64 (/.f64 (*.f64 (neg.f64 a1) a2) b2))
#s(approx (* (/ a1 (* b2 b1)) a2) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)))
#s(approx (/ a1 b1) (/.f64 a1 b1))
#s(approx a1 a1)
#s(approx (* (/ a1 (* b2 b1)) a2) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)))
#s(approx (/ a1 (* b2 b1)) (/.f64 a1 (*.f64 b1 b2)))
#s(approx (* (/ a1 (* b2 b1)) a2) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)))
#s(approx (* (/ a1 (* b2 b1)) a2) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)))
#s(approx (/ a1 b2) (/.f64 a1 b2))
#s(approx (* (/ a1 (* b2 b1)) a2) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)))
#s(approx (* (/ a1 b2) a2) (*.f64 (/.f64 a1 b2) a2))
#s(approx (/ a2 b2) (/.f64 a2 b2))
#s(approx a2 a2)
#s(approx (/ a2 (* b2 b1)) (/.f64 a2 (*.f64 b1 b2)))
#s(approx (/ a2 b1) (/.f64 a2 b1))
#s(approx b1 b1)
#s(approx (* b2 b1) (*.f64 b1 b2))
#s(approx b2 b2)

eval7.0ms (0.3%)

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

Compiled 392 to 205 computations (47.7% saved)

prune41.0ms (1.8%)

Memory
-35.5MiB live, 10.0MiB allocated; 4ms collecting garbage
Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New91192
Fresh000
Picked055
Done011
Total91798
Accuracy
100.0%
Counts
98 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
89.0%
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
85.4%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
85.4%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
85.0%
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
96.6%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
75.2%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
89.5%
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
Compiler

Compiled 49 to 49 computations (0% saved)

series10.0ms (0.5%)

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

12 calls:

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

rewrite12.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02164
02564
14764
211764
332264
446264
046264
Stop Event
iter-limit
saturated
iter-limit
Counts
14 → 48
Calls
Call 1
Inputs
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(*.f64 (/.f64 a2 b2) a1)
(/.f64 a2 b2)
a2
b2
a1
b1
#s(approx (/ (* (/ a2 b2) a1) b1) #s(hole binary64 (/ (* a1 a2) (* b1 b2))))
#s(approx (* (/ a2 b2) a1) #s(hole binary64 (/ (* a1 a2) b2)))
#s(approx a1 #s(hole binary64 a1))
#s(approx (/ a2 b2) #s(hole binary64 (/ a2 b2)))
#s(approx a2 #s(hole binary64 a2))
#s(approx b1 #s(hole binary64 b1))
#s(approx b2 #s(hole binary64 b2))
Outputs
(*.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)) (neg.f64 a2))
(*.f64 (/.f64 a2 (*.f64 b1 b2)) a1)
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 (*.f64 (neg.f64 b2) b1)) (neg.f64 a1))
(*.f64 (/.f64 (neg.f64 a2) b1) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 (neg.f64 a1) b2) (/.f64 (neg.f64 a2) b1))
(*.f64 (/.f64 (neg.f64 a1) b1) (/.f64 (neg.f64 a2) b2))
(*.f64 (/.f64 (neg.f64 a2) b2) (/.f64 (neg.f64 a1) b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (neg.f64 a1) (/.f64 a2 (*.f64 (neg.f64 b2) b1)))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 (neg.f64 a2) (/.f64 a1 (*.f64 (neg.f64 b2) b1)))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a2 (/.f64 a1 (*.f64 b1 b2)))
(/.f64 (/.f64 (*.f64 (neg.f64 a2) a1) b1) (neg.f64 b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (/.f64 a1 b1) a2) b2)
(/.f64 (/.f64 (*.f64 (neg.f64 a2) a1) b2) (neg.f64 b1))
(/.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b2) b1))
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
(neg.f64 (*.f64 (/.f64 a1 (*.f64 (neg.f64 b2) b1)) a2))
(*.f64 (/.f64 (neg.f64 a1) b2) (neg.f64 a2))
(*.f64 (/.f64 (neg.f64 a2) b2) (neg.f64 a1))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 (neg.f64 a1) (/.f64 (neg.f64 a2) b2))
(*.f64 (neg.f64 a2) (/.f64 (neg.f64 a1) b2))
(*.f64 (/.f64 a2 b2) a1)
(*.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) a1) b2))
(/.f64 (neg.f64 a2) (neg.f64 b2))
(/.f64 a2 b2)
(neg.f64 (/.f64 (neg.f64 a2) b2))
a2
b2
a1
b1
#s(approx (/ (* (/ a2 b2) a1) b1) (*.f64 (/.f64 a2 (*.f64 b1 b2)) a1))
#s(approx (* (/ a2 b2) a1) (*.f64 (/.f64 a2 b2) a1))
#s(approx a1 a1)
#s(approx (/ a2 b2) (/.f64 a2 b2))
#s(approx a2 a2)
#s(approx b1 b1)
#s(approx b2 b2)

eval7.0ms (0.3%)

Memory
-37.1MiB live, 7.2MiB allocated; 5ms collecting garbage
Compiler

Compiled 167 to 94 computations (43.7% saved)

prune3.0ms (0.1%)

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

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New37037
Fresh000
Picked011
Done066
Total37744
Accuracy
100.0%
Counts
44 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
89.0%
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
85.4%
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
85.4%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
85.0%
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
96.6%
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
75.2%
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
89.5%
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
Compiler

Compiled 74 to 71 computations (4.1% saved)

regimes19.0ms (0.8%)

Memory
-9.5MiB live, 34.5MiB allocated; 5ms collecting garbage
Counts
7 → 2
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) 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) a2) b1)
(/.f64 (*.f64 (/.f64 a2 b2) a1) b1)
Outputs
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Calls

7 calls:

2.0ms
b2
2.0ms
a1
2.0ms
a2
2.0ms
b1
2.0ms
(*.f64 a1 a2)
Results
AccuracySegmentsBranch
96.6%1(*.f64 b1 b2)
96.6%1(*.f64 a1 a2)
96.6%1(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
96.6%1a1
96.6%1a2
96.6%1b1
98.4%2b2
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes4.0ms (0.2%)

Memory
7.3MiB live, 7.3MiB allocated; 0ms collecting garbage
Counts
5 → 1
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Outputs
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Calls

2 calls:

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

Compiled 8 to 11 computations (-37.5% saved)

regimes11.0ms (0.5%)

Memory
26.8MiB live, 26.8MiB allocated; 0ms collecting garbage
Counts
4 → 4
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) 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 b2 b1)) a2)
(*.f64 (/.f64 a2 (*.f64 b2 b1)) a1)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Calls

7 calls:

2.0ms
a2
2.0ms
a1
2.0ms
b1
2.0ms
b2
1.0ms
(*.f64 a1 a2)
Results
AccuracySegmentsBranch
93.7%3b2
98.0%4(*.f64 b1 b2)
92.9%3(*.f64 a1 a2)
89.5%1a1
89.5%1a2
92.7%2b1
95.4%3(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 17 to 33 computations (-94.1% saved)

regimes14.0ms (0.6%)

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

4 calls:

10.0ms
b2
1.0ms
b1
1.0ms
(*.f64 b1 b2)
1.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Results
AccuracySegmentsBranch
91.4%2b2
91.4%2b1
92.0%2(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
92.0%2(*.f64 b1 b2)
Compiler

Compiled 12 to 20 computations (-66.7% saved)

regimes6.0ms (0.2%)

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

6 calls:

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

Compiled 16 to 29 computations (-81.3% saved)

bsearch7.0ms (0.3%)

Memory
11.4MiB live, 11.4MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
7.0ms
6.988086464634019e-34
8.939892735581729e-33
Samples
3.0ms96×0valid
Compiler

Compiled 94 to 110 computations (-17% saved)

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

bsearch0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
5.389038479511122e+304
6.677830367240017e+304
0.0ms
9.225521410034339e-107
1.876306551537189e-106
0.0ms
2.405806138459534e-303
2.3248952222080746e-302
Compiler

Compiled 10 to 14 computations (-40% saved)

bsearch0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
9.225521410034339e-107
1.876306551537189e-106
Compiler

Compiled 10 to 14 computations (-40% saved)

derivations22.0ms (1%)

Memory
-16.1MiB live, 29.3MiB allocated; 5ms collecting garbage
Stop Event
done
Compiler

Compiled 35 to 31 computations (11.4% saved)

preprocess914.0ms (40%)

Memory
18.3MiB live, 1 064.7MiB allocated; 138ms collecting garbage
Remove

(sort b1 b2)

(negabs b2)

(negabs b1)

Compiler

Compiled 1 229 to 1 181 computations (3.9% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...