Linear.V3:$cdot from linear-1.19.1.3, B

Time bar (total: 3.2s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated; 0ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.7%0.3%0%0%0%0
100%99.7%0%0.3%0%0%0%1
Compiler

Compiled 13 to 13 computations (0% saved)

sample1.0s (32.9%)

Memory
15.2MiB live, 1 141.7MiB allocated; 206ms collecting garbage
Samples
777.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 330.0ms
ival-mult!: 260.0ms (78.7% of total)
ival-add!: 68.0ms (20.6% of total)
adjust: 1.0ms (0.3% of total)
Bogosity

preprocess39.0ms (1.2%)

Memory
-9.3MiB live, 40.9MiB allocated; 14ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
089318
1320308
2947308
31785308
41816308
Stop Event
saturated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.2%
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Symmetry

(sort x y)

(sort z t)

(sort a b)

Compiler

Compiled 22 to 22 computations (0% saved)

series22.0ms (0.7%)

Memory
15.6MiB live, 61.5MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0140581
Stop Event
iter-limit
Counts
11 → 33
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (*.f64 z t))
(*.f64 x y)
x
y
(*.f64 z t)
z
t
(*.f64 a b)
a
b
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (fma.f64 t z (*.f64 x y))))
#s(approx (+ (* x y) (* z t)) (*.f64 t z))
#s(approx (+ (* x y) (* z t)) (fma.f64 t z (*.f64 x y)))
#s(approx (* x y) (*.f64 x y))
#s(approx x x)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x (+.f64 y (+.f64 (/.f64 (*.f64 a b) x) (/.f64 (*.f64 t z) x)))))
#s(approx (+ (* x y) (* z t)) (*.f64 x (+.f64 y (/.f64 (*.f64 t z) x))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 t z)) x))))))
#s(approx (+ (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) x))))))
#s(approx y y)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y (+.f64 x (+.f64 (/.f64 (*.f64 a b) y) (/.f64 (*.f64 t z) y)))))
#s(approx (+ (* x y) (* z t)) (*.f64 y (+.f64 x (/.f64 (*.f64 t z) y))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 t z)) y))))))
#s(approx (+ (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) y))))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
#s(approx z z)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 z (+.f64 t (+.f64 (/.f64 (*.f64 a b) z) (/.f64 (*.f64 x y) z)))))
#s(approx (+ (* x y) (* z t)) (*.f64 z (+.f64 t (/.f64 (*.f64 x y) z))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 x y)) z))))))
#s(approx (+ (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z))))))
#s(approx t t)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t (+.f64 z (+.f64 (/.f64 (*.f64 a b) t) (/.f64 (*.f64 x y) t)))))
#s(approx (+ (* x y) (* z t)) (*.f64 t (+.f64 z (/.f64 (*.f64 x y) t))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 x y)) t))))))
#s(approx (+ (* x y) (* z t)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t))))))
#s(approx (* a b) (*.f64 a b))
#s(approx a a)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 a (+.f64 b (+.f64 (/.f64 (*.f64 t z) a) (/.f64 (*.f64 x y) a)))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 t z (*.f64 x y)) a))))))
#s(approx b b)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b (+.f64 a (+.f64 (/.f64 (*.f64 t z) b) (/.f64 (*.f64 x y) b)))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 t z (*.f64 x y)) b))))))
Calls

18 calls:

TimeVariablePointExpression
4.0ms
b
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) x y (* z t) z t (* a b) a b)
1.0ms
z
@inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) x y (* z t) z t (* a b) a b)
1.0ms
x
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) x y (* z t) z t (* a b) a b)
1.0ms
x
@inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) x y (* z t) z t (* a b) a b)
1.0ms
z
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) x y (* z t) z t (* a b) a b)

rewrite318.0ms (10.1%)

