sqrt A (should all be same)

Time bar (total: 3.6s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
100%100%0%0%0%0%0%2
Compiler

Compiled 10 to 5 computations (50% saved)

sample962.0ms (26.9%)

Results
950.0ms8256×body256valid
Bogosity

preprocess51.0ms (1.4%)

Algorithm
egg-herbie
Rules
178×fma-def
40×associate-*r*
30×distribute-lft-neg-in
26×sub-neg
24×neg-sub0
Problems
132×(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
124×No Errors
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01456
13656
28256
319456
429956
535956
636156
Stop Event
saturated
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(sqrt.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (neg.f64 x) (neg.f64 x))))
(neg.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (neg.f64 x) (neg.f64 x)))))
Outputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(hypot.f64 x x)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(hypot.f64 x x)
(sqrt.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (neg.f64 x) (neg.f64 x))))
(hypot.f64 x x)
(neg.f64 (sqrt.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (neg.f64 x) (neg.f64 x)))))
(neg.f64 (hypot.f64 x x))
Symmetry

(abs x)

Compiler

Compiled 30 to 9 computations (70% saved)

eval0.0ms (0%)

Compiler

Compiled 4 to 2 computations (50% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
100.0%
(hypot.f64 x x)
Compiler

Compiled 8 to 4 computations (50% saved)

localize17.0ms (0.5%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(hypot.f64 x x)
Compiler

Compiled 6 to 3 computations (50% saved)

series2.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(hypot.f64 x x)
1.0ms
x
@inf
(hypot.f64 x x)
1.0ms
x
@0
(hypot.f64 x x)

rewrite140.0ms (3.9%)

Algorithm
batch-egg-rewrite
Rules
801×log1p-expm1-u
486×expm1-log1p-u
434×expm1-udef
434×log1p-udef
408×associate-*r*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0613
14613
24787
354967
Stop Event
node limit
Counts
1 → 104
Calls
Call 1
Inputs
(hypot.f64 x x)
Outputs
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(+.f64 (+.f64 (/.f64 0 0) 1) -1)
(+.f64 0 (/.f64 0 0))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 0 0))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 0 0)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 0 0)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 0 0)))))
(+.f64 (*.f64 (/.f64 0 0) (pow.f64 x 2)) (*.f64 (/.f64 0 0) (pow.f64 x 2)))
(+.f64 (*.f64 (pow.f64 x 2) (/.f64 0 0)) (*.f64 (pow.f64 x 2) (/.f64 0 0)))
(-.f64 (+.f64 (/.f64 0 0) 1) 1)
(-.f64 (/.f64 (pow.f64 x 4) 0) (/.f64 (pow.f64 x 4) 0))
(*.f64 x (*.f64 x 2))
(*.f64 x (*.f64 (*.f64 x 2) 1))
(*.f64 x (*.f64 (*.f64 x 2) (/.f64 0 0)))
(*.f64 (pow.f64 x 2) 2)
(*.f64 (pow.f64 x 2) (*.f64 (*.f64 x 2) (*.f64 x 2)))
(*.f64 (/.f64 0 0) (/.f64 0 0))
(*.f64 (/.f64 0 0) 1)
(*.f64 (/.f64 0 0) (log.f64 (E.f64)))
(*.f64 (/.f64 0 0) (pow.f64 1 1/3))
(*.f64 (/.f64 0 0) (pow.f64 1 1/2))
(*.f64 1 (/.f64 0 0))
(*.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 x 2)))
(*.f64 (cbrt.f64 x) (+.f64 (pow.f64 (cbrt.f64 x) 5) (pow.f64 (cbrt.f64 x) 5)))
(*.f64 (cbrt.f64 x) (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 x 2)))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (pow.f64 (cbrt.f64 x) 4) (pow.f64 (cbrt.f64 x) 4)))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 x 2)))
(*.f64 (sqrt.f64 x) (pow.f64 (*.f64 x 2) 1/2))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
(*.f64 (sqrt.f64 x) (+.f64 (pow.f64 x 3/2) (pow.f64 x 3/2)))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x 2)))
(*.f64 0 (/.f64 1 0))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 (pow.f64 x 2) (/.f64 0 0)))
(*.f64 (pow.f64 (cbrt.f64 x) 4) (+.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 x) 2)))
(*.f64 (pow.f64 x 3/2) (+.f64 (sqrt.f64 x) (sqrt.f64 x)))
(*.f64 (*.f64 2 (pow.f64 x 6)) (/.f64 1 (+.f64 0 (pow.f64 x 4))))
(*.f64 (*.f64 x 2) x)
(*.f64 (pow.f64 (cbrt.f64 x) 5) (+.f64 (cbrt.f64 x) (cbrt.f64 x)))
(*.f64 4 (pow.f64 x 4))
(*.f64 (pow.f64 1 1/3) (/.f64 0 0))
(*.f64 (pow.f64 1 1/2) (/.f64 0 0))
(*.f64 (pow.f64 2 1/2) x)
(*.f64 (cbrt.f64 2) (pow.f64 (cbrt.f64 x) 2))
(*.f64 (sqrt.f64 2) x)
(*.f64 (*.f64 2 (sqrt.f64 x)) (pow.f64 x 3/2))
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 2)) (pow.f64 (cbrt.f64 x) 4))
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 4)) (pow.f64 (cbrt.f64 x) 2))
(*.f64 (*.f64 2 (pow.f64 x 3/2)) (sqrt.f64 x))
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 5)) (cbrt.f64 x))
(*.f64 (*.f64 (/.f64 0 0) x) (*.f64 x 2))
(*.f64 (*.f64 (/.f64 0 0) 2) (pow.f64 x 2))
(/.f64 1 (/.f64 0 0))
(/.f64 1 (/.f64 (+.f64 0 (pow.f64 x 4)) (*.f64 2 (pow.f64 x 6))))
(/.f64 0 0)
(/.f64 (*.f64 2 (pow.f64 x 6)) (+.f64 0 (pow.f64 x 4)))
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 x 6))) (cbrt.f64 (+.f64 0 (pow.f64 x 4))))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 6))) (sqrt.f64 (+.f64 0 (pow.f64 x 4))))
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) (*.f64 2 (pow.f64 x 6))) (*.f64 (+.f64 0 (pow.f64 x 4)) (+.f64 0 (pow.f64 x 4))))
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) 0) (*.f64 (+.f64 0 (pow.f64 x 4)) 0))
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 x 6))) (*.f64 0 (+.f64 0 (pow.f64 x 4))))
(/.f64 (neg.f64 (*.f64 2 (pow.f64 x 6))) (neg.f64 (+.f64 0 (pow.f64 x 4))))
(/.f64 (-.f64 (pow.f64 (+.f64 (/.f64 0 0) 1) 3) 1) (+.f64 (*.f64 (+.f64 (/.f64 0 0) 1) (+.f64 (/.f64 0 0) 1)) (+.f64 1 (+.f64 (/.f64 0 0) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 (/.f64 0 0) 1) (+.f64 (/.f64 0 0) 1)) 1) (+.f64 (+.f64 (/.f64 0 0) 1) 1))
(/.f64 (*.f64 (/.f64 0 0) (*.f64 2 (pow.f64 x 6))) (+.f64 0 (pow.f64 x 4)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) 1) (+.f64 0 (pow.f64 x 4)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) (/.f64 0 0)) (+.f64 0 (pow.f64 x 4)))
(/.f64 (*.f64 0 (/.f64 0 0)) 0)
(pow.f64 (/.f64 0 0) 1)
(pow.f64 (/.f64 0 0) 2)
(pow.f64 (/.f64 0 0) 1/2)
(pow.f64 (/.f64 0 0) 1/3)
(pow.f64 (/.f64 0 0) 3)
(pow.f64 (/.f64 0 0) 6)
(pow.f64 (/.f64 0 0) 5/2)
(pow.f64 (/.f64 0 0) 5)
(pow.f64 (/.f64 0 0) 3/2)
(pow.f64 (/.f64 0 0) 4/3)
(pow.f64 (/.f64 0 0) 4)
(pow.f64 (/.f64 0 0) 2/3)
(pow.f64 (/.f64 0 0) 1/6)
(pow.f64 (/.f64 0 0) 1/9)
(pow.f64 (/.f64 0 0) 1/4)
(pow.f64 (/.f64 0 0) 9)
(pow.f64 (E.f64) (log.f64 (/.f64 0 0)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (log.f64 (/.f64 0 0)) 2))) (cbrt.f64 (log.f64 (/.f64 0 0))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 0 0)))) (sqrt.f64 (log.f64 (/.f64 0 0))))
(sqrt.f64 (/.f64 0 0))
(fabs.f64 (/.f64 0 0))
(fabs.f64 (neg.f64 (/.f64 0 0)))
(log.f64 (exp.f64 (/.f64 0 0)))
(cbrt.f64 (/.f64 0 0))
(expm1.f64 (log1p.f64 (/.f64 0 0)))
(exp.f64 (log.f64 (/.f64 0 0)))
(exp.f64 (*.f64 (log.f64 (/.f64 0 0)) 1/2))
(exp.f64 (*.f64 (log.f64 (/.f64 0 0)) 3))
(exp.f64 (*.f64 (log.f64 (/.f64 0 0)) 1/3))
(log1p.f64 (expm1.f64 (/.f64 0 0)))
(fma.f64 x x (pow.f64 x 2))
(fma.f64 1 (pow.f64 x 2) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 x) 4) (pow.f64 x 2))
(fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 4) (pow.f64 (cbrt.f64 x) 2) (pow.f64 x 2))
(fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (pow.f64 x 2))

