Linear.Quaternion:$c/ from linear-1.19.1.3, C

Time bar (total: 1.2s)

start0.0ms (0.0%)

analyze0.0ms (0.0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0.0%0.0%99.9%0.1%0.0%0.0%0.0%0
100.0%99.9%0.0%0.1%0.0%0.0%0.0%1
Compiler

Compiled 17 to 11 computations (35.3% saved)

sample293.0ms (25.3%)

Samples
165.0ms5 729×0valid
73.0ms2 451×1valid
2.0ms76×2valid
Precisions
Click to see histograms. Total time spent on operations: 19.0ms
Mul: 8.0ms (42.7% of total, 0.0 MiB)
Sub: 5.0ms (26.7% of total, 0.0 MiB)
Add: 3.0ms (16.0% of total, 0.0 MiB)
adjust: 2.0ms (10.7% of total, 0.0 MiB)
Bogosity

preprocess31.0ms (2.7%)

Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
042128
1274100
2103190
3311990
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
60.6%
%3 = (*.f64 y y)
(-.f64 (-.f64 (+.f64 (*.f64 x y) %3) (*.f64 y z)) %3)
Symmetry

(negabs y)

Compiler

Compiled 2 to 18 computations (-800.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series19.0ms (1.6%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0111569
Stop Event
iter-limit
Counts
9 → 31
Calls
Call 1
Inputs
%2 = (*.f64 x y)
%3 = (*.f64 y y)
%4 = (+.f64 %2 %3)
%6 = (*.f64 y z)
%7 = (-.f64 %4 %6)
x
y
%2
%3
%4
z
%6
%7
(-.f64 %7 %3)
Outputs
%5 = (* x y)
%6 = (*.f64 x y)
%8 = (* y y)
%9 = (+ %5 %8)
%11 = (pow.f64 y #s(literal 2 binary64))
%13 = (fma.f64 x y %11)
%16 = (* y z)
%17 = (- %9 %16)
%18 = (*.f64 y z)
%19 = (-.f64 %11 %18)
%23 = (- %17 %8)
%29 = (/.f64 %11 x)
%30 = (+.f64 y %29)
%33 = (/.f64 %18 x)
%57 = (+.f64 x y)
%69 = (+.f64 #s(literal 1 binary64) (/.f64 x y))
%78 = (-.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 #s(literal -1 binary64) z))
%92 = (/.f64 %6 z)
%103 = (*.f64 #s(literal -1 binary64) y)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 %6)
(approx %9 %11)
(approx %9 %13)
(approx %17 %19)
(approx %17 (-.f64 %13 %18))
(approx %23 (*.f64 #s(literal -1 binary64) %18))
(approx %23 (-.f64 %6 %18))
(approx %9 (*.f64 x %30))
(approx %17 (*.f64 x (-.f64 %30 %33)))
(approx %23 (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) %33))))
(approx %9 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) %29)))))
(approx %17 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %19 x))))))
(approx %23 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y %33))))
(approx y y)
(approx %9 (*.f64 y %57))
(approx %16 %18)
(approx %17 (*.f64 y (-.f64 x z)))
(approx %17 (*.f64 y (-.f64 %57 z)))
(approx %9 (*.f64 %11 %69))
(approx %17 (*.f64 %11 (-.f64 %69 (/.f64 z y))))
(approx %17 (*.f64 %11 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 %78 y)))))
(approx %23 (*.f64 #s(literal -1 binary64) (*.f64 y %78)))
(approx z z)
(approx %17 (fma.f64 #s(literal -1 binary64) %18 %13))
(approx %23 (fma.f64 #s(literal -1 binary64) %18 %6))
(approx %17 (*.f64 z (-.f64 (+.f64 %92 (/.f64 %11 z)) y)))
(approx %23 (*.f64 z (-.f64 %92 y)))
(approx %17 (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 %13 z)) %103))))
(approx %23 (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 (*.f64 #s(literal -1 binary64) %92) %103))))
Calls

9 calls:

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

rewrite75.0ms (6.5%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0945
01539
15435
220033
369331
4207431
0401131
0428430
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
9 → 281
Calls
Call 1
Inputs
%2 = (*.f64 x y)
%3 = (*.f64 y y)
%4 = (+.f64 %2 %3)
%6 = (*.f64 y z)
%7 = (-.f64 %4 %6)
x
y
%2
%3
%4
z
%6
%7
(-.f64 %7 %3)
Outputs
%2 = (neg.f64 x)
%3 = (neg.f64 y)
%7 = (*.f64 y x)
%14 = (*.f64 %3 x)
%16 = (fabs.f64 y)
%17 = (sqrt.f64 %16)
%18 = (*.f64 %17 %16)
%21 = (neg.f64 %16)
%25 = (*.f64 y y)
%31 = (*.f64 %25 %25)
%53 = (*.f64 %3 y)
%56 = (*.f64 %3 %21)
%59 = (*.f64 y %21)
%62 = (*.f64 %3 %16)
%65 = (*.f64 y %16)
%68 = (*.f64 %21 %3)
%71 = (*.f64 %16 %3)
%74 = (*.f64 %21 y)
%77 = (*.f64 %16 y)
%90 = (+.f64 y x)
%91 = (neg.f64 %90)
%93 = (*.f64 %90 y)
%100 = (*.f64 %90 %3)
%119 = (neg.f64 z)
%122 = (*.f64 z y)
%128 = (*.f64 %3 z)
%130 = (-.f64 z %90)
%132 = (-.f64 %90 z)
%133 = (*.f64 %132 y)
%134 = (-.f64 %91 %119)
%142 = (*.f64 %130 y)
%144 = (-.f64 x z)
%145 = (*.f64 %144 y)
%148 = (-.f64 z x)
%150 = (-.f64 z y)
%154 = (-.f64 y z)
%156 = (*.f64 %154 y)
%175 = (-.f64 %119 %3)
%188 = (*.f64 %148 y)
%190 = (*.f64 %150 y)
%200 = (-.f64 %132 y)
%202 = (+.f64 z y)
%208 = (fma.f64 %144 y #s(literal 0 binary64))
%210 = (neg.f64 %202)
%213 = (-.f64 %154 y)
%216 = (-.f64 %144 y)
%219 = (-.f64 y x)
%222 = (-.f64 y %90)
%258 = (*.f64 %219 y)
%259 = (-.f64 %128 %258)
%261 = (*.f64 %216 y)
%266 = (*.f64 %3 %219)
%268 = (-.f64 x y)
%269 = (*.f64 y %268)
%271 = (*.f64 %202 %3)
%282 = (-.f64 #s(literal 0 binary64) %122)
%284 = (fma.f64 y x #s(literal 0 binary64))
%359 = (-.f64 %128 #s(literal 0 binary64))
%362 = (-.f64 %53 %188)
x
y
(*.f64 %2 %3)
(*.f64 %3 %2)
(*.f64 #s(literal 1 binary64) %7)
%7
(*.f64 x y)
(pow.f64 %7 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %7 #s(literal -1 binary64)))
(neg.f64 %14)
(*.f64 %18 %17)
(*.f64 %17 %18)
(*.f64 %21 %21)
(*.f64 %16 %16)
(*.f64 %3 %3)
(*.f64 #s(literal 1 binary64) %25)
%25
(pow.f64 (pow.f64 y #s(literal 8 binary64)) #s(literal 1/4 binary64))
(pow.f64 %31 #s(literal 1/2 binary64))
(pow.f64 %17 #s(literal 4 binary64))
(pow.f64 %21 #s(literal 2 binary64))
(pow.f64 %16 #s(literal 2 binary64))
(pow.f64 %3 #s(literal 2 binary64))
(pow.f64 %25 #s(literal 1 binary64))
(pow.f64 y #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %16 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %3 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %25 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal -2 binary64)))
(neg.f64 %53)
(sqrt.f64 %31)
(fabs.f64 (neg.f64 %56))
(fabs.f64 (neg.f64 %59))
(fabs.f64 (neg.f64 %62))
(fabs.f64 (neg.f64 %65))
(fabs.f64 (neg.f64 %68))
(fabs.f64 (neg.f64 %71))
(fabs.f64 (neg.f64 %74))
(fabs.f64 (neg.f64 %77))
(fabs.f64 %56)
(fabs.f64 %59)
(fabs.f64 %62)
(fabs.f64 %65)
(fabs.f64 %68)
(fabs.f64 %71)
(fabs.f64 %74)
(fabs.f64 %77)
(fabs.f64 %53)
(fabs.f64 %25)
(*.f64 %91 %3)
%93
(*.f64 %3 %91)
(*.f64 #s(literal 1 binary64) %93)
(*.f64 y %90)
(pow.f64 %93 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %93 #s(literal -1 binary64)))
(neg.f64 %100)
(fma.f64 %18 %17 %7)
(fma.f64 %17 %18 %7)
(fma.f64 %2 %3 %25)
(fma.f64 %21 %21 %7)
(fma.f64 %16 %16 %7)
(fma.f64 %3 %2 %25)
(fma.f64 %3 %3 %7)
(fma.f64 #s(literal 1 binary64) %25 %7)
(fma.f64 #s(literal 1 binary64) %7 %25)
(fma.f64 y y %7)
(fma.f64 y x %25)
(fma.f64 x y %25)
(-.f64 %25 %14)
(-.f64 %7 %53)
(+.f64 %25 %7)
(+.f64 %7 %25)
z
(*.f64 %119 %3)
(*.f64 %3 %119)
(*.f64 #s(literal 1 binary64) %122)
%122
(*.f64 y z)
(pow.f64 %122 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %122 #s(literal -1 binary64)))
(neg.f64 %128)
(*.f64 %130 %3)
%133
(*.f64 %3 %134)
(*.f64 %3 %130)
(*.f64 #s(literal 1 binary64) %133)
(*.f64 y %132)
(pow.f64 %133 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %133 #s(literal -1 binary64)))
(neg.f64 %142)
(fma.f64 %18 %17 %145)
(fma.f64 %144 y %25)
(fma.f64 %148 %3 %25)
(fma.f64 %150 %3 %7)
(fma.f64 %91 %3 %128)
(fma.f64 %17 %18 %145)
(fma.f64 %154 y %7)
(fma.f64 %2 %3 %156)
(fma.f64 %119 y %93)
(fma.f64 %21 %21 %145)
(fma.f64 %90 y %128)
(fma.f64 %16 %16 %145)
(fma.f64 %3 %148 %25)
(fma.f64 %3 %150 %7)
(fma.f64 %3 %91 %128)
(fma.f64 %3 %2 %156)
(fma.f64 %3 %3 %145)
(fma.f64 %3 z %93)
(fma.f64 #s(literal 1 binary64) %145 %25)
(fma.f64 #s(literal 1 binary64) %156 %7)
(fma.f64 #s(literal 1 binary64) %128 %93)
(fma.f64 #s(literal 1 binary64) %93 %128)
(fma.f64 #s(literal 1 binary64) %25 %145)
(fma.f64 #s(literal 1 binary64) %7 %156)
(fma.f64 z %3 %93)
(fma.f64 y %175 %7)
(fma.f64 y %144 %25)
(fma.f64 y %154 %7)
(fma.f64 y %119 %93)
(fma.f64 y %90 %128)
(fma.f64 y y %145)
(fma.f64 y x %156)
(fma.f64 x y %156)
(-.f64 %145 %53)
(-.f64 %156 %14)
(-.f64 %128 %100)
(-.f64 %93 %122)
(-.f64 %25 %188)
(-.f64 %7 %190)
(+.f64 (*.f64 %148 %3) %25)
(+.f64 %145 %25)
(+.f64 %156 %7)
(+.f64 %128 %93)
(+.f64 %93 %128)
(+.f64 %25 %145)
(+.f64 %7 %156)
(*.f64 %200 y)
(*.f64 %3 (+.f64 %91 %202))
(*.f64 %3 (-.f64 y %132))
(*.f64 #s(literal 1 binary64) %208)
(*.f64 y (+.f64 %210 %90))
(*.f64 y (+.f64 %213 x))
(*.f64 y (+.f64 %216 y))
(*.f64 y (-.f64 %154 %219))
(*.f64 y (-.f64 %119 %222))
(*.f64 y %200)
(pow.f64 %208 #s(literal 1 binary64))
(/.f64 (fma.f64 %145 #s(literal 4 binary64) #s(literal 0 binary64)) #s(literal 4 binary64))
(/.f64 (fma.f64 %145 #s(literal -2 binary64) #s(literal 0 binary64)) #s(literal -2 binary64))
(/.f64 (fma.f64 %145 #s(literal 1/2 binary64) #s(literal 0 binary64)) #s(literal 1/2 binary64))
(/.f64 (fma.f64 %145 #s(literal 1 binary64) #s(literal 0 binary64)) #s(literal 1 binary64))
(/.f64 (fma.f64 %145 #s(literal 2 binary64) #s(literal 0 binary64)) #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 %145 #s(literal 4 binary64)) #s(literal 0 binary64)) #s(literal 4 binary64))
(/.f64 (-.f64 (*.f64 %145 #s(literal -2 binary64)) #s(literal 0 binary64)) #s(literal -2 binary64))
(/.f64 (-.f64 (*.f64 %145 #s(literal 1/2 binary64)) #s(literal 0 binary64)) #s(literal 1/2 binary64))
(/.f64 (-.f64 (*.f64 %145 #s(literal 1 binary64)) #s(literal 0 binary64)) #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 %145 #s(literal 2 binary64)) #s(literal 0 binary64)) #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %208 #s(literal -1 binary64)))
(neg.f64 (fma.f64 %148 y #s(literal 0 binary64)))
(fma.f64 (*.f64 %21 %17) %17 %133)
(fma.f64 %18 %17 %259)
(fma.f64 %18 %17 %261)
(fma.f64 %213 y %7)
(fma.f64 %216 y %25)
%208
(fma.f64 %210 y %93)
(fma.f64 %150 %3 %266)
(fma.f64 %150 %3 %269)
(fma.f64 %91 %3 %271)
(fma.f64 %17 %18 %259)
(fma.f64 %17 %18 %261)
(fma.f64 %17 (*.f64 %17 %21) %133)
(fma.f64 %130 %3 %53)
(fma.f64 %132 y %53)
(fma.f64 %202 %3 %93)
(fma.f64 %154 y %266)
(fma.f64 %154 y %269)
(fma.f64 %2 %3 %282)
(fma.f64 %119 y %284)
(fma.f64 %21 %21 %259)
(fma.f64 %21 %21 %261)
(fma.f64 %21 %16 %133)
(fma.f64 %90 y %271)
(fma.f64 %16 %21 %133)
(fma.f64 %16 %16 %259)
(fma.f64 %16 %16 %261)
(fma.f64 %3 (+.f64 y %150) %7)
(fma.f64 %3 (-.f64 %91 %3) %128)
(fma.f64 %3 %134 %53)
(fma.f64 %3 (+.f64 %91 y) %128)
(fma.f64 %3 (+.f64 %150 y) %7)
(fma.f64 %3 %222 %128)
(fma.f64 %3 %148 #s(literal 0 binary64))
(fma.f64 %3 %150 %266)
(fma.f64 %3 %150 %269)
(fma.f64 %3 %91 %271)
(fma.f64 %3 %130 %53)
(fma.f64 %3 %202 %93)
(fma.f64 %3 %2 %282)
(fma.f64 %3 %3 %259)
(fma.f64 %3 %3 %261)
(fma.f64 %3 z %284)
(fma.f64 %3 y %133)
(fma.f64 #s(literal 1 binary64) %269 %156)
(fma.f64 #s(literal 1 binary64) %284 %128)
(fma.f64 #s(literal 1 binary64) %145 #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) %271 %93)
(fma.f64 #s(literal 1 binary64) %282 %7)
(fma.f64 #s(literal 1 binary64) %261 %25)
(fma.f64 #s(literal 1 binary64) %156 %266)
(fma.f64 #s(literal 1 binary64) %156 %269)
(fma.f64 #s(literal 1 binary64) %128 %284)
(fma.f64 #s(literal 1 binary64) %53 %133)
(fma.f64 #s(literal 1 binary64) %133 %53)
(fma.f64 #s(literal 1 binary64) %93 %271)
(fma.f64 #s(literal 1 binary64) %25 %259)
(fma.f64 #s(literal 1 binary64) %25 %261)
(fma.f64 #s(literal 1 binary64) %7 %282)
(fma.f64 z %3 %284)
(fma.f64 y (+.f64 %90 %3) %128)
(fma.f64 y (+.f64 x %3) %156)
(fma.f64 y (+.f64 %3 %90) %128)
(fma.f64 y (+.f64 %3 x) %156)
(fma.f64 y (neg.f64 %222) %128)
(fma.f64 y (-.f64 %90 y) %128)
(fma.f64 y %175 %266)
(fma.f64 y %175 %269)
(fma.f64 y %268 %156)
(fma.f64 y %213 %7)
(fma.f64 y %216 %25)
(fma.f64 y %144 #s(literal 0 binary64))
(fma.f64 y %210 %93)
(fma.f64 y %132 %53)
(fma.f64 y %154 %266)
(fma.f64 y %154 %269)
(fma.f64 y %119 %284)
(fma.f64 y %90 %271)
(fma.f64 y %3 %133)
(fma.f64 y y %259)
(fma.f64 y y %261)
(fma.f64 y x %282)
(fma.f64 x y %282)
(-.f64 %359 %14)
(-.f64 %259 %53)
(-.f64 %362 %53)
(-.f64 #s(literal 0 binary64) %188)
(-.f64 %269 %190)
(-.f64 %284 %122)
(-.f64 %145 #s(literal 0 binary64))
(-.f64 %271 %100)
(-.f64 %282 %14)
(-.f64 %261 %53)
(-.f64 %156 (-.f64 %14 %53))
(-.f64 %156 %258)
(-.f64 %128 (-.f64 #s(literal 0 binary64) %7))
(-.f64 %53 %142)
(-.f64 %133 %25)
(-.f64 %93 (*.f64 %202 y))
(-.f64 %25 (*.f64 y (+.f64 y %148)))
(-.f64 %7 (fma.f64 z y #s(literal 0 binary64)))
(+.f64 %359 %7)
(+.f64 %259 %25)
(+.f64 %362 %25)
(+.f64 #s(literal 0 binary64) %145)
(+.f64 %269 %156)
(+.f64 %284 %128)
(+.f64 %145 #s(literal 0 binary64))
(+.f64 %271 %93)
(+.f64 %282 %7)
(+.f64 %261 %25)
(+.f64 %156 %266)
(+.f64 %156 %269)
(+.f64 %128 %284)
(+.f64 %53 %133)
(+.f64 %133 %53)
(+.f64 %93 %271)
(+.f64 %25 %259)
(+.f64 %25 %261)
(+.f64 %7 %282)

reconstruct27.0ms (2.4%)

Counts
312 → 86
Compiler

Compiled 312 to 469 computations (-50.3% saved)

eval7.0ms (0.6%)

Compiler

Compiled 83 to 263 computations (-216.9% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New79483
Fresh000
Picked101
Done000
Total80484
Accuracy
100.0%
Counts
84 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 y (-.f64 x z) #s(literal 0 binary64))
98.8%
(fma.f64 x y (-.f64 #s(literal 0 binary64) (*.f64 z y)))
97.2%
%3 = (* y y)
(approx (- (- (+ (* x y) %3) (* y z)) %3) (-.f64 (*.f64 x y) (*.f64 y z)))
52.5%
%3 = (* y y)
(approx (- (- (+ (* x y) %3) (* y z)) %3) (*.f64 #s(literal -1 binary64) (*.f64 y z)))
Compiler

Compiled 4 to 14 computations (-250.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series14.0ms (1.2%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
082348
Stop Event
iter-limit
Counts
16 → 24
Calls
Call 1
Inputs
%2 = (*.f64 x y)
%4 = (*.f64 y z)
%7 = (*.f64 #s(literal -1 binary64) %4)
%9 = (* y y)
%13 = (- (- (+ (* x y) %9) (* y z)) %9)
%15 = (-.f64 %2 %4)
%17 = (-.f64 x z)
%18 = (*.f64 z y)
%19 = (-.f64 #s(literal 0 binary64) %18)
x
y
%2
z
%4
#s(literal 0 binary64)
#s(literal -1 binary64)
%7
(approx %13 %7)
%15
(approx %13 %15)
%17
%18
%19
(fma.f64 y %17 #s(literal 0 binary64))
(fma.f64 x y %19)
Outputs
%5 = (* x y)
%6 = (*.f64 x y)
%8 = (* y y)
%11 = (* y z)
%13 = (- (- (+ %5 %8) %11) %8)
%15 = (*.f64 y z)
%20 = (- x z)
%21 = (*.f64 #s(literal -1 binary64) z)
%23 = (-.f64 x z)
%27 = (+ (* y %20) 0)
%30 = (/.f64 %15 x)
%36 = (/.f64 z x)
%61 = (/.f64 %6 z)
%65 = (/.f64 x z)
%72 = (*.f64 #s(literal -1 binary64) %61)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 %6)
(approx %13 (*.f64 #s(literal -1 binary64) %15))
(approx %13 (-.f64 %6 %15))
(approx %20 %21)
(approx %20 %23)
(approx %27 (fma.f64 #s(literal -1 binary64) %15 %6))
(approx %13 (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) %30))))
(approx %20 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) %36))))
(approx %13 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y %30))))
(approx %20 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %36 #s(literal 1 binary64)))))
(approx y y)
(approx %11 %15)
(approx %13 (*.f64 y %23))
(approx %13 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) x) %21))))
(approx z z)
(approx %20 (+.f64 x %21))
(approx %13 (*.f64 z (-.f64 %61 y)))
(approx %20 (*.f64 z (-.f64 %65 #s(literal 1 binary64))))
(approx %27 (*.f64 z (fma.f64 #s(literal -1 binary64) y %61)))
(approx %13 (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 %72 (*.f64 #s(literal -1 binary64) y)))))
(approx %20 (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) %65)))))
(approx %27 (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 y %72))))
Calls

9 calls:

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

rewrite89.0ms (7.6%)

Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02292
03385
111773
234669
3127069
0410369
0428569
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
16 → 726
Calls
Call 1
Inputs
%2 = (*.f64 x y)
%4 = (*.f64 y z)
%7 = (*.f64 #s(literal -1 binary64) %4)
%9 = (* y y)
%13 = (- (- (+ (* x y) %9) (* y z)) %9)
%15 = (-.f64 %2 %4)
%17 = (-.f64 x z)
%18 = (*.f64 z y)
%19 = (-.f64 #s(literal 0 binary64) %18)
x
y
%2
z
%4
#s(literal 0 binary64)
#s(literal -1 binary64)
%7
(approx %13 %7)
%15
(approx %13 %15)
%17
%18
%19
(fma.f64 y %17 #s(literal 0 binary64))
(fma.f64 x y %19)
Outputs
%2 = (*.f64 y x)
%5 = (fma.f64 %2 #s(literal 2 binary64) #s(literal 0 binary64))
%13 = (fma.f64 y x #s(literal -1 binary64))
%14 = (E.f64 )
%29 = (fma.f64 y x #s(literal 1 binary64))
%48 = (*.f64 %5 #s(literal -2 binary64))
%52 = (*.f64 %5 #s(literal 4 binary64))
%56 = (*.f64 %5 #s(literal 1 binary64))
%59 = (*.f64 %5 #s(literal 2 binary64))
%77 = (*.f64 #s(literal 2 binary64) %5)
%105 = (-.f64 #s(literal 1 binary64) %2)
%108 = (neg.f64 y)
%109 = (*.f64 %108 x)
%115 = (*.f64 %2 #s(literal 2 binary64))
%116 = (/.f64 %115 #s(literal 2 binary64))
%129 = (neg.f64 z)
%130 = (*.f64 #s(literal -1 binary64) %129)
%131 = (*.f64 %130 y)
%132 = (*.f64 z y)
%133 = (fma.f64 %132 #s(literal 2 binary64) #s(literal 0 binary64))
%134 = (*.f64 %133 #s(literal 1/2 binary64))
%135 = (*.f64 %132 #s(literal 2 binary64))
%136 = (*.f64 %135 #s(literal 1/2 binary64))
%137 = (*.f64 %129 %108)
%138 = (*.f64 %129 #s(literal 1 binary64))
%139 = (*.f64 %108 %138)
%140 = (*.f64 %108 %129)
%141 = (*.f64 #s(literal 1 binary64) %132)
%142 = (*.f64 #s(literal 1/2 binary64) %132)
%143 = (*.f64 #s(literal 2 binary64) %142)
%144 = (neg.f64 %132)
%145 = (*.f64 %144 #s(literal -1 binary64))
%146 = (*.f64 #s(literal -1 binary64) %144)
%147 = (*.f64 %132 #s(literal 1 binary64))
%148 = (*.f64 y %130)
%149 = (*.f64 z #s(literal 1 binary64))
%150 = (*.f64 y %149)
%151 = (*.f64 %129 #s(literal -1 binary64))
%152 = (*.f64 y %151)
%153 = (*.f64 y z)
%154 = (pow.f64 %132 #s(literal 1 binary64))
%155 = (fma.f64 z y #s(literal -1 binary64))
%157 = (/.f64 (fma.f64 %155 %14 %14) %14)
%159 = (/.f64 (fma.f64 %155 #s(literal 1 binary64) #s(literal 1 binary64)) #s(literal 1 binary64))
%161 = (/.f64 (fma.f64 %155 #s(literal 2 binary64) #s(literal 2 binary64)) #s(literal 2 binary64))
%163 = (/.f64 (fma.f64 %132 #s(literal -2 binary64) #s(literal 0 binary64)) #s(literal -2 binary64))
%165 = (/.f64 (fma.f64 %132 #s(literal 4 binary64) #s(literal 0 binary64)) #s(literal 4 binary64))
%166 = (fma.f64 z y #s(literal 1 binary64))
%169 = (/.f64 (-.f64 (*.f64 %166 %14) %14) %14)
%172 = (/.f64 (-.f64 (*.f64 %166 #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))
%175 = (/.f64 (-.f64 (*.f64 %166 #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 2 binary64))
%178 = (/.f64 (-.f64 (*.f64 %132 #s(literal -2 binary64)) #s(literal 0 binary64)) #s(literal -2 binary64))
%181 = (/.f64 (-.f64 (*.f64 %132 #s(literal 4 binary64)) #s(literal 0 binary64)) #s(literal 4 binary64))
%182 = (*.f64 %133 #s(literal -2 binary64))
%184 = (/.f64 (+.f64 #s(literal 0 binary64) %182) #s(literal -4 binary64))
%185 = (*.f64 %133 #s(literal 4 binary64))
%187 = (/.f64 (+.f64 #s(literal 0 binary64) %185) #s(literal 8 binary64))
%188 = (*.f64 %133 #s(literal 1 binary64))
%190 = (/.f64 (+.f64 #s(literal 0 binary64) %188) #s(literal 2 binary64))
%191 = (*.f64 %133 #s(literal 2 binary64))
%193 = (/.f64 (+.f64 #s(literal 0 binary64) %191) #s(literal 4 binary64))
%195 = (/.f64 (+.f64 #s(literal 0 binary64) %133) #s(literal 2 binary64))
%197 = (/.f64 (+.f64 %133 #s(literal 0 binary64)) #s(literal 2 binary64))
%198 = (fma.f64 %144 #s(literal 2 binary64) #s(literal 0 binary64))
%200 = (/.f64 (-.f64 #s(literal 0 binary64) %198) #s(literal 2 binary64))
%202 = (/.f64 (-.f64 %133 #s(literal 0 binary64)) #s(literal 2 binary64))
%203 = (*.f64 #s(literal -2 binary64) %133)
%205 = (/.f64 (+.f64 #s(literal 0 binary64) %203) #s(literal -4 binary64))
%206 = (*.f64 #s(literal 4 binary64) %133)
%208 = (/.f64 (+.f64 #s(literal 0 binary64) %206) #s(literal 8 binary64))
%209 = (*.f64 #s(literal 1 binary64) %133)
%211 = (/.f64 (+.f64 #s(literal 0 binary64) %209) #s(literal 2 binary64))
%212 = (*.f64 #s(literal 2 binary64) %133)
%214 = (/.f64 (+.f64 #s(literal 0 binary64) %212) #s(literal 4 binary64))
%216 = (/.f64 (fma.f64 %133 #s(literal -2 binary64) #s(literal 0 binary64)) #s(literal -4 binary64))
%218 = (/.f64 (fma.f64 %133 #s(literal 4 binary64) #s(literal 0 binary64)) #s(literal 8 binary64))
%220 = (/.f64 (fma.f64 %133 #s(literal 1 binary64) #s(literal 0 binary64)) #s(literal 2 binary64))
%222 = (/.f64 (fma.f64 %133 #s(literal 2 binary64) #s(literal 0 binary64)) #s(literal 4 binary64))
%223 = (*.f64 #s(literal -2 binary64) %198)
%225 = (/.f64 (-.f64 #s(literal 0 binary64) %223) #s(literal -4 binary64))
%226 = (*.f64 #s(literal 4 binary64) %198)
%228 = (/.f64 (-.f64 #s(literal 0 binary64) %226) #s(literal 8 binary64))
%229 = (*.f64 #s(literal 1 binary64) %198)
%231 = (/.f64 (-.f64 #s(literal 0 binary64) %229) #s(literal 2 binary64))
%232 = (*.f64 #s(literal 2 binary64) %198)
%234 = (/.f64 (-.f64 #s(literal 0 binary64) %232) #s(literal 4 binary64))
%236 = (/.f64 (-.f64 %182 #s(literal 0 binary64)) #s(literal -4 binary64))
%238 = (/.f64 (-.f64 %185 #s(literal 0 binary64)) #s(literal 8 binary64))
%240 = (/.f64 (-.f64 %188 #s(literal 0 binary64)) #s(literal 2 binary64))
%242 = (/.f64 (-.f64 %191 #s(literal 0 binary64)) #s(literal 4 binary64))
%244 = (*.f64 %14 #s(literal 2 binary64))
%245 = (/.f64 (*.f64 %14 %133) %244)
%246 = (/.f64 %209 #s(literal 2 binary64))
%247 = (/.f64 %212 #s(literal 4 binary64))
%249 = (*.f64 #s(literal 2 binary64) %14)
%250 = (/.f64 (*.f64 %133 %14) %249)
%251 = (/.f64 %188 #s(literal 2 binary64))
%252 = (/.f64 %191 #s(literal 4 binary64))
%254 = (/.f64 (neg.f64 %133) #s(literal -2 binary64))
%255 = (/.f64 %133 #s(literal 2 binary64))
%256 = (/.f64 %135 #s(literal 2 binary64))
%258 = (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %133))
%260 = (/.f64 #s(literal 1 binary64) (pow.f64 %132 #s(literal -1 binary64)))
%261 = (/.f64 %132 #s(literal 1 binary64))
%263 = (neg.f64 (-.f64 #s(literal 1 binary64) %166))
%264 = (-.f64 #s(literal 1 binary64) %132)
%266 = (neg.f64 (-.f64 %264 #s(literal 1 binary64)))
%267 = (neg.f64 %144)
%268 = (fma.f64 %130 y #s(literal 0 binary64))
%269 = (fma.f64 %133 #s(literal 1/2 binary64) #s(literal 0 binary64))
%270 = (fma.f64 %135 #s(literal 1/2 binary64) #s(literal 0 binary64))
%271 = (fma.f64 %129 %108 #s(literal 0 binary64))
%272 = (fma.f64 %108 %138 #s(literal 0 binary64))
%273 = (fma.f64 %108 %129 #s(literal 0 binary64))
%274 = (fma.f64 #s(literal 1 binary64) %132 #s(literal 0 binary64))
%275 = (fma.f64 #s(literal 2 binary64) %142 #s(literal 0 binary64))
%276 = (fma.f64 %144 #s(literal -1 binary64) #s(literal 0 binary64))
%277 = (fma.f64 #s(literal -1 binary64) %144 #s(literal 0 binary64))
%278 = (fma.f64 %132 #s(literal 1 binary64) #s(literal 0 binary64))
%279 = (fma.f64 z y #s(literal 0 binary64))
%280 = (fma.f64 y %130 #s(literal 0 binary64))
%281 = (fma.f64 y %149 #s(literal 0 binary64))
%282 = (fma.f64 y %151 #s(literal 0 binary64))
%283 = (fma.f64 y z #s(literal 0 binary64))
%284 = (-.f64 %166 #s(literal 1 binary64))
%285 = (-.f64 %155 #s(literal -1 binary64))
%286 = (-.f64 #s(literal 1 binary64) %264)
%287 = (-.f64 #s(literal 0 binary64) %144)
%288 = (-.f64 %132 #s(literal 0 binary64))
%289 = (+.f64 %166 #s(literal -1 binary64))
%290 = (+.f64 %155 #s(literal 1 binary64))
%291 = (+.f64 #s(literal 0 binary64) %132)
%292 = (+.f64 %132 #s(literal 0 binary64))
%293 = (*.f64 %198 #s(literal 1/2 binary64))
%294 = (*.f64 %129 y)
%295 = (*.f64 %108 %151)
%296 = (*.f64 %108 z)
%297 = (*.f64 #s(literal 1 binary64) %144)
%298 = (*.f64 %144 #s(literal 1 binary64))
%299 = (*.f64 #s(literal -1 binary64) %132)
%300 = (*.f64 %132 #s(literal -1 binary64))
%301 = (*.f64 z %108)
%302 = (*.f64 y %129)
%303 = (pow.f64 %144 #s(literal 1 binary64))
%305 = (/.f64 (fma.f64 %144 #s(literal -2 binary64) #s(literal 0 binary64)) #s(literal -2 binary64))
%307 = (/.f64 (fma.f64 %144 #s(literal 4 binary64) #s(literal 0 binary64)) #s(literal 4 binary64))
%308 = (fma.f64 %129 y #s(literal 1 binary64))
%311 = (/.f64 (-.f64 (*.f64 %308 %14) %14) %14)
%314 = (/.f64 (-.f64 (*.f64 %308 #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))
%317 = (/.f64 (-.f64 (*.f64 %308 #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 2 binary64))
%320 = (/.f64 (-.f64 (*.f64 %144 #s(literal -2 binary64)) #s(literal 0 binary64)) #s(literal -2 binary64))
%323 = (/.f64 (-.f64 (*.f64 %144 #s(literal 4 binary64)) #s(literal 0 binary64)) #s(literal 4 binary64))
%324 = (*.f64 %198 #s(literal -2 binary64))
%326 = (/.f64 (+.f64 #s(literal 0 binary64) %324) #s(literal -4 binary64))
%327 = (*.f64 %198 #s(literal 4 binary64))
%329 = (/.f64 (+.f64 #s(literal 0 binary64) %327) #s(literal 8 binary64))
%330 = (*.f64 %198 #s(literal 1 binary64))
%332 = (/.f64 (+.f64 #s(literal 0 binary64) %330) #s(literal 2 binary64))
%333 = (*.f64 %198 #s(literal 2 binary64))
%335 = (/.f64 (+.f64 #s(literal 0 binary64) %333) #s(literal 4 binary64))
%337 = (/.f64 (+.f64 %198 #s(literal 0 binary64)) #s(literal 2 binary64))
%339 = (/.f64 (+.f64 #s(literal 0 binary64) %198) #s(literal 2 binary64))
%341 = (/.f64 (-.f64 %198 #s(literal 0 binary64)) #s(literal 2 binary64))
%343 = (/.f64 (-.f64 #s(literal 0 binary64) %133) #s(literal 2 binary64))
%345 = (/.f64 (fma.f64 %198 #s(literal -2 binary64) #s(literal 0 binary64)) #s(literal -4 binary64))
%347 = (/.f64 (fma.f64 %198 #s(literal 4 binary64) #s(literal 0 binary64)) #s(literal 8 binary64))
%349 = (/.f64 (fma.f64 %198 #s(literal 1 binary64) #s(literal 0 binary64)) #s(literal 2 binary64))
%351 = (/.f64 (fma.f64 %198 #s(literal 2 binary64) #s(literal 0 binary64)) #s(literal 4 binary64))
%353 = (/.f64 (+.f64 #s(literal 0 binary64) %223) #s(literal -4 binary64))
%355 = (/.f64 (+.f64 #s(literal 0 binary64) %226) #s(literal 8 binary64))
%357 = (/.f64 (+.f64 #s(literal 0 binary64) %229) #s(literal 2 binary64))
%359 = (/.f64 (+.f64 #s(literal 0 binary64) %232) #s(literal 4 binary64))
%361 = (/.f64 (-.f64 %324 #s(literal 0 binary64)) #s(literal -4 binary64))
%363 = (/.f64 (-.f64 %327 #s(literal 0 binary64)) #s(literal 8 binary64))
%365 = (/.f64 (-.f64 %330 #s(literal 0 binary64)) #s(literal 2 binary64))
%367 = (/.f64 (-.f64 %333 #s(literal 0 binary64)) #s(literal 4 binary64))
%369 = (/.f64 (-.f64 #s(literal 0 binary64) %203) #s(literal -4 binary64))
%371 = (/.f64 (-.f64 #s(literal 0 binary64) %206) #s(literal 8 binary64))
%373 = (/.f64 (-.f64 #s(literal 0 binary64) %209) #s(literal 2 binary64))
%375 = (/.f64 (-.f64 #s(literal 0 binary64) %212) #s(literal 4 binary64))
%377 = (/.f64 (*.f64 %14 %198) %244)
%378 = (/.f64 %229 #s(literal 2 binary64))
%379 = (/.f64 %232 #s(literal 4 binary64))
%381 = (/.f64 (*.f64 %198 %14) %249)
%382 = (/.f64 %330 #s(literal 2 binary64))
%383 = (/.f64 %333 #s(literal 4 binary64))
%385 = (/.f64 (neg.f64 %198) #s(literal -2 binary64))
%386 = (/.f64 %198 #s(literal 2 binary64))
%388 = (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %198))
%390 = (/.f64 #s(literal 1 binary64) (pow.f64 %144 #s(literal -1 binary64)))
%391 = (/.f64 %144 #s(literal 1 binary64))
%393 = (neg.f64 (-.f64 #s(literal 1 binary64) %308))
%394 = (+.f64 #s(literal 1 binary64) %132)
%396 = (neg.f64 (-.f64 %394 #s(literal 1 binary64)))
%397 = (fma.f64 %198 #s(literal 1/2 binary64) #s(literal 0 binary64))
%398 = (fma.f64 %129 y #s(literal 0 binary64))
%399 = (fma.f64 %108 %151 #s(literal 0 binary64))
%400 = (fma.f64 %108 z #s(literal 0 binary64))
%401 = (fma.f64 #s(literal 1 binary64) %144 #s(literal 0 binary64))
%402 = (fma.f64 %144 #s(literal 1 binary64) #s(literal 0 binary64))
%403 = (fma.f64 #s(literal -1 binary64) %132 #s(literal 0 binary64))
%404 = (fma.f64 %132 #s(literal -1 binary64) #s(literal 0 binary64))
%405 = (fma.f64 z %108 #s(literal 0 binary64))
%406 = (fma.f64 y %129 #s(literal 0 binary64))
%407 = (-.f64 %308 #s(literal 1 binary64))
%408 = (-.f64 #s(literal 1 binary64) %394)
%409 = (-.f64 %144 #s(literal 0 binary64))
%410 = (-.f64 #s(literal 0 binary64) %132)
%413 = (+.f64 (/.f64 (*.f64 %144 #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 0 binary64))
%414 = (+.f64 %308 #s(literal -1 binary64))
%415 = (+.f64 %144 #s(literal 0 binary64))
%416 = (+.f64 #s(literal 0 binary64) %144)
%420 = (* y (- (- (+ y x) z) y))
%421 = (approx %420 %144)
%426 = (-.f64 x z)
%427 = (*.f64 %426 y)
%428 = (fma.f64 %427 #s(literal 2 binary64) #s(literal 0 binary64))
%429 = (*.f64 %428 #s(literal 1/2 binary64))
%430 = (-.f64 z x)
%431 = (*.f64 %430 %108)
%432 = (*.f64 %108 %430)
%433 = (*.f64 #s(literal 1 binary64) %427)
%434 = (*.f64 y %426)
%435 = (pow.f64 %427 #s(literal 1 binary64))
%436 = (fma.f64 %426 y #s(literal -1 binary64))
%438 = (/.f64 (fma.f64 %436 %14 %14) %14)
%440 = (/.f64 (fma.f64 %436 #s(literal 1 binary64) #s(literal 1 binary64)) #s(literal 1 binary64))
%442 = (/.f64 (fma.f64 %436 #s(literal 2 binary64) #s(literal 2 binary64)) #s(literal 2 binary64))
%444 = (/.f64 (fma.f64 %427 #s(literal -2 binary64) #s(literal 0 binary64)) #s(literal -2 binary64))
%446 = (/.f64 (fma.f64 %427 #s(literal 4 binary64) #s(literal 0 binary64)) #s(literal 4 binary64))
%448 = (/.f64 (fma.f64 %427 #s(literal 1 binary64) #s(literal 0 binary64)) #s(literal 1 binary64))
%450 = (/.f64 (fma.f64 %144 #s(literal 2 binary64) %5) #s(literal 2 binary64))
%452 = (/.f64 (fma.f64 %2 #s(literal 2 binary64) %198) #s(literal 2 binary64))
%453 = (fma.f64 %426 y #s(literal 1 binary64))
%456 = (/.f64 (-.f64 (*.f64 %453 %14) %14) %14)
%459 = (/.f64 (-.f64 (*.f64 %453 #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))
%462 = (/.f64 (-.f64 (*.f64 %453 #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 2 binary64))
%465 = (/.f64 (-.f64 (*.f64 %427 #s(literal -2 binary64)) #s(literal 0 binary64)) #s(literal -2 binary64))
%468 = (/.f64 (-.f64 (*.f64 %427 #s(literal 4 binary64)) #s(literal 0 binary64)) #s(literal 4 binary64))
%471 = (/.f64 (-.f64 (*.f64 %427 #s(literal 1 binary64)) #s(literal 0 binary64)) #s(literal 1 binary64))
%473 = (/.f64 (-.f64 %115 %133) #s(literal 2 binary64))
%475 = (/.f64 (fma.f64 %198 #s(literal 2 binary64) %59) #s(literal 4 binary64))
%476 = (*.f64 %428 #s(literal -2 binary64))
%478 = (/.f64 (+.f64 #s(literal 0 binary64) %476) #s(literal -4 binary64))
%479 = (*.f64 %428 #s(literal 4 binary64))
%481 = (/.f64 (+.f64 #s(literal 0 binary64) %479) #s(literal 8 binary64))
%482 = (*.f64 %428 #s(literal 1 binary64))
%484 = (/.f64 (+.f64 #s(literal 0 binary64) %482) #s(literal 2 binary64))
%485 = (*.f64 %428 #s(literal 2 binary64))
%487 = (/.f64 (+.f64 #s(literal 0 binary64) %485) #s(literal 4 binary64))
%489 = (/.f64 (fma.f64 %5 #s(literal 2 binary64) %333) #s(literal 4 binary64))
%491 = (/.f64 (+.f64 %428 #s(literal 0 binary64)) #s(literal 2 binary64))
%493 = (/.f64 (+.f64 %198 %5) #s(literal 2 binary64))
%495 = (/.f64 (+.f64 #s(literal 0 binary64) %428) #s(literal 2 binary64))
%497 = (/.f64 (+.f64 %5 %198) #s(literal 2 binary64))
%499 = (/.f64 (-.f64 %428 #s(literal 0 binary64)) #s(literal 2 binary64))
%501 = (/.f64 (-.f64 %5 %133) #s(literal 2 binary64))
%503 = (/.f64 (fma.f64 %428 #s(literal -2 binary64) #s(literal 0 binary64)) #s(literal -4 binary64))
%505 = (/.f64 (fma.f64 %428 #s(literal 4 binary64) #s(literal 0 binary64)) #s(literal 8 binary64))
%507 = (/.f64 (fma.f64 %428 #s(literal 1 binary64) #s(literal 0 binary64)) #s(literal 2 binary64))
%509 = (/.f64 (fma.f64 %428 #s(literal 2 binary64) #s(literal 0 binary64)) #s(literal 4 binary64))
%511 = (/.f64 (fma.f64 %198 #s(literal 2 binary64) %77) #s(literal 4 binary64))
%514 = (/.f64 (+.f64 #s(literal 0 binary64) (*.f64 #s(literal -2 binary64) %428)) #s(literal -4 binary64))
%517 = (/.f64 (+.f64 #s(literal 0 binary64) (*.f64 #s(literal 4 binary64) %428)) #s(literal 8 binary64))
%520 = (/.f64 (+.f64 #s(literal 0 binary64) (*.f64 #s(literal 1 binary64) %428)) #s(literal 2 binary64))
%523 = (/.f64 (+.f64 #s(literal 0 binary64) (*.f64 #s(literal 2 binary64) %428)) #s(literal 4 binary64))
%525 = (/.f64 (fma.f64 %5 #s(literal 2 binary64) %232) #s(literal 4 binary64))
%527 = (/.f64 (-.f64 %476 #s(literal 0 binary64)) #s(literal -4 binary64))
%529 = (/.f64 (-.f64 %479 #s(literal 0 binary64)) #s(literal 8 binary64))
%531 = (/.f64 (-.f64 %482 #s(literal 0 binary64)) #s(literal 2 binary64))
%533 = (/.f64 (-.f64 %485 #s(literal 0 binary64)) #s(literal 4 binary64))
%535 = (/.f64 (-.f64 %59 %212) #s(literal 4 binary64))
%537 = (/.f64 (neg.f64 %428) #s(literal -2 binary64))
%538 = (/.f64 %428 #s(literal 2 binary64))
%540 = (/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %428))
%542 = (/.f64 #s(literal 1 binary64) (pow.f64 %427 #s(literal -1 binary64)))
%544 = (neg.f64 (-.f64 #s(literal 1 binary64) %453))
%545 = (-.f64 #s(literal 1 binary64) %427)
%547 = (neg.f64 (-.f64 %545 #s(literal 1 binary64)))
%548 = (*.f64 %430 y)
%549 = (neg.f64 %548)
%550 = (neg.f64 x)
%551 = (neg.f64 %550)
%552 = (*.f64 %551 y)
%553 = (fma.f64 %198 #s(literal 1/2 binary64) %552)
%554 = (fma.f64 %198 #s(literal 1/2 binary64) %2)
%555 = (fma.f64 %5 #s(literal 1/2 binary64) %144)
%556 = (fma.f64 %428 #s(literal 1/2 binary64) #s(literal 0 binary64))
%557 = (fma.f64 %129 y %552)
%558 = (fma.f64 %129 y %2)
%559 = (fma.f64 %430 %108 #s(literal 0 binary64))
%560 = (fma.f64 %108 %151 %552)
%561 = (fma.f64 %108 %151 %2)
%562 = (fma.f64 %108 %430 #s(literal 0 binary64))
%563 = (fma.f64 %108 z %552)
%564 = (fma.f64 %108 z %2)
%565 = (fma.f64 #s(literal 1 binary64) %427 #s(literal 0 binary64))
%566 = (fma.f64 #s(literal 1 binary64) %144 %552)
%567 = (fma.f64 #s(literal 1 binary64) %144 %2)
%568 = (fma.f64 #s(literal 1 binary64) %2 %144)
%569 = (fma.f64 %144 #s(literal 1 binary64) %552)
%570 = (fma.f64 %144 #s(literal 1 binary64) %2)
%571 = (fma.f64 %426 y #s(literal 0 binary64))
%572 = (fma.f64 #s(literal -1 binary64) %132 %552)
%573 = (fma.f64 #s(literal -1 binary64) %132 %2)
%574 = (fma.f64 %132 #s(literal -1 binary64) %552)
%575 = (fma.f64 %132 #s(literal -1 binary64) %2)
%576 = (fma.f64 z %108 %552)
%577 = (fma.f64 z %108 %2)
%578 = (fma.f64 y %129 %552)
%579 = (fma.f64 y %129 %2)
%580 = (fma.f64 y %426 #s(literal 0 binary64))
%581 = (fma.f64 y x %144)
%582 = (fma.f64 x y %144)
%584 = (/.f64 (*.f64 %427 #s(literal 2 binary64)) #s(literal 2 binary64))
%585 = (-.f64 %584 #s(literal 0 binary64))
%586 = (-.f64 %453 #s(literal 1 binary64))
%587 = (-.f64 %436 #s(literal -1 binary64))
%588 = (-.f64 #s(literal 1 binary64) %545)
%589 = (-.f64 %427 #s(literal 0 binary64))
%591 = (-.f64 %144 (neg.f64 %552))
%592 = (-.f64 %144 %109)
%593 = (-.f64 #s(literal 0 binary64) %548)
%594 = (-.f64 %2 %132)
%595 = (+.f64 %584 #s(literal 0 binary64))
%596 = (+.f64 %453 #s(literal -1 binary64))
%597 = (+.f64 %436 #s(literal 1 binary64))
%598 = (+.f64 %427 #s(literal 0 binary64))
%599 = (+.f64 %144 %552)
%600 = (+.f64 %144 %2)
%601 = (+.f64 #s(literal 0 binary64) %427)
%602 = (+.f64 %2 %144)
%603 = (approx %420 %427)
x
y
(*.f64 %5 #s(literal 1/2 binary64))
(*.f64 #s(literal 1 binary64) %2)
%2
(*.f64 x y)
(pow.f64 %2 #s(literal 1 binary64))
(/.f64 (fma.f64 %13 %14 %14) %14)
(/.f64 (fma.f64 %13 #s(literal 1 binary64) #s(literal 1 binary64)) #s(literal 1 binary64))
(/.f64 (fma.f64 %13 #s(literal 2 binary64) #s(literal 2 binary64)) #s(literal 2 binary64))
(/.f64 (fma.f64 %2 #s(literal -2 binary64) #s(literal 0 binary64)) #s(literal -2 binary64))
(/.f64 (fma.f64 %2 #s(literal 4 binary64) #s(literal 0 binary64)) #s(literal 4 binary64))
(/.f64 (fma.f64 %2 #s(literal 1 binary64) #s(literal 0 binary64)) #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 %29 %14) %14) %14)
(/.f64 (-.f64 (*.f64 %29 #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 %29 #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 %2 #s(literal -2 binary64)) #s(literal 0 binary64)) #s(literal -2 binary64))
(/.f64 (-.f64 (*.f64 %2 #s(literal 4 binary64)) #s(literal 0 binary64)) #s(literal 4 binary64))
(/.f64 (-.f64 (*.f64 %2 #s(literal 1 binary64)) #s(literal 0 binary64)) #s(literal 1 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) %48) #s(literal -4 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) %52) #s(literal 8 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) %56) #s(literal 2 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) %59) #s(literal 4 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) %5) #s(literal 2 binary64))
(/.f64 (+.f64 %5 #s(literal 0 binary64)) #s(literal 2 binary64))
(/.f64 (-.f64 %5 #s(literal 0 binary64)) #s(literal 2 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) (*.f64 #s(literal -2 binary64) %5)) #s(literal -4 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) (*.f64 #s(literal 4 binary64) %5)) #s(literal 8 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) (*.f64 #s(literal 1 binary64) %5)) #s(literal 2 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) %77) #s(literal 4 binary64))
(/.f64 (fma.f64 %5 #s(literal -2 binary64) #s(literal 0 binary64)) #s(literal -4 binary64))
(/.f64 (fma.f64 %5 #s(literal 4 binary64) #s(literal 0 binary64)) #s(literal 8 binary64))
(/.f64 (fma.f64 %5 #s(literal 1 binary64) #s(literal 0 binary64)) #s(literal 2 binary64))
(/.f64 (fma.f64 %5 #s(literal 2 binary64) #s(literal 0 binary64)) #s(literal 4 binary64))
(/.f64 (-.f64 %48 #s(literal 0 binary64)) #s(literal -4 binary64))
(/.f64 (-.f64 %52 #s(literal 0 binary64)) #s(literal 8 binary64))
(/.f64 (-.f64 %56 #s(literal 0 binary64)) #s(literal 2 binary64))
(/.f64 (-.f64 %59 #s(literal 0 binary64)) #s(literal 4 binary64))
(/.f64 (neg.f64 %5) #s(literal -2 binary64))
(/.f64 %5 #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 2 binary64) %5))
(/.f64 #s(literal 1 binary64) (pow.f64 %2 #s(literal -1 binary64)))
(neg.f64 (-.f64 #s(literal 1 binary64) %29))
(neg.f64 (-.f64 %105 #s(literal 1 binary64)))
(neg.f64 %109)
(fma.f64 %5 #s(literal 1/2 binary64) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) %2 #s(literal 0 binary64))
(fma.f64 y x #s(literal 0 binary64))
(fma.f64 x y #s(literal 0 binary64))
(-.f64 %116 #s(literal 0 binary64))
(-.f64 %29 #s(literal 1 binary64))
(-.f64 %13 #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) %105)
(-.f64 #s(literal 0 binary64) %109)
(-.f64 %2 #s(literal 0 binary64))
(+.f64 %116 #s(literal 0 binary64))
(+.f64 %29 #s(literal -1 binary64))
(+.f64 %13 #s(literal 1 binary64))
(+.f64 #s(literal 0 binary64) %2)
(+.f64 %2 #s(literal 0 binary64))
z
%131
%134
%136
%137
%139
%140
%141
%143
%145
%146
%147
%132
%148
%150
%152
%153
%154
%157
%159
%161
%163
%165
%169
%172
%175
%178
%181
%184
%187
%190
%193
%195
%197
%200
%202
%205
%208
%211
%214
%216
%218
%220
%222
%225
%228
%231
%234
%236
%238
%240
%242
%245
%246
%247
%250
%251
%252
%254
%255
%256
%258
%260
%261
%263
%266
%267
%268
%269
%270
%271
%272
%273
%274
%275
%276
%277
%278
%279
%280
%281
%282
%283
%284
%285
%286
%287
%288
%289
%290
%291
%292
#s(literal 0 binary64)
#s(literal -1 binary64)
%293
%294
%295
%296
%297
%298
%299
%300
%301
%302
%303
%305
%307
%311
%314
%317
%320
%323
%326
%329
%332
%335
%337
%339
%341
%343
%345
%347
%349
%351
%353
%355
%357
%359
%361
%363
%365
%367
%369
%371
%373
%375
%377
%378
%379
%381
%382
%383
%385
%386
%388
%390
%391
%393
%396
%144
%397
%398
%399
%400
%401
%402
%403
%404
%405
%406
%407
%408
%409
%410
%413
%414
%415
%416
(*.f64 #s(literal 1 binary64) %421)
(pow.f64 %421 #s(literal 1 binary64))
%421
(/.f64 #s(literal 1 binary64) (pow.f64 %421 #s(literal -1 binary64)))
%429
%431
%432
%433
%427
%434
%435
%438
%440
%442
%444
%446
%448
%450
%452
%456
%459
%462
%465
%468
%471
%473
%475
%478
%481
%484
%487
%489
%491
%493
%495
%497
%499
%501
%503
%505
%507
%509
%511
%514
%517
%520
%523
%525
%527
%529
%531
%533
%535
%537
%538
%540
%542
%544
%547
%549
%553
%554
%555
%556
%557
%558
%559
%560
%561
%562
%563
%564
%565
%566
%567
%568
%569
%570
%571
%572
%573
%574
%575
%576
%577
%578
%579
%580
%581
%582
%585
%586
%587
%588
%589
%591
%592
%593
%594
%595
%596
%597
%598
%599
%600
%601
%602
(*.f64 #s(literal 1 binary64) %603)
(pow.f64 %603 #s(literal 1 binary64))
%603
(/.f64 #s(literal 1 binary64) (pow.f64 %603 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %426)
(pow.f64 %426 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %426 #s(literal -1 binary64)))
(neg.f64 %430)
(fma.f64 #s(literal 1 binary64) %129 %551)
(fma.f64 #s(literal 1 binary64) %129 x)
(fma.f64 #s(literal -1 binary64) z %551)
(fma.f64 #s(literal -1 binary64) z x)
(fma.f64 z #s(literal -1 binary64) %551)
(fma.f64 z #s(literal -1 binary64) x)
(-.f64 %129 (neg.f64 %551))
(-.f64 %129 %550)
%426
(+.f64 %129 %551)
(+.f64 %129 x)
(+.f64 x %129)
%131
%134
%136
%137
%139
%140
%141
%143
%145
%146
%147
%132
%148
%150
%152
%153
%154
%157
%159
%161
%163
%165
%169
%172
%175
%178
%181
%184
%187
%190
%193
%195
%197
%200
%202
%205
%208
%211
%214
%216
%218
%220
%222
%225
%228
%231
%234
%236
%238
%240
%242
%245
%246
%247
%250
%251
%252
%254
%255
%256
%258
%260
%261
%263
%266
%267
%268
%269
%270
%271
%272
%273
%274
%275
%276
%277
%278
%279
%280
%281
%282
%283
%284
%285
%286
%287
%288
%289
%290
%291
%292
%293
%294
%295
%296
%297
%298
%299
%300
%301
%302
%303
%305
%307
%311
%314
%317
%320
%323
%326
%329
%332
%335
%337
%339
%341
%343
%345
%347
%349
%351
%353
%355
%357
%359
%361
%363
%365
%367
%369
%371
%373
%375
%377
%378
%379
%381
%382
%383
%385
%386
%388
%390
%391
%393
%396
%144
%397
%398
%399
%400
%401
%402
%403
%404
%405
%406
%407
%408
%409
%410
%413
%414
%415
%416
%429
%431
%432
%433
%427
%434
%435
%438
%440
%442
%444
%446
%448
%450
%452
%456
%459
%462
%465
%468
%471
%473
%475
%478
%481
%484
%487
%489
%491
%493
%495
%497
%499
%501
%503
%505
%507
%509
%511
%514
%517
%520
%523
%525
%527
%529
%531
%533
%535
%537
%538
%540
%542
%544
%547
%549
%553
%554
%555
%556
%557
%558
%559
%560
%561
%562
%563
%564
%565
%566
%567
%568
%569
%570
%571
%572
%573
%574
%575
%576
%577
%578
%579
%580
%581
%582
%585
%586
%587
%588
%589
%591
%592
%593
%594
%595
%596
%597
%598
%599
%600
%601
%602
%429
%431
%432
%433
%427
%434
%435
%438
%440
%442
%444
%446
%448
%450
%452
%456
%459
%462
%465
%468
%471
%473
%475
%478
%481
%484
%487
%489
%491
%493
%495
%497
%499
%501
%503
%505
%507
%509
%511
%514
%517
%520
%523
%525
%527
%529
%531
%533
%535
%537
%538
%540
%542
%544
%547
%549
%553
%554
%555
%556
%557
%558
%559
%560
%561
%562
%563
%564
%565
%566
%567
%568
%569
%570
%571
%572
%573
%574
%575
%576
%577
%578
%579
%580
%581
%582
%585
%586
%587
%588
%589
%591
%592
%593
%594
%595
%596
%597
%598
%599
%600
%601
%602

reconstruct57.0ms (4.9%)

Counts
750 → 129
Compiler

Compiled 750 to 662 computations (11.7% saved)

eval10.0ms (0.9%)

Compiler

Compiled 124 to 232 computations (-87.1% saved)

prune3.0ms (0.2%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1213124
Fresh000
Picked314
Done000
Total1244128
Accuracy
100.0%
Counts
128 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.8%
(fma.f64 x y (neg.f64 (*.f64 z y)))
100.0%
(*.f64 y (-.f64 x z))
97.2%
%3 = (* y y)
(approx (- (- (+ (* x y) %3) (* y z)) %3) (-.f64 (*.f64 x y) (*.f64 y z)))
52.5%
%3 = (* y y)
(approx (- (- (+ (* x y) %3) (* y z)) %3) (neg.f64 (*.f64 z y)))
Compiler

Compiled 4 to 11 computations (-175.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series12.0ms (1.1%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
080283
Stop Event
iter-limit
Counts
9 → 24
Calls
Call 1
Inputs
%3 = (-.f64 x z)
%5 = (*.f64 z y)
%6 = (neg.f64 %5)
%9 = (* y y)
x
y
z
%3
(*.f64 y %3)
%5
%6
(fma.f64 x y %6)
(approx (- (- (+ (* x y) %9) (* y z)) %9) %6)
Outputs
%5 = (- x z)
%7 = (*.f64 #s(literal -1 binary64) z)
%9 = (-.f64 x z)
%12 = (* y %5)
%13 = (*.f64 y z)
%16 = (*.f64 x y)
%20 = (* z y)
%22 = (+ (* x y) (neg %20))
%26 = (/.f64 z x)
%32 = (/.f64 %13 x)
%57 = (/.f64 x z)
%61 = (/.f64 %16 z)
%73 = (*.f64 #s(literal -1 binary64) %61)
(approx x #s(literal 0 binary64))
(approx x x)
(approx %5 %7)
(approx %5 %9)
(approx %12 (*.f64 #s(literal -1 binary64) %13))
(approx %12 (fma.f64 #s(literal -1 binary64) %13 %16))
(approx %22 (-.f64 %16 %13))
(approx %5 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) %26))))
(approx %12 %16)
(approx %12 (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) %32))))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 %26 #s(literal 1 binary64)))))
(approx %12 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y %32))))
(approx y y)
(approx %12 (*.f64 y %9))
(approx %20 %13)
(approx %22 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 (*.f64 #s(literal -1 binary64) x) %7))))
(approx z z)
(approx %5 (+.f64 x %7))
(approx %5 (*.f64 z (-.f64 %57 #s(literal 1 binary64))))
(approx %12 (*.f64 z (fma.f64 #s(literal -1 binary64) y %61)))
(approx %22 (*.f64 z (-.f64 %61 y)))
(approx %5 (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) %57)))))
(approx %12 (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 y %73))))
(approx %22 (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 %73 (*.f64 #s(literal -1 binary64) y)))))
Calls

9 calls:

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

rewrite74.0ms (6.4%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01545
02041
17839
224337
379235
4207635
0402735
0430334
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
9 → 76
Calls
Call 1
Inputs
%3 = (-.f64 x z)
%5 = (*.f64 z y)
%6 = (neg.f64 %5)
%9 = (* y y)
x
y
z
%3
(*.f64 y %3)
%5
%6
(fma.f64 x y %6)
(approx (- (- (+ (* x y) %9) (* y z)) %9) %6)
Outputs
%4 = (-.f64 x z)
%10 = (-.f64 z x)
%12 = (neg.f64 z)
%14 = (neg.f64 x)
%18 = (neg.f64 y)
%19 = (*.f64 %10 %18)
%20 = (*.f64 %18 %10)
%21 = (*.f64 %4 y)
%22 = (*.f64 #s(literal 1 binary64) %21)
%23 = (*.f64 y %4)
%24 = (pow.f64 %21 #s(literal 1 binary64))
%26 = (/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -1 binary64)))
%28 = (neg.f64 (*.f64 %10 y))
%29 = (*.f64 %12 y)
%30 = (fma.f64 %14 %18 %29)
%31 = (*.f64 y x)
%32 = (fma.f64 %12 y %31)
%33 = (fma.f64 %18 %14 %29)
%34 = (fma.f64 %18 z %31)
%35 = (fma.f64 #s(literal 1 binary64) %31 %29)
%36 = (fma.f64 #s(literal 1 binary64) %29 %31)
%37 = (fma.f64 z %18 %31)
%38 = (fma.f64 y %12 %31)
%39 = (fma.f64 y x %29)
%40 = (fma.f64 x y %29)
%41 = (*.f64 z y)
%42 = (-.f64 %31 %41)
%44 = (-.f64 %29 (*.f64 %18 x))
%45 = (+.f64 %31 %29)
%46 = (+.f64 %29 %31)
%67 = (approx (- 0 (* (- z x) y)) %29)
x
y
z
(*.f64 #s(literal 1 binary64) %4)
(pow.f64 %4 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %4 #s(literal -1 binary64)))
(neg.f64 %10)
(fma.f64 #s(literal 1 binary64) %12 x)
(-.f64 %12 %14)
%4
(+.f64 %12 x)
(+.f64 x %12)
%19
%20
%22
%21
%23
%24
%26
%28
%30
%32
%33
%34
%35
%36
%37
%38
%39
%40
%42
%44
%45
%46
(*.f64 %12 %18)
(*.f64 %18 %12)
(*.f64 #s(literal 1 binary64) %41)
%41
(*.f64 y z)
(pow.f64 %41 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %41 #s(literal -1 binary64)))
(neg.f64 %29)
%29
(*.f64 %18 z)
(*.f64 #s(literal 1 binary64) %29)
(*.f64 z %18)
(*.f64 y %12)
(pow.f64 %29 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %29 #s(literal -1 binary64)))
(neg.f64 %41)
%19
%20
%22
%21
%23
%24
%26
%28
%30
%32
%33
%34
%35
%36
%37
%38
%39
%40
%42
%44
%45
%46
(*.f64 #s(literal 1 binary64) %67)
(pow.f64 %67 #s(literal 1 binary64))
%67
(/.f64 #s(literal 1 binary64) (pow.f64 %67 #s(literal -1 binary64)))

reconstruct7.0ms (0.6%)

Counts
100 → 30
Compiler

Compiled 100 to 112 computations (-12.0% saved)

eval3.0ms (0.2%)

Compiler

Compiled 29 to 62 computations (-113.8% saved)

prune1.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New28129
Fresh000
Picked033
Done011
Total28533
Accuracy
100.0%
Counts
33 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.8%
(fma.f64 x y (neg.f64 (*.f64 z y)))
100.0%
(*.f64 y (-.f64 x z))
97.2%
%8 = (* y y)
(approx (- (- (+ (* x y) %8) (* y z)) %8) (-.f64 (*.f64 x y) (*.f64 y z)))
52.5%
%8 = (* y y)
(approx (- (- (+ (* x y) %8) (* y z)) %8) (neg.f64 (*.f64 z y)))
57.3%
(approx (* y (- x z)) (*.f64 x y))
Compiler

Compiled 5 to 11 computations (-120.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series7.0ms (0.6%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037122
Stop Event
iter-limit
Counts
4 → 11
Calls
Call 1
Inputs
%2 = (*.f64 x y)
x
y
%2
(approx (* y (- x z)) %2)
Outputs
%6 = (*.f64 x y)
%10 = (* y (- x z))
%12 = (*.f64 y z)
%17 = (/.f64 %12 x)
%30 = (/.f64 %6 z)
(approx x #s(literal 0 binary64))
(approx x x)
(approx (* x y) %6)
(approx %10 (*.f64 #s(literal -1 binary64) %12))
(approx %10 (fma.f64 #s(literal -1 binary64) %12 %6))
(approx %10 (*.f64 x (+.f64 y (*.f64 #s(literal -1 binary64) %17))))
(approx %10 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) y %17))))
(approx y y)
(approx %10 (*.f64 y (-.f64 x z)))
(approx %10 (*.f64 z (fma.f64 #s(literal -1 binary64) y %30)))
(approx %10 (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 y (*.f64 #s(literal -1 binary64) %30)))))
Calls

9 calls:

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

rewrite69.0ms (6.0%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0714
0814
12214
24514
39714
422014
564614
0405114
0418614
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
4 → 15
Calls
Call 1
Inputs
%2 = (*.f64 x y)
x
y
%2
(approx (* y (- x z)) %2)
Outputs
%3 = (neg.f64 y)
%4 = (*.f64 %3 x)
%6 = (neg.f64 x)
%10 = (*.f64 y x)
%20 = (approx (* (- x z) y) %10)
x
y
(*.f64 #s(literal -1 binary64) %4)
(*.f64 %3 %6)
(*.f64 %6 %3)
(*.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)
(*.f64 #s(literal 1 binary64) %20)
(pow.f64 %20 #s(literal 1 binary64))
%20
(/.f64 #s(literal 1 binary64) (pow.f64 %20 #s(literal -1 binary64)))

reconstruct2.0ms (0.2%)

Counts
26 → 12
Compiler

Compiled 26 to 42 computations (-61.5% saved)

eval1.0ms (0.1%)

Compiler

Compiled 11 to 25 computations (-127.3% saved)

prune4.0ms (0.3%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New10111
Fresh000
Picked011
Done044
Total10616
Accuracy
100.0%
Counts
16 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.8%
(fma.f64 x y (neg.f64 (*.f64 z y)))
100.0%
(*.f64 y (-.f64 x z))
97.2%
%12 = (* y y)
(approx (- (- (+ (* x y) %12) (* y z)) %12) (-.f64 (*.f64 x y) (*.f64 y z)))
52.5%
%12 = (* y y)
(approx (- (- (+ (* x y) %12) (* y z)) %12) (neg.f64 (*.f64 z y)))
8.3%
(approx (* y (- x z)) (*.f64 (approx x #s(literal 0 binary64)) y))
57.3%
(approx (* y (- x z)) (*.f64 x y))
Compiler

Compiled 6 to 13 computations (-116.7% saved)

regimes22.0ms (1.9%)

Accuracy

Total 10.7b remaining (27.9%)

Threshold costs 0.0b (0.0%)

10.7b60.6%
0.0b0%
0.0b0%

Counts
1 → 1
3 → 3
4 → 1
Calls
Call 1
Inputs
(approx (* y (- x z)) (*.f64 x y))
Outputs
(approx (* y (- x z)) (*.f64 x y))
Call 2
Inputs
%4 = (* y (- x z))
%12 = (* y y)
(approx %4 (*.f64 x y))
(approx %4 (*.f64 (approx x #s(literal 0 binary64)) y))
(approx (- (- (+ (* x y) %12) (* y z)) %12) (neg.f64 (*.f64 z y)))
Outputs
%3 = (* y y)
%11 = (approx (- (- (+ (* x y) %3) (* y z)) %3) (neg.f64 (*.f64 z y)))
%11
(approx (* y (- x z)) (*.f64 x y))
%11
Call 3
Inputs
%4 = (* y (- x z))
%12 = (* y y)
(approx %4 (*.f64 x y))
(approx %4 (*.f64 (approx x #s(literal 0 binary64)) y))
(approx (- (- (+ (* x y) %12) (* y z)) %12) (neg.f64 (*.f64 z y)))
(*.f64 y (-.f64 x z))
Outputs
(*.f64 y (-.f64 x z))
Calls

4 calls:

6.0ms
z
6.0ms
x
5.0ms
y
5.0ms
%3 = (*.f64 y y)
(-.f64 (-.f64 (+.f64 (*.f64 x y) %3) (*.f64 y z)) %3)
Results
AccuracySegmentsBranch
57.3%1
z
57.3%1
y
57.3%1
x
57.3%1
%32 = (*.f64 y y)
(-.f64 (-.f64 (+.f64 (*.f64 x y) %32) (*.f64 y z)) %32)
Compiler

Compiled 14 to 31 computations (-121.4% saved)

bsearch0.0ms (0.0%)

bsearch16.0ms (1.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
7.0ms
9.868168579949285e-48
1.4559526564674443e-40
6.0ms
-1.5998878487717716e-87
-4.685584211082289e-89
Samples
3.0ms164×0valid
2.0ms87×1valid
0.0ms2valid
Compiler

Compiled 22 to 25 computations (-13.6% saved)

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

bsearch0.0ms (0.0%)

derivations56.0ms (4.8%)

Stop Event
fuel
Compiler

Compiled 3 to 14 computations (-366.7% saved)

preprocess18.0ms (1.5%)

Compiler

Compiled 10 to 63 computations (-530.0% saved)

end0.0ms (0.0%)

gc241ms (20.8%)

Allocations
AllocatedPercentPhase
696.2 MiB48.1%sample
274.8 MiB19.0%rewrite
137.9 MiB9.5%series
111.9 MiB7.7%reconstruct
86.6 MiB6.0%preprocess
39.5 MiB2.7%regimes
34.0 MiB2.4%derivations
30.7 MiB2.1%eval
20.2 MiB1.4%bsearch
15.3 MiB1.1%prune
0.1 MiB0.0%analyze
0.0 MiB0.0%start
0.0 MiB0.0%end
1 447.2 MiB100.0%total

Profiling

Loading profile data...