Memory
20.0MiB live, 251.4MiB allocated; 48ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01133
01633
16533
223333
369733
4117433
5153433
6421433
0829030
11425330
Stop Event
saturated
node-limit
iter-limit
Counts
11 → 59
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (*.f64 z t))
(*.f64 x y)
x
y
(*.f64 z t)
z
t
(*.f64 a b)
a
b
Outputs
(neg.f64 (neg.f64 (fma.f64 b a (fma.f64 t z (*.f64 y x)))))
(fma.f64 (neg.f64 y) (neg.f64 x) (fma.f64 b a (*.f64 t z)))
(fma.f64 (neg.f64 x) (neg.f64 y) (fma.f64 b a (*.f64 t z)))
(fma.f64 (neg.f64 t) (neg.f64 z) (fma.f64 b a (*.f64 y x)))
(fma.f64 (neg.f64 b) (neg.f64 a) (fma.f64 t z (*.f64 y x)))
(fma.f64 (neg.f64 z) (neg.f64 t) (fma.f64 b a (*.f64 y x)))
(fma.f64 (neg.f64 a) (neg.f64 b) (fma.f64 t z (*.f64 y x)))
(fma.f64 b a (fma.f64 t z (*.f64 y x)))
(fma.f64 a b (fma.f64 t z (*.f64 y x)))
(fma.f64 t z (fma.f64 b a (*.f64 y x)))
(fma.f64 z t (fma.f64 b a (*.f64 y x)))
(fma.f64 y x (fma.f64 b a (*.f64 t z)))
(fma.f64 x y (fma.f64 b a (*.f64 t z)))
(-.f64 (fma.f64 b a (*.f64 y x)) (*.f64 (neg.f64 z) t))
(-.f64 (fma.f64 b a (*.f64 t z)) (*.f64 (neg.f64 y) x))
(-.f64 (*.f64 b a) (neg.f64 (fma.f64 t z (*.f64 y x))))
(-.f64 (fma.f64 t z (*.f64 y x)) (*.f64 (neg.f64 a) b))
(-.f64 (*.f64 t z) (neg.f64 (fma.f64 b a (*.f64 y x))))
(-.f64 (*.f64 y x) (neg.f64 (fma.f64 b a (*.f64 t z))))
(+.f64 (fma.f64 b a (*.f64 y x)) (*.f64 t z))
(+.f64 (fma.f64 b a (*.f64 t z)) (*.f64 y x))
(+.f64 (*.f64 b a) (fma.f64 t z (*.f64 y x)))
(+.f64 (fma.f64 t z (*.f64 y x)) (*.f64 b a))
(+.f64 (*.f64 t z) (fma.f64 b a (*.f64 y x)))
(+.f64 (*.f64 y x) (fma.f64 b a (*.f64 t z)))
(neg.f64 (neg.f64 (fma.f64 t z (*.f64 y x))))
(fma.f64 (neg.f64 y) (neg.f64 x) (*.f64 t z))
(fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 t z))
(fma.f64 (neg.f64 t) (neg.f64 z) (*.f64 y x))
(fma.f64 (neg.f64 z) (neg.f64 t) (*.f64 y x))
(fma.f64 t z (*.f64 y x))
(fma.f64 z t (*.f64 y x))
(fma.f64 y x (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(-.f64 (*.f64 t z) (*.f64 (neg.f64 y) x))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 z) t))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 (neg.f64 y) (neg.f64 x))
(*.f64 (neg.f64 x) (neg.f64 y))
(*.f64 y x)
(*.f64 x y)
(neg.f64 (*.f64 (neg.f64 y) x))
x
y
(*.f64 (neg.f64 t) (neg.f64 z))
(*.f64 (neg.f64 z) (neg.f64 t))
(*.f64 t z)
(*.f64 z t)
(neg.f64 (*.f64 (neg.f64 z) t))
z
t
(*.f64 (neg.f64 b) (neg.f64 a))
(*.f64 (neg.f64 a) (neg.f64 b))
(*.f64 b a)
(*.f64 a b)
(neg.f64 (*.f64 (neg.f64 a) b))
a
b

eval13.0ms (0.4%)

Memory
-20.5MiB live, 22.0MiB allocated; 10ms collecting garbage
Compiler

Compiled 528 to 264 computations (50% saved)

prune2.0ms (0.1%)

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

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New80383
Fresh000
Picked101
Done000
Total81384
Accuracy
100.0%
Counts
84 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(fma.f64 z t (fma.f64 b a (*.f64 y x)))
69.2%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
68.7%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
Compiler

Compiled 37 to 37 computations (0% saved)

series28.0ms (0.9%)

Memory
0.4MiB live, 52.0MiB allocated; 14ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0172729
Stop Event
iter-limit
Counts
15 → 41
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
(fma.f64 a b (*.f64 t z))
a
b
(*.f64 t z)
t
z
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
(fma.f64 a b (*.f64 x y))
(*.f64 x y)
x
y
(fma.f64 z t (fma.f64 b a (*.f64 y x)))
(fma.f64 b a (*.f64 y x))
(*.f64 y x)
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (fma.f64 t z (*.f64 x y))))
#s(approx (+ (* a b) (* x y)) (*.f64 a b))
#s(approx (+ (* a b) (* x y)) (fma.f64 a b (*.f64 x y)))
#s(approx (* x y) (*.f64 x y))
#s(approx x x)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x (+.f64 y (+.f64 (/.f64 (*.f64 a b) x) (/.f64 (*.f64 t z) x)))))
#s(approx (+ (* a b) (* x y)) (*.f64 x (+.f64 y (/.f64 (*.f64 a b) x))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 t z)) x))))))
#s(approx (+ (* a b) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 a b) x))))))
#s(approx y y)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y (+.f64 x (+.f64 (/.f64 (*.f64 a b) y) (/.f64 (*.f64 t z) y)))))
#s(approx (+ (* a b) (* x y)) (*.f64 y (+.f64 x (/.f64 (*.f64 a b) y))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 t z)) y))))))
#s(approx (+ (* a b) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 a b) y))))))
#s(approx (* t z) (*.f64 t z))
#s(approx z z)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 z (+.f64 t (+.f64 (/.f64 (*.f64 a b) z) (/.f64 (*.f64 x y) z)))))
#s(approx (+ (* a b) (* t z)) (*.f64 z (+.f64 t (/.f64 (*.f64 a b) z))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 x y)) z))))))
#s(approx (+ (* a b) (* t z)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 a b) z))))))
#s(approx t t)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t (+.f64 z (+.f64 (/.f64 (*.f64 a b) t) (/.f64 (*.f64 x y) t)))))
#s(approx (+ (* a b) (* t z)) (*.f64 t (+.f64 z (/.f64 (*.f64 a b) t))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 x y)) t))))))
#s(approx (+ (* a b) (* t z)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 a b) t))))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
#s(approx a a)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 a (+.f64 b (+.f64 (/.f64 (*.f64 t z) a) (/.f64 (*.f64 x y) a)))))
#s(approx (+ (* a b) (* t z)) (*.f64 a (+.f64 b (/.f64 (*.f64 t z) a))))
#s(approx (+ (* a b) (* x y)) (*.f64 a (+.f64 b (/.f64 (*.f64 x y) a))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 t z (*.f64 x y)) a))))))
#s(approx (+ (* a b) (* t z)) (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) a))))))
#s(approx (+ (* a b) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) a))))))
#s(approx b b)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b (+.f64 a (+.f64 (/.f64 (*.f64 t z) b) (/.f64 (*.f64 x y) b)))))
#s(approx (+ (* a b) (* t z)) (*.f64 b (+.f64 a (/.f64 (*.f64 t z) b))))
#s(approx (+ (* a b) (* x y)) (*.f64 b (+.f64 a (/.f64 (*.f64 x y) b))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 t z (*.f64 x y)) b))))))
#s(approx (+ (* a b) (* t z)) (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) b))))))
#s(approx (+ (* a b) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) b))))))
Calls