simplify16.0ms (0.4%)

Algorithm
egg-herbie
Rules
78×*-commutative
60×sqr-pow
30×associate-*r*
26×associate-*l*
20×count-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0223916
1678916
Stop Event
unsound
Counts
116 → 126
Calls
Call 1
Inputs
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 -1 (*.f64 x (sqrt.f64 2)))
(*.f64 -1 (*.f64 x (sqrt.f64 2)))
(*.f64 -1 (*.f64 x (sqrt.f64 2)))
(*.f64 -1 (*.f64 x (sqrt.f64 2)))
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
(+.f64 (+.f64 (/.f64 0 0) 1) -1)
(+.f64 0 (/.f64 0 0))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 0 0))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 0 0)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 0 0)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 0 0)))))
(+.f64 (*.f64 (/.f64 0 0) (pow.f64 x 2)) (*.f64 (/.f64 0 0) (pow.f64 x 2)))
(+.f64 (*.f64 (pow.f64 x 2) (/.f64 0 0)) (*.f64 (pow.f64 x 2) (/.f64 0 0)))
(-.f64 (+.f64 (/.f64 0 0) 1) 1)
(-.f64 (/.f64 (pow.f64 x 4) 0) (/.f64 (pow.f64 x 4) 0))
(*.f64 x (*.f64 x 2))
(*.f64 x (*.f64 (*.f64 x 2) 1))
(*.f64 x (*.f64 (*.f64 x 2) (/.f64 0 0)))
(*.f64 (pow.f64 x 2) 2)
(*.f64 (pow.f64 x 2) (*.f64 (*.f64 x 2) (*.f64 x 2)))
(*.f64 (/.f64 0 0) (/.f64 0 0))
(*.f64 (/.f64 0 0) 1)
(*.f64 (/.f64 0 0) (log.f64 (E.f64)))
(*.f64 (/.f64 0 0) (pow.f64 1 1/3))
(*.f64 (/.f64 0 0) (pow.f64 1 1/2))
(*.f64 1 (/.f64 0 0))
(*.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 x 2)))
(*.f64 (cbrt.f64 x) (+.f64 (pow.f64 (cbrt.f64 x) 5) (pow.f64 (cbrt.f64 x) 5)))
(*.f64 (cbrt.f64 x) (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 x 2)))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (pow.f64 (cbrt.f64 x) 4) (pow.f64 (cbrt.f64 x) 4)))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 x 2)))
(*.f64 (sqrt.f64 x) (pow.f64 (*.f64 x 2) 1/2))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
(*.f64 (sqrt.f64 x) (+.f64 (pow.f64 x 3/2) (pow.f64 x 3/2)))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x 2)))
(*.f64 0 (/.f64 1 0))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 (pow.f64 x 2) (/.f64 0 0)))
(*.f64 (pow.f64 (cbrt.f64 x) 4) (+.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 x) 2)))
(*.f64 (pow.f64 x 3/2) (+.f64 (sqrt.f64 x) (sqrt.f64 x)))
(*.f64 (*.f64 2 (pow.f64 x 6)) (/.f64 1 (+.f64 0 (pow.f64 x 4))))
(*.f64 (*.f64 x 2) x)
(*.f64 (pow.f64 (cbrt.f64 x) 5) (+.f64 (cbrt.f64 x) (cbrt.f64 x)))
(*.f64 4 (pow.f64 x 4))
(*.f64 (pow.f64 1 1/3) (/.f64 0 0))
(*.f64 (pow.f64 1 1/2) (/.f64 0 0))
(*.f64 (pow.f64 2 1/2) x)
(*.f64 (cbrt.f64 2) (pow.f64 (cbrt.f64 x) 2))
(*.f64 (sqrt.f64 2) x)
(*.f64 (*.f64 2 (sqrt.f64 x)) (pow.f64 x 3/2))
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 2)) (pow.f64 (cbrt.f64 x) 4))
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 4)) (pow.f64 (cbrt.f64 x) 2))
(*.f64 (*.f64 2 (pow.f64 x 3/2)) (sqrt.f64 x))
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 5)) (cbrt.f64 x))
(*.f64 (*.f64 (/.f64 0 0) x) (*.f64 x 2))
(*.f64 (*.f64 (/.f64 0 0) 2) (pow.f64 x 2))
(/.f64 1 (/.f64 0 0))
(/.f64 1 (/.f64 (+.f64 0 (pow.f64 x 4)) (*.f64 2 (pow.f64 x 6))))
(/.f64 0 0)
(/.f64 (*.f64 2 (pow.f64 x 6)) (+.f64 0 (pow.f64 x 4)))
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 x 6))) (cbrt.f64 (+.f64 0 (pow.f64 x 4))))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 6))) (sqrt.f64 (+.f64 0 (pow.f64 x 4))))
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) (*.f64 2 (pow.f64 x 6))) (*.f64 (+.f64 0 (pow.f64 x 4)) (+.f64 0 (pow.f64 x 4))))
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) 0) (*.f64 (+.f64 0 (pow.f64 x 4)) 0))
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 x 6))) (*.f64 0 (+.f64 0 (pow.f64 x 4))))
(/.f64 (neg.f64 (*.f64 2 (pow.f64 x 6))) (neg.f64 (+.f64 0 (pow.f64 x 4))))
(/.f64 (-.f64 (pow.f64 (+.f64 (/.f64 0 0) 1) 3) 1) (+.f64 (*.f64 (+.f64 (/.f64 0 0) 1) (+.f64 (/.f64 0 0) 1)) (+.f64 1 (+.f64 (/.f64 0 0) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 (/.f64 0 0) 1) (+.f64 (/.f64 0 0) 1)) 1) (+.f64 (+.f64 (/.f64 0 0) 1) 1))
(/.f64 (*.f64 (/.f64 0 0) (*.f64 2 (pow.f64 x 6))) (+.f64 0 (pow.f64 x 4)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) 1) (+.f64 0 (pow.f64 x 4)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) (/.f64 0 0)) (+.f64 0 (pow.f64 x 4)))
(/.f64 (*.f64 0 (/.f64 0 0)) 0)
(pow.f64 (/.f64 0 0) 1)
(pow.f64 (/.f64 0 0) 2)
(pow.f64 (/.f64 0 0) 1/2)
(pow.f64 (/.f64 0 0) 1/3)
(pow.f64 (/.f64 0 0) 3)
(pow.f64 (/.f64 0 0) 6)
(pow.f64 (/.f64 0 0) 5/2)
(pow.f64 (/.f64 0 0) 5)
(pow.f64 (/.f64 0 0) 3/2)
(pow.f64 (/.f64 0 0) 4/3)
(pow.f64 (/.f64 0 0) 4)
(pow.f64 (/.f64 0 0) 2/3)
(pow.f64 (/.f64 0 0) 1/6)
(pow.f64 (/.f64 0 0) 1/9)
(pow.f64 (/.f64 0 0) 1/4)
(pow.f64 (/.f64 0 0) 9)
(pow.f64 (E.f64) (log.f64 (/.f64 0 0)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (log.f64 (/.f64 0 0)) 2))) (cbrt.f64 (log.f64 (/.f64 0 0))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 0 0)))) (sqrt.f64 (log.f64 (/.f64 0 0))))
(sqrt.f64 (/.f64 0 0))
(fabs.f64 (/.f64 0 0))
(fabs.f64 (neg.f64 (/.f64 0 0)))
(log.f64 (exp.f64 (/.f64 0 0)))
(cbrt.f64 (/.f64 0 0))
(expm1.f64 (log1p.f64 (/.f64 0 0)))
(exp.f64 (log.f64 (/.f64 0 0)))
(exp.f64 (*.f64 (log.f64 (/.f64 0 0)) 1/2))
(exp.f64 (*.f64 (log.f64 (/.f64 0 0)) 3))
(exp.f64 (*.f64 (log.f64 (/.f64 0 0)) 1/3))
(log1p.f64 (expm1.f64 (/.f64 0 0)))
(fma.f64 x x (pow.f64 x 2))
(fma.f64 1 (pow.f64 x 2) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 x) 4) (pow.f64 x 2))
(fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 4) (pow.f64 (cbrt.f64 x) 2) (pow.f64 x 2))
(fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (pow.f64 x 2))
Outputs
(*.f64 x (sqrt.f64 2))
(*.f64 x -2)
(*.f64 x (sqrt.f64 2))
(*.f64 x -2)
(*.f64 x (sqrt.f64 2))
(*.f64 x -2)
(*.f64 x (sqrt.f64 2))
(*.f64 x -2)
(*.f64 x (sqrt.f64 2))
(*.f64 x -2)
(*.f64 x (sqrt.f64 2))
(*.f64 x -2)
(*.f64 x (sqrt.f64 2))
(*.f64 x -2)
(*.f64 x (sqrt.f64 2))
(*.f64 x -2)
(*.f64 -1 (*.f64 x (sqrt.f64 2)))
(*.f64 x -2)
(*.f64 -1 (*.f64 x (sqrt.f64 2)))
(*.f64 x -2)
(*.f64 -1 (*.f64 x (sqrt.f64 2)))
(*.f64 x -2)
(*.f64 -1 (*.f64 x (sqrt.f64 2)))
(*.f64 x -2)
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
-2
(+.f64 (+.f64 (/.f64 0 0) 1) -1)
-2
(+.f64 0 (/.f64 0 0))
-2
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 0 0))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 0 0)))))
-2
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 0 0)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 0 0)))))
-2
(+.f64 (*.f64 (/.f64 0 0) (pow.f64 x 2)) (*.f64 (/.f64 0 0) (pow.f64 x 2)))
-2
(+.f64 (*.f64 (pow.f64 x 2) (/.f64 0 0)) (*.f64 (pow.f64 x 2) (/.f64 0 0)))
-2
(-.f64 (+.f64 (/.f64 0 0) 1) 1)
-2
(-.f64 (/.f64 (pow.f64 x 4) 0) (/.f64 (pow.f64 x 4) 0))
-2
(*.f64 x (*.f64 x 2))
-2
(*.f64 x (*.f64 (*.f64 x 2) 1))
-2
(*.f64 x (*.f64 (*.f64 x 2) (/.f64 0 0)))
-2
(*.f64 (pow.f64 x 2) 2)
-2
(*.f64 (pow.f64 x 2) (*.f64 (*.f64 x 2) (*.f64 x 2)))
-2
(*.f64 (/.f64 0 0) (/.f64 0 0))
-2
(*.f64 (/.f64 0 0) 1)
-2
(*.f64 (/.f64 0 0) (log.f64 (E.f64)))
-2
(*.f64 (/.f64 0 0) (pow.f64 1 1/3))
-2
(*.f64 (/.f64 0 0) (pow.f64 1 1/2))
-2
(*.f64 1 (/.f64 0 0))
-2
(*.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 x 2)))
(*.f64 (cbrt.f64 x) (cbrt.f64 (*.f64 x -2)))
(*.f64 (cbrt.f64 x) (+.f64 (pow.f64 (cbrt.f64 x) 5) (pow.f64 (cbrt.f64 x) 5)))
(*.f64 -2 (*.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x)))
(*.f64 (cbrt.f64 x) (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 x 2)))
(*.f64 (cbrt.f64 x) (*.f64 (*.f64 x -2) (pow.f64 (cbrt.f64 x) -2)))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (+.f64 (pow.f64 (cbrt.f64 x) 4) (pow.f64 (cbrt.f64 x) 4)))
(*.f64 -2 (pow.f64 (cbrt.f64 x) -2))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 x 2)))
(*.f64 (pow.f64 (cbrt.f64 x) -2) (*.f64 (*.f64 x -2) (cbrt.f64 x)))
(*.f64 (sqrt.f64 x) (pow.f64 (*.f64 x 2) 1/2))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x -2)))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x -2)))
(*.f64 (sqrt.f64 x) (+.f64 (pow.f64 x 3/2) (pow.f64 x 3/2)))
(*.f64 -2 (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x 2)))
(*.f64 (sqrt.f64 x) (*.f64 (*.f64 x -2) (sqrt.f64 x)))
(*.f64 0 (/.f64 1 0))
-2
(*.f64 2 (pow.f64 x 2))
-2
(*.f64 2 (*.f64 (pow.f64 x 2) (/.f64 0 0)))
-2
(*.f64 (pow.f64 (cbrt.f64 x) 4) (+.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 x) 2)))
(*.f64 -2 (pow.f64 (cbrt.f64 x) -2))
(*.f64 (pow.f64 x 3/2) (+.f64 (sqrt.f64 x) (sqrt.f64 x)))
(*.f64 -2 (sqrt.f64 x))
(*.f64 (*.f64 2 (pow.f64 x 6)) (/.f64 1 (+.f64 0 (pow.f64 x 4))))
-2
(*.f64 (*.f64 x 2) x)
-2
(*.f64 (pow.f64 (cbrt.f64 x) 5) (+.f64 (cbrt.f64 x) (cbrt.f64 x)))
(*.f64 -2 (*.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x)))
(*.f64 4 (pow.f64 x 4))
-2
(*.f64 (pow.f64 1 1/3) (/.f64 0 0))
-2
(*.f64 (pow.f64 1 1/2) (/.f64 0 0))
-2
(*.f64 (pow.f64 2 1/2) x)
(*.f64 x -2)
(*.f64 (cbrt.f64 2) (pow.f64 (cbrt.f64 x) 2))
(*.f64 -2 (pow.f64 (cbrt.f64 x) -2))
(*.f64 (sqrt.f64 2) x)
(*.f64 x -2)
(*.f64 (*.f64 2 (sqrt.f64 x)) (pow.f64 x 3/2))
(*.f64 -2 (sqrt.f64 x))
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 2)) (pow.f64 (cbrt.f64 x) 4))
(*.f64 -2 (pow.f64 (cbrt.f64 x) -2))
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 4)) (pow.f64 (cbrt.f64 x) 2))
(*.f64 -2 (pow.f64 (cbrt.f64 x) -2))
(*.f64 (*.f64 2 (pow.f64 x 3/2)) (sqrt.f64 x))
(*.f64 -2 (sqrt.f64 x))
(*.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 5)) (cbrt.f64 x))
(*.f64 -2 (*.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x)))
(*.f64 (*.f64 (/.f64 0 0) x) (*.f64 x 2))
-2
(*.f64 (*.f64 (/.f64 0 0) 2) (pow.f64 x 2))
-2
(/.f64 1 (/.f64 0 0))
-2
(/.f64 1 (/.f64 (+.f64 0 (pow.f64 x 4)) (*.f64 2 (pow.f64 x 6))))
-2
(/.f64 0 0)
-2
(/.f64 (*.f64 2 (pow.f64 x 6)) (+.f64 0 (pow.f64 x 4)))
-2
(/.f64 (cbrt.f64 (*.f64 2 (pow.f64 x 6))) (cbrt.f64 (+.f64 0 (pow.f64 x 4))))
(/.f64 -2 (cbrt.f64 (pow.f64 x -2)))
(/.f64 (sqrt.f64 0) (sqrt.f64 0))
-2
(/.f64 (sqrt.f64 (*.f64 2 (pow.f64 x 6))) (sqrt.f64 (+.f64 0 (pow.f64 x 4))))
(/.f64 -2 (sqrt.f64 (pow.f64 x -2)))
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) (*.f64 2 (pow.f64 x 6))) (*.f64 (+.f64 0 (pow.f64 x 4)) (+.f64 0 (pow.f64 x 4))))
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) 0) (*.f64 (+.f64 0 (pow.f64 x 4)) 0))
-2
(/.f64 (*.f64 0 (*.f64 2 (pow.f64 x 6))) (*.f64 0 (+.f64 0 (pow.f64 x 4))))
-2
(/.f64 (neg.f64 (*.f64 2 (pow.f64 x 6))) (neg.f64 (+.f64 0 (pow.f64 x 4))))
-2
(/.f64 (-.f64 (pow.f64 (+.f64 (/.f64 0 0) 1) 3) 1) (+.f64 (*.f64 (+.f64 (/.f64 0 0) 1) (+.f64 (/.f64 0 0) 1)) (+.f64 1 (+.f64 (/.f64 0 0) 1))))
-2
(/.f64 (-.f64 (*.f64 (+.f64 (/.f64 0 0) 1) (+.f64 (/.f64 0 0) 1)) 1) (+.f64 (+.f64 (/.f64 0 0) 1) 1))
-2
(/.f64 (*.f64 (/.f64 0 0) (*.f64 2 (pow.f64 x 6))) (+.f64 0 (pow.f64 x 4)))
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) 1) (+.f64 0 (pow.f64 x 4)))
-2
(/.f64 (*.f64 (*.f64 2 (pow.f64 x 6)) (/.f64 0 0)) (+.f64 0 (pow.f64 x 4)))
-2
(/.f64 (*.f64 0 (/.f64 0 0)) 0)
-2
(pow.f64 (/.f64 0 0) 1)
-2
(pow.f64 (/.f64 0 0) 2)
-2
(pow.f64 (/.f64 0 0) 1/2)
-2
(pow.f64 (/.f64 0 0) 1/3)
-2
(pow.f64 (/.f64 0 0) 3)
-2
(pow.f64 (/.f64 0 0) 6)
-2
(pow.f64 (/.f64 0 0) 5/2)
(pow.f64 -2 5/2)
(pow.f64 (/.f64 0 0) 5)
-2
(pow.f64 (/.f64 0 0) 3/2)
-2
(pow.f64 (/.f64 0 0) 4/3)
-2
(pow.f64 (/.f64 0 0) 4)
-2
(pow.f64 (/.f64 0 0) 2/3)
-2
(pow.f64 (/.f64 0 0) 1/6)
(pow.f64 -2 1/6)
(pow.f64 (/.f64 0 0) 1/9)
(*.f64 (pow.f64 -2 1/18) (pow.f64 -2 1/18))
(pow.f64 (/.f64 0 0) 1/4)
-2
(pow.f64 (/.f64 0 0) 9)
-2
(pow.f64 (E.f64) (log.f64 (/.f64 0 0)))
-2
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (log.f64 (/.f64 0 0)) 2))) (cbrt.f64 (log.f64 (/.f64 0 0))))
-2
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 0 0)))) (sqrt.f64 (log.f64 (/.f64 0 0))))
-2
(sqrt.f64 (/.f64 0 0))
-2
(fabs.f64 (/.f64 0 0))
-2
(fabs.f64 (neg.f64 (/.f64 0 0)))
-2
(log.f64 (exp.f64 (/.f64 0 0)))
-2
(cbrt.f64 (/.f64 0 0))
-2
(expm1.f64 (log1p.f64 (/.f64 0 0)))
-2
(exp.f64 (log.f64 (/.f64 0 0)))
-2
(exp.f64 (*.f64 (log.f64 (/.f64 0 0)) 1/2))
-2
(exp.f64 (*.f64 (log.f64 (/.f64 0 0)) 3))
-2
(exp.f64 (*.f64 (log.f64 (/.f64 0 0)) 1/3))
-2
(log1p.f64 (expm1.f64 (/.f64 0 0)))
-2
(fma.f64 x x (pow.f64 x 2))
-2
(fma.f64 1 (pow.f64 x 2) (pow.f64 x 2))
(pow.f64 x -2)
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 x) 4) (pow.f64 x 2))
(+.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 x -2))
(fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (pow.f64 x 2))
(fma.f64 (sqrt.f64 x) (pow.f64 x -2) (pow.f64 x -2))
(fma.f64 (pow.f64 (cbrt.f64 x) 4) (pow.f64 (cbrt.f64 x) 2) (pow.f64 x 2))
(+.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 x -2))
(fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (pow.f64 x 2))
(fma.f64 (pow.f64 x -2) (sqrt.f64 x) (pow.f64 x -2))
(fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (pow.f64 x -2))

