SynthBasics:oscSampleBasedAux from YampaSynth-0.2

Time bar (total: 2.4s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.4MiB live, 0.4MiB 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)

sample906.0ms (37.8%)

Memory
12.1MiB live, 576.6MiB allocated; 293ms collecting garbage
Samples
587.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 131.0ms
ival-mult!: 45.0ms (34.5% of total)
ival-add!: 43.0ms (32.9% of total)
ival-sub!: 40.0ms (30.6% of total)
adjust: 2.0ms (1.5% of total)
Bogosity

preprocess225.0ms (9.4%)

Memory
-28.9MiB live, 60.3MiB allocated; 23ms 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)

series118.0ms (4.9%)

Memory
17.6MiB live, 63.6MiB allocated; 5ms 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
3.0ms
z
inf
3.0ms
y
0
3.0ms
y
inf
2.0ms
y
-inf
2.0ms
x
-inf

rewrite164.0ms (6.9%)

Memory
-13.2MiB live, 41.0MiB allocated; 24ms 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

eval4.0ms (0.2%)

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

Compiled 547 to 151 computations (72.4% saved)

prune2.0ms (0.1%)

Memory
2.3MiB live, 2.3MiB 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)

series157.0ms (6.5%)

Memory
15.2MiB live, 60.7MiB allocated; 28ms 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
24.0ms
z
inf
4.0ms
z
0
3.0ms
z
-inf
3.0ms
y
inf
2.0ms
y
-inf

rewrite160.0ms (6.7%)

Memory
4.9MiB live, 145.9MiB allocated; 31ms 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))

eval5.0ms (0.2%)

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

Compiled 857 to 212 computations (75.3% saved)

prune7.0ms (0.3%)

Memory
-39.0MiB live, 6.9MiB allocated; 5ms 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)

series100.0ms (4.2%)

Memory
6.4MiB live, 98.7MiB allocated; 10ms 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
2.0ms
x
-inf
1.0ms
y
-inf
1.0ms
y
inf
1.0ms
z
-inf
1.0ms
x
inf

rewrite183.0ms (7.6%)

Memory
2.8MiB live, 150.8MiB allocated; 61ms 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)

eval5.0ms (0.2%)

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

Compiled 722 to 175 computations (75.8% saved)

prune2.0ms (0.1%)

Memory
2.7MiB live, 2.7MiB 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)

series105.0ms (4.4%)

Memory
11.2MiB live, 57.3MiB allocated; 17ms 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
1.0ms
y
-inf
1.0ms
x
-inf
1.0ms
y
inf
1.0ms
z
-inf
1.0ms
x
inf

rewrite182.0ms (7.6%)

Memory
4.1MiB live, 190.6MiB allocated; 60ms 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)

eval7.0ms (0.3%)

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

Compiled 716 to 167 computations (76.7% saved)

prune7.0ms (0.3%)

Memory
-41.4MiB live, 9.9MiB allocated; 8ms 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)

regimes35.0ms (1.5%)

Memory
-4.2MiB live, 88.2MiB allocated; 6ms 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:

6.0ms
(+.f64 x (*.f64 y (-.f64 z x)))
5.0ms
z
5.0ms
y
5.0ms
x
4.0ms
x
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
2.0MiB live, 2.0MiB allocated; 0ms collecting garbage
Stop Event
done
Compiler

Compiled 26 to 13 computations (50% saved)

preprocess21.0ms (0.9%)

Memory
26.8MiB live, 70.7MiB allocated; 6ms 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...