18 calls:

TimeVariablePointExpression
10.0ms
b
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* t z)) a b (* t z) t z (+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* x y)) (* x y) x y (+ (* z t) (+ (* b a) (* y x))) (+ (* b a) (* y x)) (* y x))
2.0ms
z
@inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* t z)) a b (* t z) t z (+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* x y)) (* x y) x y (+ (* z t) (+ (* b a) (* y x))) (+ (* b a) (* y x)) (* y x))
1.0ms
y
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* t z)) a b (* t z) t z (+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* x y)) (* x y) x y (+ (* z t) (+ (* b a) (* y x))) (+ (* b a) (* y x)) (* y x))
1.0ms
x
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* t z)) a b (* t z) t z (+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* x y)) (* x y) x y (+ (* z t) (+ (* b a) (* y x))) (+ (* b a) (* y x)) (* y x))
1.0ms
t
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* t z)) a b (* t z) t z (+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* x y)) (* x y) x y (+ (* z t) (+ (* b a) (* y x))) (+ (* b a) (* y x)) (* y x))

rewrite305.0ms (9.7%)

Memory
44.5MiB live, 269.6MiB allocated; 44ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02078
02876
116874
248574
3101274
4124974
5157674
6425674
0833274
11429374
Stop Event
saturated
node-limit
iter-limit
Counts
15 → 87
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
(fma.f64 a b (*.f64 t z))
a
b
(*.f64 t z)
t
z
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
(fma.f64 a b (*.f64 x y))
(*.f64 x y)
x
y
(fma.f64 z t (fma.f64 b a (*.f64 y x)))
(fma.f64 b a (*.f64 y x))
(*.f64 y x)
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z)))
(neg.f64 (neg.f64 (fma.f64 b a (*.f64 t z))))
(fma.f64 (neg.f64 b) (neg.f64 a) (*.f64 t z))
(fma.f64 (neg.f64 z) (neg.f64 t) (*.f64 b a))
(fma.f64 (neg.f64 t) (neg.f64 z) (*.f64 b a))
(fma.f64 (neg.f64 a) (neg.f64 b) (*.f64 t z))
(fma.f64 b a (*.f64 t z))
(fma.f64 a b (*.f64 t z))
(fma.f64 t z (*.f64 b a))
(fma.f64 z t (*.f64 b a))
(-.f64 (*.f64 b a) (*.f64 (neg.f64 z) t))
(-.f64 (*.f64 t z) (*.f64 (neg.f64 b) a))
(+.f64 (*.f64 b a) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 b a))
a
b
(*.f64 (neg.f64 z) (neg.f64 t))
(*.f64 (neg.f64 t) (neg.f64 z))
(*.f64 t z)
(*.f64 z t)
(neg.f64 (*.f64 (neg.f64 z) t))
t
z
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 y x)))
(neg.f64 (neg.f64 (fma.f64 b a (*.f64 y x))))
(fma.f64 (neg.f64 b) (neg.f64 a) (*.f64 y x))
(fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 b a))
(fma.f64 (neg.f64 y) (neg.f64 x) (*.f64 b a))
(fma.f64 (neg.f64 a) (neg.f64 b) (*.f64 y x))
(fma.f64 b a (*.f64 y x))
(fma.f64 a b (*.f64 y x))
(fma.f64 y x (*.f64 b a))
(fma.f64 x y (*.f64 b a))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 b) a))
(-.f64 (*.f64 b a) (*.f64 (neg.f64 x) y))
(+.f64 (*.f64 y x) (*.f64 b a))
(+.f64 (*.f64 b a) (*.f64 y x))
(*.f64 (neg.f64 x) (neg.f64 y))
(*.f64 (neg.f64 y) (neg.f64 x))
(*.f64 y x)
(*.f64 x y)
(neg.f64 (*.f64 (neg.f64 x) y))
x
y
(neg.f64 (neg.f64 (fma.f64 b a (fma.f64 y x (*.f64 t z)))))
(fma.f64 (neg.f64 b) (neg.f64 a) (fma.f64 y x (*.f64 t z)))
(fma.f64 (neg.f64 z) (neg.f64 t) (fma.f64 b a (*.f64 y x)))
(fma.f64 (neg.f64 t) (neg.f64 z) (fma.f64 b a (*.f64 y x)))
(fma.f64 (neg.f64 x) (neg.f64 y) (fma.f64 b a (*.f64 t z)))
(fma.f64 (neg.f64 y) (neg.f64 x) (fma.f64 b a (*.f64 t z)))
(fma.f64 (neg.f64 a) (neg.f64 b) (fma.f64 y x (*.f64 t z)))
(fma.f64 b a (fma.f64 y x (*.f64 t z)))
(fma.f64 a b (fma.f64 y x (*.f64 t z)))
(fma.f64 t z (fma.f64 b a (*.f64 y x)))
(fma.f64 z t (fma.f64 b a (*.f64 y x)))
(fma.f64 y x (fma.f64 b a (*.f64 t z)))
(fma.f64 x y (fma.f64 b a (*.f64 t z)))
(-.f64 (fma.f64 b a (*.f64 t z)) (*.f64 (neg.f64 x) y))
(-.f64 (fma.f64 b a (*.f64 y x)) (*.f64 (neg.f64 z) t))
(-.f64 (*.f64 y x) (neg.f64 (fma.f64 b a (*.f64 t z))))
(-.f64 (*.f64 b a) (neg.f64 (fma.f64 y x (*.f64 t z))))
(-.f64 (fma.f64 y x (*.f64 t z)) (*.f64 (neg.f64 b) a))
(-.f64 (*.f64 t z) (neg.f64 (fma.f64 b a (*.f64 y x))))
(+.f64 (fma.f64 b a (*.f64 t z)) (*.f64 y x))
(+.f64 (fma.f64 b a (*.f64 y x)) (*.f64 t z))
(+.f64 (*.f64 y x) (fma.f64 b a (*.f64 t z)))
(+.f64 (*.f64 b a) (fma.f64 y x (*.f64 t z)))
(+.f64 (fma.f64 y x (*.f64 t z)) (*.f64 b a))
(+.f64 (*.f64 t z) (fma.f64 b a (*.f64 y x)))
(neg.f64 (neg.f64 (fma.f64 b a (*.f64 y x))))
(fma.f64 (neg.f64 b) (neg.f64 a) (*.f64 y x))
(fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 b a))
(fma.f64 (neg.f64 y) (neg.f64 x) (*.f64 b a))
(fma.f64 (neg.f64 a) (neg.f64 b) (*.f64 y x))
(fma.f64 b a (*.f64 y x))
(fma.f64 a b (*.f64 y x))
(fma.f64 y x (*.f64 b a))
(fma.f64 x y (*.f64 b a))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 b) a))
(-.f64 (*.f64 b a) (*.f64 (neg.f64 x) y))
(+.f64 (*.f64 y x) (*.f64 b a))
(+.f64 (*.f64 b a) (*.f64 y x))
(*.f64 (neg.f64 x) (neg.f64 y))
(*.f64 (neg.f64 y) (neg.f64 x))
(*.f64 y x)
(*.f64 x y)
(neg.f64 (*.f64 (neg.f64 x) y))

