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

Time bar (total: 1.6s)

start0.0ms (0.0%)

analyze1.0ms (0.0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0.0%0.0%99.7%0.3%0.0%0.0%0.0%0
100.0%99.7%0.0%0.3%0.0%0.0%0.0%1
Compiler

Compiled 13 to 13 computations (0.0% saved)

sample348.0ms (21.3%)

Samples
305.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 11.0ms
Mul: 7.0ms (62.5% of total, 0.0 MiB)
Add: 4.0ms (35.7% of total, 0.0 MiB)
Bogosity

preprocess48.0ms (2.9%)

Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
089318
1411308
21096308
32082308
42197308
52753308
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
96.5%
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Symmetry

(sort x y)

(sort z t)

(sort a b)

Compiler

Compiled 2 to 22 computations (-1000.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series54.0ms (3.3%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0142584
Stop Event
iter-limit
Counts
11 → 34
Calls
Call 1
Inputs
%2 = (*.f64 x y)
%5 = (*.f64 z t)
%6 = (+.f64 %2 %5)
%9 = (*.f64 a b)
x
y
%2
z
t
%5
%6
a
b
%9
(+.f64 %6 %9)
Outputs
%5 = (* x y)
%6 = (*.f64 x y)
%11 = (+ %5 (* z t))
%12 = (*.f64 t z)
%14 = (fma.f64 t z %6)
%18 = (* a b)
%19 = (+ %11 %18)
%20 = (fma.f64 a b %12)
%24 = (/.f64 %12 x)
%28 = (*.f64 a b)
%47 = (/.f64 %12 y)
%68 = (fma.f64 a b %6)
%70 = (/.f64 %6 z)
%91 = (/.f64 %6 t)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 %6)
(approx %11 %12)
(approx %11 %14)
(approx %19 %20)
(approx %19 (fma.f64 a b %14))
(approx %11 (*.f64 x (+.f64 y %24)))
(approx %19 (*.f64 x (+.f64 y (+.f64 (/.f64 %28 x) %24))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) %24)))))
(approx %19 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %20 x))))))
(approx y y)
(approx %11 (*.f64 y (+.f64 x %47)))
(approx %19 (*.f64 y (+.f64 x (+.f64 (/.f64 %28 y) %47))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) %47)))))
(approx %19 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %20 y))))))
(approx z z)
(approx %19 %68)
(approx %11 (*.f64 z (+.f64 t %70)))
(approx %19 (*.f64 z (+.f64 t (+.f64 (/.f64 %28 z) %70))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) %70)))))
(approx %19 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 %68 z))))))
(approx t t)
(approx %11 (*.f64 t (+.f64 z %91)))
(approx %19 (*.f64 t (+.f64 z (+.f64 (/.f64 %28 t) %91))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) %91)))))
(approx %19 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 %68 t))))))
(approx a a)
(approx %18 %28)
(approx %19 (*.f64 a (+.f64 b (+.f64 (/.f64 %12 a) (/.f64 %6 a)))))
(approx %19 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 %14 a))))))
(approx b b)
(approx %19 (*.f64 b (+.f64 a (+.f64 (/.f64 %12 b) (/.f64 %6 b)))))
(approx %19 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 %14 b))))))
Calls

18 calls:

TimeVariablePoint
1.0ms
x
inf
1.0ms
y
inf
1.0ms
z
inf
1.0ms
a
inf
1.0ms
t
inf

