Diagrams.TwoD.Apollonian:initialConfig from diagrams-contrib-1.3.0.5, B

Time bar (total: 1.7s)

start0.0ms (0.0%)

analyze98.0ms (5.8%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0.0%0.0%99.9%0.1%0.0%0.0%0.0%0
0.0%0.0%99.9%0.1%0.0%0.0%0.0%1
0.0%0.0%99.9%0.1%0.0%0.0%0.0%2
0.0%0.0%99.9%0.1%0.0%0.0%0.0%3
0.0%0.0%99.9%0.1%0.0%0.0%0.0%4
0.0%0.0%99.9%0.1%0.0%0.0%0.0%5
0.0%0.0%99.9%0.1%0.0%0.0%0.0%6
30.8%25.0%56.2%0.1%0.0%18.7%0.0%7
30.8%25.0%56.2%0.1%0.0%18.7%0.0%8
32.0%25.0%53.0%0.1%0.0%21.8%0.0%9
55.8%37.4%29.6%0.1%0.0%32.8%0.0%10
55.8%37.4%29.6%0.1%0.0%32.8%0.0%11
57.8%37.4%27.3%0.1%0.0%35.1%0.0%12
Compiler

Compiled 12 to 10 computations (16.7% saved)

sample563.0ms (33.2%)

Samples
354.0ms8 256×0valid
101.0ms2 525×0invalid
Precisions
Click to see histograms. Total time spent on operations: 27.0ms
Mul: 12.0ms (45.0% of total, 0.0 MiB)
Sqrt: 11.0ms (41.3% of total, 0.0 MiB)
Sub: 4.0ms (15.0% of total, 0.0 MiB)
Bogosity

preprocess24.0ms (1.4%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033103
1167103
2682103
31756103
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
1.7%
(*.f64 x (sqrt.f64 (-.f64 (*.f64 y y) (*.f64 z z))))
Symmetry

(abs y)

(abs z)

(negabs x)

(sort y z)

Compiler

Compiled 2 to 16 computations (-700.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series24.0ms (1.4%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02731765
Stop Event
iter-limit
Counts
8 → 59
Calls
Call 1
Inputs
%2 = (*.f64 y y)
%4 = (*.f64 z z)
%5 = (-.f64 %2 %4)
%6 = (sqrt.f64 %5)
x
y
%2
z
%4
%5
%6
(*.f64 x %6)
Outputs
%5 = (* y y)
%7 = (* z z)
%8 = (- %5 %7)
%9 = (sqrt %8)
%10 = (* x %9)
%12 = (pow.f64 y #s(literal 2 binary64))
%13 = (pow.f64 z #s(literal 2 binary64))
%14 = (-.f64 %12 %13)
%25 = (sqrt.f64 (neg.f64 %13))
%34 = (pow.f64 %25 #s(literal 3 binary64))
%38 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %25))
%45 = (pow.f64 %25 #s(literal 5 binary64))
%56 = (*.f64 x %25)
%58 = (*.f64 x %12)
%63 = (/.f64 x %25)
%78 = (/.f64 %13 %12)
%86 = (*.f64 y (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) %78)))
%89 = (pow.f64 z #s(literal 4 binary64))
%90 = (pow.f64 y #s(literal 4 binary64))
%91 = (/.f64 %89 %90)
%95 = (*.f64 y (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/2 binary64) %78 (*.f64 #s(literal -1/8 binary64) %91))))
%99 = (pow.f64 z #s(literal 6 binary64))
%100 = (pow.f64 y #s(literal 6 binary64))
%106 = (*.f64 y (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/2 binary64) %78 (fma.f64 #s(literal -1/8 binary64) %91 (*.f64 #s(literal -1/16 binary64) (/.f64 %99 %100))))))
%108 = (*.f64 x y)
%110 = (*.f64 x %13)
%111 = (/.f64 %110 %12)
%114 = (*.f64 y (+.f64 x (*.f64 #s(literal -1/2 binary64) %111)))
%117 = (/.f64 (*.f64 x %89) %90)
%121 = (*.f64 y (+.f64 x (fma.f64 #s(literal -1/2 binary64) %111 (*.f64 #s(literal -1/8 binary64) %117))))
%129 = (*.f64 y (+.f64 x (fma.f64 #s(literal -1/2 binary64) %111 (fma.f64 #s(literal -1/8 binary64) %117 (*.f64 #s(literal -1/16 binary64) (/.f64 (*.f64 x %99) %100))))))
%151 = (sqrt.f64 %12)
%157 = (pow.f64 %151 #s(literal 3 binary64))
%161 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %151))
%166 = (pow.f64 %151 #s(literal 5 binary64))
%177 = (*.f64 x %151)
%182 = (/.f64 x %151)
%202 = (sqrt.f64 #s(literal -1 binary64))
%203 = (*.f64 z %202)
%205 = (*.f64 %13 %202)
%207 = (*.f64 #s(literal 1/2 binary64) (/.f64 %12 %205))
%209 = (*.f64 z (+.f64 %202 %207))
%212 = (*.f64 %89 (pow.f64 %202 #s(literal 3 binary64)))
%213 = (/.f64 %90 %212)
%216 = (*.f64 z (+.f64 %202 (fma.f64 #s(literal -1/8 binary64) %213 %207)))
%219 = (*.f64 %99 (pow.f64 %202 #s(literal 5 binary64)))
%224 = (*.f64 z (+.f64 %202 (fma.f64 #s(literal -1/8 binary64) %213 (fma.f64 #s(literal 1/16 binary64) (/.f64 %100 %219) %207))))
%226 = (*.f64 x %203)
%230 = (fma.f64 #s(literal 1/2 binary64) (/.f64 %58 %205) (*.f64 x %202))
%231 = (*.f64 z %230)
%234 = (/.f64 (*.f64 x %90) %212)
%236 = (*.f64 z (fma.f64 #s(literal -1/8 binary64) %234 %230))
%242 = (*.f64 z (fma.f64 #s(literal -1/8 binary64) %234 (fma.f64 #s(literal 1/16 binary64) (/.f64 (*.f64 x %100) %219) %230)))
(approx x #s(literal 0 binary64))
(approx x x)
(approx %10 (*.f64 x (sqrt.f64 %14)))
(approx y y)
(approx %5 %12)
(approx %8 (*.f64 #s(literal -1 binary64) %13))
(approx %8 %14)
(approx %9 %25)
(approx %9 (+.f64 %25 (*.f64 #s(literal 1/2 binary64) (/.f64 %12 %25))))
(approx %9 (+.f64 %25 (*.f64 %12 (fma.f64 #s(literal -1/8 binary64) (/.f64 %12 %34) %38))))
(approx %9 (+.f64 %25 (*.f64 %12 (fma.f64 %12 (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 %12 %45)) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %34))) %38))))
(approx %10 %56)
(approx %10 (fma.f64 #s(literal 1/2 binary64) (/.f64 %58 %25) %56))
(approx %10 (fma.f64 x %25 (*.f64 %12 (fma.f64 #s(literal -1/8 binary64) (/.f64 %58 %34) (*.f64 #s(literal 1/2 binary64) %63)))))
(approx %10 (fma.f64 x %25 (*.f64 %12 (fma.f64 #s(literal 1/2 binary64) %63 (*.f64 %12 (fma.f64 #s(literal -1/8 binary64) (/.f64 x %34) (*.f64 #s(literal 1/16 binary64) (/.f64 %58 %45))))))))
(approx %8 (*.f64 %12 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) %78))))
(approx %9 %86)
(approx %9 %95)
(approx %9 %106)
(approx %10 %108)
(approx %10 %114)
(approx %10 %121)
(approx %10 %129)
(approx %9 (*.f64 #s(literal -1 binary64) y))
(approx %9 (*.f64 #s(literal -1 binary64) %86))
(approx %9 (*.f64 #s(literal -1 binary64) %95))
(approx %9 (*.f64 #s(literal -1 binary64) %106))
(approx %10 (*.f64 #s(literal -1 binary64) %108))
(approx %10 (*.f64 #s(literal -1 binary64) %114))
(approx %10 (*.f64 #s(literal -1 binary64) %121))
(approx %10 (*.f64 #s(literal -1 binary64) %129))
(approx z z)
(approx %7 %13)
(approx %8 (fma.f64 #s(literal -1 binary64) %13 %12))
(approx %9 %151)
(approx %9 (+.f64 %151 (*.f64 #s(literal -1/2 binary64) (/.f64 %13 %151))))
(approx %9 (+.f64 %151 (*.f64 %13 (-.f64 (*.f64 #s(literal -1/8 binary64) (/.f64 %13 %157)) %161))))
(approx %9 (+.f64 %151 (*.f64 %13 (-.f64 (*.f64 %13 (-.f64 (*.f64 #s(literal -1/16 binary64) (/.f64 %13 %166)) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %157)))) %161))))
(approx %10 %177)
(approx %10 (fma.f64 #s(literal -1/2 binary64) (/.f64 %110 %151) %177))
(approx %10 (fma.f64 x %151 (*.f64 %13 (fma.f64 #s(literal -1/2 binary64) %182 (*.f64 #s(literal -1/8 binary64) (/.f64 %110 %157))))))
(approx %10 (fma.f64 x %151 (*.f64 %13 (fma.f64 #s(literal -1/2 binary64) %182 (*.f64 %13 (fma.f64 #s(literal -1/8 binary64) (/.f64 x %157) (*.f64 #s(literal -1/16 binary64) (/.f64 %110 %166))))))))
(approx %8 (*.f64 %13 (-.f64 (/.f64 %12 %13) #s(literal 1 binary64))))
(approx %9 %203)
(approx %9 %209)
(approx %9 %216)
(approx %9 %224)
(approx %10 %226)
(approx %10 %231)
(approx %10 %236)
(approx %10 %242)
(approx %9 (*.f64 #s(literal -1 binary64) %203))
(approx %9 (*.f64 #s(literal -1 binary64) %209))
(approx %9 (*.f64 #s(literal -1 binary64) %216))
(approx %9 (*.f64 #s(literal -1 binary64) %224))
(approx %10 (*.f64 #s(literal -1 binary64) %226))
(approx %10 (*.f64 #s(literal -1 binary64) %231))
(approx %10 (*.f64 #s(literal -1 binary64) %236))
(approx %10 (*.f64 #s(literal -1 binary64) %242))
Calls

9 calls:

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

rewrite81.0ms (4.8%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0834
01334
14634
217934
368834
4227434
0401734
0444334
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
8 → 307
Calls
Call 1
Inputs
%2 = (*.f64 y y)
%4 = (*.f64 z z)
%5 = (-.f64 %2 %4)
%6 = (sqrt.f64 %5)
x
y
%2
z
%4
%5
%6
(*.f64 x %6)
Outputs
%2 = (fabs.f64 y)
%3 = (sqrt.f64 %2)
%4 = (*.f64 %3 %2)
%7 = (neg.f64 %2)
%10 = (neg.f64 y)
%13 = (*.f64 y y)
%19 = (*.f64 %13 %13)
%45 = (*.f64 %10 y)
%67 = (fabs.f64 z)
%68 = (sqrt.f64 %67)
%69 = (*.f64 %68 %67)
%72 = (neg.f64 %67)
%75 = (neg.f64 z)
%77 = (*.f64 z z)
%81 = (*.f64 %77 %77)
%101 = (*.f64 %75 z)
%122 = (+.f64 z y)
%123 = (fabs.f64 %122)
%124 = (-.f64 y z)
%125 = (fabs.f64 %124)
%126 = (sqrt.f64 %125)
%129 = (*.f64 %124 %122)
%130 = (sqrt.f64 %129)
%131 = (neg.f64 %130)
%132 = (sqrt.f64 %123)
%133 = (neg.f64 %132)
%136 = (sqrt.f64 %130)
%137 = (*.f64 %136 %130)
%139 = (+.f64 %2 %67)
%140 = (sqrt.f64 %139)
%142 = (-.f64 %2 %67)
%143 = (fabs.f64 %142)
%144 = (sqrt.f64 %143)
%146 = (+.f64 %2 z)
%147 = (fabs.f64 %146)
%148 = (sqrt.f64 %147)
%150 = (-.f64 %2 z)
%151 = (fabs.f64 %150)
%152 = (sqrt.f64 %151)
%156 = (-.f64 y %67)
%157 = (fabs.f64 %156)
%158 = (sqrt.f64 %157)
%160 = (+.f64 %67 y)
%161 = (fabs.f64 %160)
%162 = (sqrt.f64 %161)
%167 = (neg.f64 %126)
%169 = (*.f64 %126 %123)
%171 = (*.f64 %125 %132)
%175 = (neg.f64 %139)
%176 = (-.f64 %67 %2)
%199 = (neg.f64 %160)
%200 = (-.f64 %67 y)
%202 = (-.f64 z y)
%203 = (neg.f64 %122)
%209 = (-.f64 %7 z)
%210 = (-.f64 z %2)
%237 = (*.f64 (*.f64 %202 %202) (*.f64 %122 %122))
%253 = (*.f64 %202 %122)
%258 = (*.f64 %175 %7)
%263 = (*.f64 %142 %67)
%265 = (*.f64 %142 %2)
%267 = (*.f64 %139 %72)
%269 = (*.f64 %146 %75)
%271 = (*.f64 %146 %2)
%273 = (*.f64 %150 z)
%275 = (*.f64 %150 %2)
%277 = (*.f64 %199 %10)
%279 = (*.f64 %199 %67)
%281 = (*.f64 %202 %75)
%283 = (*.f64 %202 %10)
%285 = (*.f64 %156 y)
%287 = (*.f64 %156 %67)
%289 = (*.f64 %160 %72)
%291 = (*.f64 %200 %72)
%293 = (*.f64 %209 %7)
%295 = (*.f64 %203 z)
%297 = (*.f64 %203 %10)
%299 = (*.f64 %210 %7)
%303 = (*.f64 %124 y)
%305 = (*.f64 %124 z)
%307 = (*.f64 %122 y)
%309 = (*.f64 %122 %75)
%311 = (*.f64 %67 %142)
%313 = (*.f64 %72 %139)
%315 = (*.f64 %75 %146)
%317 = (*.f64 z %150)
%320 = (*.f64 %7 %175)
%322 = (*.f64 %2 %142)
%324 = (*.f64 %10 %199)
%326 = (*.f64 y %156)
%329 = (*.f64 %67 %199)
%331 = (*.f64 %75 %202)
%333 = (*.f64 %72 %200)
%335 = (*.f64 z %203)
%338 = (*.f64 %2 %146)
%340 = (*.f64 %10 %202)
%342 = (*.f64 %7 %210)
%352 = (*.f64 %2 %150)
%354 = (*.f64 %7 %209)
%356 = (*.f64 %10 %203)
%360 = (*.f64 %67 %156)
%362 = (*.f64 %72 %160)
%450 = (neg.f64 %136)
%497 = (*.f64 %132 x)
%499 = (*.f64 %126 x)
%515 = (*.f64 %130 x)
x
y
(*.f64 %4 %3)
(*.f64 %3 %4)
(*.f64 %7 %7)
(*.f64 %2 %2)
(*.f64 %10 %10)
(*.f64 #s(literal 1 binary64) %13)
%13
(pow.f64 (pow.f64 y #s(literal 8 binary64)) #s(literal 1/4 binary64))
(pow.f64 %19 #s(literal 1/2 binary64))
(pow.f64 %3 #s(literal 4 binary64))
(pow.f64 %7 #s(literal 2 binary64))
(pow.f64 %2 #s(literal 2 binary64))
(pow.f64 %10 #s(literal 2 binary64))
(pow.f64 %13 #s(literal 1 binary64))
(pow.f64 y #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %19 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %7 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %2 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %10 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %13 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal -2 binary64)))
(neg.f64 %45)
(sqrt.f64 %19)
(fabs.f64 (*.f64 %10 %7))
(fabs.f64 (*.f64 y %7))
(fabs.f64 (*.f64 %10 %2))
(fabs.f64 (*.f64 y %2))
(fabs.f64 (*.f64 %7 %10))
(fabs.f64 (*.f64 %2 %10))
(fabs.f64 (*.f64 %7 y))
(fabs.f64 (*.f64 %2 y))
(fabs.f64 %45)
(fabs.f64 %13)
z
(*.f64 %69 %68)
(*.f64 %68 %69)
(*.f64 %72 %72)
(*.f64 %67 %67)
(*.f64 %75 %75)
(*.f64 #s(literal 1 binary64) %77)
%77
(pow.f64 (pow.f64 z #s(literal 8 binary64)) #s(literal 1/4 binary64))
(pow.f64 %81 #s(literal 1/2 binary64))
(pow.f64 %68 #s(literal 4 binary64))
(pow.f64 %72 #s(literal 2 binary64))
(pow.f64 %67 #s(literal 2 binary64))
(pow.f64 %75 #s(literal 2 binary64))
(pow.f64 %77 #s(literal 1 binary64))
(pow.f64 z #s(literal 2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %81 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %72 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %67 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %75 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %77 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 z #s(literal -2 binary64)))
(neg.f64 %101)
(sqrt.f64 %81)
(fabs.f64 (*.f64 %75 %72))
(fabs.f64 (*.f64 z %72))
(fabs.f64 (*.f64 %75 %67))
(fabs.f64 (*.f64 z %67))
(fabs.f64 (*.f64 %72 %75))
(fabs.f64 (*.f64 %67 %75))
(fabs.f64 (*.f64 %72 z))
(fabs.f64 (*.f64 %67 z))
(fabs.f64 %101)
(fabs.f64 %77)
(*.f64 (*.f64 %123 %126) %126)
(*.f64 (*.f64 %131 %133) %126)
(*.f64 %137 %136)
(*.f64 (*.f64 %130 %140) %144)
(*.f64 (*.f64 %130 %148) %152)
(*.f64 (*.f64 %130 %152) %148)
(*.f64 (*.f64 %130 %158) %162)
(*.f64 (*.f64 %130 %162) %158)
(*.f64 (*.f64 %131 %132) %167)
(*.f64 %169 %126)
(*.f64 %171 %132)
(*.f64 %133 (*.f64 %126 %131))
(*.f64 %175 %176)
(*.f64 %136 %137)
(*.f64 %143 %139)
(*.f64 %140 (*.f64 %144 %130))
(*.f64 %148 (*.f64 %152 %130))
(*.f64 %147 %151)
(*.f64 %152 (*.f64 %148 %130))
(*.f64 %151 %147)
(*.f64 %158 (*.f64 %162 %130))
(*.f64 %157 %161)
(*.f64 %162 (*.f64 %158 %130))
(*.f64 %161 %157)
(*.f64 %142 %139)
(*.f64 %139 %143)
(*.f64 %139 %142)
(*.f64 %146 %150)
(*.f64 %150 %146)
(*.f64 %199 %200)
(*.f64 %202 %203)
(*.f64 %156 %160)
(*.f64 %176 %175)
(*.f64 %160 %156)
(*.f64 %200 %199)
(*.f64 %209 %210)
(*.f64 %203 %202)
(*.f64 %210 %209)
(*.f64 %131 %131)
(*.f64 %126 %169)
(*.f64 %125 %123)
(*.f64 %132 (*.f64 %132 %125))
(*.f64 %132 (*.f64 %167 %131))
(*.f64 %132 %171)
(*.f64 %123 %125)
%129
(*.f64 %122 %124)
(*.f64 #s(literal 1 binary64) %129)
(*.f64 %130 %130)
(pow.f64 (*.f64 (*.f64 %125 %129) %123) #s(literal 1/2 binary64))
(pow.f64 (*.f64 %125 (*.f64 %129 %123)) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 %129 #s(literal 4 binary64)) #s(literal 1/4 binary64))
(pow.f64 %136 #s(literal 4 binary64))
(pow.f64 %237 #s(literal 1/2 binary64))
(pow.f64 %131 #s(literal 2 binary64))
(pow.f64 %130 #s(literal 2 binary64))
(pow.f64 %129 #s(literal 1 binary64))
(/.f64 (-.f64 %19 %81) (fma.f64 y y %77))
(/.f64 #s(literal 1 binary64) (pow.f64 %237 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %131 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %130 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %129 #s(literal -1 binary64)))
(neg.f64 %253)
(fma.f64 (*.f64 %72 %68) %68 %13)
(fma.f64 %4 %3 %101)
(fma.f64 %175 %67 %258)
(fma.f64 %3 %4 %101)
(fma.f64 %68 (*.f64 %68 %72) %13)
(fma.f64 %142 %2 %263)
(fma.f64 %142 %67 %265)
(fma.f64 %139 %2 %267)
(fma.f64 %146 %2 %269)
(fma.f64 %146 %75 %271)
(fma.f64 %150 %2 %273)
(fma.f64 %150 z %275)
(fma.f64 %199 %67 %277)
(fma.f64 %199 %10 %279)
(fma.f64 %202 %10 %281)
(fma.f64 %202 %75 %283)
(fma.f64 %156 %67 %285)
(fma.f64 %156 y %287)
(fma.f64 %160 y %289)
(fma.f64 %200 %10 %291)
(fma.f64 %209 z %293)
(fma.f64 %203 %10 %295)
(fma.f64 %203 z %297)
(fma.f64 %210 %75 %299)
(fma.f64 %72 %67 %13)
(fma.f64 %7 %7 %101)
(fma.f64 %124 z %303)
(fma.f64 %124 y %305)
(fma.f64 %122 %75 %307)
(fma.f64 %122 y %309)
(fma.f64 %2 %142 %311)
(fma.f64 %2 %139 %313)
(fma.f64 %2 %146 %315)
(fma.f64 %2 %150 %317)
(fma.f64 %2 %2 %101)
(fma.f64 %67 %175 %320)
(fma.f64 %67 %142 %322)
(fma.f64 %67 %199 %324)
(fma.f64 %67 %156 %326)
(fma.f64 %67 %72 %13)
(fma.f64 %10 %199 %329)
(fma.f64 %10 %202 %331)
(fma.f64 %10 %200 %333)
(fma.f64 %10 %203 %335)
(fma.f64 %10 %10 %101)
(fma.f64 %75 %146 %338)
(fma.f64 %75 %202 %340)
(fma.f64 %75 %210 %342)
(fma.f64 %75 %122 %307)
(fma.f64 %75 z %13)
(fma.f64 #s(literal 1 binary64) %303 %305)
(fma.f64 #s(literal 1 binary64) %307 %309)
(fma.f64 #s(literal 1 binary64) %305 %303)
(fma.f64 #s(literal 1 binary64) %309 %307)
(fma.f64 #s(literal 1 binary64) %101 %13)
(fma.f64 #s(literal 1 binary64) %13 %101)
(fma.f64 z %150 %352)
(fma.f64 z %209 %354)
(fma.f64 z %203 %356)
(fma.f64 z %124 %303)
(fma.f64 z %75 %13)
(fma.f64 y %156 %360)
(fma.f64 y %160 %362)
(fma.f64 y %124 %305)
(fma.f64 y %122 %309)
(fma.f64 y y %101)
(-.f64 %303 (*.f64 %202 z))
(-.f64 %303 (*.f64 %75 %124))
(-.f64 %303 (neg.f64 %305))
(-.f64 %307 (*.f64 %203 %75))
(-.f64 %307 (*.f64 z %122))
(-.f64 %307 (neg.f64 %309))
(-.f64 %305 (*.f64 %202 y))
(-.f64 %305 (*.f64 %10 %124))
(-.f64 %305 (neg.f64 %303))
(-.f64 %101 %45)
(-.f64 %13 %77)
(sqrt.f64 %237)
(fabs.f64 %253)
(fabs.f64 %129)
(+.f64 (*.f64 %175 %67) %258)
(+.f64 %265 %263)
(+.f64 %263 %265)
(+.f64 (*.f64 %139 %2) %267)
(+.f64 %271 %269)
(+.f64 %269 %271)
(+.f64 %275 %273)
(+.f64 %273 %275)
(+.f64 %279 %277)
(+.f64 %277 %279)
(+.f64 %283 %281)
(+.f64 %281 %283)
(+.f64 %287 %285)
(+.f64 %285 %287)
(+.f64 (*.f64 %160 y) %289)
(+.f64 (*.f64 %200 %10) %291)
(+.f64 (*.f64 %209 z) %293)
(+.f64 %297 %295)
(+.f64 %295 %297)
(+.f64 (*.f64 %210 %75) %299)
(+.f64 (*.f64 %67 %175) %320)
(+.f64 %322 %311)
(+.f64 %311 %322)
(+.f64 (*.f64 %2 %139) %313)
(+.f64 %338 %315)
(+.f64 %315 %338)
(+.f64 %352 %317)
(+.f64 %317 %352)
(+.f64 %329 %324)
(+.f64 %324 %329)
(+.f64 %340 %331)
(+.f64 %331 %340)
(+.f64 %360 %326)
(+.f64 %326 %360)
(+.f64 (*.f64 y %160) %362)
(+.f64 (*.f64 %10 %200) %333)
(+.f64 (*.f64 z %209) %354)
(+.f64 %356 %335)
(+.f64 %335 %356)
(+.f64 (*.f64 %75 %210) %342)
(+.f64 %303 %305)
(+.f64 %307 %309)
(+.f64 %305 %303)
(+.f64 %309 %307)
(+.f64 %101 %13)
(+.f64 %13 %101)
(*.f64 (neg.f64 %133) %126)
(*.f64 %450 %450)
(*.f64 (sqrt.f64 %169) (sqrt.f64 %126))
(*.f64 (sqrt.f64 %132) (sqrt.f64 %171))
(*.f64 %133 %167)
(*.f64 %136 %136)
(*.f64 %144 %140)
(*.f64 %140 %144)
(*.f64 %148 %152)
(*.f64 %152 %148)
(*.f64 %158 %162)
(*.f64 %162 %158)
(*.f64 %126 %132)
(*.f64 %132 (neg.f64 %167))
(*.f64 %132 %126)
(*.f64 #s(literal 1 binary64) %130)
(pow.f64 %450 #s(literal 2 binary64))
(pow.f64 %136 #s(literal 2 binary64))
(pow.f64 %237 #s(literal 1/4 binary64))
(pow.f64 %130 #s(literal 1 binary64))
(pow.f64 %129 #s(literal 1/2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %136 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %130 #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %129 #s(literal -1/2 binary64)))
(neg.f64 %131)
%130
(fabs.f64 %131)
(fabs.f64 %130)
(*.f64 (*.f64 x %136) %136)
(*.f64 (*.f64 x %140) %144)
(*.f64 (*.f64 x %148) %152)
(*.f64 (*.f64 x %152) %148)
(*.f64 (*.f64 x %158) %162)
(*.f64 (*.f64 x %162) %158)
(*.f64 %497 %126)
(*.f64 %499 %132)
(*.f64 %136 (*.f64 %136 x))
(*.f64 %140 (*.f64 %144 x))
(*.f64 %148 (*.f64 %152 x))
(*.f64 %152 (*.f64 %148 x))
(*.f64 %158 (*.f64 %162 x))
(*.f64 %162 (*.f64 %158 x))
(*.f64 %126 %497)
(*.f64 %132 %499)
(*.f64 #s(literal 1 binary64) %515)
%515
(*.f64 x %130)
(pow.f64 %515 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %515 #s(literal -1 binary64)))

reconstruct31.0ms (1.8%)

Counts
366 → 81
Compiler

Compiled 366 to 706 computations (-92.9% saved)

eval11.0ms (0.7%)

Compiler

Compiled 75 to 332 computations (-342.7% saved)

prune3.0ms (0.2%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New71475
Fresh000
Picked101
Done000
Total72476
Accuracy
100.0%
Counts
76 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.4%
(*.f64 (sqrt.f64 (fabs.f64 (+.f64 z y))) (*.f64 (sqrt.f64 (fabs.f64 (-.f64 y z))) x))
1.7%
(*.f64 x (sqrt.f64 (*.f64 (-.f64 y z) (+.f64 z y))))
5.7%
(*.f64 x (approx (sqrt (- (* y y) (* z z))) (*.f64 #s(literal -1 binary64) y)))
13.6%
(approx (* x (sqrt (- (* y y) (* z z)))) (*.f64 x y))
Compiler

Compiled 4 to 18 computations (-350.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series69.0ms (4.1%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
07704681
Stop Event
iter-limit
Counts
20 → 142
Calls
Call 1
Inputs
%4 = (*.f64 x y)
%8 = (sqrt (- (* y y) (* z z)))
%11 = (*.f64 #s(literal -1 binary64) y)
%12 = (approx %8 %11)
%13 = (+.f64 z y)
%14 = (fabs.f64 %13)
%15 = (-.f64 y z)
%16 = (fabs.f64 %15)
%17 = (sqrt.f64 %16)
%18 = (*.f64 %15 %13)
%19 = (sqrt.f64 %18)
%20 = (sqrt.f64 %14)
%21 = (*.f64 %17 x)
x
y
z
#s(literal -1 binary64)
%4
(approx (* x %8) %4)
%11
%12
%13
%14
%15
%16
%17
%18
%19
%20
%21
(*.f64 %20 %21)
(*.f64 x %19)
(*.f64 x %12)
Outputs
%6 = (*.f64 x y)
%12 = (sqrt (- (* y y) (* z z)))
%13 = (* x %12)
%15 = (pow.f64 y #s(literal 2 binary64))
%16 = (pow.f64 z #s(literal 2 binary64))
%21 = (- y z)
%22 = (fabs %21)
%23 = (sqrt %22)
%24 = (* %23 x)
%25 = (-.f64 y z)
%26 = (fabs.f64 %25)
%27 = (sqrt.f64 %26)
%30 = (+ z y)
%31 = (fabs %30)
%32 = (sqrt %31)
%33 = (* %32 %24)
%34 = (+.f64 y z)
%35 = (fabs.f64 %34)
%36 = (sqrt.f64 %35)
%40 = (* %21 %30)
%41 = (sqrt %40)
%42 = (* x %41)
%49 = (sqrt.f64 (neg.f64 %16))
%50 = (*.f64 x %49)
%53 = (*.f64 x %15)
%59 = (pow.f64 %49 #s(literal 3 binary64))
%61 = (/.f64 x %49)
%70 = (pow.f64 %49 #s(literal 5 binary64))
%82 = (*.f64 #s(literal -1 binary64) y)
%92 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %49))
%110 = (*.f64 #s(literal -1 binary64) z)
%115 = (*.f64 #s(literal -1 binary64) %16)
%117 = (+.f64 z %110)
%118 = (*.f64 y %117)
%125 = (sqrt.f64 %115)
%132 = (pow.f64 %117 #s(literal 2 binary64))
%136 = (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/4 binary64) (/.f64 %132 (pow.f64 %125 #s(literal 2 binary64)))))
%137 = (*.f64 y %136)
%139 = (/.f64 %117 %125)
%147 = (*.f64 y (*.f64 %117 %136))
%148 = (pow.f64 %125 #s(literal 3 binary64))
%159 = (*.f64 x %125)
%167 = (*.f64 x %117)
%168 = (/.f64 %167 %125)
%186 = (*.f64 x %16)
%187 = (/.f64 %186 %15)
%190 = (*.f64 y (+.f64 x (*.f64 #s(literal -1/2 binary64) %187)))
%193 = (pow.f64 z #s(literal 4 binary64))
%195 = (pow.f64 y #s(literal 4 binary64))
%196 = (/.f64 (*.f64 x %193) %195)
%200 = (*.f64 y (+.f64 x (fma.f64 #s(literal -1/2 binary64) %187 (*.f64 #s(literal -1/8 binary64) %196))))
%204 = (pow.f64 z #s(literal 6 binary64))
%206 = (pow.f64 y #s(literal 6 binary64))
%212 = (*.f64 y (+.f64 x (fma.f64 #s(literal -1/2 binary64) %187 (fma.f64 #s(literal -1/8 binary64) %196 (*.f64 #s(literal -1/16 binary64) (/.f64 (*.f64 x %204) %206))))))
%214 = (/.f64 %16 %15)
%217 = (*.f64 y (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) %214)))
%219 = (/.f64 %193 %195)
%223 = (*.f64 y (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/2 binary64) %214 (*.f64 #s(literal -1/8 binary64) %219))))
%230 = (*.f64 y (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/2 binary64) %214 (fma.f64 #s(literal -1/8 binary64) %219 (*.f64 #s(literal -1/16 binary64) (/.f64 %204 %206))))))
%232 = (/.f64 z y)
%237 = (fabs.f64 (/.f64 #s(literal 1 binary64) y))
%240 = (*.f64 #s(literal -1 binary64) %232)
%244 = (sqrt.f64 %237)
%245 = (*.f64 y %244)
%257 = (/.f64 %117 y)
%260 = (*.f64 y (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) %257)))
%263 = (-.f64 %115 (*.f64 #s(literal 1/4 binary64) %132))
%266 = (fma.f64 #s(literal 1/2 binary64) %257 (*.f64 #s(literal 1/2 binary64) (/.f64 %263 %15)))
%270 = (*.f64 %117 %263)
%271 = (pow.f64 y #s(literal 3 binary64))
%283 = (/.f64 %167 y)
%286 = (*.f64 y (+.f64 x (*.f64 #s(literal 1/2 binary64) %283)))
%288 = (*.f64 x %263)
%291 = (fma.f64 #s(literal 1/2 binary64) %283 (*.f64 #s(literal 1/2 binary64) (/.f64 %288 %15)))
%295 = (*.f64 x %270)
%320 = (fabs.f64 (/.f64 #s(literal -1 binary64) y))
%329 = (sqrt.f64 (*.f64 #s(literal -1 binary64) %320))
%330 = (*.f64 y %329)
%393 = (sqrt.f64 %15)
%394 = (*.f64 x %393)
%399 = (/.f64 x %393)
%400 = (pow.f64 %393 #s(literal 3 binary64))
%408 = (pow.f64 %393 #s(literal 5 binary64))
%425 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %393))
%442 = (+.f64 y %82)
%449 = (*.f64 z %442)
%454 = (pow.f64 %442 #s(literal 2 binary64))
%458 = (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/4 binary64) (/.f64 %454 (pow.f64 %393 #s(literal 2 binary64)))))
%459 = (*.f64 z %458)
%461 = (/.f64 %442 %393)
%469 = (*.f64 z (*.f64 %458 %442))
%484 = (*.f64 x %442)
%485 = (/.f64 %484 %393)
%502 = (sqrt.f64 #s(literal -1 binary64))
%503 = (*.f64 z %502)
%504 = (*.f64 x %503)
%506 = (*.f64 %16 %502)
%508 = (*.f64 x %502)
%509 = (fma.f64 #s(literal 1/2 binary64) (/.f64 %53 %506) %508)
%510 = (*.f64 z %509)
%513 = (pow.f64 %502 #s(literal 3 binary64))
%514 = (*.f64 %193 %513)
%515 = (/.f64 (*.f64 x %195) %514)
%517 = (*.f64 z (fma.f64 #s(literal -1/8 binary64) %515 %509))
%521 = (*.f64 %204 (pow.f64 %502 #s(literal 5 binary64)))
%525 = (*.f64 z (fma.f64 #s(literal -1/8 binary64) %515 (fma.f64 #s(literal 1/16 binary64) (/.f64 (*.f64 x %206) %521) %509)))
%529 = (*.f64 #s(literal 1/2 binary64) (/.f64 %15 %506))
%531 = (*.f64 z (+.f64 %502 %529))
%533 = (/.f64 %195 %514)
%536 = (*.f64 z (+.f64 %502 (fma.f64 #s(literal -1/8 binary64) %533 %529)))
%542 = (*.f64 z (+.f64 %502 (fma.f64 #s(literal -1/8 binary64) %533 (fma.f64 #s(literal 1/16 binary64) (/.f64 %206 %521) %529))))
%544 = (/.f64 y z)
%549 = (fabs.f64 (/.f64 #s(literal 1 binary64) z))
%550 = (*.f64 %16 %549)
%558 = (sqrt.f64 (*.f64 #s(literal -1 binary64) %549))
%559 = (*.f64 z %558)
%571 = (/.f64 %442 %503)
%579 = (-.f64 %15 (*.f64 #s(literal 1/4 binary64) (/.f64 %454 (pow.f64 %502 #s(literal 2 binary64)))))
%582 = (fma.f64 #s(literal 1/2 binary64) %571 (*.f64 #s(literal 1/2 binary64) (/.f64 %579 %506)))
%586 = (*.f64 %442 %579)
%588 = (*.f64 (pow.f64 z #s(literal 3 binary64)) %513)
%594 = (sqrt.f64 %549)
%603 = (/.f64 %484 %503)
%607 = (*.f64 x %579)
%610 = (fma.f64 #s(literal 1/2 binary64) %603 (fma.f64 #s(literal 1/2 binary64) (/.f64 %607 %506) %508))
%613 = (*.f64 x %586)
%634 = (*.f64 #s(literal -1 binary64) %544)
%640 = (fabs.f64 (/.f64 #s(literal -1 binary64) z))
%641 = (*.f64 %16 %640)
%649 = (sqrt.f64 %640)
%650 = (*.f64 z %649)
%674 = (*.f64 #s(literal 1/2 binary64) (/.f64 %442 %502))
%682 = (*.f64 z %513)
%696 = (sqrt.f64 (*.f64 #s(literal -1 binary64) %640))
%713 = (*.f64 #s(literal 1/2 binary64) (/.f64 %484 %502))
(approx x #s(literal 0 binary64))
(approx x x)
(approx (* x y) %6)
(approx %13 (*.f64 x (sqrt.f64 (-.f64 %15 %16))))
(approx %24 (*.f64 x %27))
(approx %33 (*.f64 x (*.f64 %36 %27)))
(approx %42 (*.f64 x (sqrt.f64 (*.f64 %34 %25))))
(approx y y)
(approx %13 %50)
(approx %13 (fma.f64 #s(literal 1/2 binary64) (/.f64 %53 %49) %50))
(approx %13 (fma.f64 x %49 (*.f64 %15 (fma.f64 #s(literal -1/8 binary64) (/.f64 %53 %59) (*.f64 #s(literal 1/2 binary64) %61)))))
(approx %13 (fma.f64 x %49 (*.f64 %15 (fma.f64 #s(literal 1/2 binary64) %61 (*.f64 %15 (fma.f64 #s(literal -1/8 binary64) (/.f64 x %59) (*.f64 #s(literal 1/16 binary64) (/.f64 %53 %70))))))))
(approx (* -1 y) %82)
(approx %12 %49)
(approx %12 (+.f64 %49 (*.f64 #s(literal 1/2 binary64) (/.f64 %15 %49))))
(approx %12 (+.f64 %49 (*.f64 %15 (fma.f64 #s(literal -1/8 binary64) (/.f64 %15 %59) %92))))
(approx %12 (+.f64 %49 (*.f64 %15 (fma.f64 %15 (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 %15 %70)) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %59))) %92))))
(approx %30 z)
(approx %30 %34)
(approx %31 %35)
(approx %21 %110)
(approx %21 %25)
(approx %22 %26)
(approx %23 %27)
(approx %40 %115)
(approx %40 (fma.f64 #s(literal -1 binary64) %16 %118))
(approx %40 (fma.f64 #s(literal -1 binary64) %16 (*.f64 y (+.f64 y %117))))
(approx %41 %125)
(approx %41 (+.f64 %125 (*.f64 #s(literal 1/2 binary64) (/.f64 %118 %125))))
(approx %41 (+.f64 %125 (*.f64 y (fma.f64 #s(literal 1/2 binary64) (/.f64 %137 %125) (*.f64 #s(literal 1/2 binary64) %139)))))
(approx %41 (+.f64 %125 (*.f64 y (fma.f64 #s(literal 1/2 binary64) %139 (*.f64 y (fma.f64 #s(literal -1/4 binary64) (/.f64 %147 %148) (*.f64 #s(literal 1/2 binary64) (/.f64 %136 %125))))))))
(approx %32 %36)
(approx %42 %159)
(approx %42 (fma.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 x %118) %125) %159))
(approx %42 (fma.f64 x %125 (*.f64 y (fma.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 x %137) %125) (*.f64 #s(literal 1/2 binary64) %168)))))
(approx %42 (fma.f64 x %125 (*.f64 y (fma.f64 #s(literal 1/2 binary64) %168 (*.f64 y (fma.f64 #s(literal -1/4 binary64) (/.f64 (*.f64 x %147) %148) (*.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 x %136) %125))))))))
(approx %13 %190)
(approx %13 %200)
(approx %13 %212)
(approx %12 %217)
(approx %12 %223)
(approx %12 %230)
(approx %30 (*.f64 y (+.f64 #s(literal 1 binary64) %232)))
(approx %31 (*.f64 %15 %237))
(approx %21 (*.f64 y (+.f64 #s(literal 1 binary64) %240)))
(approx %23 %245)
(approx %40 %15)
(approx %40 (*.f64 %15 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %232 %232))))
(approx %40 (*.f64 %15 (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1 binary64) %232 (fma.f64 #s(literal -1 binary64) %214 %232)))))
(approx %41 %260)
(approx %41 (*.f64 y (+.f64 #s(literal 1 binary64) %266)))
(approx %41 (*.f64 y (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/4 binary64) (/.f64 %270 %271) %266))))
(approx %24 (*.f64 x %245))
(approx %33 (*.f64 x (*.f64 %15 (pow.f64 %244 #s(literal 2 binary64)))))
(approx %42 %286)
(approx %42 (*.f64 y (+.f64 x %291)))
(approx %42 (*.f64 y (+.f64 x (fma.f64 #s(literal -1/4 binary64) (/.f64 %295 %271) %291))))
(approx %13 (*.f64 #s(literal -1 binary64) %6))
(approx %13 (*.f64 #s(literal -1 binary64) %190))
(approx %13 (*.f64 #s(literal -1 binary64) %200))
(approx %13 (*.f64 #s(literal -1 binary64) %212))
(approx %12 (*.f64 #s(literal -1 binary64) %217))
(approx %12 (*.f64 #s(literal -1 binary64) %223))
(approx %12 (*.f64 #s(literal -1 binary64) %230))
(approx %30 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 %240 #s(literal 1 binary64)))))
(approx %31 (*.f64 #s(literal -1 binary64) (*.f64 %15 %320)))
(approx %21 (*.f64 #s(literal -1 binary64) (*.f64 y (-.f64 %232 #s(literal 1 binary64)))))
(approx %23 (*.f64 #s(literal -1 binary64) %330))
(approx %40 (*.f64 %15 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) %117 (/.f64 %16 y)) y)))))
(approx %41 (*.f64 #s(literal -1 binary64) %260))
(approx %41 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1/2 binary64) %117 (*.f64 #s(literal -1/2 binary64) (/.f64 %263 y))) y))))))
(approx %41 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1/4 binary64) (/.f64 %270 y) (*.f64 #s(literal 1/2 binary64) %263)) y) (*.f64 #s(literal -1/2 binary64) %117)) y))))))
(approx %24 (*.f64 #s(literal -1 binary64) (*.f64 x %330)))
(approx %33 (*.f64 x (*.f64 %15 (pow.f64 %329 #s(literal 2 binary64)))))
(approx %42 (*.f64 #s(literal -1 binary64) %286))
(approx %42 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1/2 binary64) %167 (*.f64 #s(literal -1/2 binary64) (/.f64 %288 y))) y))))))
(approx %42 (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1/4 binary64) (/.f64 %295 y) (*.f64 #s(literal 1/2 binary64) %288)) y) (*.f64 #s(literal -1/2 binary64) %167)) y))))))
(approx %13 %394)
(approx %13 (fma.f64 #s(literal -1/2 binary64) (/.f64 %186 %393) %394))
(approx %13 (fma.f64 x %393 (*.f64 %16 (fma.f64 #s(literal -1/2 binary64) %399 (*.f64 #s(literal -1/8 binary64) (/.f64 %186 %400))))))
(approx %13 (fma.f64 x %393 (*.f64 %16 (fma.f64 #s(literal -1/2 binary64) %399 (*.f64 %16 (fma.f64 #s(literal -1/8 binary64) (/.f64 x %400) (*.f64 #s(literal -1/16 binary64) (/.f64 %186 %408))))))))
(approx %12 %393)
(approx %12 (+.f64 %393 (*.f64 #s(literal -1/2 binary64) (/.f64 %16 %393))))
(approx %12 (+.f64 %393 (*.f64 %16 (-.f64 (*.f64 #s(literal -1/8 binary64) (/.f64 %16 %400)) %425))))
(approx %12 (+.f64 %393 (*.f64 %16 (-.f64 (*.f64 %16 (-.f64 (*.f64 #s(literal -1/16 binary64) (/.f64 %16 %408)) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %400)))) %425))))
(approx %21 (+.f64 y %110))
(approx %40 (fma.f64 z %442 %15))
(approx %40 (fma.f64 z (+.f64 y (fma.f64 #s(literal -1 binary64) y %110)) %15))
(approx %41 (+.f64 %393 (*.f64 #s(literal 1/2 binary64) (/.f64 %449 %393))))
(approx %41 (+.f64 %393 (*.f64 z (fma.f64 #s(literal -1/2 binary64) (/.f64 %459 %393) (*.f64 #s(literal 1/2 binary64) %461)))))
(approx %41 (+.f64 %393 (*.f64 z (fma.f64 #s(literal 1/2 binary64) %461 (*.f64 z (fma.f64 #s(literal -1/2 binary64) (/.f64 %458 %393) (*.f64 #s(literal 1/4 binary64) (/.f64 %469 %400))))))))
(approx %42 (fma.f64 #s(literal 1/2 binary64) (/.f64 (*.f64 x %449) %393) %394))
(approx %42 (fma.f64 x %393 (*.f64 z (fma.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 x %459) %393) (*.f64 #s(literal 1/2 binary64) %485)))))
(approx %42 (fma.f64 x %393 (*.f64 z (fma.f64 #s(literal 1/2 binary64) %485 (*.f64 z (fma.f64 #s(literal -1/2 binary64) (/.f64 (*.f64 x %458) %393) (*.f64 #s(literal 1/4 binary64) (/.f64 (*.f64 x %469) %400))))))))
(approx %13 %504)
(approx %13 %510)
(approx %13 %517)
(approx %13 %525)
(approx %12 %503)
(approx %12 %531)
(approx %12 %536)
(approx %12 %542)
(approx %30 (*.f64 z (+.f64 #s(literal 1 binary64) %544)))
(approx %31 %550)
(approx %21 (*.f64 z (-.f64 %544 #s(literal 1 binary64))))
(approx %22 (*.f64 #s(literal -1 binary64) %550))
(approx %23 %559)
(approx %40 (*.f64 %16 (-.f64 (fma.f64 #s(literal -1 binary64) %544 %544) #s(literal 1 binary64))))
(approx %40 (*.f64 %16 (-.f64 (fma.f64 #s(literal -1 binary64) %544 (+.f64 %544 (/.f64 %15 %16))) #s(literal 1 binary64))))
(approx %41 (*.f64 z (+.f64 %502 (*.f64 #s(literal 1/2 binary64) %571))))
(approx %41 (*.f64 z (+.f64 %502 %582)))
(approx %41 (*.f64 z (+.f64 %502 (fma.f64 #s(literal -1/4 binary64) (/.f64 %586 %588) %582))))
(approx %32 (*.f64 z %594))
(approx %24 (*.f64 x %559))
(approx %33 (*.f64 x (*.f64 %16 (*.f64 %594 %558))))
(approx %42 (*.f64 z (fma.f64 #s(literal 1/2 binary64) %603 %508)))
(approx %42 (*.f64 z %610))
(approx %42 (*.f64 z (fma.f64 #s(literal -1/4 binary64) (/.f64 %613 %588) %610)))
(approx %13 (*.f64 #s(literal -1 binary64) %504))
(approx %13 (*.f64 #s(literal -1 binary64) %510))
(approx %13 (*.f64 #s(literal -1 binary64) %517))
(approx %13 (*.f64 #s(literal -1 binary64) %525))
(approx %12 (*.f64 #s(literal -1 binary64) %503))
(approx %12 (*.f64 #s(literal -1 binary64) %531))
(approx %12 (*.f64 #s(literal -1 binary64) %536))
(approx %12 (*.f64 #s(literal -1 binary64) %542))
(approx %30 (*.f64 #s(literal -1 binary64) (*.f64 z (-.f64 %634 #s(literal 1 binary64)))))
(approx %31 (*.f64 #s(literal -1 binary64) %641))
(approx %21 (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 #s(literal 1 binary64) %634))))
(approx %22 %641)
(approx %23 (*.f64 #s(literal -1 binary64) %650))
(approx %40 (*.f64 %16 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 %442 z)) #s(literal 1 binary64))))
(approx %40 (*.f64 %16 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 y (fma.f64 #s(literal -1 binary64) y (*.f64 #s(literal -1 binary64) (/.f64 %15 z)))) z)) #s(literal 1 binary64))))
(approx %41 (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 %502 (*.f64 #s(literal -1/2 binary64) %571)))))
(approx %41 (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 %502 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1/2 binary64) (/.f64 %579 %503) %674) z))))))
(approx %41 (*.f64 #s(literal -1 binary64) (*.f64 z (+.f64 %502 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 1/4 binary64) (/.f64 %586 %682) (*.f64 #s(literal 1/2 binary64) (/.f64 %579 %502))) z) %674) z))))))
(approx %32 (*.f64 #s(literal -1 binary64) (*.f64 z %696)))
(approx %24 (*.f64 #s(literal -1 binary64) (*.f64 x %650)))
(approx %33 (*.f64 x (*.f64 %16 (*.f64 %649 %696))))
(approx %42 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1/2 binary64) %603 %508))))
(approx %42 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1/2 binary64) (/.f64 %607 %503) %713) z) %508))))
(approx %42 (*.f64 #s(literal -1 binary64) (*.f64 z (fma.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal 1/4 binary64) (/.f64 %613 %682) (*.f64 #s(literal 1/2 binary64) (/.f64 %607 %502))) z) %713) z) %508))))
Calls

9 calls:

TimeVariablePoint
20.0ms
x
inf
16.0ms
z
inf
6.0ms
y
inf
5.0ms
y
-inf
4.0ms
y
0

rewrite122.0ms (7.2%)

Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
025119
039119
1125113
2361113
31468113
04101113
04288113
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
20 → 468
Calls
Call 1
Inputs
%4 = (*.f64 x y)
%8 = (sqrt (- (* y y) (* z z)))
%11 = (*.f64 #s(literal -1 binary64) y)
%12 = (approx %8 %11)
%13 = (+.f64 z y)
%14 = (fabs.f64 %13)
%15 = (-.f64 y z)
%16 = (fabs.f64 %15)
%17 = (sqrt.f64 %16)
%18 = (*.f64 %15 %13)
%19 = (sqrt.f64 %18)
%20 = (sqrt.f64 %14)
%21 = (*.f64 %17 x)
x
y
z
#s(literal -1 binary64)
%4
(approx (* x %8) %4)
%11
%12
%13
%14
%15
%16
%17
%18
%19
%20
%21
(*.f64 %20 %21)
(*.f64 x %19)
(*.f64 x %12)
Outputs
%4 = (*.f64 y x)
%13 = (sqrt (* (- y z) (+ y z)))
%15 = (approx (* %13 x) %4)
%21 = (neg.f64 y)
%25 = (approx %13 %21)
%29 = (+.f64 y z)
%33 = (neg.f64 %29)
%35 = (neg.f64 z)
%39 = (fabs.f64 %29)
%40 = (sqrt.f64 %39)
%42 = (sqrt.f64 (*.f64 %40 %39))
%43 = (sqrt.f64 %40)
%45 = (neg.f64 %40)
%46 = (neg.f64 %45)
%51 = (*.f64 %29 %29)
%52 = (*.f64 %51 %51)
%70 = (neg.f64 %39)
%73 = (*.f64 %45 %40)
%76 = (*.f64 %40 %45)
%92 = (-.f64 y z)
%96 = (-.f64 z y)
%101 = (fabs.f64 %92)
%102 = (sqrt.f64 %101)
%104 = (sqrt.f64 (*.f64 %102 %101))
%105 = (sqrt.f64 %102)
%107 = (neg.f64 %102)
%108 = (neg.f64 %107)
%113 = (*.f64 %96 %92)
%114 = (*.f64 %113 %113)
%117 = (*.f64 %96 %96)
%128 = (neg.f64 %101)
%131 = (*.f64 %107 %102)
%134 = (*.f64 %102 %107)
%150 = (neg.f64 %105)
%168 = (fabs.f64 y)
%169 = (neg.f64 %168)
%170 = (fabs.f64 z)
%171 = (neg.f64 %170)
%172 = (neg.f64 %171)
%174 = (*.f64 #s(literal -1 binary64) %169)
%190 = (*.f64 #s(literal -1 binary64) %168)
%206 = (*.f64 %169 #s(literal -1 binary64))
%222 = (*.f64 %168 #s(literal -1 binary64))
%237 = (neg.f64 %169)
%272 = (+.f64 y %170)
%273 = (fabs.f64 %272)
%277 = (+.f64 %170 %168)
%281 = (-.f64 y %170)
%282 = (fabs.f64 %281)
%284 = (+.f64 %169 %171)
%285 = (fabs.f64 %284)
%286 = (-.f64 %169 %171)
%287 = (fabs.f64 %286)
%289 = (+.f64 %169 %170)
%290 = (fabs.f64 %289)
%292 = (+.f64 %169 %35)
%293 = (fabs.f64 %292)
%294 = (-.f64 %168 z)
%295 = (fabs.f64 %294)
%297 = (+.f64 %169 z)
%298 = (fabs.f64 %297)
%299 = (+.f64 %168 z)
%300 = (fabs.f64 %299)
%302 = (*.f64 %101 %40)
%304 = (*.f64 %39 %102)
%306 = (*.f64 %92 %29)
%308 = (sqrt.f64 (*.f64 %306 %39))
%311 = (sqrt.f64 (*.f64 %306 %101))
%323 = (sqrt.f64 %306)
%324 = (neg.f64 %323)
%325 = (neg.f64 %324)
%327 = (*.f64 %45 %107)
%329 = (*.f64 %107 %45)
%331 = (-.f64 %168 %170)
%332 = (fabs.f64 %331)
%343 = (neg.f64 %272)
%344 = (-.f64 %170 y)
%349 = (-.f64 %35 %168)
%350 = (-.f64 z %168)
%356 = (*.f64 %40 %101)
%359 = (sqrt.f64 (*.f64 %101 %306))
%362 = (*.f64 %102 %39)
%365 = (sqrt.f64 (*.f64 %39 %306))
%370 = (*.f64 %96 %29)
%371 = (*.f64 %370 %370)
%382 = (*.f64 y y)
%384 = (*.f64 z z)
%396 = (neg.f64 %174)
%397 = (*.f64 %92 z)
%398 = (fma.f64 y %35 %397)
%400 = (*.f64 %35 z)
%402 = (neg.f64 %190)
%405 = (neg.f64 %206)
%408 = (neg.f64 %222)
%411 = (neg.f64 %237)
%414 = (*.f64 %382 #s(literal 2 binary64))
%415 = (fabs.f64 %414)
%418 = (*.f64 #s(literal 1 binary64) %169)
%421 = (*.f64 #s(literal 1 binary64) %21)
%437 = (*.f64 y %21)
%442 = (*.f64 %169 #s(literal 1 binary64))
%450 = (*.f64 %35 %29)
%452 = (*.f64 y %92)
%453 = (fma.f64 %35 z %452)
%455 = (*.f64 y %96)
%456 = (-.f64 %400 %455)
%462 = (*.f64 y %29)
%465 = (*.f64 %21 #s(literal 1 binary64))
%475 = (*.f64 #s(literal 1/2 binary64) %382)
%476 = (fabs.f64 %475)
%493 = (*.f64 %33 %35)
%495 = (neg.f64 %450)
%497 = (*.f64 %29 z)
%499 = (*.f64 %96 z)
%518 = (*.f64 %96 %39)
%521 = (*.f64 %101 %33)
%524 = (*.f64 %101 %29)
%527 = (*.f64 %92 %39)
%530 = (*.f64 %33 %101)
%533 = (*.f64 %39 %96)
%536 = (*.f64 %39 %92)
%539 = (*.f64 %29 %101)
%542 = (*.f64 %324 %323)
%545 = (*.f64 %323 %324)
%704 = (*.f64 y z)
%719 = (sqrt.f64 %323)
%720 = (neg.f64 %719)
%734 = (sqrt.f64 %277)
%737 = (sqrt.f64 %295)
%740 = (sqrt.f64 %300)
%743 = (sqrt.f64 %332)
%748 = (sqrt.f64 %273)
%749 = (sqrt.f64 %282)
%801 = (neg.f64 %43)
%818 = (*.f64 %102 x)
%823 = (*.f64 %40 x)
%824 = (*.f64 %823 %102)
%825 = (*.f64 %818 %40)
%826 = (*.f64 %40 %818)
%827 = (*.f64 %323 x)
%828 = (*.f64 %102 %823)
%829 = (*.f64 x %323)
%830 = (pow.f64 %827 #s(literal 1 binary64))
%832 = (/.f64 #s(literal 1 binary64) (pow.f64 %827 #s(literal -1 binary64)))
%833 = (*.f64 %25 x)
x
y
z
#s(literal -1 binary64)
%4
(*.f64 x y)
(pow.f64 %4 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %4 #s(literal -1 binary64)))
(pow.f64 %15 #s(literal 1 binary64))
%15
(/.f64 #s(literal 1 binary64) (pow.f64 %15 #s(literal -1 binary64)))
(*.f64 y #s(literal -1 binary64))
(*.f64 #s(literal -1 binary64) y)
(pow.f64 %21 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %21 #s(literal -1 binary64)))
%21
(pow.f64 %25 #s(literal 1 binary64))
%25
(/.f64 #s(literal 1 binary64) (pow.f64 %25 #s(literal -1 binary64)))
(pow.f64 %29 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %29 #s(literal -1 binary64)))
(neg.f64 %33)
(-.f64 y %35)
(-.f64 z %21)
%29
(+.f64 z y)
(*.f64 %42 %43)
(*.f64 %46 %46)
(*.f64 %43 %42)
(*.f64 %45 %45)
(*.f64 %40 %40)
(pow.f64 %52 #s(literal 1/4 binary64))
(pow.f64 %45 #s(literal 2 binary64))
(pow.f64 %51 #s(literal 1/2 binary64))
(pow.f64 %40 #s(literal 2 binary64))
(pow.f64 %39 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %51 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %40 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %39 #s(literal -1 binary64)))
(sqrt.f64 %51)
(fabs.f64 (neg.f64 %70))
(fabs.f64 (neg.f64 %73))
(fabs.f64 (neg.f64 %76))
(fabs.f64 (*.f64 %46 %45))
(fabs.f64 (*.f64 %46 %40))
(fabs.f64 (*.f64 %45 %46))
(fabs.f64 (*.f64 %40 %46))
(fabs.f64 %70)
(fabs.f64 %73)
(fabs.f64 %76)
(fabs.f64 %33)
(fabs.f64 %39)
%39
(pow.f64 %92 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %92 #s(literal -1 binary64)))
(neg.f64 %96)
%92
(-.f64 %35 %21)
(+.f64 y %35)
(+.f64 %35 y)
(*.f64 %104 %105)
(*.f64 %108 %108)
(*.f64 %105 %104)
(*.f64 %107 %107)
(*.f64 %102 %102)
(pow.f64 %114 #s(literal 1/4 binary64))
(pow.f64 %107 #s(literal 2 binary64))
(pow.f64 %117 #s(literal 1/2 binary64))
(pow.f64 %102 #s(literal 2 binary64))
(pow.f64 %101 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %117 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %102 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %101 #s(literal -1 binary64)))
(sqrt.f64 %117)
(fabs.f64 (neg.f64 %128))
(fabs.f64 (neg.f64 %131))
(fabs.f64 (neg.f64 %134))
(fabs.f64 (*.f64 %108 %107))
(fabs.f64 (*.f64 %108 %102))
(fabs.f64 (*.f64 %107 %108))
(fabs.f64 (*.f64 %102 %108))
(fabs.f64 %128)
(fabs.f64 %131)
(fabs.f64 %134)
(fabs.f64 %96)
(fabs.f64 %101)
%101
(*.f64 %150 %150)
(*.f64 %105 %105)
(pow.f64 %105 #s(literal 2 binary64))
(pow.f64 %114 #s(literal 1/8 binary64))
(pow.f64 %117 #s(literal 1/4 binary64))
(pow.f64 %102 #s(literal 1 binary64))
(pow.f64 %101 #s(literal 1/2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %101 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %102 #s(literal -1 binary64)))
%102
(fabs.f64 (neg.f64 %108))
(fabs.f64 %108)
(fabs.f64 %107)
(fabs.f64 %102)
(*.f64 (fma.f64 #s(literal -1 binary64) %169 %172) (-.f64 %174 %172))
(*.f64 (fma.f64 #s(literal -1 binary64) %169 %171) (-.f64 %174 %171))
(*.f64 (fma.f64 #s(literal -1 binary64) %169 %170) (-.f64 %174 %170))
(*.f64 (fma.f64 #s(literal -1 binary64) %169 %35) (-.f64 %174 %35))
(*.f64 (fma.f64 #s(literal -1 binary64) %169 z) (-.f64 %174 z))
(*.f64 (fma.f64 #s(literal -1 binary64) %168 %172) (-.f64 %190 %172))
(*.f64 (fma.f64 #s(literal -1 binary64) %168 %171) (-.f64 %190 %171))
(*.f64 (fma.f64 #s(literal -1 binary64) %168 %170) (-.f64 %190 %170))
(*.f64 (fma.f64 #s(literal -1 binary64) %168 %35) (-.f64 %190 %35))
(*.f64 (fma.f64 #s(literal -1 binary64) %168 z) (-.f64 %190 z))
(*.f64 (fma.f64 %169 #s(literal -1 binary64) %172) (-.f64 %206 %172))
(*.f64 (fma.f64 %169 #s(literal -1 binary64) %171) (-.f64 %206 %171))
(*.f64 (fma.f64 %169 #s(literal -1 binary64) %170) (-.f64 %206 %170))
(*.f64 (fma.f64 %169 #s(literal -1 binary64) %35) (-.f64 %206 %35))
(*.f64 (fma.f64 %169 #s(literal -1 binary64) z) (-.f64 %206 z))
(*.f64 (fma.f64 %168 #s(literal -1 binary64) %172) (-.f64 %222 %172))
(*.f64 (fma.f64 %168 #s(literal -1 binary64) %171) (-.f64 %222 %171))
(*.f64 (fma.f64 %168 #s(literal -1 binary64) %170) (-.f64 %222 %170))
(*.f64 (fma.f64 %168 #s(literal -1 binary64) %35) (-.f64 %222 %35))
(*.f64 (fma.f64 %168 #s(literal -1 binary64) z) (-.f64 %222 z))
(*.f64 (+.f64 %237 %172) (-.f64 %237 %172))
(*.f64 (+.f64 %237 %171) (-.f64 %237 %171))
(*.f64 (+.f64 %237 %170) (-.f64 %237 %170))
(*.f64 (+.f64 %237 %35) (-.f64 %237 %35))
(*.f64 (+.f64 %237 z) (-.f64 %237 z))
(*.f64 (+.f64 %169 %172) (-.f64 %169 %172))
(*.f64 (+.f64 y %172) (-.f64 y %172))
(*.f64 (+.f64 %168 %172) (-.f64 %168 %172))
(*.f64 (+.f64 %21 %172) (-.f64 %21 %172))
(*.f64 (fabs.f64 (+.f64 %171 %169)) (fabs.f64 (-.f64 %171 %169)))
(*.f64 (fabs.f64 (+.f64 %171 y)) %273)
(*.f64 (fabs.f64 (+.f64 %171 %168)) %277)
(*.f64 (fabs.f64 (+.f64 %171 %21)) %282)
(*.f64 %285 %287)
(*.f64 %290 %277)
(*.f64 %293 %295)
(*.f64 %298 %300)
(*.f64 %302 %40)
(*.f64 %304 %102)
(*.f64 %308 %102)
(*.f64 %311 %40)
(*.f64 (neg.f64 %277) (-.f64 %170 %168))
(*.f64 %284 %286)
(*.f64 %289 (-.f64 %169 %170))
(*.f64 %292 (-.f64 %169 %35))
(*.f64 %297 (-.f64 %169 z))
(*.f64 %325 %325)
(*.f64 %327 %327)
(*.f64 %329 %329)
(*.f64 %332 %277)
(*.f64 %300 %295)
(*.f64 %295 %300)
(*.f64 %273 %282)
(*.f64 %282 %273)
(*.f64 %331 %277)
(*.f64 %277 %332)
(*.f64 %277 %331)
(*.f64 %299 %294)
(*.f64 %294 %299)
(*.f64 %343 %344)
(*.f64 %281 %272)
(*.f64 %272 %281)
(*.f64 %344 %343)
(*.f64 %349 %350)
(*.f64 %350 %349)
(*.f64 %324 %324)
(*.f64 %96 %33)
(*.f64 %33 %96)
(*.f64 %40 %356)
(*.f64 %40 %359)
(*.f64 %323 %323)
(*.f64 %102 %362)
(*.f64 %102 %365)
(*.f64 %101 %39)
%306
(*.f64 %39 %101)
(*.f64 %29 %92)
(pow.f64 (*.f64 %371 %371) #s(literal 1/4 binary64))
(pow.f64 (*.f64 %114 %52) #s(literal 1/4 binary64))
(pow.f64 (*.f64 %52 %114) #s(literal 1/4 binary64))
(pow.f64 %371 #s(literal 1/2 binary64))
(pow.f64 %324 #s(literal 2 binary64))
(pow.f64 %323 #s(literal 2 binary64))
(pow.f64 %306 #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 %382 %382) (*.f64 %384 %384)) (fma.f64 y y %384))
(/.f64 #s(literal 1 binary64) (pow.f64 %371 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %323 #s(literal -2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %306 #s(literal -1 binary64)))
(neg.f64 %370)
(fma.f64 %396 %396 %398)
(fma.f64 %396 %396 %400)
(fma.f64 %402 %402 %398)
(fma.f64 %402 %402 %400)
(fma.f64 %405 %405 %398)
(fma.f64 %405 %405 %400)
(fma.f64 %408 %408 %398)
(fma.f64 %408 %408 %400)
(fma.f64 %411 %411 %398)
(fma.f64 %411 %411 %400)
(fma.f64 %415 #s(literal 1/2 binary64) %398)
(fma.f64 %415 #s(literal 1/2 binary64) %400)
(fma.f64 %418 %169 %398)
(fma.f64 %418 %169 %400)
(fma.f64 %421 %21 %398)
(fma.f64 %421 %21 %400)
(fma.f64 %414 #s(literal 1/2 binary64) %398)
(fma.f64 %414 #s(literal 1/2 binary64) %400)
(fma.f64 %174 %174 %398)
(fma.f64 %174 %174 %400)
(fma.f64 %190 %190 %398)
(fma.f64 %190 %190 %400)
(fma.f64 %206 %206 %398)
(fma.f64 %206 %206 %400)
(fma.f64 %222 %222 %398)
(fma.f64 %222 %222 %400)
(fma.f64 %172 %171 %382)
(fma.f64 %237 %237 %398)
(fma.f64 %237 %237 %400)
(fma.f64 %437 #s(literal -1 binary64) %398)
(fma.f64 %437 #s(literal -1 binary64) %400)
(fma.f64 %171 %172 %382)
(fma.f64 %171 %170 %382)
(fma.f64 %169 %442 %398)
(fma.f64 %169 %442 %400)
(fma.f64 %169 %169 %398)
(fma.f64 %169 %169 %400)
(fma.f64 y y %398)
(fma.f64 y y %400)
(fma.f64 y %92 %397)
(fma.f64 y %29 %450)
(fma.f64 y z %453)
(fma.f64 y z %456)
(fma.f64 %170 %171 %382)
(fma.f64 %168 %168 %398)
(fma.f64 %168 %168 %400)
(fma.f64 %35 %96 %452)
(fma.f64 %35 %29 %462)
(fma.f64 %35 z %382)
(fma.f64 %21 %465 %398)
(fma.f64 %21 %465 %400)
(fma.f64 %21 %21 %398)
(fma.f64 %21 %21 %400)
(fma.f64 %21 %96 %397)
(fma.f64 %96 %35 %452)
(fma.f64 %96 %21 %397)
(fma.f64 #s(literal 1 binary64) %382 %398)
(fma.f64 #s(literal 1 binary64) %382 %400)
(fma.f64 #s(literal 2 binary64) %476 %398)
(fma.f64 #s(literal 2 binary64) %476 %400)
(fma.f64 #s(literal 2 binary64) %475 %398)
(fma.f64 #s(literal 2 binary64) %475 %400)
(fma.f64 %92 y %397)
(fma.f64 %92 z %452)
(fma.f64 %29 y %450)
(fma.f64 %29 %35 %462)
(fma.f64 %382 #s(literal 1 binary64) %398)
(fma.f64 %382 #s(literal 1 binary64) %400)
(fma.f64 #s(literal -1 binary64) %437 %398)
(fma.f64 #s(literal -1 binary64) %437 %400)
(fma.f64 z y %453)
(fma.f64 z y %456)
(fma.f64 z %35 %382)
(fma.f64 z %92 %452)
(-.f64 %462 %493)
(-.f64 %462 %495)
(-.f64 %462 %497)
(-.f64 %452 %499)
(-.f64 %397 %455)
(-.f64 %400 %437)
(-.f64 %382 %384)
(sqrt.f64 %371)
(fabs.f64 (-.f64 (*.f64 %237 %168) %384))
(fabs.f64 (-.f64 %493 %462))
(fabs.f64 (-.f64 %495 %462))
(fabs.f64 (-.f64 %497 %462))
(fabs.f64 (-.f64 %499 %452))
(fabs.f64 (-.f64 %437 %400))
(fabs.f64 (neg.f64 %518))
(fabs.f64 (neg.f64 %521))
(fabs.f64 (neg.f64 %524))
(fabs.f64 (neg.f64 %527))
(fabs.f64 (neg.f64 %530))
(fabs.f64 (neg.f64 %533))
(fabs.f64 (neg.f64 %536))
(fabs.f64 (neg.f64 %539))
(fabs.f64 (neg.f64 %542))
(fabs.f64 (neg.f64 %545))
(fabs.f64 (*.f64 %325 %327))
(fabs.f64 (*.f64 %325 %329))
(fabs.f64 (*.f64 %325 %324))
(fabs.f64 (*.f64 %325 %323))
(fabs.f64 (*.f64 %327 %325))
(fabs.f64 (*.f64 %327 %329))
(fabs.f64 (*.f64 %327 %324))
(fabs.f64 (*.f64 %327 %323))
(fabs.f64 (*.f64 %329 %325))
(fabs.f64 (*.f64 %329 %327))
(fabs.f64 (*.f64 %329 %324))
(fabs.f64 (*.f64 %329 %323))
(fabs.f64 (*.f64 %324 %325))
(fabs.f64 (*.f64 %324 %327))
(fabs.f64 (*.f64 %324 %329))
(fabs.f64 (*.f64 %323 %325))
(fabs.f64 (*.f64 %323 %327))
(fabs.f64 (*.f64 %323 %329))
(fabs.f64 (*.f64 %128 %70))
(fabs.f64 (*.f64 %128 %73))
(fabs.f64 (*.f64 %128 %76))
(fabs.f64 (*.f64 %128 %33))
(fabs.f64 (*.f64 %128 %39))
(fabs.f64 (*.f64 %128 %29))
(fabs.f64 (*.f64 %131 %70))
(fabs.f64 (*.f64 %131 %73))
(fabs.f64 (*.f64 %131 %76))
(fabs.f64 (*.f64 %131 %33))
(fabs.f64 (*.f64 %131 %39))
(fabs.f64 (*.f64 %131 %29))
(fabs.f64 (*.f64 %134 %70))
(fabs.f64 (*.f64 %134 %73))
(fabs.f64 (*.f64 %134 %76))
(fabs.f64 (*.f64 %134 %33))
(fabs.f64 (*.f64 %134 %39))
(fabs.f64 (*.f64 %134 %29))
(fabs.f64 (*.f64 %96 %70))
(fabs.f64 (*.f64 %96 %73))
(fabs.f64 (*.f64 %96 %76))
(fabs.f64 (*.f64 %101 %70))
(fabs.f64 (*.f64 %101 %73))
(fabs.f64 (*.f64 %101 %76))
(fabs.f64 (*.f64 %92 %70))
(fabs.f64 (*.f64 %92 %73))
(fabs.f64 (*.f64 %92 %76))
(fabs.f64 (*.f64 %70 %128))
(fabs.f64 (*.f64 %70 %131))
(fabs.f64 (*.f64 %70 %134))
(fabs.f64 (*.f64 %70 %96))
(fabs.f64 (*.f64 %70 %101))
(fabs.f64 (*.f64 %70 %92))
(fabs.f64 (*.f64 %73 %128))
(fabs.f64 (*.f64 %73 %131))
(fabs.f64 (*.f64 %73 %134))
(fabs.f64 (*.f64 %73 %96))
(fabs.f64 (*.f64 %73 %101))
(fabs.f64 (*.f64 %73 %92))
(fabs.f64 (*.f64 %76 %128))
(fabs.f64 (*.f64 %76 %131))
(fabs.f64 (*.f64 %76 %134))
(fabs.f64 (*.f64 %76 %96))
(fabs.f64 (*.f64 %76 %101))
(fabs.f64 (*.f64 %76 %92))
(fabs.f64 (*.f64 %33 %128))
(fabs.f64 (*.f64 %33 %131))
(fabs.f64 (*.f64 %33 %134))
(fabs.f64 (*.f64 %39 %128))
(fabs.f64 (*.f64 %39 %131))
(fabs.f64 (*.f64 %39 %134))
(fabs.f64 (*.f64 %29 %128))
(fabs.f64 (*.f64 %29 %131))
(fabs.f64 (*.f64 %29 %134))
(fabs.f64 %518)
(fabs.f64 %521)
(fabs.f64 %524)
(fabs.f64 %527)
(fabs.f64 %530)
(fabs.f64 %533)
(fabs.f64 %536)
(fabs.f64 %539)
(fabs.f64 %542)
(fabs.f64 %545)
(fabs.f64 %370)
(fabs.f64 %306)
(+.f64 (fma.f64 y %92 %704) %400)
(+.f64 (fma.f64 %92 z %382) (*.f64 y %35))
(+.f64 %704 %453)
(+.f64 %704 %456)
(+.f64 %462 %450)
(+.f64 %450 %462)
(+.f64 %452 %397)
(+.f64 %397 %452)
(+.f64 %400 %382)
(+.f64 %382 %398)
(+.f64 %382 %400)
(*.f64 %720 %720)
(*.f64 (sqrt.f64 %302) %43)
(*.f64 (sqrt.f64 %304) %105)
(*.f64 (sqrt.f64 %308) %105)
(*.f64 (sqrt.f64 %311) %43)
(*.f64 (sqrt.f64 %285) (sqrt.f64 %287))
(*.f64 (sqrt.f64 %290) %734)
(*.f64 (sqrt.f64 %293) %737)
(*.f64 (sqrt.f64 %298) %740)
(*.f64 %719 %719)
(*.f64 %743 %734)
(*.f64 %734 %743)
(*.f64 %740 %737)
(*.f64 %737 %740)
(*.f64 %748 %749)
(*.f64 %749 %748)
(*.f64 %43 (sqrt.f64 %356))
(*.f64 %43 (sqrt.f64 %359))
(*.f64 %105 (sqrt.f64 %362))
(*.f64 %105 (sqrt.f64 %365))
(*.f64 %40 %102)
(*.f64 %102 %40)
(pow.f64 %719 #s(literal 2 binary64))
(pow.f64 %371 #s(literal 1/4 binary64))
(pow.f64 %323 #s(literal 1 binary64))
(pow.f64 %306 #s(literal 1/2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %306 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %323 #s(literal -1 binary64)))
%323
(fabs.f64 (neg.f64 %325))
(fabs.f64 (neg.f64 %327))
(fabs.f64 (neg.f64 %329))
(fabs.f64 (*.f64 %46 %108))
(fabs.f64 (*.f64 %46 %107))
(fabs.f64 (*.f64 %46 %102))
(fabs.f64 (*.f64 %45 %108))
(fabs.f64 (*.f64 %40 %108))
(fabs.f64 (*.f64 %108 %46))
(fabs.f64 (*.f64 %108 %45))
(fabs.f64 (*.f64 %108 %40))
(fabs.f64 (*.f64 %107 %46))
(fabs.f64 (*.f64 %102 %46))
(fabs.f64 %325)
(fabs.f64 %327)
(fabs.f64 %329)
(fabs.f64 %324)
(fabs.f64 %323)
(*.f64 %801 %801)
(*.f64 %43 %43)
(pow.f64 %43 #s(literal 2 binary64))
(pow.f64 %52 #s(literal 1/8 binary64))
(pow.f64 %51 #s(literal 1/4 binary64))
(pow.f64 %40 #s(literal 1 binary64))
(pow.f64 %39 #s(literal 1/2 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %39 #s(literal -1/2 binary64)))
(/.f64 #s(literal 1 binary64) (pow.f64 %40 #s(literal -1 binary64)))
%40
(fabs.f64 (neg.f64 %46))
(fabs.f64 %46)
(fabs.f64 %45)
(fabs.f64 %40)
%818
(*.f64 x %102)
(pow.f64 %818 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %818 #s(literal -1 binary64)))
%824
%825
%826
%827
%828
%829
%830
%832
%824
%825
%826
%827
%828
%829
%830
%832
%833
(*.f64 x %25)
(pow.f64 %833 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %833 #s(literal -1 binary64)))

reconstruct54.0ms (3.2%)

Counts
610 → 171
Compiler

Compiled 610 to 1 380 computations (-126.2% saved)

eval18.0ms (1.1%)

Compiler

Compiled 180 to 761 computations (-322.8% saved)

prune2.0ms (0.1%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1782180
Fresh000
Picked134
Done000
Total1795184
Accuracy
100.0%
Counts
184 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.4%
(*.f64 (sqrt.f64 (fabs.f64 (+.f64 z y))) (*.f64 (sqrt.f64 (fabs.f64 (-.f64 y z))) x))
1.7%
(*.f64 x (sqrt.f64 (*.f64 (-.f64 y z) (+.f64 z y))))
5.7%
(*.f64 x (approx (sqrt (- (* y y) (* z z))) (neg.f64 y)))
6.5%
(approx (* x (sqrt (- (* y y) (* z z)))) (*.f64 (approx x #s(literal 0 binary64)) y))
13.6%
(approx (* x (sqrt (- (* y y) (* z z)))) (*.f64 x y))
Compiler

Compiled 5 to 19 computations (-280.0% saved)

sample0.0ms (0.0%)

Calls
Call 1
Inputs
Outputs

series15.0ms (0.9%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02581647
Stop Event
iter-limit
Counts
9 → 51
Calls
Call 1
Inputs
%3 = (approx x #s(literal 0 binary64))
%4 = (neg.f64 y)
%5 = (*.f64 %3 y)
%10 = (sqrt (- (* y y) (* z z)))
%13 = (approx %10 %4)
x
y
#s(literal 0 binary64)
%3
%4
%5
(approx (* x %10) %5)
%13
(*.f64 x %13)
Outputs
%6 = (*.f64 x y)
%12 = (sqrt (- (* y y) (* z z)))
%13 = (* x %12)
%15 = (pow.f64 y #s(literal 2 binary64))
%16 = (pow.f64 z #s(literal 2 binary64))
%27 = (sqrt.f64 (neg.f64 %16))
%28 = (*.f64 x %27)
%31 = (*.f64 x %15)
%37 = (pow.f64 %27 #s(literal 3 binary64))
%39 = (/.f64 x %27)
%48 = (pow.f64 %27 #s(literal 5 binary64))
%65 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %27))
%81 = (*.f64 x %16)
%82 = (/.f64 %81 %15)
%85 = (*.f64 y (+.f64 x (*.f64 #s(literal -1/2 binary64) %82)))
%88 = (pow.f64 z #s(literal 4 binary64))
%90 = (pow.f64 y #s(literal 4 binary64))
%91 = (/.f64 (*.f64 x %88) %90)
%95 = (*.f64 y (+.f64 x (fma.f64 #s(literal -1/2 binary64) %82 (*.f64 #s(literal -1/8 binary64) %91))))
%99 = (pow.f64 z #s(literal 6 binary64))
%101 = (pow.f64 y #s(literal 6 binary64))
%107 = (*.f64 y (+.f64 x (fma.f64 #s(literal -1/2 binary64) %82 (fma.f64 #s(literal -1/8 binary64) %91 (*.f64 #s(literal -1/16 binary64) (/.f64 (*.f64 x %99) %101))))))
%109 = (/.f64 %16 %15)
%112 = (*.f64 y (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) %109)))
%114 = (/.f64 %88 %90)
%118 = (*.f64 y (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/2 binary64) %109 (*.f64 #s(literal -1/8 binary64) %114))))
%125 = (*.f64 y (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/2 binary64) %109 (fma.f64 #s(literal -1/8 binary64) %114 (*.f64 #s(literal -1/16 binary64) (/.f64 %99 %101))))))
%141 = (sqrt.f64 %15)
%142 = (*.f64 x %141)
%147 = (/.f64 x %141)
%148 = (pow.f64 %141 #s(literal 3 binary64))
%156 = (pow.f64 %141 #s(literal 5 binary64))
%173 = (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) %141))
%188 = (sqrt.f64 #s(literal -1 binary64))
%189 = (*.f64 z %188)
%190 = (*.f64 x %189)
%192 = (*.f64 %16 %188)
%195 = (fma.f64 #s(literal 1/2 binary64) (/.f64 %31 %192) (*.f64 x %188))
%196 = (*.f64 z %195)
%200 = (*.f64 %88 (pow.f64 %188 #s(literal 3 binary64)))
%201 = (/.f64 (*.f64 x %90) %200)
%203 = (*.f64 z (fma.f64 #s(literal -1/8 binary64) %201 %195))
%207 = (*.f64 %99 (pow.f64 %188 #s(literal 5 binary64)))
%211 = (*.f64 z (fma.f64 #s(literal -1/8 binary64) %201 (fma.f64 #s(literal 1/16 binary64) (/.f64 (*.f64 x %101) %207) %195)))
%215 = (*.f64 #s(literal 1/2 binary64) (/.f64 %15 %192))
%217 = (*.f64 z (+.f64 %188 %215))
%219 = (/.f64 %90 %200)
%222 = (*.f64 z (+.f64 %188 (fma.f64 #s(literal -1/8 binary64) %219 %215)))
%228 = (*.f64 z (+.f64 %188 (fma.f64 #s(literal -1/8 binary64) %219 (fma.f64 #s(literal 1/16 binary64) (/.f64 %101 %207) %215))))
(approx x #s(literal 0 binary64))
(approx x x)
(approx (* x y) %6)
(approx %13 (*.f64 x (sqrt.f64 (-.f64 %15 %16))))
(approx y y)
(approx (neg y) (*.f64 #s(literal -1 binary64) y))
(approx %13 %28)
(approx %13 (fma.f64 #s(literal 1/2 binary64) (/.f64 %31 %27) %28))
(approx %13 (fma.f64 x %27 (*.f64 %15 (fma.f64 #s(literal -1/8 binary64) (/.f64 %31 %37) (*.f64 #s(literal 1/2 binary64) %39)))))
(approx %13 (fma.f64 x %27 (*.f64 %15 (fma.f64 #s(literal 1/2 binary64) %39 (*.f64 %15 (fma.f64 #s(literal -1/8 binary64) (/.f64 x %37) (*.f64 #s(literal 1/16 binary64) (/.f64 %31 %48))))))))
(approx %12 %27)
(approx %12 (+.f64 %27 (*.f64 #s(literal 1/2 binary64) (/.f64 %15 %27))))
(approx %12 (+.f64 %27 (*.f64 %15 (fma.f64 #s(literal -1/8 binary64) (/.f64 %15 %37) %65))))
(approx %12 (+.f64 %27 (*.f64 %15 (fma.f64 %15 (-.f64 (*.f64 #s(literal 1/16 binary64) (/.f64 %15 %48)) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %37))) %65))))
(approx %13 %85)
(approx %13 %95)
(approx %13 %107)
(approx %12 %112)
(approx %12 %118)
(approx %12 %125)
(approx %13 (*.f64 #s(literal -1 binary64) %6))
(approx %13 (*.f64 #s(literal -1 binary64) %85))
(approx %13 (*.f64 #s(literal -1 binary64) %95))
(approx %13 (*.f64 #s(literal -1 binary64) %107))
(approx %12 (*.f64 #s(literal -1 binary64) %112))
(approx %12 (*.f64 #s(literal -1 binary64) %118))
(approx %12 (*.f64 #s(literal -1 binary64) %125))
(approx %13 %142)
(approx %13 (fma.f64 #s(literal -1/2 binary64) (/.f64 %81 %141) %142))
(approx %13 (fma.f64 x %141 (*.f64 %16 (fma.f64 #s(literal -1/2 binary64) %147 (*.f64 #s(literal -1/8 binary64) (/.f64 %81 %148))))))
(approx %13 (fma.f64 x %141 (*.f64 %16 (fma.f64 #s(literal -1/2 binary64) %147 (*.f64 %16 (fma.f64 #s(literal -1/8 binary64) (/.f64 x %148) (*.f64 #s(literal -1/16 binary64) (/.f64 %81 %156))))))))
(approx %12 %141)
(approx %12 (+.f64 %141 (*.f64 #s(literal -1/2 binary64) (/.f64 %16 %141))))
(approx %12 (+.f64 %141 (*.f64 %16 (-.f64 (*.f64 #s(literal -1/8 binary64) (/.f64 %16 %148)) %173))))
(approx %12 (+.f64 %141 (*.f64 %16 (-.f64 (*.f64 %16 (-.f64 (*.f64 #s(literal -1/16 binary64) (/.f64 %16 %156)) (*.f64 #s(literal 1/8 binary64) (/.f64 #s(literal 1 binary64) %148)))) %173))))
(approx %13 %190)
(approx %13 %196)
(approx %13 %203)
(approx %13 %211)
(approx %12 %189)
(approx %12 %217)
(approx %12 %222)
(approx %12 %228)
(approx %13 (*.f64 #s(literal -1 binary64) %190))
(approx %13 (*.f64 #s(literal -1 binary64) %196))
(approx %13 (*.f64 #s(literal -1 binary64) %203))
(approx %13 (*.f64 #s(literal -1 binary64) %211))
(approx %12 (*.f64 #s(literal -1 binary64) %189))
(approx %12 (*.f64 #s(literal -1 binary64) %217))
(approx %12 (*.f64 #s(literal -1 binary64) %222))
(approx %12 (*.f64 #s(literal -1 binary64) %228))
Calls

9 calls:

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

rewrite90.0ms (5.3%)

Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01553
01853
16053
219653
372853
4269953
0418553
0470853
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
9 → 31
Calls
Call 1
Inputs
%3 = (approx x #s(literal 0 binary64))
%4 = (neg.f64 y)
%5 = (*.f64 %3 y)
%10 = (sqrt (- (* y y) (* z z)))
%13 = (approx %10 %4)
x
y
#s(literal 0 binary64)
%3
%4
%5
(approx (* x %10) %5)
%13
(*.f64 x %13)
Outputs
%4 = (approx x #s(literal 0 binary64))
%10 = (neg.f64 y)
%15 = (*.f64 %4 y)
%29 = (sqrt (- (* y y) (* z z)))
%31 = (approx (* %29 x) %15)
%36 = (approx %29 %10)
%41 = (*.f64 %36 x)
x
y
#s(literal 0 binary64)
(*.f64 #s(literal 1 binary64) %4)
(pow.f64 %4 #s(literal 1 binary64))
%4
(/.f64 #s(literal 1 binary64) (pow.f64 %4 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %10)
(pow.f64 %10 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %10 #s(literal -1 binary64)))
%10
(*.f64 #s(literal 1 binary64) %15)
%15
(*.f64 y %4)
(pow.f64 %15 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %15 #s(literal -1 binary64)))
(neg.f64 (*.f64 %10 %4))
(neg.f64 (*.f64 %4 %10))
(*.f64 #s(literal 1 binary64) %31)
(pow.f64 %31 #s(literal 1 binary64))
%31
(/.f64 #s(literal 1 binary64) (pow.f64 %31 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %36)
(pow.f64 %36 #s(literal 1 binary64))
%36
(/.f64 #s(literal 1 binary64) (pow.f64 %36 #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) %41)
%41
(*.f64 x %36)
(pow.f64 %41 #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (pow.f64 %41 #s(literal -1 binary64)))

reconstruct7.0ms (0.4%)

Counts
82 → 40
Compiler

Compiled 82 to 221 computations (-169.5% saved)

eval4.0ms (0.2%)

Compiler

Compiled 35 to 137 computations (-291.4% saved)

prune2.0ms (0.1%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New35035
Fresh000
Picked022
Done033
Total35540
Accuracy
100.0%
Counts
40 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.4%
(*.f64 (sqrt.f64 (fabs.f64 (+.f64 z y))) (*.f64 (sqrt.f64 (fabs.f64 (-.f64 y z))) x))
1.7%
(*.f64 x (sqrt.f64 (*.f64 (-.f64 y z) (+.f64 z y))))
5.7%
(*.f64 x (approx (sqrt (- (* y y) (* z z))) (neg.f64 y)))
6.5%
(approx (* x (sqrt (- (* y y) (* z z)))) (*.f64 (approx x #s(literal 0 binary64)) y))
13.6%
(approx (* x (sqrt (- (* y y) (* z z)))) (*.f64 x y))
Compiler

Compiled 5 to 19 computations (-280.0% saved)

regimes28.0ms (1.6%)

Accuracy

Total -0.0b remaining (-0.0%)

Threshold costs -0.0b (-0.0%)

0.0b0%
-0.0b-100.0%

Counts
1 → 1
7 → 1
Calls
Call 1
Inputs
(approx (* x (sqrt (- (* y y) (* z z)))) (*.f64 x y))
Outputs
(approx (* x (sqrt (- (* y y) (* z z)))) (*.f64 x y))
Call 2
Inputs
%6 = (sqrt (- (* y y) (* z z)))
%7 = (* x %6)
%21 = (-.f64 y z)
%22 = (+.f64 z y)
(approx %7 (*.f64 x y))
(approx %7 (*.f64 (approx x #s(literal 0 binary64)) y))
(*.f64 x (approx %6 (neg.f64 y)))
(*.f64 x (approx %6 (*.f64 #s(literal -1 binary64) y)))
(*.f64 x (sqrt.f64 (*.f64 %21 %22)))
(*.f64 x (sqrt.f64 (-.f64 (*.f64 y y) (*.f64 z z))))
(*.f64 (sqrt.f64 (fabs.f64 %22)) (*.f64 (sqrt.f64 (fabs.f64 %21)) x))
Outputs
(*.f64 (sqrt.f64 (fabs.f64 (+.f64 z y))) (*.f64 (sqrt.f64 (fabs.f64 (-.f64 y z))) x))
Calls

8 calls:

4.0ms
y
4.0ms
z
4.0ms
x
3.0ms
(sqrt.f64 (-.f64 (*.f64 y y) (*.f64 z z)))
3.0ms
(*.f64 z z)
Results
AccuracySegmentsBranch
13.6%1
z
13.6%1
y
13.6%1
x
13.6%1
(*.f64 x (sqrt.f64 (-.f64 (*.f64 y y) (*.f64 z z))))
13.6%1
(sqrt.f64 (-.f64 (*.f64 y y) (*.f64 z z)))
13.6%1
(-.f64 (*.f64 y y) (*.f64 z z))
13.6%1
(*.f64 y y)
13.6%1
(*.f64 z z)
Compiler

Compiled 15 to 35 computations (-133.3% saved)

bsearch0.0ms (0.0%)

bsearch0.0ms (0.0%)

derivations16.0ms (0.9%)

Stop Event
done
Compiler

Compiled 2 to 12 computations (-500.0% saved)

preprocess0.0ms (0.0%)

Symmetry

(abs y)

Compiler

Compiled 27 to 173 computations (-540.7% saved)

end0.0ms (0.0%)

gc433ms (25.6%)

Allocations
AllocatedPercentPhase
1 150.8 MiB51.2%sample
455.0 MiB20.2%rewrite
210.7 MiB9.4%series
145.3 MiB6.5%reconstruct
97.2 MiB4.3%analyze
77.3 MiB3.4%preprocess
46.4 MiB2.1%eval
41.1 MiB1.8%regimes
15.2 MiB0.7%prune
10.0 MiB0.4%derivations
0.1 MiB0.0%bsearch
0.1 MiB0.0%start
0.0 MiB0.0%end
2 249.2 MiB100.0%total

Profiling

Loading profile data...