eval26.0ms (0.7%)

Compiler

Compiled 1036 to 827 computations (20.2% saved)

prune20.0ms (0.6%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1224126
Fresh000
Picked011
Done000
Total1225127
Accuracy
100.0%
Counts
127 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
6.8%
(*.f64 (*.f64 x 2) x)
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
2.2%
(*.f64 x -2)
1.7%
-2
100.0%
(hypot.f64 x x)
6.8%
(*.f64 (*.f64 x 2) x)
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
2.2%
(*.f64 x -2)
1.7%
-2
Compiler

Compiled 48 to 34 computations (29.2% saved)

localize53.0ms (1.5%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
Compiler

Compiled 35 to 22 computations (37.1% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
0.0ms
x
@0
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
0.0ms
x
@inf
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))

rewrite54.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
902×unpow-prod-down
550×prod-exp
530×log-prod
490×cbrt-prod
430×pow-prod-down
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01123
110914
2119814
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
Outputs
(+.f64 0 (*.f64 x (sqrt.f64 2)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))))
(-.f64 (+.f64 1 (*.f64 x (sqrt.f64 2))) 1)
(pow.f64 (*.f64 x (sqrt.f64 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 2))) 3)
(pow.f64 (pow.f64 (*.f64 x (sqrt.f64 2)) 3) 1/3)
(pow.f64 (*.f64 (pow.f64 x 2) 2) 1/2)
(pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 2))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 x (sqrt.f64 2))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (sqrt.f64 2)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (sqrt.f64 2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (sqrt.f64 2))))) (sqrt.f64 (log.f64 (*.f64 x (sqrt.f64 2)))))
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
(log.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))
(cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 2)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (sqrt.f64 2))))
(exp.f64 (log.f64 (*.f64 x (sqrt.f64 2))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (sqrt.f64 2)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (sqrt.f64 2)))) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 2) 2)) 1/2))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (sqrt.f64 2)))) 2))
(log1p.f64 (expm1.f64 (*.f64 x (sqrt.f64 2))))