eval13.0ms (0.4%)

Memory
-14.9MiB live, 30.3MiB allocated; 5ms collecting garbage
Compiler

Compiled 686 to 335 computations (51.2% saved)

prune4.0ms (0.1%)

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

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1043107
Fresh000
Picked213
Done000
Total1064110
Accuracy
100.0%
Counts
110 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
68.7%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 b a)))
63.6%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
69.2%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
38.4%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
Compiler

Compiled 59 to 57 computations (3.4% saved)

series21.0ms (0.7%)

Memory
4.7MiB live, 50.1MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0206876
Stop Event
iter-limit
Counts
15 → 49
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
#s(approx (+ (* a b) (* x y)) (*.f64 a b))
(*.f64 a b)
a
b
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
(fma.f64 t z (*.f64 x y))
t
z
(*.f64 x y)
x
y
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 b a)))
(fma.f64 z t (*.f64 b a))
(*.f64 b a)
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (fma.f64 t z (*.f64 x y))))
#s(approx (+ (* a b) (* x y)) (*.f64 a b))
#s(approx (+ (* a b) (* x y)) (fma.f64 a b (*.f64 x y)))
#s(approx (+ (* t z) (* x y)) (*.f64 t z))
#s(approx (+ (* t z) (* x y)) (fma.f64 t z (*.f64 x y)))
#s(approx (* x y) (*.f64 x y))
#s(approx x x)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x (+.f64 y (+.f64 (/.f64 (*.f64 a b) x) (/.f64 (*.f64 t z) x)))))
#s(approx (+ (* a b) (* x y)) (*.f64 x (+.f64 y (/.f64 (*.f64 a b) x))))
#s(approx (+ (* t z) (* x y)) (*.f64 x (+.f64 y (/.f64 (*.f64 t z) x))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 t z)) x))))))
#s(approx (+ (* a b) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 a b) x))))))
#s(approx (+ (* t z) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) x))))))
#s(approx y y)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y (+.f64 x (+.f64 (/.f64 (*.f64 a b) y) (/.f64 (*.f64 t z) y)))))
#s(approx (+ (* a b) (* x y)) (*.f64 y (+.f64 x (/.f64 (*.f64 a b) y))))
#s(approx (+ (* t z) (* x y)) (*.f64 y (+.f64 x (/.f64 (*.f64 t z) y))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 t z)) y))))))
#s(approx (+ (* a b) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 a b) y))))))
#s(approx (+ (* t z) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) y))))))
#s(approx z z)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 z (+.f64 t (+.f64 (/.f64 (*.f64 a b) z) (/.f64 (*.f64 x y) z)))))
#s(approx (+ (* t z) (* x y)) (*.f64 z (+.f64 t (/.f64 (*.f64 x y) z))))
#s(approx (+ (* z t) (* b a)) (*.f64 z (+.f64 t (/.f64 (*.f64 a b) z))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 x y)) z))))))
#s(approx (+ (* t z) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z))))))
#s(approx (+ (* z t) (* b a)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 a b) z))))))
#s(approx t t)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t (+.f64 z (+.f64 (/.f64 (*.f64 a b) t) (/.f64 (*.f64 x y) t)))))
#s(approx (+ (* t z) (* x y)) (*.f64 t (+.f64 z (/.f64 (*.f64 x y) t))))
#s(approx (+ (* z t) (* b a)) (*.f64 t (+.f64 z (/.f64 (*.f64 a b) t))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 x y)) t))))))
#s(approx (+ (* t z) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t))))))
#s(approx (+ (* z t) (* b a)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 a b) t))))))
#s(approx a a)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 a (+.f64 b (+.f64 (/.f64 (*.f64 t z) a) (/.f64 (*.f64 x y) a)))))
#s(approx (+ (* a b) (* x y)) (*.f64 a (+.f64 b (/.f64 (*.f64 x y) a))))
#s(approx (+ (* z t) (* b a)) (*.f64 a (+.f64 b (/.f64 (*.f64 t z) a))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 t z (*.f64 x y)) a))))))
#s(approx (+ (* a b) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) a))))))
#s(approx (+ (* z t) (* b a)) (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) a))))))
#s(approx b b)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b (+.f64 a (+.f64 (/.f64 (*.f64 t z) b) (/.f64 (*.f64 x y) b)))))
#s(approx (+ (* a b) (* x y)) (*.f64 b (+.f64 a (/.f64 (*.f64 x y) b))))
#s(approx (+ (* z t) (* b a)) (*.f64 b (+.f64 a (/.f64 (*.f64 t z) b))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 t z (*.f64 x y)) b))))))
#s(approx (+ (* a b) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) b))))))
#s(approx (+ (* z t) (* b a)) (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) b))))))
Calls

