SynthBasics:oscSampleBasedAux from YampaSynth-0.2

Time bar (total: 2.0s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated; 0ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 9 to 8 computations (11.1% saved)

sample758.0ms (37.9%)

Memory
35.5MiB live, 516.4MiB allocated; 237ms collecting garbage
Samples
501.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 156.0ms
ival-sub!: 66.0ms (42.3% of total)
ival-mult!: 63.0ms (40.4% of total)
ival-add!: 25.0ms (16% of total)
adjust: 2.0ms (1.3% of total)
Bogosity

preprocess91.0ms (4.6%)

Memory
-39.2MiB live, 52.2MiB allocated; 12ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02975
19370
230470
375870
499970
5108970
6120270
7146370
8550570
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 x (*.f64 y (-.f64 z x)))
Compiler

Compiled 14 to 12 computations (14.3% saved)

series96.0ms (4.8%)

Memory
21.6MiB live, 117.2MiB allocated; 30ms collecting garbage
Counts
6 → 30
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (-.f64 z x)))
x
(*.f64 y (-.f64 z x))
y
(-.f64 z x)
z
Outputs
#s(approx (+ x (* y (- z x))) (*.f64 y z))
#s(approx (+ x (* y (- z x))) (fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y)) (*.f64 y z)))
#s(approx x x)
#s(approx (* y (- z x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z)))
#s(approx (- z x) z)
#s(approx (- z x) (+.f64 z (*.f64 #s(literal -1 binary64) x)))
#s(approx (+ x (* y (- z x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y))))
#s(approx (+ x (* y (- z x))) (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 y z) x)))))
#s(approx (* y (- z x)) (*.f64 #s(literal -1 binary64) (*.f64 x y)))
#s(approx (* y (- z x)) (*.f64 x (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 y z) x))))
#s(approx (- z x) (*.f64 #s(literal -1 binary64) x))
#s(approx (- z x) (*.f64 x (-.f64 (/.f64 z x) #s(literal 1 binary64))))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y #s(literal 1 binary64)))))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y z) x))) #s(literal 1 binary64)))))
#s(approx (* y (- z x)) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y z) x))))))
#s(approx (- z x) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 z x))))))
#s(approx (+ x (* y (- z x))) (+.f64 x (*.f64 y (-.f64 z x))))
#s(approx (* y (- z x)) (*.f64 y (-.f64 z x)))
#s(approx y y)
#s(approx (+ x (* y (- z x))) (*.f64 y (-.f64 (+.f64 z (/.f64 x y)) x)))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 z x) (*.f64 #s(literal -1 binary64) (/.f64 x y))))))
#s(approx (+ x (* y (- z x))) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y))))
#s(approx (+ x (* y (- z x))) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z))))
#s(approx (- z x) (-.f64 z x))
#s(approx (+ x (* y (- z x))) (*.f64 z (+.f64 y (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z) (/.f64 x z)))))
#s(approx (* y (- z x)) (*.f64 z (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z)))))
#s(approx (- z x) (*.f64 z (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 x z)))))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y))) z))))))
#s(approx (* y (- z x)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 x y) z)))))
#s(approx (- z x) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (/.f64 x z) #s(literal 1 binary64)))))
Calls

9 calls:

TimeVariablePoint
1.0ms
z
inf
1.0ms
x
inf
1.0ms
y
inf
1.0ms
z
-inf
1.0ms
x
-inf

rewrite134.0ms (6.7%)

Memory
26.1MiB live, 115.7MiB allocated; 21ms collecting garbage
Counts
6 → 14
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (-.f64 z x)))
x
(*.f64 y (-.f64 z x))
y
(-.f64 z x)
z
Outputs
(+.f64 x (*.f64 y (-.f64 z x)))
(+.f64 (*.f64 y (-.f64 z x)) x)
(-.f64 x (*.f64 (neg.f64 y) (-.f64 z x)))
(-.f64 x (neg.f64 (*.f64 y (-.f64 z x))))
(fma.f64 (-.f64 z x) y x)
(fma.f64 y (-.f64 z x) x)
x
(*.f64 y (-.f64 z x))
(*.f64 (-.f64 z x) y)
y
(+.f64 z (neg.f64 x))
(-.f64 z x)
(neg.f64 (-.f64 x z))
z