simplify50.0ms (1.4%)

Algorithm
egg-herbie
Rules
1236×log-prod
814×distribute-lft-out
630×*-commutative
610×associate-*r*
538×associate-*l*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
073665
1166634
2507634
32779634
45883634
Stop Event
node limit
Counts
34 → 30
Calls
Call 1
Inputs
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 -1 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(*.f64 -1 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(*.f64 -1 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(*.f64 -1 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(+.f64 0 (*.f64 x (sqrt.f64 2)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))))
(-.f64 (+.f64 1 (*.f64 x (sqrt.f64 2))) 1)
(pow.f64 (*.f64 x (sqrt.f64 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 2))) 3)
(pow.f64 (pow.f64 (*.f64 x (sqrt.f64 2)) 3) 1/3)
(pow.f64 (*.f64 (pow.f64 x 2) 2) 1/2)
(pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 2))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 x (sqrt.f64 2))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (sqrt.f64 2)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (sqrt.f64 2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (sqrt.f64 2))))) (sqrt.f64 (log.f64 (*.f64 x (sqrt.f64 2)))))
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
(log.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))
(cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 2)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (sqrt.f64 2))))
(exp.f64 (log.f64 (*.f64 x (sqrt.f64 2))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (sqrt.f64 2)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (sqrt.f64 2)))) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 2) 2)) 1/2))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (sqrt.f64 2)))) 2))
(log1p.f64 (expm1.f64 (*.f64 x (sqrt.f64 2))))
Outputs
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 x (sqrt.f64 2))
(*.f64 -1 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(neg.f64 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(*.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 -1)) (neg.f64 x))
(*.f64 x (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 -2))))
(*.f64 -1 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(neg.f64 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(*.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 -1)) (neg.f64 x))
(*.f64 x (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 -2))))
(*.f64 -1 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(neg.f64 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(*.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 -1)) (neg.f64 x))
(*.f64 x (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 -2))))
(*.f64 -1 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(neg.f64 (*.f64 x (*.f64 (sqrt.f64 -2) (sqrt.f64 -1))))
(*.f64 (*.f64 (sqrt.f64 -2) (sqrt.f64 -1)) (neg.f64 x))
(*.f64 x (*.f64 (sqrt.f64 -1) (neg.f64 (sqrt.f64 -2))))
(+.f64 0 (*.f64 x (sqrt.f64 2)))
(*.f64 x (sqrt.f64 2))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 2)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 2)))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 2)))) 3)
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))))
(*.f64 x (sqrt.f64 2))
(-.f64 (+.f64 1 (*.f64 x (sqrt.f64 2))) 1)
(*.f64 x (sqrt.f64 2))
(pow.f64 (*.f64 x (sqrt.f64 2)) 1)
(*.f64 x (sqrt.f64 2))
(pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 2))) 3)
(*.f64 x (sqrt.f64 2))
(pow.f64 (pow.f64 (*.f64 x (sqrt.f64 2)) 3) 1/3)
(*.f64 x (sqrt.f64 2))
(pow.f64 (*.f64 (pow.f64 x 2) 2) 1/2)
(*.f64 x (sqrt.f64 2))
(pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 2))) 2)
(*.f64 x (sqrt.f64 2))
(pow.f64 (E.f64) (log.f64 (*.f64 x (sqrt.f64 2))))
(*.f64 x (sqrt.f64 2))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (sqrt.f64 2)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (sqrt.f64 2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (sqrt.f64 2))))) (sqrt.f64 (log.f64 (*.f64 x (sqrt.f64 2)))))
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
(*.f64 x (sqrt.f64 2))
(log.f64 (exp.f64 (*.f64 x (sqrt.f64 2))))
(*.f64 x (sqrt.f64 2))
(cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 2)) 3))
(*.f64 x (sqrt.f64 2))
(expm1.f64 (log1p.f64 (*.f64 x (sqrt.f64 2))))
(*.f64 x (sqrt.f64 2))
(exp.f64 (log.f64 (*.f64 x (sqrt.f64 2))))
(*.f64 x (sqrt.f64 2))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (sqrt.f64 2)))) 3))
(*.f64 x (sqrt.f64 2))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (sqrt.f64 2)))) 1/3))
(*.f64 x (sqrt.f64 2))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x 2) 2)) 1/2))
(*.f64 x (sqrt.f64 2))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (sqrt.f64 2)))) 2))
(*.f64 x (sqrt.f64 2))
(log1p.f64 (expm1.f64 (*.f64 x (sqrt.f64 2))))
(*.f64 x (sqrt.f64 2))