18 calls:

TimeVariablePointExpression
3.0ms
y
@0
((+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* x y)) (* a b) a b (+ (+ (* x y) (* z t)) (* a b)) (+ (* t z) (* x y)) t z (* x y) x y (+ (+ (* x y) (* z t)) (* a b)) (+ (* z t) (* b a)) (* b a))
1.0ms
y
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* x y)) (* a b) a b (+ (+ (* x y) (* z t)) (* a b)) (+ (* t z) (* x y)) t z (* x y) x y (+ (+ (* x y) (* z t)) (* a b)) (+ (* z t) (* b a)) (* b a))
1.0ms
b
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* x y)) (* a b) a b (+ (+ (* x y) (* z t)) (* a b)) (+ (* t z) (* x y)) t z (* x y) x y (+ (+ (* x y) (* z t)) (* a b)) (+ (* z t) (* b a)) (* b a))
1.0ms
x
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* x y)) (* a b) a b (+ (+ (* x y) (* z t)) (* a b)) (+ (* t z) (* x y)) t z (* x y) x y (+ (+ (* x y) (* z t)) (* a b)) (+ (* z t) (* b a)) (* b a))
1.0ms
a
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* a b) (* x y)) (* a b) a b (+ (+ (* x y) (* z t)) (* a b)) (+ (* t z) (* x y)) t z (* x y) x y (+ (+ (* x y) (* z t)) (* a b)) (+ (* z t) (* b a)) (* b a))

rewrite406.0ms (12.9%)

