Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2, A

Time bar (total: 3.0s)

analyze0.0ms (0%)

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

Compiled 14 to 11 computations (21.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
Operation ival-sub, time spent: 0.0ms, 0.0% of total-time
Operation ival-add, time spent: 0.0ms, 0.0% of total-time
Operation ival-mult, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

sample1.3s (42.4%)

Results
890.0ms7213×256valid
307.0ms1042×256infinite
0.0ms256valid
Precisions
Click to see histograms. Total time spent on operations: 481.0ms
Operation ival-mult, time spent: 218.0ms, 45.0% of total-time
Operation ival-add, time spent: 126.0ms, 26.0% of total-time
Operation ival-sub, time spent: 113.0ms, 23.0% of total-time
Operation const, time spent: 24.0ms, 5.0% of total-time
Bogosity

preprocess530.0ms (17.4%)

Algorithm
egg-herbie
Rules
2165×fmm-def
414×sub-neg
400×fma-define
263×unsub-neg
238×associate-+l-
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-x
00-0-#s(literal 1/2 binary64)
00-0-(*.f64 y #s(literal 1/2 binary64))
00-0-y
00-0-(*.f64 x (-.f64 y #s(literal 1 binary64)))
00-0-#s(literal 918938533204673/1000000000000000 binary64)
00-0-(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
00-0-(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
00-0-#s(literal 1 binary64)
00-0-(-.f64 y #s(literal 1 binary64))
Iterations

Useful iterations: 13 (0.0ms)

IterNodesCost
033304
198264
2250236
3786224
42305224
53793224
64333224
74467224
84493224
94497224
104553224
114613224
124637224
134637210
146604210
156604210
166604210
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(+.f64 (-.f64 (*.f64 (neg.f64 x) (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(+.f64 (-.f64 (*.f64 x (-.f64 (neg.f64 y) #s(literal 1 binary64))) (*.f64 (neg.f64 y) #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(neg.f64 (+.f64 (-.f64 (*.f64 (neg.f64 x) (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64)))
(neg.f64 (+.f64 (-.f64 (*.f64 x (-.f64 (neg.f64 y) #s(literal 1 binary64))) (*.f64 (neg.f64 y) #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64)))
(+.f64 (-.f64 (*.f64 y (-.f64 x #s(literal 1 binary64))) (*.f64 x #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
Outputs
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(-.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
(+.f64 (fma.f64 x (+.f64 y #s(literal -1 binary64)) (*.f64 y #s(literal -1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(fma.f64 x (+.f64 y #s(literal -1 binary64)) (fma.f64 y #s(literal -1/2 binary64) #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 y (-.f64 #s(literal 1/2 binary64) x) x))
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(-.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
(+.f64 (fma.f64 x (+.f64 y #s(literal -1 binary64)) (*.f64 y #s(literal -1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(fma.f64 x (+.f64 y #s(literal -1 binary64)) (fma.f64 y #s(literal -1/2 binary64) #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 y (-.f64 #s(literal 1/2 binary64) x) x))
(+.f64 (-.f64 (*.f64 (neg.f64 x) (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(+.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 (*.f64 (+.f64 y #s(literal -1 binary64)) (neg.f64 x)) (*.f64 y #s(literal 1/2 binary64))))
(+.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (+.f64 y #s(literal -1 binary64)) (neg.f64 x) (*.f64 y #s(literal -1/2 binary64))))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 x (+.f64 y #s(literal -1 binary64)) (*.f64 y #s(literal 1/2 binary64))))
(fma.f64 x (-.f64 #s(literal 1 binary64) y) (fma.f64 y #s(literal -1/2 binary64) #s(literal 918938533204673/1000000000000000 binary64)))
(fma.f64 y (-.f64 #s(literal -1/2 binary64) x) (+.f64 x #s(literal 918938533204673/1000000000000000 binary64)))
(+.f64 (-.f64 (*.f64 x (-.f64 (neg.f64 y) #s(literal 1 binary64))) (*.f64 (neg.f64 y) #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(+.f64 #s(literal 918938533204673/1000000000000000 binary64) (+.f64 (*.f64 x (+.f64 (neg.f64 y) #s(literal -1 binary64))) (*.f64 y #s(literal 1/2 binary64))))
(+.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 x (fma.f64 #s(literal -1 binary64) y #s(literal -1 binary64)) (*.f64 y #s(literal 1/2 binary64))))
(fma.f64 x (-.f64 #s(literal -1 binary64) y) (fma.f64 y #s(literal 1/2 binary64) #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 (fma.f64 y (-.f64 #s(literal 1/2 binary64) x) #s(literal 918938533204673/1000000000000000 binary64)) x)
(neg.f64 (+.f64 (-.f64 (*.f64 (neg.f64 x) (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64)))
(neg.f64 (+.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 (*.f64 (+.f64 y #s(literal -1 binary64)) (neg.f64 x)) (*.f64 y #s(literal 1/2 binary64)))))
(-.f64 #s(literal -918938533204673/1000000000000000 binary64) (fma.f64 (+.f64 y #s(literal -1 binary64)) (neg.f64 x) (*.f64 y #s(literal -1/2 binary64))))
(+.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) (fma.f64 y #s(literal 1/2 binary64) #s(literal -918938533204673/1000000000000000 binary64)))
(fma.f64 x (+.f64 y #s(literal -1 binary64)) (fma.f64 y #s(literal 1/2 binary64) #s(literal -918938533204673/1000000000000000 binary64)))
(fma.f64 y (+.f64 x #s(literal 1/2 binary64)) (-.f64 #s(literal -918938533204673/1000000000000000 binary64) x))
(neg.f64 (+.f64 (-.f64 (*.f64 x (-.f64 (neg.f64 y) #s(literal 1 binary64))) (*.f64 (neg.f64 y) #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64)))
(+.f64 (neg.f64 (+.f64 (*.f64 x (+.f64 (neg.f64 y) #s(literal -1 binary64))) (*.f64 y #s(literal 1/2 binary64)))) #s(literal -918938533204673/1000000000000000 binary64))
(-.f64 #s(literal -918938533204673/1000000000000000 binary64) (fma.f64 x (fma.f64 #s(literal -1 binary64) y #s(literal -1 binary64)) (*.f64 y #s(literal 1/2 binary64))))
(neg.f64 (fma.f64 x (-.f64 #s(literal -1 binary64) y) (fma.f64 y #s(literal 1/2 binary64) #s(literal 918938533204673/1000000000000000 binary64))))
(fma.f64 x (+.f64 y #s(literal 1 binary64)) (fma.f64 y #s(literal -1/2 binary64) #s(literal -918938533204673/1000000000000000 binary64)))
(-.f64 x (fma.f64 y (-.f64 #s(literal 1/2 binary64) x) #s(literal 918938533204673/1000000000000000 binary64)))
(+.f64 (-.f64 (*.f64 y (-.f64 x #s(literal 1 binary64))) (*.f64 x #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(+.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 (*.f64 y (+.f64 x #s(literal -1 binary64))) (*.f64 x #s(literal 1/2 binary64))))
(+.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 y (+.f64 x #s(literal -1 binary64)) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 y (+.f64 x #s(literal -1 binary64)) (fma.f64 x #s(literal -1/2 binary64) #s(literal 918938533204673/1000000000000000 binary64)))
(fma.f64 x #s(literal -1/2 binary64) (fma.f64 y (+.f64 x #s(literal -1 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 x (-.f64 #s(literal 1/2 binary64) y) y))
Compiler

Compiled 91 to 64 computations (29.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 46.0ms
Operation ival-mult, time spent: 23.0ms, 50.0% of total-time
Operation ival-sub, time spent: 17.0ms, 37.0% of total-time
Operation const, time spent: 4.0ms, 9.0% of total-time
Operation ival-add, time spent: 3.0ms, 6.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 40 to 28 computations (30% saved)

prune7.0ms (0.2%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
Compiler

Compiled 13 to 10 computations (23.1% saved)

localize63.0ms (2.1%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(*.f64 x (+.f64 y #s(literal -1 binary64)))
Compiler

Compiled 35 to 25 computations (28.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
Operation ival-mult, time spent: 9.0ms, 44.0% of total-time
Operation ival-add, time spent: 6.0ms, 30.0% of total-time
Operation ival-sub, time spent: 4.0ms, 20.0% of total-time
Operation const, time spent: 2.0ms, 10.0% of total-time

series4.0ms (0.1%)

Counts
1 → 24
Calls
Call 1
Inputs
#<alt (*.f64 x (+.f64 y #s(literal -1 binary64)))>
Outputs
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 x (-.f64 y #s(literal 1 binary64)))>
#<alt (*.f64 #s(literal -1 binary64) x)>
#<alt (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 x y))>
#<alt (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 x y))>
#<alt (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 x y))>
#<alt (*.f64 x y)>
#<alt (*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 x y))))>
#<alt (*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 x y))))>
#<alt (*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 x y))))>
#<alt (*.f64 x y)>
#<alt (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (/.f64 x y))))>
#<alt (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (/.f64 x y))))>
#<alt (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (/.f64 x y))))>
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
(* x (+ y -1))
1.0ms
x
@0
(* x (+ y -1))
0.0ms
y
@inf
(* x (+ y -1))
0.0ms
x
@-inf
(* x (+ y -1))
0.0ms
x
@inf
(* x (+ y -1))

rewrite182.0ms (6%)

Algorithm
batch-egg-rewrite
Rules
515×log1p-expm1-u
515×expm1-log1p-u
428×unpow-prod-down
418×pow1
279×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
110419
2141519
Stop Event
node limit
Counts
1 → 54
Calls
Call 1
Inputs
(*.f64 x (+.f64 y #s(literal -1 binary64)))
Outputs
(+.f64 (*.f64 x y) (neg.f64 x))
(+.f64 (neg.f64 x) (*.f64 x y))
(+.f64 #s(literal 0 binary64) (*.f64 x (+.f64 y #s(literal -1 binary64))))
(+.f64 (*.f64 (*.f64 x y) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x)) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))))
(-.f64 (*.f64 x y) x)
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 y #s(literal -1 binary64)))) #s(literal 1 binary64))
(/.f64 (+.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (pow.f64 (neg.f64 x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (-.f64 (pow.f64 (neg.f64 x) #s(literal 2 binary64)) (*.f64 (*.f64 x y) (neg.f64 x)))))
(/.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 (neg.f64 x) #s(literal 2 binary64))) (-.f64 (*.f64 x y) (neg.f64 x)))
(/.f64 (*.f64 x (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64)))) (-.f64 (fma.f64 y y #s(literal 1 binary64)) (*.f64 y #s(literal -1 binary64))))
(/.f64 (*.f64 x (fma.f64 y y #s(literal -1 binary64))) (+.f64 y #s(literal 1 binary64)))
(/.f64 (*.f64 (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64))) x) (-.f64 (fma.f64 y y #s(literal 1 binary64)) (*.f64 y #s(literal -1 binary64))))
(/.f64 (*.f64 (fma.f64 y y #s(literal -1 binary64)) x) (+.f64 y #s(literal 1 binary64)))
(pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 1 binary64))
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))) #s(literal 3 binary64))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 2 binary64)) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 3 binary64)) #s(literal 1/3 binary64))
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))) #s(literal 2 binary64))
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 2 binary64))) (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 2 binary64)))
(log.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 3 binary64)))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(exp.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 3 binary64)))
(exp.f64 (*.f64 (*.f64 #s(literal 3 binary64) (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 1/3 binary64)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 2 binary64)))
(fma.f64 x y (neg.f64 x))
(fma.f64 x #s(literal -1 binary64) (*.f64 x y))
(fma.f64 y x (neg.f64 x))
(fma.f64 #s(literal -1 binary64) x (*.f64 x y))
(fma.f64 #s(literal 1 binary64) (*.f64 x y) (neg.f64 x))
(fma.f64 #s(literal 1 binary64) (neg.f64 x) (*.f64 x y))
(fma.f64 (pow.f64 (cbrt.f64 x) #s(literal 2 binary64)) (*.f64 (cbrt.f64 x) y) (neg.f64 x))
(fma.f64 (pow.f64 (cbrt.f64 x) #s(literal 2 binary64)) (*.f64 (cbrt.f64 x) #s(literal -1 binary64)) (*.f64 x y))
(fma.f64 (pow.f64 (cbrt.f64 y) #s(literal 2 binary64)) (*.f64 (cbrt.f64 y) x) (neg.f64 x))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (neg.f64 x))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) #s(literal -1 binary64)) (*.f64 x y))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (neg.f64 x))
(fma.f64 (*.f64 x y) #s(literal 1 binary64) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) #s(literal 2 binary64)) (cbrt.f64 (*.f64 x y)) (neg.f64 x))
(fma.f64 (pow.f64 (cbrt.f64 (neg.f64 x)) #s(literal 2 binary64)) (cbrt.f64 (neg.f64 x)) (*.f64 x y))
(fma.f64 (sqrt.f64 (*.f64 x y)) (sqrt.f64 (*.f64 x y)) (neg.f64 x))
(fma.f64 (sqrt.f64 (neg.f64 x)) (sqrt.f64 (neg.f64 x)) (*.f64 x y))
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) #s(literal 2 binary64))) (cbrt.f64 y) (neg.f64 x))
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (neg.f64 x))
(fma.f64 (*.f64 #s(literal -1 binary64) (pow.f64 (cbrt.f64 x) #s(literal 2 binary64))) (cbrt.f64 x) (*.f64 x y))
(fma.f64 (*.f64 #s(literal -1 binary64) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x y))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) #s(literal 2 binary64))) (cbrt.f64 x) (neg.f64 x))
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 x))

simplify79.0ms (2.6%)

Algorithm
egg-herbie
Rules
512×distribute-lft-neg-out
459×associate-*r*
428×associate-*l*
393×fma-define
386×distribute-lft-neg-in
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01601800
13691778
29351762
345221762
Stop Event
node limit
Counts
78 → 71
Calls
Call 1
Inputs
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 #s(literal -1 binary64) x)
(+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 x y))
(+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 x y))
(+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 x y))
(*.f64 x y)
(*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 x y))))
(*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 x y))))
(*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 x y))))
(*.f64 x y)
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (/.f64 x y))))
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (/.f64 x y))))
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (/.f64 x y))))
(+.f64 (*.f64 x y) (neg.f64 x))
(+.f64 (neg.f64 x) (*.f64 x y))
(+.f64 #s(literal 0 binary64) (*.f64 x (+.f64 y #s(literal -1 binary64))))
(+.f64 (*.f64 (*.f64 x y) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x)) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))))
(-.f64 (*.f64 x y) x)
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 y #s(literal -1 binary64)))) #s(literal 1 binary64))
(/.f64 (+.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (pow.f64 (neg.f64 x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (-.f64 (pow.f64 (neg.f64 x) #s(literal 2 binary64)) (*.f64 (*.f64 x y) (neg.f64 x)))))
(/.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 (neg.f64 x) #s(literal 2 binary64))) (-.f64 (*.f64 x y) (neg.f64 x)))
(/.f64 (*.f64 x (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64)))) (-.f64 (fma.f64 y y #s(literal 1 binary64)) (*.f64 y #s(literal -1 binary64))))
(/.f64 (*.f64 x (fma.f64 y y #s(literal -1 binary64))) (+.f64 y #s(literal 1 binary64)))
(/.f64 (*.f64 (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64))) x) (-.f64 (fma.f64 y y #s(literal 1 binary64)) (*.f64 y #s(literal -1 binary64))))
(/.f64 (*.f64 (fma.f64 y y #s(literal -1 binary64)) x) (+.f64 y #s(literal 1 binary64)))
(pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 1 binary64))
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))) #s(literal 3 binary64))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 2 binary64)) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 3 binary64)) #s(literal 1/3 binary64))
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))) #s(literal 2 binary64))
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 2 binary64))) (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 2 binary64)))
(log.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 3 binary64)))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(exp.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 3 binary64)))
(exp.f64 (*.f64 (*.f64 #s(literal 3 binary64) (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 1/3 binary64)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 2 binary64)))
(fma.f64 x y (neg.f64 x))
(fma.f64 x #s(literal -1 binary64) (*.f64 x y))
(fma.f64 y x (neg.f64 x))
(fma.f64 #s(literal -1 binary64) x (*.f64 x y))
(fma.f64 #s(literal 1 binary64) (*.f64 x y) (neg.f64 x))
(fma.f64 #s(literal 1 binary64) (neg.f64 x) (*.f64 x y))
(fma.f64 (pow.f64 (cbrt.f64 x) #s(literal 2 binary64)) (*.f64 (cbrt.f64 x) y) (neg.f64 x))
(fma.f64 (pow.f64 (cbrt.f64 x) #s(literal 2 binary64)) (*.f64 (cbrt.f64 x) #s(literal -1 binary64)) (*.f64 x y))
(fma.f64 (pow.f64 (cbrt.f64 y) #s(literal 2 binary64)) (*.f64 (cbrt.f64 y) x) (neg.f64 x))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (neg.f64 x))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) #s(literal -1 binary64)) (*.f64 x y))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (neg.f64 x))
(fma.f64 (*.f64 x y) #s(literal 1 binary64) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) #s(literal 2 binary64)) (cbrt.f64 (*.f64 x y)) (neg.f64 x))
(fma.f64 (pow.f64 (cbrt.f64 (neg.f64 x)) #s(literal 2 binary64)) (cbrt.f64 (neg.f64 x)) (*.f64 x y))
(fma.f64 (sqrt.f64 (*.f64 x y)) (sqrt.f64 (*.f64 x y)) (neg.f64 x))
(fma.f64 (sqrt.f64 (neg.f64 x)) (sqrt.f64 (neg.f64 x)) (*.f64 x y))
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) #s(literal 2 binary64))) (cbrt.f64 y) (neg.f64 x))
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (neg.f64 x))
(fma.f64 (*.f64 #s(literal -1 binary64) (pow.f64 (cbrt.f64 x) #s(literal 2 binary64))) (cbrt.f64 x) (*.f64 x y))
(fma.f64 (*.f64 #s(literal -1 binary64) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x y))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) #s(literal 2 binary64))) (cbrt.f64 x) (neg.f64 x))
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 x))
Outputs
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 #s(literal -1 binary64) x)
(neg.f64 x)
(+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x y)
(*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 x y))))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 x y))))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 y (+.f64 x (*.f64 #s(literal -1 binary64) (/.f64 x y))))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 x y)
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (/.f64 x y))))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (/.f64 x y))))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (/.f64 x y))))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(+.f64 (*.f64 x y) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(+.f64 (neg.f64 x) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(+.f64 #s(literal 0 binary64) (*.f64 x (+.f64 y #s(literal -1 binary64))))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(+.f64 (*.f64 (*.f64 x y) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x)) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (+.f64 y #s(literal -1 binary64)))) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (+.f64 y #s(literal -1 binary64))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))))
(*.f64 #s(literal 2 binary64) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))))
(*.f64 #s(literal 2 binary64) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (+.f64 y #s(literal -1 binary64))))))
(-.f64 (*.f64 x y) x)
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 y #s(literal -1 binary64)))) #s(literal 1 binary64))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(/.f64 (+.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (pow.f64 (neg.f64 x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (-.f64 (pow.f64 (neg.f64 x) #s(literal 2 binary64)) (*.f64 (*.f64 x y) (neg.f64 x)))))
(/.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (*.f64 (neg.f64 x) (-.f64 (neg.f64 x) (*.f64 x y)))))
(/.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64)))) (fma.f64 x x (*.f64 (*.f64 x y) (fma.f64 x y x))))
(/.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64)))) (fma.f64 x x (*.f64 y (*.f64 x (fma.f64 x y x)))))
(/.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 (neg.f64 x) #s(literal 2 binary64))) (-.f64 (*.f64 x y) (neg.f64 x)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(/.f64 (*.f64 x (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64)))) (-.f64 (fma.f64 y y #s(literal 1 binary64)) (*.f64 y #s(literal -1 binary64))))
(*.f64 x (/.f64 (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64))) (-.f64 (fma.f64 y y #s(literal 1 binary64)) (*.f64 y #s(literal -1 binary64)))))
(*.f64 x (/.f64 (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64))) (+.f64 y (fma.f64 y y #s(literal 1 binary64)))))
(*.f64 (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64))) (/.f64 x (+.f64 y (fma.f64 y y #s(literal 1 binary64)))))
(/.f64 (*.f64 x (fma.f64 y y #s(literal -1 binary64))) (+.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(/.f64 (*.f64 (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64))) x) (-.f64 (fma.f64 y y #s(literal 1 binary64)) (*.f64 y #s(literal -1 binary64))))
(*.f64 x (/.f64 (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64))) (-.f64 (fma.f64 y y #s(literal 1 binary64)) (*.f64 y #s(literal -1 binary64)))))
(*.f64 x (/.f64 (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64))) (+.f64 y (fma.f64 y y #s(literal 1 binary64)))))
(*.f64 (+.f64 #s(literal -1 binary64) (pow.f64 y #s(literal 3 binary64))) (/.f64 x (+.f64 y (fma.f64 y y #s(literal 1 binary64)))))
(/.f64 (*.f64 (fma.f64 y y #s(literal -1 binary64)) x) (+.f64 y #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 1 binary64))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))) #s(literal 3 binary64))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 2 binary64)) #s(literal 1/2 binary64))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 3 binary64)) #s(literal 1/3 binary64))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))) #s(literal 2 binary64))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 2 binary64))) (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 2 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(log.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal -1 binary64))) x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) #s(literal 3 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(exp.f64 (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64)))))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 3 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(exp.f64 (*.f64 (*.f64 #s(literal 3 binary64) (log.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 1/3 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))))) #s(literal 2 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 x #s(literal -1 binary64) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 y x (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 #s(literal -1 binary64) x (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 #s(literal 1 binary64) (*.f64 x y) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 #s(literal 1 binary64) (neg.f64 x) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (pow.f64 (cbrt.f64 x) #s(literal 2 binary64)) (*.f64 (cbrt.f64 x) y) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (pow.f64 (cbrt.f64 x) #s(literal 2 binary64)) (*.f64 (cbrt.f64 x) #s(literal -1 binary64)) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (pow.f64 (cbrt.f64 y) #s(literal 2 binary64)) (*.f64 (cbrt.f64 y) x) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) #s(literal -1 binary64)) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (*.f64 x y) #s(literal 1 binary64) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) #s(literal 2 binary64)) (cbrt.f64 (*.f64 x y)) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (pow.f64 (cbrt.f64 (neg.f64 x)) #s(literal 2 binary64)) (cbrt.f64 (neg.f64 x)) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (sqrt.f64 (*.f64 x y)) (sqrt.f64 (*.f64 x y)) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (sqrt.f64 (neg.f64 x)) (sqrt.f64 (neg.f64 x)) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) #s(literal 2 binary64))) (cbrt.f64 y) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (*.f64 #s(literal -1 binary64) (pow.f64 (cbrt.f64 x) #s(literal 2 binary64))) (cbrt.f64 x) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (*.f64 #s(literal -1 binary64) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x y))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) #s(literal 2 binary64))) (cbrt.f64 x) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 x))
(*.f64 x (+.f64 y #s(literal -1 binary64)))

eval24.0ms (0.8%)

Compiler

Compiled 1172 to 764 computations (34.8% saved)

prune12.0ms (0.4%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New69271
Fresh000
Picked011
Done000
Total69372
Accuracy
100.0%
Counts
72 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
72.4%
(-.f64 (*.f64 x y) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
77.0%
(-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
Compiler

Compiled 34 to 26 computations (23.5% saved)

localize82.0ms (2.7%)

Compiler

Compiled 49 to 31 computations (36.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 33.0ms
Operation ival-mult, time spent: 20.0ms, 61.0% of total-time
Operation ival-sub, time spent: 9.0ms, 27.0% of total-time
Operation const, time spent: 2.0ms, 6.0% of total-time
Operation ival-neg, time spent: 2.0ms, 6.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done011
Total033
Accuracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
72.4%
(-.f64 (*.f64 x y) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
77.0%
(-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
Compiler

Compiled 75 to 56 computations (25.3% saved)

regimes9.0ms (0.3%)

Counts
4 → 1
Calls
Call 1
Inputs
(-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 (*.f64 x y) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(-.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
Outputs
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
Calls

4 calls:

3.0ms
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
2.0ms
y
2.0ms
x
2.0ms
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
100.0%1(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
Compiler

Compiled 30 to 22 computations (26.7% saved)

regimes7.0ms (0.2%)

Counts
2 → 3
Calls
Call 1
Inputs
(-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 (*.f64 x y) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
Outputs
(-.f64 (*.f64 x y) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 (*.f64 x y) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
Calls

2 calls:

4.0ms
x
3.0ms
y
Results
AccuracySegmentsBranch
83.6%5x
99.0%3y
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes2.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
Outputs
(-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
Calls

2 calls:

1.0ms
y
1.0ms
x
Results
AccuracySegmentsBranch
77.0%1x
77.0%1y
Compiler

Compiled 6 to 4 computations (33.3% saved)

bsearch31.0ms (1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
4.1030120728780255e-14
3.694028696548689e-13
16.0ms
-14051086.41903341
-395300.775399963
Results
24.0ms205×256valid
0.0ms256infinite
0.0ms256valid
Compiler

Compiled 317 to 248 computations (21.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
Operation ival-sub, time spent: 3.0ms, 42.0% of total-time
Operation ival-mult, time spent: 3.0ms, 42.0% of total-time
Operation ival-add, time spent: 1.0ms, 14.0% of total-time
Operation const, time spent: 1.0ms, 14.0% of total-time

simplify10.0ms (0.3%)

Algorithm
egg-herbie
Rules
78×unsub-neg
38×neg-mul-1
17×distribute-neg-out
16×*-commutative
16×+-commutative
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
030163
159163
285163
3113155
4155155
5207155
6217155
7266155
8317155
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(if (<=.f64 y #s(literal -400000 binary64)) (-.f64 (*.f64 x y) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64))) (if (<=.f64 y #s(literal 3565267313141895/9903520314283042199192993792 binary64)) (-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64))) (-.f64 (*.f64 x y) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))))
(-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
Outputs
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(+.f64 (-.f64 (*.f64 x (+.f64 y #s(literal -1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(if (<=.f64 y #s(literal -400000 binary64)) (-.f64 (*.f64 x y) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64))) (if (<=.f64 y #s(literal 3565267313141895/9903520314283042199192993792 binary64)) (-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64))) (-.f64 (*.f64 x y) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))))
(if (or (<=.f64 y #s(literal -400000 binary64)) (not (<=.f64 y #s(literal 3565267313141895/9903520314283042199192993792 binary64)))) (-.f64 (*.f64 x y) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64))) (-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64))))
(if (or (<=.f64 y #s(literal -400000 binary64)) (not (<=.f64 y #s(literal 3565267313141895/9903520314283042199192993792 binary64)))) (+.f64 (*.f64 x y) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (*.f64 y #s(literal 1/2 binary64)))) (-.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (*.f64 y #s(literal 1/2 binary64))) x))
(-.f64 (neg.f64 x) (-.f64 (*.f64 y #s(literal 1/2 binary64)) #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (*.f64 y #s(literal 1/2 binary64))) x)
Compiler

Compiled 49 to 37 computations (24.5% saved)

soundness666.0ms (21.9%)

Rules
2165×fmm-def
512×distribute-lft-neg-out
459×associate-*r*
428×associate-*l*
414×sub-neg
Iterations

Useful iterations: 13 (0.0ms)

IterNodesCost
01601800
13691778
29351762
345221762
033304
198264
2250236
3786224
42305224
53793224
64333224
74467224
84493224
94497224
104553224
114613224
124637224
134637210
146604210
156604210
166604210
Stop Event
saturated
node limit
Compiler

Compiled 66 to 50 computations (24.2% saved)

end0.0ms (0%)

preprocess44.0ms (1.4%)

Compiler

Compiled 116 to 86 computations (25.9% saved)

Profiling

Loading profile data...