eval7.0ms (0.2%)

Compiler

Compiled 265 to 227 computations (14.3% saved)

prune7.0ms (0.2%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New30030
Fresh011
Picked033
Done011
Total30535
Accuracy
100.0%
Counts
35 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
6.8%
(*.f64 (*.f64 x 2) x)
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
2.2%
(*.f64 x -2)
1.7%
-2
100.0%
(hypot.f64 x x)
6.8%
(*.f64 (*.f64 x 2) x)
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
2.2%
(*.f64 x -2)
1.7%
-2
Compiler

Compiled 48 to 34 computations (29.2% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune3.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Accuracy
100.0%
Counts
5 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
6.8%
(*.f64 (*.f64 x 2) x)
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
2.2%
(*.f64 x -2)
1.7%
-2
100.0%
(hypot.f64 x x)
6.8%
(*.f64 (*.f64 x 2) x)
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
2.2%
(*.f64 x -2)
1.7%
-2
Compiler

Compiled 48 to 34 computations (29.2% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune3.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Accuracy
100.0%
Counts
5 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
6.8%
(*.f64 (*.f64 x 2) x)
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
2.2%
(*.f64 x -2)
1.7%
-2
Compiler

Compiled 52 to 33 computations (36.5% saved)

regimes17.0ms (0.5%)

Counts
6 → 1
Calls
Call 1
Inputs
-2
(*.f64 x -2)
(*.f64 (*.f64 x 2) x)
(hypot.f64 x x)
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x 2)))
Outputs
(hypot.f64 x x)
Calls