Memory
-48.6MiB live, 305.1MiB allocated; 69ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02197
02794
114494
241994
396894
4127194
5160994
6428994
0836589
11432889
Stop Event
saturated
node-limit
iter-limit
Counts
15 → 51
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
#s(approx (+ (* a b) (* x y)) (*.f64 a b))
(*.f64 a b)
a
b
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
(fma.f64 t z (*.f64 x y))
t
z
(*.f64 x y)
x
y
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 b a)))
(fma.f64 z t (*.f64 b a))
(*.f64 b a)
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 b a)))
#s(approx (+ (* a b) (* x y)) (*.f64 b a))
(*.f64 (neg.f64 a) (neg.f64 b))
(*.f64 (neg.f64 b) (neg.f64 a))
(*.f64 b a)
(*.f64 a b)
(neg.f64 (*.f64 (neg.f64 a) b))
a
b
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 y x)))
(neg.f64 (neg.f64 (fma.f64 t z (*.f64 y x))))
(fma.f64 (neg.f64 y) (neg.f64 x) (*.f64 t z))
(fma.f64 (neg.f64 t) (neg.f64 z) (*.f64 y x))
(fma.f64 (neg.f64 z) (neg.f64 t) (*.f64 y x))
(fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 t z))
(fma.f64 t z (*.f64 y x))
(fma.f64 z t (*.f64 y x))
(fma.f64 y x (*.f64 t z))
(fma.f64 x y (*.f64 t z))
(-.f64 (*.f64 t z) (*.f64 (neg.f64 x) y))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 z) t))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
t
z
(*.f64 (neg.f64 y) (neg.f64 x))
(*.f64 (neg.f64 x) (neg.f64 y))
(*.f64 y x)
(*.f64 x y)
(neg.f64 (*.f64 (neg.f64 x) y))
x
y
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 b a (*.f64 t z)))
(neg.f64 (neg.f64 (fma.f64 b a (*.f64 t z))))
(fma.f64 (neg.f64 t) (neg.f64 z) (*.f64 b a))
(fma.f64 (neg.f64 z) (neg.f64 t) (*.f64 b a))
(fma.f64 (neg.f64 a) (neg.f64 b) (*.f64 t z))
(fma.f64 (neg.f64 b) (neg.f64 a) (*.f64 t z))
(fma.f64 b a (*.f64 t z))
(fma.f64 a b (*.f64 t z))
(fma.f64 t z (*.f64 b a))
(fma.f64 z t (*.f64 b a))
(-.f64 (*.f64 b a) (*.f64 (neg.f64 z) t))
(-.f64 (*.f64 t z) (*.f64 (neg.f64 a) b))
(+.f64 (*.f64 b a) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 b a))
(*.f64 (neg.f64 a) (neg.f64 b))
(*.f64 (neg.f64 b) (neg.f64 a))
(*.f64 b a)
(*.f64 a b)
(neg.f64 (*.f64 (neg.f64 a) b))

eval8.0ms (0.3%)

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

Compiled 677 to 340 computations (49.8% saved)

prune4.0ms (0.1%)

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

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New88189
Fresh000
Picked033
Done011
Total88593
Accuracy
100.0%
Counts
93 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
68.7%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 b a)))
63.6%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
69.2%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
33.1%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
38.4%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
Compiler

Compiled 76 to 73 computations (3.9% saved)

series22.0ms (0.7%)

Memory
-7.6MiB live, 38.6MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0136583
Stop Event
iter-limit
Counts
5 → 29
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
#s(approx (+ (* t z) (* x y)) (*.f64 t z))
(*.f64 t z)
t
z
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (fma.f64 t z (*.f64 x y))))
#s(approx (+ (* t z) (* x y)) (*.f64 t z))
#s(approx (+ (* t z) (* x y)) (fma.f64 t z (*.f64 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x (+.f64 y (+.f64 (/.f64 (*.f64 a b) x) (/.f64 (*.f64 t z) x)))))
#s(approx (+ (* t z) (* x y)) (*.f64 x (+.f64 y (/.f64 (*.f64 t z) x))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 t z)) x))))))
#s(approx (+ (* t z) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) x))))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 y (+.f64 x (+.f64 (/.f64 (*.f64 a b) y) (/.f64 (*.f64 t z) y)))))
#s(approx (+ (* t z) (* x y)) (*.f64 y (+.f64 x (/.f64 (*.f64 t z) y))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 t z)) y))))))
#s(approx (+ (* t z) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 t z) y))))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
#s(approx z z)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 z (+.f64 t (+.f64 (/.f64 (*.f64 a b) z) (/.f64 (*.f64 x y) z)))))
#s(approx (+ (* t z) (* x y)) (*.f64 z (+.f64 t (/.f64 (*.f64 x y) z))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 x y)) z))))))
#s(approx (+ (* t z) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z))))))
#s(approx t t)
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 t (+.f64 z (+.f64 (/.f64 (*.f64 a b) t) (/.f64 (*.f64 x y) t)))))
#s(approx (+ (* t z) (* x y)) (*.f64 t (+.f64 z (/.f64 (*.f64 x y) t))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 a b (*.f64 x y)) t))))))
#s(approx (+ (* t z) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) t))))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 a b))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 a (+.f64 b (+.f64 (/.f64 (*.f64 t z) a) (/.f64 (*.f64 x y) a)))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 t z (*.f64 x y)) a))))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 b (+.f64 a (+.f64 (/.f64 (*.f64 t z) b) (/.f64 (*.f64 x y) b)))))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 t z (*.f64 x y)) b))))))
Calls