rewrite98.0ms (6.0%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01133
01633
14533
212033
328933
445533
584333
0402233
0427830
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
11 → 111
Calls
Call 1
Inputs
%2 = (*.f64 x y)
%5 = (*.f64 z t)
%6 = (+.f64 %2 %5)
%9 = (*.f64 a b)
x
y
%2
z
t
%5
%6
a
b
%9
(+.f64 %6 %9)
Outputs
%3 = (*.f64 y x)
%4 = (neg.f64 %3)
%6 = (neg.f64 y)
%7 = (neg.f64 x)
%19 = (neg.f64 z)
%20 = (*.f64 %19 t)
%22 = (neg.f64 t)
%25 = (*.f64 t z)
%32 = (fma.f64 t z %3)
%33 = (neg.f64 %32)
%48 = (*.f64 %3 #s(literal 1 binary64))
%51 = (*.f64 %25 #s(literal 1 binary64))
%63 = (neg.f64 a)
%64 = (*.f64 %63 b)
%66 = (neg.f64 b)
%69 = (*.f64 b a)
%76 = (fma.f64 b a %32)
%77 = (neg.f64 %76)
%84 = (fma.f64 b a %3)
%85 = (neg.f64 %84)
%87 = (fma.f64 b a %25)
%88 = (neg.f64 %87)
%99 = (*.f64 %32 #s(literal 1 binary64))
%111 = (*.f64 %69 #s(literal 1 binary64))
%113 = (*.f64 %84 #s(literal 1 binary64))
%117 = (*.f64 %87 #s(literal 1 binary64))
x
y
(*.f64 #s(literal -1 binary64) %4)
(*.f64 %6 %7)
(*.f64 %7 %6)
(*.f64 #s(literal 1 binary64) %3)
%3
(*.f64 x y)
(pow.f64 %3 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64)))
(neg.f64 %4)
z
t
(*.f64 #s(literal -1 binary64) %20)
(*.f64 %22 %19)
(*.f64 %19 %22)
(*.f64 #s(literal 1 binary64) %25)
%25
(*.f64 z t)
(pow.f64 %25 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %25 #s(literal -1 binary64)))
(neg.f64 %20)
(*.f64 #s(literal -1 binary64) %33)
(*.f64 #s(literal 1 binary64) %32)
(pow.f64 %32 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %32 #s(literal -1 binary64)))
(neg.f64 %33)
(fma.f64 #s(literal -1 binary64) %4 %25)
(fma.f64 #s(literal -1 binary64) %20 %3)
(fma.f64 %6 %7 %25)
(fma.f64 %7 %6 %25)
(fma.f64 %22 %19 %3)
(fma.f64 %19 %22 %3)
(fma.f64 #s(literal 1 binary64) %25 %3)
(fma.f64 #s(literal 1 binary64) %3 %25)
(fma.f64 %25 #s(literal 1 binary64) %48)
%32
(fma.f64 z t %3)
(fma.f64 %3 #s(literal 1 binary64) %51)
(fma.f64 y x %25)
(fma.f64 x y %25)
(-.f64 %25 %4)
(-.f64 %3 %20)
(+.f64 %51 %48)
(+.f64 %48 %51)
(+.f64 %25 %3)
(+.f64 %3 %25)
a
b
(*.f64 #s(literal -1 binary64) %64)
(*.f64 %66 %63)
(*.f64 %63 %66)
(*.f64 #s(literal 1 binary64) %69)
%69
(*.f64 a b)
(pow.f64 %69 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %69 #s(literal -1 binary64)))
(neg.f64 %64)
(*.f64 #s(literal -1 binary64) %77)
(*.f64 #s(literal 1 binary64) %76)
(pow.f64 %76 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %76 #s(literal -1 binary64)))
(neg.f64 %77)
(fma.f64 #s(literal -1 binary64) %85 %25)
(fma.f64 #s(literal -1 binary64) %88 %3)
(fma.f64 #s(literal -1 binary64) %33 %69)
(fma.f64 #s(literal -1 binary64) %4 %87)
(fma.f64 #s(literal -1 binary64) %20 %84)
(fma.f64 #s(literal -1 binary64) %64 %32)
(fma.f64 %84 #s(literal 1 binary64) %51)
(fma.f64 %6 %7 %87)
(fma.f64 %7 %6 %87)
(fma.f64 %22 %19 %84)
(fma.f64 %66 %63 %32)
(fma.f64 %69 #s(literal 1 binary64) %99)
(fma.f64 %87 #s(literal 1 binary64) %48)
(fma.f64 %19 %22 %84)
(fma.f64 %63 %66 %32)
(fma.f64 #s(literal 1 binary64) %84 %25)
(fma.f64 #s(literal 1 binary64) %69 %32)
(fma.f64 #s(literal 1 binary64) %87 %3)
(fma.f64 #s(literal 1 binary64) %32 %69)
(fma.f64 #s(literal 1 binary64) %25 %84)
(fma.f64 #s(literal 1 binary64) %3 %87)
%76
(fma.f64 a b %32)
(fma.f64 %32 #s(literal 1 binary64) %111)
(fma.f64 %25 #s(literal 1 binary64) %113)
(fma.f64 t z %84)
(fma.f64 z t %84)
(fma.f64 %3 #s(literal 1 binary64) %117)
(fma.f64 y x %87)
(fma.f64 x y %87)
(-.f64 %84 %20)
(-.f64 %69 %33)
(-.f64 %87 %4)
(-.f64 %32 %64)
(-.f64 %25 %85)
(-.f64 %3 %88)
(+.f64 %51 %113)
(+.f64 %48 %117)
(+.f64 %111 %99)
(+.f64 %99 %111)
(+.f64 %113 %51)
(+.f64 %117 %48)
(+.f64 %84 %25)
(+.f64 %69 %32)
(+.f64 %87 %3)
(+.f64 %32 %69)
(+.f64 %25 %84)
(+.f64 %3 %87)

reconstruct12.0ms (0.8%)

Counts
145 → 43
Compiler

Compiled 145 to 228 computations (-57.2% saved)

eval4.0ms (0.2%)

Compiler

Compiled 38 to 132 computations (-247.4% saved)

prune1.0ms (0.1%)

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
98.0%
(fma.f64 x y (fma.f64 b a (*.f64 t z)))
98.4%
(fma.f64 t z (fma.f64 b a (*.f64 y x)))
68.1%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 x y)))
65.0%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
Compiler

Compiled 4 to 15 computations (-275.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series30.0ms (1.9%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0174732
Stop Event
iter-limit
Counts
17 → 42
Calls
Call 1
Inputs
%2 = (*.f64 x y)
%7 = (*.f64 t z)
%8 = (fma.f64 a b %7)
%13 = (+ (+ (* x y) (* z t)) (* a b))
%15 = (fma.f64 a b %2)
%17 = (*.f64 y x)
%18 = (fma.f64 b a %17)
%19 = (fma.f64 b a %7)
x
y
%2
z
t
a
b
%7
%8
(approx %13 %8)
%15
(approx %13 %15)
%17
%18
%19
(fma.f64 t z %18)
(fma.f64 x y %19)
Outputs
%5 = (* x y)
%6 = (*.f64 x y)
%14 = (* a b)
%15 = (+ (+ %5 (* z t)) %14)
%16 = (*.f64 t z)
%17 = (fma.f64 a b %16)
%19 = (fma.f64 t z %6)
%22 = (+ %14 %5)
%23 = (*.f64 a b)
%25 = (fma.f64 a b %6)
%27 = (/.f64 %23 x)
%49 = (/.f64 %23 y)
%70 = (* t z)
%72 = (+ %14 %70)
%73 = (/.f64 %23 z)
%94 = (/.f64 %23 t)
%116 = (/.f64 %16 a)
%120 = (/.f64 %6 a)
%145 = (/.f64 %16 b)
%149 = (/.f64 %6 b)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 %6)
(approx %15 %17)
(approx %15 (fma.f64 a b %19))
(approx %22 %23)
(approx %22 %25)
(approx %15 (*.f64 x (+.f64 y (+.f64 %27 (/.f64 %16 x)))))
(approx %22 (*.f64 x (+.f64 y %27)))
(approx %15 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %17 x))))))
(approx %22 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) %27)))))
(approx y y)
(approx %15 (*.f64 y (+.f64 x (+.f64 %49 (/.f64 %16 y)))))
(approx %22 (*.f64 y (+.f64 x %49)))
(approx %15 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %17 y))))))
(approx %22 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) %49)))))
(approx z z)
(approx %70 %16)
(approx %72 (*.f64 z (+.f64 t %73)))
(approx %15 (*.f64 z (+.f64 t (+.f64 %73 (/.f64 %6 z)))))
(approx %72 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) %73)))))
(approx %15 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 %25 z))))))
(approx t t)
(approx %72 (*.f64 t (+.f64 z %94)))
(approx %15 (*.f64 t (+.f64 z (+.f64 %94 (/.f64 %6 t)))))
(approx %72 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) %94)))))
(approx %15 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 %25 t))))))
(approx a a)
(approx %15 %19)
(approx %72 (*.f64 a (+.f64 b %116)))
(approx %15 (*.f64 a (+.f64 b (+.f64 %116 %120))))
(approx %22 (*.f64 a (+.f64 b %120)))
(approx %72 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) %116)))))
(approx %15 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 %19 a))))))
(approx %22 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) %120)))))
(approx b b)
(approx %72 (*.f64 b (+.f64 a %145)))
(approx %15 (*.f64 b (+.f64 a (+.f64 %145 %149))))
(approx %22 (*.f64 b (+.f64 a %149)))
(approx %72 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) %145)))))
(approx %15 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 %19 b))))))
(approx %22 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) %149)))))
Calls