4 calls:

5.0ms
x
4.0ms
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
3.0ms
(*.f64 x x)
3.0ms
(+.f64 (*.f64 x x) (*.f64 x x))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
100.0%1(+.f64 (*.f64 x x) (*.f64 x x))
100.0%1(*.f64 x x)
Compiler

Compiled 51 to 26 computations (49% saved)

regimes4.0ms (0.1%)

Counts
3 → 1
Calls
Call 1
Inputs
-2
(*.f64 x -2)
(*.f64 (*.f64 x 2) x)
Outputs
(*.f64 (*.f64 x 2) x)
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
6.8%1x
Compiler

Compiled 12 to 8 computations (33.3% saved)

regimes4.0ms (0.1%)

Counts
2 → 1
Calls
Call 1
Inputs
-2
(*.f64 x -2)
Outputs
(*.f64 x -2)
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
2.2%1x
Compiler

Compiled 7 to 5 computations (28.6% saved)

regimes6.0ms (0.2%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
-2
Outputs
-2
Calls

1 calls:

6.0ms
x
Results
AccuracySegmentsBranch
1.7%1x
Compiler

Compiled 4 to 3 computations (25% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01143
11443
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(hypot.f64 x x)
(*.f64 (*.f64 x 2) x)
(*.f64 x -2)
-2
Outputs
(hypot.f64 x x)
(*.f64 (*.f64 x 2) x)
(*.f64 x (*.f64 x 2))
(*.f64 x -2)
-2
Compiler

Compiled 16 to 11 computations (31.3% saved)

soundness2.1s (58.5%)

Rules
801×log1p-expm1-u
801×log1p-expm1-u
486×expm1-log1p-u
486×expm1-log1p-u
434×expm1-udef
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01456
13656
28256
319456
429956
535956
636156
0613
14613
24787
354967
0223916
1678916
0223916
1678916
0613
14613
24787
354967
Stop Event
node limit
unsound
unsound
node limit
saturated
Compiler

Compiled 616 to 157 computations (74.5% saved)

end0.0ms (0%)

preprocess34.0ms (1%)

Remove

(abs x)

Compiler

Compiled 52 to 28 computations (46.2% saved)

Profiling

Loading profile data...