18 calls:

TimeVariablePointExpression
11.0ms
z
@0
((+ (+ (* x y) (* z t)) (* a b)) (+ (* t z) (* x y)) (* t z) t z)
1.0ms
t
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* t z) (* x y)) (* t z) t z)
1.0ms
z
@-inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* t z) (* x y)) (* t z) t z)
1.0ms
z
@inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* t z) (* x y)) (* t z) t z)
0.0ms
t
@inf
((+ (+ (* x y) (* z t)) (* a b)) (+ (* t z) (* x y)) (* t z) t z)

rewrite305.0ms (9.7%)

Memory
-20.1MiB live, 266.3MiB allocated; 32ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01639
01739
19239
229239
382439
4120339
5154139
6422139
0829735
11426435
Stop Event
saturated
node-limit
iter-limit
Counts
5 → 9
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
#s(approx (+ (* t z) (* x y)) (*.f64 t z))
(*.f64 t z)
t
z
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
#s(approx (+ (* t z) (* x y)) (*.f64 t z))
(*.f64 (neg.f64 t) (neg.f64 z))
(*.f64 (neg.f64 z) (neg.f64 t))
(*.f64 t z)
(*.f64 z t)
(neg.f64 (*.f64 (neg.f64 z) t))
t
z

eval3.0ms (0.1%)

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

Compiled 315 to 162 computations (48.6% saved)

prune3.0ms (0.1%)

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

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New30131
Fresh000
Picked011
Done044
Total30636
Accuracy
100.0%
Counts
36 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
68.7%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 b a)))
63.6%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
69.2%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
32.9%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
33.1%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
38.4%
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
Compiler

Compiled 149 to 123 computations (17.4% saved)

regimes38.0ms (1.2%)

Memory
16.6MiB live, 108.7MiB allocated; 7ms collecting garbage
Counts
9 → 1
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 b a)))
(fma.f64 z t (fma.f64 b a (*.f64 y x)))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Outputs
(fma.f64 z t (fma.f64 b a (*.f64 y x)))
Calls

11 calls:

6.0ms
a
5.0ms
x
3.0ms
y
3.0ms
b
3.0ms
(+.f64 (*.f64 x y) (*.f64 z t))
Results
AccuracySegmentsBranch
99.6%1(*.f64 a b)
99.6%1(*.f64 z t)
99.6%1(*.f64 x y)
99.6%1(+.f64 (*.f64 x y) (*.f64 z t))
99.6%1(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
99.6%1x
99.6%1y
99.6%1z
99.6%1t
99.6%1a
99.6%1b
Compiler

Compiled 33 to 77 computations (-133.3% saved)

regimes111.0ms (3.5%)

Memory
-45.0MiB live, 99.6MiB allocated; 14ms collecting garbage
Counts
7 → 3
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 b a)))
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 z t (*.f64 b a)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
Calls

11 calls:

50.0ms
b
37.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
4.0ms
(*.f64 a b)
3.0ms
a
2.0ms
z
Results
AccuracySegmentsBranch
89.0%3(*.f64 a b)
87.6%3(*.f64 z t)
90.8%3(*.f64 x y)
84.5%4(+.f64 (*.f64 x y) (*.f64 z t))
76.1%3(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
85.4%3x
85.3%3y
88.8%4z
83.3%3t
82.8%3a
83.3%3b
Compiler

Compiled 33 to 77 computations (-133.3% saved)

regimes3.0ms (0.1%)

Memory
8.9MiB live, 8.9MiB allocated; 0ms collecting garbage
Counts
6 → 3
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
Calls

1 calls:

2.0ms
(*.f64 x y)
Results
AccuracySegmentsBranch
90.8%3(*.f64 x y)
Compiler

Compiled 3 to 7 computations (-133.3% saved)

regimes2.0ms (0.1%)

Memory
8.2MiB live, 8.2MiB allocated; 0ms collecting garbage
Counts
5 → 3
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
Calls

1 calls:

2.0ms
(*.f64 x y)
Results
AccuracySegmentsBranch
90.0%3(*.f64 x y)
Compiler

Compiled 3 to 7 computations (-133.3% saved)

regimes12.0ms (0.4%)

Memory
-3.5MiB live, 43.4MiB allocated; 1ms collecting garbage
Counts
4 → 3
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
Calls

6 calls:

3.0ms
z
2.0ms
x
2.0ms
y
2.0ms
(*.f64 a b)
2.0ms
(*.f64 x y)
Results
AccuracySegmentsBranch
77.1%3y
77.4%3x
72.7%3z
68.7%1(*.f64 z t)
68.7%1(*.f64 a b)
83.8%3(*.f64 x y)
Compiler

Compiled 12 to 39 computations (-225% saved)

regimes88.0ms (2.8%)

Memory
-21.6MiB live, 56.2MiB allocated; 92ms collecting garbage
Counts
3 → 4
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
Calls

11 calls:

72.0ms
y
2.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
2.0ms
a
2.0ms
b
2.0ms
z
Results
AccuracySegmentsBranch
61.8%4(*.f64 a b)
56.4%4(*.f64 z t)
56.3%4z
49.0%5(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
51.1%3y
57.5%5x
57.3%5a
56.4%5(+.f64 (*.f64 x y) (*.f64 z t))
58.0%5b
51.1%3t
58.0%3(*.f64 x y)
Compiler

Compiled 33 to 77 computations (-133.3% saved)

regimes1.0ms (0%)

Memory
7.3MiB live, 7.2MiB allocated; 0ms collecting garbage
Counts
2 → 3
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* t z) (* x y)) (*.f64 t z)))
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
Calls