18 calls:

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

rewrite94.0ms (5.7%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02293
03489
110989
222489
339189
447189
586389
0404889
0429889
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
17 → 247
Calls
Call 1
Inputs
%2 = (*.f64 x y)
%7 = (*.f64 t z)
%8 = (fma.f64 a b %7)
%13 = (+ (+ (* x y) (* z t)) (* a b))
%15 = (fma.f64 a b %2)
%17 = (*.f64 y x)
%18 = (fma.f64 b a %17)
%19 = (fma.f64 b a %7)
x
y
%2
z
t
a
b
%7
%8
(approx %13 %8)
%15
(approx %13 %15)
%17
%18
%19
(fma.f64 t z %18)
(fma.f64 x y %19)
Outputs
%3 = (*.f64 y x)
%4 = (neg.f64 %3)
%5 = (*.f64 #s(literal -1 binary64) %4)
%6 = (neg.f64 x)
%7 = (neg.f64 y)
%8 = (*.f64 %6 %7)
%9 = (*.f64 %7 %6)
%11 = (*.f64 #s(literal 1 binary64) %3)
%12 = (*.f64 x y)
%13 = (pow.f64 %3 #s(literal 1 binary64))
%15 = (/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -1 binary64)))
%16 = (neg.f64 %4)
%21 = (*.f64 t z)
%22 = (neg.f64 %21)
%24 = (neg.f64 t)
%25 = (neg.f64 z)
%34 = (fma.f64 b a %21)
%35 = (neg.f64 %34)
%36 = (*.f64 #s(literal -1 binary64) %35)
%37 = (*.f64 #s(literal 1 binary64) %34)
%38 = (pow.f64 %34 #s(literal 1 binary64))
%40 = (/.f64 #s(literal 1 binary64) (pow.f64 %34 #s(literal -1 binary64)))
%41 = (neg.f64 %35)
%42 = (*.f64 b a)
%43 = (fma.f64 #s(literal -1 binary64) %22 %42)
%44 = (neg.f64 %42)
%45 = (fma.f64 #s(literal -1 binary64) %44 %21)
%46 = (neg.f64 b)
%47 = (neg.f64 a)
%48 = (fma.f64 %46 %47 %21)
%49 = (fma.f64 %24 %25 %42)
%50 = (fma.f64 %25 %24 %42)
%51 = (fma.f64 %47 %46 %21)
%52 = (fma.f64 #s(literal 1 binary64) %42 %21)
%53 = (fma.f64 #s(literal 1 binary64) %21 %42)
%54 = (*.f64 %21 #s(literal 1 binary64))
%55 = (fma.f64 %42 #s(literal 1 binary64) %54)
%56 = (*.f64 %42 #s(literal 1 binary64))
%57 = (fma.f64 %21 #s(literal 1 binary64) %56)
%58 = (fma.f64 a b %21)
%59 = (fma.f64 t z %42)
%60 = (fma.f64 z t %42)
%61 = (-.f64 %42 %22)
%62 = (-.f64 %21 %44)
%63 = (+.f64 %56 %54)
%64 = (+.f64 %54 %56)
%65 = (+.f64 %42 %21)
%66 = (+.f64 %21 %42)
%71 = (+ (* b a) (+ (* t z) (* y x)))
%72 = (approx %71 %34)
%77 = (fma.f64 b a %3)
%78 = (neg.f64 %77)
%79 = (*.f64 #s(literal -1 binary64) %78)
%80 = (*.f64 #s(literal 1 binary64) %77)
%81 = (pow.f64 %77 #s(literal 1 binary64))
%83 = (/.f64 #s(literal 1 binary64) (pow.f64 %77 #s(literal -1 binary64)))
%84 = (neg.f64 %78)
%85 = (fma.f64 #s(literal -1 binary64) %4 %42)
%86 = (fma.f64 #s(literal -1 binary64) %44 %3)
%87 = (fma.f64 %46 %47 %3)
%88 = (fma.f64 %6 %7 %42)
%89 = (fma.f64 %7 %6 %42)
%90 = (fma.f64 %47 %46 %3)
%91 = (fma.f64 #s(literal 1 binary64) %42 %3)
%92 = (fma.f64 #s(literal 1 binary64) %3 %42)
%93 = (*.f64 %3 #s(literal 1 binary64))
%94 = (fma.f64 %42 #s(literal 1 binary64) %93)
%95 = (fma.f64 a b %3)
%96 = (fma.f64 %3 #s(literal 1 binary64) %56)
%97 = (fma.f64 y x %42)
%98 = (fma.f64 x y %42)
%99 = (-.f64 %42 %4)
%100 = (-.f64 %3 %44)
%101 = (+.f64 %93 %56)
%102 = (+.f64 %56 %93)
%103 = (+.f64 %42 %3)
%104 = (+.f64 %3 %42)
%105 = (approx %71 %77)
%110 = (fma.f64 t z %3)
%111 = (fma.f64 b a %110)
%112 = (neg.f64 %111)
%113 = (*.f64 #s(literal -1 binary64) %112)
%114 = (*.f64 #s(literal 1 binary64) %111)
%115 = (pow.f64 %111 #s(literal 1 binary64))
%117 = (/.f64 #s(literal 1 binary64) (pow.f64 %111 #s(literal -1 binary64)))
%118 = (neg.f64 %112)
%119 = (neg.f64 %110)
%120 = (fma.f64 #s(literal -1 binary64) %119 %42)
%121 = (fma.f64 #s(literal -1 binary64) %4 %34)
%122 = (fma.f64 #s(literal -1 binary64) %35 %3)
%123 = (fma.f64 #s(literal -1 binary64) %22 %77)
%124 = (fma.f64 #s(literal -1 binary64) %78 %21)
%125 = (fma.f64 #s(literal -1 binary64) %44 %110)
%126 = (fma.f64 %46 %47 %110)
%127 = (fma.f64 %6 %7 %34)
%128 = (fma.f64 %7 %6 %34)
%129 = (fma.f64 %24 %25 %77)
%130 = (fma.f64 %25 %24 %77)
%131 = (fma.f64 %47 %46 %110)
%132 = (fma.f64 #s(literal 1 binary64) %34 %3)
%133 = (fma.f64 #s(literal 1 binary64) %77 %21)
%134 = (fma.f64 #s(literal 1 binary64) %42 %110)
%135 = (fma.f64 #s(literal 1 binary64) %110 %42)
%136 = (fma.f64 #s(literal 1 binary64) %21 %77)
%137 = (fma.f64 #s(literal 1 binary64) %3 %34)
%138 = (fma.f64 %34 #s(literal 1 binary64) %93)
%139 = (fma.f64 %77 #s(literal 1 binary64) %54)
%140 = (*.f64 %110 #s(literal 1 binary64))
%141 = (fma.f64 %42 #s(literal 1 binary64) %140)
%142 = (fma.f64 %110 #s(literal 1 binary64) %56)
%143 = (*.f64 %77 #s(literal 1 binary64))
%144 = (fma.f64 %21 #s(literal 1 binary64) %143)
%145 = (fma.f64 a b %110)
%146 = (fma.f64 t z %77)
%147 = (fma.f64 z t %77)
%148 = (*.f64 %34 #s(literal 1 binary64))
%149 = (fma.f64 %3 #s(literal 1 binary64) %148)
%150 = (fma.f64 y x %34)
%151 = (fma.f64 x y %34)
%152 = (-.f64 %34 %4)
%153 = (-.f64 %77 %22)
%154 = (-.f64 %42 %119)
%155 = (-.f64 %110 %44)
%156 = (-.f64 %21 %78)
%157 = (-.f64 %3 %35)
%158 = (+.f64 %93 %148)
%159 = (+.f64 %140 %56)
%160 = (+.f64 %143 %54)
%161 = (+.f64 %148 %93)
%162 = (+.f64 %56 %140)
%163 = (+.f64 %54 %143)
%164 = (+.f64 %34 %3)
%165 = (+.f64 %77 %21)
%166 = (+.f64 %42 %110)
%167 = (+.f64 %110 %42)
%168 = (+.f64 %21 %77)
%169 = (+.f64 %3 %34)
x
y
%5
%8
%9
%11
%3
%12
%13
%15
%16
z
t
a
b
(*.f64 #s(literal -1 binary64) %22)
(*.f64 %24 %25)
(*.f64 %25 %24)
(*.f64 #s(literal 1 binary64) %21)
%21
(*.f64 z t)
(pow.f64 %21 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -1 binary64)))
(neg.f64 %22)
%36
%37
%38
%40
%41
%43
%45
%48
%49
%50
%51
%52
%53
%55
%57
%34
%58
%59
%60
%61
%62
%63
%64
%65
%66
(*.f64 #s(literal 1 binary64) %72)
(pow.f64 %72 #s(literal 1 binary64))
%72
(/.f64 #s(literal 1 binary64) (pow.f64 %72 #s(literal -1 binary64)))
%79
%80
%81
%83
%84
%85
%86
%87
%88
%89
%90
%91
%92
%94
%77
%95
%96
%97
%98
%99
%100
%101
%102
%103
%104
(*.f64 #s(literal 1 binary64) %105)
(pow.f64 %105 #s(literal 1 binary64))
%105
(/.f64 #s(literal 1 binary64) (pow.f64 %105 #s(literal -1 binary64)))
%5
%8
%9
%11
%3
%12
%13
%15
%16
%79
%80
%81
%83
%84
%85
%86
%87
%88
%89
%90
%91
%92
%94
%77
%95
%96
%97
%98
%99
%100
%101
%102
%103
%104
%36
%37
%38
%40
%41
%43
%45
%48
%49
%50
%51
%52
%53
%55
%57
%34
%58
%59
%60
%61
%62
%63
%64
%65
%66
%113
%114
%115
%117
%118
%120
%121
%122
%123
%124
%125
%126
%127
%128
%129
%130
%131
%132
%133
%134
%135
%136
%137
%138
%139
%141
%142
%144
%111
%145
%146
%147
%149
%150
%151
%152
%153
%154
%155
%156
%157
%158
%159
%160
%161
%162
%163
%164
%165
%166
%167
%168
%169
%113
%114
%115
%117
%118
%120
%121
%122
%123
%124
%125
%126
%127
%128
%129
%130
%131
%132
%133
%134
%135
%136
%137
%138
%139
%141
%142
%144
%111
%145
%146
%147
%149
%150
%151
%152
%153
%154
%155
%156
%157
%158
%159
%160
%161
%162
%163
%164
%165
%166
%167
%168
%169

reconstruct30.0ms (1.9%)

Counts
289 → 70
Compiler

Compiled 289 to 276 computations (4.5% saved)

eval10.0ms (0.6%)

Compiler

Compiled 62 to 149 computations (-140.3% saved)

prune3.0ms (0.2%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New59362
Fresh000
Picked224
Done000
Total61566
Accuracy
100.0%
Counts
66 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.0%
(fma.f64 x y (fma.f64 b a (*.f64 t z)))
67.4%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 x y (*.f64 b a)))
68.3%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
65.0%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
33.8%
%2 = (* x y)
%9 = (* a b)
(approx (+ (+ %2 (* z t)) %9) (approx (+ %9 %2) (*.f64 a b)))
Compiler

Compiled 5 to 15 computations (-200.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series33.0ms (2.0%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0174731
Stop Event
iter-limit
Counts
15 → 42
Calls
Call 1
Inputs
%2 = (*.f64 x y)
%7 = (*.f64 a b)
%8 = (fma.f64 t z %2)
%9 = (*.f64 b a)
%10 = (* a b)
%11 = (* x y)
%13 = (approx (+ %10 %11) %7)
%16 = (+ (+ %11 (* z t)) %10)
%18 = (fma.f64 x y %9)
x
y
%2
z
t
a
b
%7
%8
%9
%13
(approx %16 %8)
%18
(approx %16 %18)
(approx %16 %13)
Outputs
%5 = (* x y)
%6 = (*.f64 x y)
%11 = (+ (* t z) %5)
%12 = (*.f64 t z)
%14 = (fma.f64 t z %6)
%18 = (* a b)
%19 = (+ %18 %5)
%20 = (*.f64 a b)
%22 = (fma.f64 a b %6)
%26 = (+ (+ %5 (* z t)) %18)
%27 = (fma.f64 a b %12)
%31 = (/.f64 %12 x)
%35 = (/.f64 %20 x)
%61 = (/.f64 %12 y)
%65 = (/.f64 %20 y)
%90 = (/.f64 %6 z)
%111 = (/.f64 %6 t)
%132 = (/.f64 %6 a)
%153 = (/.f64 %6 b)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 %6)
(approx %11 %12)
(approx %11 %14)
(approx %19 %20)
(approx %19 %22)
(approx %26 %27)
(approx %26 (fma.f64 a b %14))
(approx %11 (*.f64 x (+.f64 y %31)))
(approx %19 (*.f64 x (+.f64 y %35)))
(approx %26 (*.f64 x (+.f64 y (+.f64 %35 %31))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) %31)))))
(approx %19 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) %35)))))
(approx %26 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %27 x))))))
(approx y y)
(approx %11 (*.f64 y (+.f64 x %61)))
(approx %19 (*.f64 y (+.f64 x %65)))
(approx %26 (*.f64 y (+.f64 x (+.f64 %65 %61))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) %61)))))
(approx %19 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) %65)))))
(approx %26 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %27 y))))))
(approx z z)
(approx %11 (*.f64 z (+.f64 t %90)))
(approx %26 (*.f64 z (+.f64 t (+.f64 (/.f64 %20 z) %90))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) %90)))))
(approx %26 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 %22 z))))))
(approx t t)
(approx %11 (*.f64 t (+.f64 z %111)))
(approx %26 (*.f64 t (+.f64 z (+.f64 (/.f64 %20 t) %111))))
(approx %11 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) %111)))))
(approx %26 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 %22 t))))))
(approx a a)
(approx %19 (*.f64 a (+.f64 b %132)))
(approx %26 (*.f64 a (+.f64 b (+.f64 (/.f64 %12 a) %132))))
(approx %19 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) %132)))))
(approx %26 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 %14 a))))))
(approx b b)
(approx %19 (*.f64 b (+.f64 a %153)))
(approx %26 (*.f64 b (+.f64 a (+.f64 (/.f64 %12 b) %153))))
(approx %19 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) %153)))))
(approx %26 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 %14 b))))))
Calls