eval21.0ms (1.1%)

Memory
-41.0MiB live, 9.1MiB allocated; 24ms collecting garbage
Compiler

Compiled 547 to 151 computations (72.4% saved)

prune2.0ms (0.1%)

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

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New34438
Fresh000
Picked101
Done000
Total35439
Accuracy
100.0%
Counts
39 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (-.f64 z x) y x)
75.2%
(+.f64 x (*.f64 y #s(approx (- z x) z)))
98.8%
(+.f64 x #s(approx (* y (- z x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z))))
41.7%
#s(approx (+ x (* y (- z x))) (*.f64 y z))
Compiler

Compiled 42 to 31 computations (26.2% saved)

series104.0ms (5.2%)

Memory
36.1MiB live, 80.6MiB allocated; 42ms collecting garbage
Counts
15 → 33
Calls
Call 1
Inputs
#s(approx (+ x (* y (- z x))) (*.f64 y z))
(*.f64 y z)
y
z
(+.f64 x #s(approx (* y (- z x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z))))
x
#s(approx (* y (- z x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z)))
(fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z))
#s(literal -1 binary64)
(*.f64 x y)
(+.f64 x (*.f64 y #s(approx (- z x) z)))
(*.f64 y #s(approx (- z x) z))
#s(approx (- z x) z)
(fma.f64 (-.f64 z x) y x)
(-.f64 z x)
Outputs
#s(approx (+ x (* y (- z x))) (*.f64 y z))
#s(approx (+ x (* y (- z x))) (fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y)) (*.f64 y z)))
#s(approx x x)
#s(approx (* y (- z x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z)))
#s(approx (* x y) (*.f64 x y))
#s(approx (- z x) z)
#s(approx (- z x) (+.f64 z (*.f64 #s(literal -1 binary64) x)))
#s(approx (+ x (* y (- z x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y))))
#s(approx (+ x (* y (- z x))) (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 y z) x)))))
#s(approx (* y (- z x)) (*.f64 #s(literal -1 binary64) (*.f64 x y)))
#s(approx (* y (- z x)) (*.f64 x (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 y z) x))))
#s(approx (- z x) (*.f64 #s(literal -1 binary64) x))
#s(approx (- z x) (*.f64 x (-.f64 (/.f64 z x) #s(literal 1 binary64))))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y #s(literal 1 binary64)))))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y z) x))) #s(literal 1 binary64)))))
#s(approx (* y (- z x)) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y z) x))))))
#s(approx (- z x) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 z x))))))
#s(approx (+ x (* y (- z x))) (+.f64 x (*.f64 y (-.f64 z x))))
#s(approx y y)
#s(approx (* y (- z x)) (*.f64 y (-.f64 z x)))
#s(approx (+ (* -1 (* x y)) (* y z)) (*.f64 y (+.f64 z (*.f64 #s(literal -1 binary64) x))))
#s(approx (+ x (* y (- z x))) (*.f64 y (-.f64 (+.f64 z (/.f64 x y)) x)))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 z x) (*.f64 #s(literal -1 binary64) (/.f64 x y))))))
#s(approx (+ (* -1 (* x y)) (* y z)) (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) z)))))
#s(approx (+ x (* y (- z x))) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y))))
#s(approx (+ x (* y (- z x))) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z))))
#s(approx (- z x) (-.f64 z x))
#s(approx (+ x (* y (- z x))) (*.f64 z (+.f64 y (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z) (/.f64 x z)))))
#s(approx (* y (- z x)) (*.f64 z (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z)))))
#s(approx (- z x) (*.f64 z (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 x z)))))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y))) z))))))
#s(approx (* y (- z x)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 x y) z)))))
#s(approx (- z x) (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (/.f64 x z) #s(literal 1 binary64)))))
Calls

9 calls:

TimeVariablePoint
2.0ms
z
0
1.0ms
y
-inf
1.0ms
y
inf
1.0ms
y
0
1.0ms
x
-inf

rewrite162.0ms (8.1%)

Memory
-21.9MiB live, 259.6MiB allocated; 40ms collecting garbage
Counts
15 → 33
Calls
Call 1
Inputs
#s(approx (+ x (* y (- z x))) (*.f64 y z))
(*.f64 y z)
y
z
(+.f64 x #s(approx (* y (- z x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z))))
x
#s(approx (* y (- z x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z)))
(fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z))
#s(literal -1 binary64)
(*.f64 x y)
(+.f64 x (*.f64 y #s(approx (- z x) z)))
(*.f64 y #s(approx (- z x) z))
#s(approx (- z x) z)
(fma.f64 (-.f64 z x) y x)
(-.f64 z x)
Outputs
#s(approx (+ x (* y (- z x))) (*.f64 y z))
(*.f64 y z)
(*.f64 z y)
y
z
(+.f64 x #s(approx (* y (- z x)) (fma.f64 y z (neg.f64 (*.f64 x y)))))
x
#s(approx (* y (- z x)) (fma.f64 y z (neg.f64 (*.f64 x y))))
(+.f64 (neg.f64 (*.f64 x y)) (*.f64 y z))
(+.f64 (*.f64 y z) (neg.f64 (*.f64 x y)))
(-.f64 (neg.f64 (*.f64 x y)) (neg.f64 (*.f64 y z)))
(-.f64 (neg.f64 (*.f64 x y)) (*.f64 (neg.f64 y) z))
(fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z))
(fma.f64 (*.f64 #s(literal -1 binary64) x) y (*.f64 y z))
(fma.f64 (*.f64 x y) #s(literal -1 binary64) (*.f64 y z))
(fma.f64 y z (neg.f64 (*.f64 x y)))
(fma.f64 z y (neg.f64 (*.f64 x y)))
#s(literal -1 binary64)
(*.f64 x y)
(*.f64 y x)
(+.f64 x (*.f64 y #s(approx (- z x) z)))
(*.f64 y #s(approx (- z x) z))
#s(approx (- z x) z)
(+.f64 (*.f64 (-.f64 z x) y) x)
(+.f64 x (*.f64 (-.f64 z x) y))
(-.f64 (*.f64 (-.f64 z x) y) (neg.f64 x))
(-.f64 x (*.f64 (neg.f64 y) (-.f64 z x)))
(-.f64 x (neg.f64 (*.f64 (-.f64 z x) y)))
(fma.f64 (-.f64 z x) y x)
(fma.f64 y (-.f64 z x) x)
(+.f64 z (neg.f64 x))
(-.f64 z x)
(neg.f64 (-.f64 x z))

eval6.0ms (0.3%)

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

Compiled 857 to 212 computations (75.3% saved)

prune3.0ms (0.1%)

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

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New55156
Fresh000
Picked134
Done000
Total56460
Accuracy
100.0%
Counts
60 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (-.f64 z x) y x)
75.2%
(+.f64 x (*.f64 y #s(approx (- z x) z)))
99.6%
(+.f64 x #s(approx (* y (- z x)) (fma.f64 z y (neg.f64 (*.f64 x y)))))
41.7%
#s(approx (+ x (* y (- z x))) (*.f64 y z))
Compiler

Compiled 41 to 30 computations (26.8% saved)

series112.0ms (5.6%)

Memory
-36.5MiB live, 163.0MiB allocated; 58ms collecting garbage
Counts
8 → 28
Calls
Call 1
Inputs
(+.f64 x #s(approx (* y (- z x)) (fma.f64 z y (neg.f64 (*.f64 x y)))))
x
#s(approx (* y (- z x)) (fma.f64 z y (neg.f64 (*.f64 x y))))
(fma.f64 z y (neg.f64 (*.f64 x y)))
z
y
(neg.f64 (*.f64 x y))
(*.f64 x y)
Outputs
#s(approx (+ x (* y (- z x))) (*.f64 y z))
#s(approx (+ x (* y (- z x))) (fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y)) (*.f64 y z)))
#s(approx x x)
#s(approx (* y (- z x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z)))
#s(approx (neg (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 x y)))
#s(approx (* x y) (*.f64 x y))
#s(approx (+ x (* y (- z x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y))))
#s(approx (+ x (* y (- z x))) (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 y z) x)))))
#s(approx (* y (- z x)) (*.f64 x (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 y z) x))))
#s(approx (+ (* z y) (neg (* x y))) (*.f64 x (-.f64 (/.f64 (*.f64 y z) x) y)))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y #s(literal 1 binary64)))))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y z) x))) #s(literal 1 binary64)))))
#s(approx (* y (- z x)) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y z) x))))))
#s(approx (+ (* z y) (neg (* x y))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y z) x)) (*.f64 #s(literal -1 binary64) y)))))
#s(approx (+ x (* y (- z x))) (+.f64 x (*.f64 y (-.f64 z x))))
#s(approx (* y (- z x)) (*.f64 y (-.f64 z x)))
#s(approx y y)
#s(approx (+ x (* y (- z x))) (*.f64 y (-.f64 (+.f64 z (/.f64 x y)) x)))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 z x) (*.f64 #s(literal -1 binary64) (/.f64 x y))))))
#s(approx (+ (* z y) (neg (* x y))) (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) z) (*.f64 #s(literal -1 binary64) x)))))
#s(approx (+ x (* y (- z x))) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y))))
#s(approx (+ x (* y (- z x))) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z))))
#s(approx (+ (* z y) (neg (* x y))) (-.f64 (*.f64 y z) (*.f64 x y)))
#s(approx z z)
#s(approx (+ x (* y (- z x))) (*.f64 z (+.f64 y (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z) (/.f64 x z)))))
#s(approx (* y (- z x)) (*.f64 z (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z)))))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y))) z))))))
#s(approx (* y (- z x)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 x y) z)))))
Calls

9 calls:

TimeVariablePoint
12.0ms
x
-inf
1.0ms
y
-inf
1.0ms
y
inf
1.0ms
z
-inf
1.0ms
x
inf

rewrite148.0ms (7.4%)

Memory
21.6MiB live, 157.4MiB allocated; 62ms collecting garbage
Counts
8 → 18
Calls
Call 1
Inputs
(+.f64 x #s(approx (* y (- z x)) (fma.f64 z y (neg.f64 (*.f64 x y)))))
x
#s(approx (* y (- z x)) (fma.f64 z y (neg.f64 (*.f64 x y))))
(fma.f64 z y (neg.f64 (*.f64 x y)))
z
y
(neg.f64 (*.f64 x y))
(*.f64 x y)
Outputs
(+.f64 x #s(approx (* y (- z x)) (-.f64 (*.f64 z y) (*.f64 x y))))
x
#s(approx (* y (- z x)) (-.f64 (*.f64 z y) (*.f64 x y)))
(+.f64 (neg.f64 (*.f64 x y)) (*.f64 z y))
(+.f64 (*.f64 z y) (neg.f64 (*.f64 x y)))
(-.f64 (*.f64 z y) (*.f64 x y))
(-.f64 (*.f64 z y) (neg.f64 (neg.f64 (*.f64 x y))))
(fma.f64 (neg.f64 x) y (*.f64 z y))
(fma.f64 x (neg.f64 y) (*.f64 z y))
(fma.f64 z y (neg.f64 (*.f64 x y)))
(fma.f64 y z (neg.f64 (*.f64 x y)))
z
y
(*.f64 (neg.f64 x) y)
(*.f64 x (neg.f64 y))
(neg.f64 (*.f64 x y))
(*.f64 x y)
(*.f64 y x)

eval4.0ms (0.2%)

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

Compiled 722 to 175 computations (75.8% saved)

prune2.0ms (0.1%)

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

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New38139
Fresh000
Picked101
Done033
Total39443
Accuracy
100.0%
Counts
43 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (-.f64 z x) y x)
75.2%
(+.f64 x (*.f64 y #s(approx (- z x) z)))
98.8%
(+.f64 x #s(approx (* y (- z x)) (-.f64 (*.f64 z y) (*.f64 x y))))
41.7%
#s(approx (+ x (* y (- z x))) (*.f64 y z))
Compiler

Compiled 41 to 30 computations (26.8% saved)

series104.0ms (5.2%)

Memory
11.5MiB live, 55.4MiB allocated; 16ms collecting garbage
Counts
8 → 28
Calls
Call 1
Inputs
(+.f64 x #s(approx (* y (- z x)) (-.f64 (*.f64 z y) (*.f64 x y))))
x
#s(approx (* y (- z x)) (-.f64 (*.f64 z y) (*.f64 x y)))
(-.f64 (*.f64 z y) (*.f64 x y))
(*.f64 z y)
z
y
(*.f64 x y)
Outputs
#s(approx (+ x (* y (- z x))) (*.f64 y z))
#s(approx (+ x (* y (- z x))) (fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y)) (*.f64 y z)))
#s(approx x x)
#s(approx (* y (- z x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z)))
#s(approx (* x y) (*.f64 x y))
#s(approx (+ x (* y (- z x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) y))))
#s(approx (+ x (* y (- z x))) (*.f64 x (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 y z) x)))))
#s(approx (* y (- z x)) (*.f64 #s(literal -1 binary64) (*.f64 x y)))
#s(approx (* y (- z x)) (*.f64 x (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 y z) x))))
#s(approx (- (* z y) (* x y)) (*.f64 x (-.f64 (/.f64 (*.f64 y z) x) y)))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 y #s(literal 1 binary64)))))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y z) x))) #s(literal 1 binary64)))))
#s(approx (* y (- z x)) (*.f64 #s(literal -1 binary64) (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y z) x))))))
#s(approx (- (* z y) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 y z) x)) (*.f64 #s(literal -1 binary64) y)))))
#s(approx (+ x (* y (- z x))) (+.f64 x (*.f64 y (-.f64 z x))))
#s(approx (* y (- z x)) (*.f64 y (-.f64 z x)))
#s(approx y y)
#s(approx (+ x (* y (- z x))) (*.f64 y (-.f64 (+.f64 z (/.f64 x y)) x)))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) (-.f64 z x) (*.f64 #s(literal -1 binary64) (/.f64 x y))))))
#s(approx (- (* z y) (* x y)) (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) z) (*.f64 #s(literal -1 binary64) x)))))
#s(approx (+ x (* y (- z x))) (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y))))
#s(approx (+ x (* y (- z x))) (+.f64 x (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z))))
#s(approx (- (* z y) (* x y)) (-.f64 (*.f64 y z) (*.f64 x y)))
#s(approx z z)
#s(approx (+ x (* y (- z x))) (*.f64 z (+.f64 y (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z) (/.f64 x z)))))
#s(approx (* y (- z x)) (*.f64 z (+.f64 y (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 x y) z)))))
#s(approx (+ x (* y (- z x))) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 x (*.f64 #s(literal -1 binary64) (*.f64 x y))) z))))))
#s(approx (* y (- z x)) (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) y (/.f64 (*.f64 x y) z)))))
Calls

9 calls:

TimeVariablePoint
10.0ms
z
-inf
1.0ms
y
-inf
1.0ms
x
-inf
1.0ms
y
inf
1.0ms
x
inf

rewrite203.0ms (10.1%)

Memory
-21.3MiB live, 124.1MiB allocated; 71ms collecting garbage
Counts
8 → 19
Calls
Call 1
Inputs
(+.f64 x #s(approx (* y (- z x)) (-.f64 (*.f64 z y) (*.f64 x y))))
x
#s(approx (* y (- z x)) (-.f64 (*.f64 z y) (*.f64 x y)))
(-.f64 (*.f64 z y) (*.f64 x y))
(*.f64 z y)
z
y
(*.f64 x y)
Outputs
(+.f64 x #s(approx (* y (- z x)) (*.f64 (-.f64 z x) y)))
x
#s(approx (* y (- z x)) (*.f64 (-.f64 z x) y))
(*.f64 (-.f64 z x) y)
(*.f64 y (-.f64 z x))
(+.f64 (*.f64 z y) (neg.f64 (*.f64 x y)))
(+.f64 (*.f64 z y) (*.f64 (neg.f64 x) y))
(-.f64 (*.f64 z y) (*.f64 x y))
(fma.f64 z y (neg.f64 (*.f64 x y)))
(fma.f64 y z (neg.f64 (*.f64 x y)))
(fma.f64 z y (*.f64 (neg.f64 x) y))
(fma.f64 y z (*.f64 (neg.f64 x) y))
(neg.f64 (-.f64 (*.f64 x y) (*.f64 z y)))
(*.f64 z y)
(*.f64 y z)
z
y
(*.f64 x y)
(*.f64 y x)

eval4.0ms (0.2%)

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

Compiled 716 to 167 computations (76.7% saved)

prune2.0ms (0.1%)

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

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New40040
Fresh000
Picked011
Done033
Total40444
Accuracy
100.0%
Counts
44 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (-.f64 z x) y x)
75.2%
(+.f64 x (*.f64 y #s(approx (- z x) z)))
98.8%
(+.f64 x #s(approx (* y (- z x)) (-.f64 (*.f64 z y) (*.f64 x y))))
41.7%
#s(approx (+ x (* y (- z x))) (*.f64 y z))
Compiler

Compiled 41 to 30 computations (26.8% saved)

regimes22.0ms (1.1%)

Memory
-12.3MiB live, 33.8MiB allocated; 3ms collecting garbage
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
2 → 1
7 → 1
Calls
Call 1
Inputs
#s(approx (+ x (* y (- z x))) (*.f64 y z))
Outputs
#s(approx (+ x (* y (- z x))) (*.f64 y z))
Call 2
Inputs
#s(approx (+ x (* y (- z x))) (*.f64 y z))
(+.f64 x (*.f64 y #s(approx (- z x) z)))
Outputs
(+.f64 x (*.f64 y #s(approx (- z x) z)))
Call 3
Inputs
#s(approx (+ x (* y (- z x))) (*.f64 y z))
(+.f64 x (*.f64 y #s(approx (- z x) z)))
(fma.f64 (-.f64 z x) y x)
(+.f64 x (*.f64 y (-.f64 z x)))
(+.f64 x #s(approx (* y (- z x)) (-.f64 (*.f64 z y) (*.f64 x y))))
(+.f64 x #s(approx (* y (- z x)) (fma.f64 z y (neg.f64 (*.f64 x y)))))
(+.f64 x #s(approx (* y (- z x)) (fma.f64 #s(literal -1 binary64) (*.f64 x y) (*.f64 y z))))
Outputs
(fma.f64 (-.f64 z x) y x)
Calls

12 calls:

2.0ms
z
2.0ms
x
2.0ms
y
2.0ms
(+.f64 x (*.f64 y (-.f64 z x)))
1.0ms
z
Results
AccuracySegmentsBranch
41.7%1x
41.7%1y
41.7%1z
41.7%1(+.f64 x (*.f64 y (-.f64 z x)))
75.2%1(+.f64 x (*.f64 y (-.f64 z x)))
75.2%1x
75.2%1y
75.2%1z
100.0%1(+.f64 x (*.f64 y (-.f64 z x)))
100.0%1x
100.0%1y
100.0%1z
Compiler

Compiled 109 to 73 computations (33% saved)

derivations1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated; 0ms collecting garbage
Stop Event
done
Compiler

Compiled 26 to 13 computations (50% saved)

preprocess22.0ms (1.1%)

Memory
-19.1MiB live, 30.3MiB allocated; 9ms collecting garbage
Compiler

Compiled 33 to 19 computations (42.4% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...