1 calls:

1.0ms
(*.f64 a b)
Results
AccuracySegmentsBranch
58.1%3(*.f64 a b)
Compiler

Compiled 3 to 7 computations (-133.3% saved)

regimes19.0ms (0.6%)

Memory
-5.6MiB live, 46.2MiB allocated; 9ms collecting garbage
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
Outputs
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* a b) (* x y)) (*.f64 a b)))
Calls

11 calls:

9.0ms
z
1.0ms
x
1.0ms
b
1.0ms
y
1.0ms
a
Results
AccuracySegmentsBranch
38.4%1(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
38.4%1t
38.4%1y
38.4%1(+.f64 (*.f64 x y) (*.f64 z t))
38.4%1a
38.4%1x
38.4%1z
38.4%1(*.f64 z t)
38.4%1b
38.4%1(*.f64 x y)
38.4%1(*.f64 a b)
Compiler

Compiled 33 to 77 computations (-133.3% saved)

bsearch18.0ms (0.6%)

Memory
7.5MiB live, 52.8MiB allocated; 4ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
10.0ms
8.574026723989476e+46
1.5235722375724e+48
6.0ms
-0.7412973826978356
-0.3685845140015757
Samples
8.0ms192×0valid
Compiler

Compiled 350 to 368 computations (-5.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-mult!: 2.0ms (73.8% of total)
ival-add!: 1.0ms (36.9% of total)
adjust: 0.0ms (0% of total)

bsearch1.0ms (0%)

Memory
4.1MiB live, 4.1MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
8.574026723989476e+46
1.5235722375724e+48
0.0ms
-0.7412973826978356
-0.3685845140015757
Compiler

Compiled 350 to 368 computations (-5.1% saved)

bsearch2.0ms (0.1%)

Memory
6.8MiB live, 6.8MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
8.574026723989476e+46
1.5235722375724e+48
2.0ms
-0.7412973826978356
-0.3685845140015757
Samples
1.0ms16×0valid
Compiler

Compiled 350 to 368 computations (-5.1% saved)

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

bsearch24.0ms (0.8%)

Memory
-32.6MiB live, 64.0MiB allocated; 9ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
8.574026723989476e+46
1.5235722375724e+48
14.0ms
-5.383438913062144e+105
-4.272700245567405e+100
Samples
9.0ms208×0valid
Compiler

Compiled 446 to 468 computations (-4.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-mult!: 2.0ms (62% of total)
ival-add!: 1.0ms (31% of total)
adjust: 0.0ms (0% of total)

bsearch36.0ms (1.1%)

Memory
16.8MiB live, 99.5MiB allocated; 15ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
2.9805024805583145e+30
3.6680198450799464e+30
10.0ms
4.780305520475145e-160
1.9868922416637748e-156
11.0ms
-3.2148425996955005e-10
-1.0474803788148808e-11
Samples
12.0ms288×0valid
Compiler

Compiled 582 to 579 computations (0.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 4.0ms
ival-mult!: 3.0ms (74.2% of total)
ival-add!: 1.0ms (24.7% of total)
adjust: 0.0ms (0% of total)

bsearch19.0ms (0.6%)

Memory
2.6MiB live, 47.6MiB allocated; 8ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
17.0ms
1.0877820309131807e+51
6.27581580237907e+61
1.0ms
-3.2148425996955005e-10
-1.0474803788148808e-11
Samples
7.0ms160×0valid
Compiler

Compiled 592 to 564 computations (4.7% saved)

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

derivations83.0ms (2.6%)

Memory
-0.5MiB live, 91.9MiB allocated; 33ms collecting garbage
Stop Event
fuel
Compiler

Compiled 96 to 64 computations (33.3% saved)

preprocess143.0ms (4.5%)

Memory
30.7MiB live, 265.1MiB allocated; 66ms collecting garbage
Remove

(sort a b)

(sort z t)

(sort x y)

Compiler

Compiled 1 529 to 1 131 computations (26% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...