18 calls:

TimeVariablePoint
4.0ms
x
inf
2.0ms
t
inf
2.0ms
y
inf
2.0ms
b
inf
2.0ms
a
inf

rewrite103.0ms (6.3%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02197
02892
18392
218992
337092
448092
587692
0406792
0433789
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
15 → 99
Calls
Call 1
Inputs
%2 = (*.f64 x y)
%7 = (*.f64 a b)
%8 = (fma.f64 t z %2)
%9 = (*.f64 b a)
%10 = (* a b)
%11 = (* x y)
%13 = (approx (+ %10 %11) %7)
%16 = (+ (+ %11 (* z t)) %10)
%18 = (fma.f64 x y %9)
x
y
%2
z
t
a
b
%7
%8
%9
%13
(approx %16 %8)
%18
(approx %16 %18)
(approx %16 %13)
Outputs
%3 = (neg.f64 x)
%4 = (*.f64 %3 y)
%6 = (neg.f64 y)
%10 = (*.f64 y x)
%21 = (neg.f64 b)
%22 = (*.f64 %21 a)
%23 = (*.f64 #s(literal -1 binary64) %22)
%24 = (neg.f64 a)
%25 = (*.f64 %21 %24)
%26 = (*.f64 %24 %21)
%27 = (*.f64 b a)
%28 = (*.f64 #s(literal 1 binary64) %27)
%29 = (*.f64 a b)
%30 = (pow.f64 %27 #s(literal 1 binary64))
%32 = (/.f64 #s(literal 1 binary64) (pow.f64 %27 #s(literal -1 binary64)))
%33 = (neg.f64 %22)
%34 = (fma.f64 t z %10)
%35 = (neg.f64 %34)
%42 = (neg.f64 z)
%43 = (*.f64 %42 t)
%45 = (*.f64 t z)
%48 = (neg.f64 t)
%54 = (*.f64 %10 #s(literal 1 binary64))
%56 = (*.f64 %45 #s(literal 1 binary64))
%67 = (* b a)
%68 = (* y x)
%70 = (approx (+ %67 %68) %27)
%77 = (+ %67 (+ (* t z) %68))
%78 = (approx %77 %34)
%83 = (fma.f64 b a %10)
%84 = (neg.f64 %83)
%100 = (*.f64 %27 #s(literal 1 binary64))
%111 = (approx %77 %83)
%116 = (approx %77 %70)
x
y
(*.f64 #s(literal -1 binary64) %4)
(*.f64 %6 %3)
(*.f64 %3 %6)
(*.f64 #s(literal 1 binary64) %10)
%10
(*.f64 x y)
(pow.f64 %10 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %10 #s(literal -1 binary64)))
(neg.f64 %4)
z
t
a
b
%23
%25
%26
%28
%27
%29
%30
%32
%33
(*.f64 #s(literal -1 binary64) %35)
(*.f64 #s(literal 1 binary64) %34)
(pow.f64 %34 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %34 #s(literal -1 binary64)))
(neg.f64 %35)
(fma.f64 #s(literal -1 binary64) %43 %10)
(fma.f64 #s(literal -1 binary64) %4 %45)
(fma.f64 %6 %3 %45)
(fma.f64 %48 %42 %10)
(fma.f64 %42 %48 %10)
(fma.f64 %3 %6 %45)
(fma.f64 #s(literal 1 binary64) %45 %10)
(fma.f64 #s(literal 1 binary64) %10 %45)
(fma.f64 %45 #s(literal 1 binary64) %54)
(fma.f64 %10 #s(literal 1 binary64) %56)
%34
(fma.f64 z t %10)
(fma.f64 y x %45)
(fma.f64 x y %45)
(-.f64 %45 %4)
(-.f64 %10 %43)
(+.f64 %56 %54)
(+.f64 %54 %56)
(+.f64 %45 %10)
(+.f64 %10 %45)
%23
%25
%26
%28
%27
%29
%30
%32
%33
(*.f64 #s(literal 1 binary64) %70)
(pow.f64 %70 #s(literal 1 binary64))
%70
(/.f64 #s(literal 1 binary64) (pow.f64 %70 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %78)
(pow.f64 %78 #s(literal 1 binary64))
%78
(/.f64 #s(literal 1 binary64) (pow.f64 %78 #s(literal -1 binary64)))
(*.f64 #s(literal -1 binary64) %84)
(*.f64 #s(literal 1 binary64) %83)
(pow.f64 %83 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %83 #s(literal -1 binary64)))
(neg.f64 %84)
(fma.f64 #s(literal -1 binary64) %4 %27)
(fma.f64 #s(literal -1 binary64) %22 %10)
(fma.f64 %6 %3 %27)
(fma.f64 %27 #s(literal 1 binary64) %54)
(fma.f64 %21 %24 %10)
(fma.f64 %24 %21 %10)
(fma.f64 %3 %6 %27)
(fma.f64 #s(literal 1 binary64) %27 %10)
(fma.f64 #s(literal 1 binary64) %10 %27)
(fma.f64 %10 #s(literal 1 binary64) %100)
%83
(fma.f64 a b %10)
(fma.f64 y x %27)
(fma.f64 x y %27)
(-.f64 %27 %4)
(-.f64 %10 %22)
(+.f64 %54 %100)
(+.f64 %100 %54)
(+.f64 %27 %10)
(+.f64 %10 %27)
(*.f64 #s(literal 1 binary64) %111)
(pow.f64 %111 #s(literal 1 binary64))
%111
(/.f64 #s(literal 1 binary64) (pow.f64 %111 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %116)
(pow.f64 %116 #s(literal 1 binary64))
%116
(/.f64 #s(literal 1 binary64) (pow.f64 %116 #s(literal -1 binary64)))

reconstruct16.0ms (1.0%)

Counts
141 → 53
Compiler

Compiled 141 to 224 computations (-58.9% saved)

eval8.0ms (0.5%)

Compiler

Compiled 48 to 124 computations (-158.3% saved)

prune2.0ms (0.1%)

Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New46248
Fresh000
Picked033
Done112
Total47653
Accuracy
100.0%
Counts
53 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
68.6%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 x y (*.f64 t z)))
67.4%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 x y (*.f64 b a)))
68.3%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
65.0%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
34.4%
%2 = (* x y)
(approx (+ (+ %2 (* z t)) (* a b)) (approx (+ (* t z) %2) (*.f64 t z)))
33.8%
%2 = (* x y)
%9 = (* a b)
(approx (+ (+ %2 (* z t)) %9) (approx (+ %9 %2) (*.f64 a b)))
Compiler

Compiled 6 to 14 computations (-133.3% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series15.0ms (0.9%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0141588
Stop Event
iter-limit
Counts
9 → 32
Calls
Call 1
Inputs
%4 = (*.f64 t z)
%5 = (fma.f64 x y %4)
%7 = (* x y)
%9 = (approx (+ (* t z) %7) %4)
%15 = (+ (+ %7 (* z t)) (* a b))
x
y
z
t
%4
%5
%9
(approx %15 %5)
(approx %15 %9)
Outputs
%5 = (* x y)
%9 = (+ %5 (* t z))
%10 = (*.f64 t z)
%12 = (*.f64 x y)
%13 = (fma.f64 t z %12)
%20 = (+ (+ %5 (* z t)) (* a b))
%21 = (fma.f64 a b %10)
%26 = (/.f64 %10 x)
%30 = (*.f64 a b)
%49 = (/.f64 %10 y)
%70 = (fma.f64 a b %12)
%72 = (/.f64 %12 z)
%93 = (/.f64 %12 t)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %9 %10)
(approx %9 %13)
(approx %20 %21)
(approx %20 (fma.f64 a b %13))
(approx %9 %12)
(approx %9 (*.f64 x (+.f64 y %26)))
(approx %20 (*.f64 x (+.f64 y (+.f64 (/.f64 %30 x) %26))))
(approx %9 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) %26)))))
(approx %20 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %21 x))))))
(approx y y)
(approx %9 (*.f64 y (+.f64 x %49)))
(approx %20 (*.f64 y (+.f64 x (+.f64 (/.f64 %30 y) %49))))
(approx %9 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) %49)))))
(approx %20 (*.f64 #s(literal -1 binary64) (*.f64 y (fma.f64 #s(literal -1 binary64) x (*.f64 #s(literal -1 binary64) (/.f64 %21 y))))))
(approx z z)
(approx %20 %70)
(approx %9 (*.f64 z (+.f64 t %72)))
(approx %20 (*.f64 z (+.f64 t (+.f64 (/.f64 %30 z) %72))))
(approx %9 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) %72)))))
(approx %20 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) t (*.f64 #s(literal -1 binary64) (/.f64 %70 z))))))
(approx t t)
(approx %9 (*.f64 t (+.f64 z %93)))
(approx %20 (*.f64 t (+.f64 z (+.f64 (/.f64 %30 t) %93))))
(approx %9 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) %93)))))
(approx %20 (*.f64 #s(literal -1 binary64) (*.f64 t (fma.f64 #s(literal -1 binary64) z (*.f64 #s(literal -1 binary64) (/.f64 %70 t))))))
(approx %20 %30)
(approx %20 (*.f64 a (+.f64 b (+.f64 (/.f64 %10 a) (/.f64 %12 a)))))
(approx %20 (*.f64 #s(literal -1 binary64) (*.f64 a (fma.f64 #s(literal -1 binary64) b (*.f64 #s(literal -1 binary64) (/.f64 %13 a))))))
(approx %20 (*.f64 b (+.f64 a (+.f64 (/.f64 %10 b) (/.f64 %12 b)))))
(approx %20 (*.f64 #s(literal -1 binary64) (*.f64 b (fma.f64 #s(literal -1 binary64) a (*.f64 #s(literal -1 binary64) (/.f64 %13 b))))))
Calls

18 calls:

TimeVariablePoint
4.0ms
x
0
1.0ms
t
inf
1.0ms
z
inf
1.0ms
x
inf
1.0ms
y
inf

rewrite67.0ms (4.1%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01865
02061
16761
216561
334661
446361
585761
0404561
0430159
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
9 → 50
Calls
Call 1
Inputs
%4 = (*.f64 t z)
%5 = (fma.f64 x y %4)
%7 = (* x y)
%9 = (approx (+ (* t z) %7) %4)
%15 = (+ (+ %7 (* z t)) (* a b))
x
y
z
t
%4
%5
%9
(approx %15 %5)
(approx %15 %9)
Outputs
%5 = (*.f64 t z)
%6 = (neg.f64 %5)
%8 = (neg.f64 z)
%9 = (neg.f64 t)
%19 = (*.f64 y x)
%20 = (fma.f64 t z %19)
%21 = (neg.f64 %20)
%28 = (neg.f64 x)
%29 = (*.f64 %28 y)
%32 = (neg.f64 y)
%39 = (*.f64 %5 #s(literal 1 binary64))
%41 = (*.f64 %19 #s(literal 1 binary64))
%52 = (* y x)
%53 = (* t z)
%55 = (approx (+ %52 %53) %5)
%64 = (+ (+ (* b a) %52) %53)
%65 = (approx %64 %20)
%70 = (approx %64 %55)
x
y
z
t
(*.f64 #s(literal -1 binary64) %6)
(*.f64 %8 %9)
(*.f64 %9 %8)
(*.f64 #s(literal 1 binary64) %5)
%5
(*.f64 z t)
(pow.f64 %5 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %5 #s(literal -1 binary64)))
(neg.f64 %6)
(*.f64 #s(literal -1 binary64) %21)
(*.f64 #s(literal 1 binary64) %20)
(pow.f64 %20 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %20 #s(literal -1 binary64)))
(neg.f64 %21)
(fma.f64 #s(literal -1 binary64) %29 %5)
(fma.f64 #s(literal -1 binary64) %6 %19)
(fma.f64 %32 %28 %5)
(fma.f64 %8 %9 %19)
(fma.f64 %9 %8 %19)
(fma.f64 %28 %32 %5)
(fma.f64 #s(literal 1 binary64) %19 %5)
(fma.f64 #s(literal 1 binary64) %5 %19)
(fma.f64 %19 #s(literal 1 binary64) %39)
(fma.f64 %5 #s(literal 1 binary64) %41)
%20
(fma.f64 z t %19)
(fma.f64 y x %5)
(fma.f64 x y %5)
(-.f64 %19 %6)
(-.f64 %5 %29)
(+.f64 %41 %39)
(+.f64 %39 %41)
(+.f64 %19 %5)
(+.f64 %5 %19)
(*.f64 #s(literal 1 binary64) %55)
(pow.f64 %55 #s(literal 1 binary64))
%55
(/.f64 #s(literal 1 binary64) (pow.f64 %55 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %65)
(pow.f64 %65 #s(literal 1 binary64))
%65
(/.f64 #s(literal 1 binary64) (pow.f64 %65 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %70)
(pow.f64 %70 #s(literal 1 binary64))
%70
(/.f64 #s(literal 1 binary64) (pow.f64 %70 #s(literal -1 binary64)))

reconstruct6.0ms (0.4%)

Counts
82 → 39
Compiler

Compiled 82 to 157 computations (-91.5% saved)

eval3.0ms (0.2%)

Compiler

Compiled 36 to 100 computations (-177.8% saved)

prune2.0ms (0.1%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New35136
Fresh000
Picked022
Done044
Total35742
Accuracy
100.0%
Counts
42 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
68.6%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 x y (*.f64 t z)))
67.4%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 x y (*.f64 b a)))
68.3%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 t z (*.f64 x y)))
65.0%
(approx (+ (+ (* x y) (* z t)) (* a b)) (fma.f64 a b (*.f64 t z)))
37.2%
%2 = (* x y)
(approx (+ (+ %2 (* z t)) (* a b)) (approx (+ %2 (* t z)) (*.f64 x y)))
34.4%
%2 = (* x y)
(approx (+ (+ %2 (* z t)) (* a b)) (approx (+ (* t z) %2) (*.f64 t z)))
33.8%
%2 = (* x y)
%9 = (* a b)
(approx (+ (+ %2 (* z t)) %9) (approx (+ %9 %2) (*.f64 a b)))
Compiler

Compiled 7 to 14 computations (-100.0% saved)

regimes70.0ms (4.3%)

Accuracy

Total 50.8b remaining (42.9%)

Threshold costs 0.0b (0.0%)

23.6b39.3%
8.7b59.0%
7.0b64.1%
5.5b73.0%
4.9b75.3%

Counts
1 → 1
2 → 3
3 → 4
4 → 3
5 → 3
6 → 3
9 → 1
Calls
Call 1
Inputs
%2 = (* x y)
%9 = (* a b)
(approx (+ (+ %2 (* z t)) %9) (approx (+ %9 %2) (*.f64 a b)))
Outputs
%2 = (* x y)
%9 = (* a b)
(approx (+ (+ %2 (* z t)) %9) (approx (+ %9 %2) (*.f64 a b)))
Call 2
Inputs
%2 = (* x y)
%9 = (* a b)
%10 = (+ (+ %2 (* z t)) %9)
(approx %10 (approx (+ %9 %2) (*.f64 a b)))
(approx %10 (approx (+ (* t z) %2) (*.f64 t z)))
Outputs
%2 = (* x y)
%9 = (* a b)
%10 = (+ (+ %2 (* z t)) %9)
%14 = (approx %10 (approx (+ %9 %2) (*.f64 a b)))
%14
(approx %10 (approx (+ (* t z) %2) (*.f64 t z)))
%14
Call 3
Inputs
%2 = (* x y)
%9 = (* a b)
%10 = (+ (+ %2 (* z t)) %9)
%15 = (* t z)
(approx %10 (approx (+ %9 %2) (*.f64 a b)))
(approx %10 (approx (+ %15 %2) (*.f64 t z)))
(approx %10 (approx (+ %2 %15) (*.f64 x y)))
Outputs
%2 = (* x y)
%9 = (* a b)
%10 = (+ (+ %2 (* z t)) %9)
%11 = (* t z)
%15 = (approx %10 (approx (+ %2 %11) (*.f64 x y)))
%15
(approx %10 (approx (+ %11 %2) (*.f64 t z)))
(approx %10 (approx (+ %9 %2) (*.f64 a b)))
%15
Call 4
Inputs
%2 = (* x y)
%9 = (* a b)
%10 = (+ (+ %2 (* z t)) %9)
%15 = (* t z)
%17 = (*.f64 t z)
(approx %10 (approx (+ %9 %2) (*.f64 a b)))
(approx %10 (approx (+ %15 %2) %17))
(approx %10 (approx (+ %2 %15) (*.f64 x y)))
(approx %10 (fma.f64 a b %17))
Outputs
%2 = (* x y)
%10 = (+ (+ %2 (* z t)) (* a b))
%15 = (approx %10 (approx (+ %2 (* t z)) (*.f64 x y)))
%15
(approx %10 (fma.f64 a b (*.f64 t z)))
%15
Call 5
Inputs
%2 = (* x y)
%9 = (* a b)
%10 = (+ (+ %2 (* z t)) %9)
%15 = (* t z)
%17 = (*.f64 t z)
%21 = (*.f64 x y)
(approx %10 (approx (+ %9 %2) (*.f64 a b)))
(approx %10 (approx (+ %15 %2) %17))
(approx %10 (approx (+ %2 %15) %21))
(approx %10 (fma.f64 a b %17))
(approx %10 (fma.f64 a b %21))
Outputs
%10 = (+ (+ (* x y) (* z t)) (* a b))
%13 = (approx %10 (fma.f64 a b (*.f64 x y)))
%13
(approx %10 (fma.f64 a b (*.f64 t z)))
%13
Call 6
Inputs
%2 = (* x y)
%9 = (* a b)
%10 = (+ (+ %2 (* z t)) %9)
%15 = (* t z)
%17 = (*.f64 t z)
%21 = (*.f64 x y)
(approx %10 (approx (+ %9 %2) (*.f64 a b)))
(approx %10 (approx (+ %15 %2) %17))
(approx %10 (approx (+ %2 %15) %21))
(approx %10 (fma.f64 a b %17))
(approx %10 (fma.f64 a b %21))
(approx %10 (fma.f64 t z %21))
Outputs
%10 = (+ (+ (* x y) (* z t)) (* a b))
%11 = (*.f64 x y)
%13 = (approx %10 (fma.f64 a b %11))
%13
(approx %10 (fma.f64 t z %11))
%13
Call 7
Inputs
%2 = (* x y)
%9 = (* a b)
%10 = (+ (+ %2 (* z t)) %9)
%15 = (* t z)
%17 = (*.f64 t z)
%21 = (*.f64 x y)
(approx %10 (approx (+ %9 %2) (*.f64 a b)))
(approx %10 (approx (+ %15 %2) %17))
(approx %10 (approx (+ %2 %15) %21))
(approx %10 (fma.f64 a b %17))
(approx %10 (fma.f64 a b %21))
(approx %10 (fma.f64 t z %21))
(approx %10 (fma.f64 x y (*.f64 b a)))
(approx %10 (fma.f64 x y %17))
(fma.f64 t z (fma.f64 b a (*.f64 y x)))
Outputs
(fma.f64 t z (fma.f64 b a (*.f64 y x)))
Calls

11 calls:

11.0ms
z
8.0ms
a
7.0ms
(*.f64 z t)
6.0ms
b
6.0ms
x
Results
AccuracySegmentsBranch
33.8%1
b
33.8%1
a
33.8%1
t
33.8%1
z
33.8%1
y
33.8%1
x
33.8%1
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
33.8%1
(+.f64 (*.f64 x y) (*.f64 z t))
33.8%1
(*.f64 x y)
33.8%1
(*.f64 z t)
33.8%1
(*.f64 a b)
Compiler

Compiled 22 to 34 computations (-54.5% saved)

bsearch0.0ms (0.0%)

bsearch1.0ms (0.0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.775661460252527e-9
2.3783056306150883e-6
0.0ms
-4.971985096274256e+29
-38794493367901190.0
Compiler

Compiled 1 to 3 computations (-200.0% saved)

bsearch13.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
6.0ms
13947105432914612.0
1.0815771173130394e+20
6.0ms
-1.2267604479272654e+132
-2.788108205575371e+130
Samples
6.0ms240×0valid
Compiler

Compiled 18 to 33 computations (-83.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
Mul: 0.0ms (0.0% of total, 0.0 MiB)
Add: 0.0ms (0.0% of total, 0.0 MiB)

bsearch13.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
3.0ms
2.0197568208790766e+163
2.8482330048721024e+163
8.0ms
-2.4922992158218926e+170
-8.208530573544229e+151
Samples
5.0ms224×0valid
Compiler

Compiled 18 to 31 computations (-72.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
Mul: 0.0ms (0.0% of total, 0.0 MiB)
Add: 0.0ms (0.0% of total, 0.0 MiB)

bsearch21.0ms (1.3%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
0.0012058005614327806
2871993526109.9824
6.0ms
8.621526126813077e-287
8.08490615979891e-286
6.0ms
-8.208530573544229e+151
-5.088982181687206e+150
Samples
10.0ms368×0valid
Compiler

Compiled 20 to 31 computations (-55.0% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
Mul: 0.0ms (0.0% of total, 0.0 MiB)
Add: 0.0ms (0.0% of total, 0.0 MiB)

bsearch12.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
4.0ms
213.3575534921273
792.5967641503662
6.0ms
-1.581414972194181e+149
-4.504082115372152e+147
Samples
5.0ms192×0valid
Compiler

Compiled 18 to 25 computations (-38.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
Mul: 0.0ms (0.0% of total, 0.0 MiB)
Add: 0.0ms (0.0% of total, 0.0 MiB)

bsearch0.0ms (0.0%)

derivations54.0ms (3.3%)

Stop Event
fuel
Compiler

Compiled 7 to 48 computations (-585.7% saved)

preprocess98.0ms (6.0%)

Compiler

Compiled 50 to 593 computations (-1086.0% saved)

end0.0ms (0.0%)

gc364ms (22.2%)

Allocations
AllocatedPercentPhase
623.5 MiB34.1%sample
284.0 MiB15.5%rewrite
266.4 MiB14.6%preprocess
216.3 MiB11.8%series
129.0 MiB7.1%regimes
108.5 MiB5.9%reconstruct
76.4 MiB4.2%bsearch
55.5 MiB3.0%eval
47.5 MiB2.6%derivations
18.1 MiB1.0%prune
1.8 MiB0.1%analyze
0.1 MiB0.0%start
0.0 MiB0.0%end
1 827.0 MiB100.0%total

Profiling

Loading profile data...