Details

Time bar (total: 3.1s)

analyze3.0ms (0.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
33.3%25%50%0%0%25%0%3
66.7%50%25%0%0%25%0%4
83.3%62.5%12.5%0%0%25%0%5
91.7%68.7%6.2%0%0%25%0%6
95.8%71.8%3.1%0%0%25%0%7
97.9%73.4%1.6%0%0%25%0%8
99%74.2%0.8%0%0%25%0%9
99.5%74.6%0.4%0%0%25%0%10
99.7%74.8%0.2%0%0%25%0%11
99.9%74.9%0.1%0%0%25%0%12
Compiler

Compiled 6 to 5 computations (16.7% saved)

sample2.6s (83.7%)

Results
1.5s2762×body1024valid
547.0ms3888×body256valid
284.0ms1335×body512valid
236.0ms271×body2048valid
0.0msbody256invalid
Bogosity

preprocess4.0ms (0.1%)

Algorithm
egg-herbie
Rules
1-exp
log1p-def
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075
1115
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(log.f64 (+.f64 1 x))
Outputs
(log.f64 (+.f64 1 x))
(log1p.f64 x)
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify70.0ms (2.2%)

Algorithm
egg-herbie
Rules
1-exp
log1p-def
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075
1115
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(log.f64 (+.f64 1 x))
Outputs
(log.f64 (+.f64 1 x))
(log1p.f64 x)

eval0.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0%
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.01%
(log1p.f64 x)
58.33%
(log.f64 (+.f64 1 x))
Compiler

Compiled 8 to 6 computations (25% saved)

localize5.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
6.36%
(log.f64 (+.f64 1 x))
Compiler

Compiled 10 to 7 computations (30% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(log.f64 (+.f64 1 x))
0.0ms
x
@-inf
(log.f64 (+.f64 1 x))
0.0ms
x
@inf
(log.f64 (+.f64 1 x))

rewrite55.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
1300×add-sqr-sqrt
1284×*-un-lft-identity
1196×add-cube-cbrt
1184×add-cbrt-cube
1172×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075
11365
215905
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(log.f64 (+.f64 1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log1p.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (log.f64 (cbrt.f64 (+.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (hypot.f64 1 (sqrt.f64 x))) (log.f64 (hypot.f64 1 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (+.f64 1 (pow.f64 x 3))) (log.f64 (+.f64 1 (-.f64 (*.f64 x x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (-.f64 1 (*.f64 x x))) (log.f64 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (log1p.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log1p.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log1p.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log1p.f64 x)) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (log1p.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log1p.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log1p.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log1p.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log1p.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log1p.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log1p.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log1p.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 x)))))

simplify48.0ms (1.5%)

Algorithm
egg-herbie
Rules
1208×distribute-lft-in
1016×distribute-rgt-in
838×associate-+r+
776×associate-*r*
584×*-commutative
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
095568
1242492
2809492
33240492
Stop Event
node limit
Counts
32 → 55
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 -1/4 (pow.f64 x 4)) x)))
(*.f64 -1 (log.f64 (/.f64 1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x)) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 0 (log1p.f64 x))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (log.f64 (cbrt.f64 (+.f64 1 x))))
(+.f64 (log.f64 (hypot.f64 1 (sqrt.f64 x))) (log.f64 (hypot.f64 1 (sqrt.f64 x))))
(-.f64 (log.f64 (+.f64 1 (pow.f64 x 3))) (log.f64 (+.f64 1 (-.f64 (*.f64 x x) x))))
(-.f64 (log.f64 (-.f64 1 (*.f64 x x))) (log.f64 (-.f64 1 x)))
(-.f64 (+.f64 1 (log1p.f64 x)) 1)
(*.f64 1 (log1p.f64 x))
(*.f64 (log1p.f64 x) 1)
(*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(*.f64 (cbrt.f64 (log1p.f64 x)) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (log1p.f64 x)))
(pow.f64 (log1p.f64 x) 1)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(pow.f64 (cbrt.f64 (log1p.f64 x)) 3)
(pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)
(sqrt.f64 (pow.f64 (log1p.f64 x) 2))
(cbrt.f64 (pow.f64 (log1p.f64 x) 3))
(expm1.f64 (log1p.f64 (log1p.f64 x)))
(exp.f64 (log.f64 (log1p.f64 x)))
(log1p.f64 x)
Outputs
x
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
(fma.f64 -1/2 (*.f64 x x) x)
(fma.f64 x (*.f64 x -1/2) x)
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
(fma.f64 -1/2 (*.f64 x x) (fma.f64 1/3 (pow.f64 x 3) x))
(fma.f64 x (*.f64 x -1/2) (fma.f64 1/3 (pow.f64 x 3) x))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 -1/4 (pow.f64 x 4)) x)))
(fma.f64 -1/2 (*.f64 x x) (fma.f64 1/3 (pow.f64 x 3) (fma.f64 -1/4 (pow.f64 x 4) x)))
(fma.f64 x (*.f64 x -1/2) (fma.f64 1/3 (pow.f64 x 3) (fma.f64 -1/4 (pow.f64 x 4) x)))
(*.f64 -1 (log.f64 (/.f64 1 x)))
(neg.f64 (neg.f64 (log.f64 x)))
(log.f64 x)
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x))
(fma.f64 -1 (neg.f64 (log.f64 x)) (/.f64 1 x))
(+.f64 (/.f64 1 x) (log.f64 x))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x)) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (/.f64 1 x)) (/.f64 1/2 (*.f64 x x)))
(+.f64 (/.f64 1 x) (-.f64 (log.f64 x) (/.f64 (/.f64 1/2 x) x)))
(+.f64 (/.f64 1 x) (+.f64 (log.f64 x) (/.f64 -1/2 (*.f64 x x))))
(+.f64 (/.f64 1 x) (+.f64 (log.f64 x) (/.f64 (/.f64 -1/2 x) x)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (/.f64 1 x) (/.f64 1/3 (pow.f64 x 3)))) (/.f64 1/2 (*.f64 x x)))
(+.f64 (log.f64 x) (+.f64 (/.f64 1/3 (pow.f64 x 3)) (-.f64 (/.f64 1 x) (/.f64 (/.f64 1/2 x) x))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1/3 (pow.f64 x 3)) (+.f64 (log.f64 x) (/.f64 -1/2 (*.f64 x x)))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1/3 (pow.f64 x 3)) (+.f64 (log.f64 x) (/.f64 (/.f64 -1/2 x) x))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(neg.f64 (neg.f64 (log.f64 x)))
(log.f64 x)
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x)))
(fma.f64 -1 (neg.f64 (log.f64 x)) (/.f64 1 x))
(+.f64 (/.f64 1 x) (log.f64 x))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (/.f64 1 x)) (/.f64 1/2 (*.f64 x x)))
(+.f64 (/.f64 1 x) (-.f64 (log.f64 x) (/.f64 (/.f64 1/2 x) x)))
(+.f64 (/.f64 1 x) (+.f64 (log.f64 x) (/.f64 -1/2 (*.f64 x x))))
(+.f64 (/.f64 1 x) (+.f64 (log.f64 x) (/.f64 (/.f64 -1/2 x) x)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (/.f64 1 x) (/.f64 1/3 (pow.f64 x 3)))) (/.f64 1/2 (*.f64 x x)))
(+.f64 (log.f64 x) (+.f64 (/.f64 1/3 (pow.f64 x 3)) (-.f64 (/.f64 1 x) (/.f64 (/.f64 1/2 x) x))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1/3 (pow.f64 x 3)) (+.f64 (log.f64 x) (/.f64 -1/2 (*.f64 x x)))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1/3 (pow.f64 x 3)) (+.f64 (log.f64 x) (/.f64 (/.f64 -1/2 x) x))))
(+.f64 0 (log1p.f64 x))
(log1p.f64 x)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (log.f64 (cbrt.f64 (+.f64 1 x))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (+.f64 x 1)))) (log.f64 (cbrt.f64 (+.f64 x 1))))
(*.f64 3 (log.f64 (cbrt.f64 (+.f64 x 1))))
(+.f64 (log.f64 (hypot.f64 1 (sqrt.f64 x))) (log.f64 (hypot.f64 1 (sqrt.f64 x))))
(*.f64 2 (log.f64 (hypot.f64 1 (sqrt.f64 x))))
(-.f64 (log.f64 (+.f64 1 (pow.f64 x 3))) (log.f64 (+.f64 1 (-.f64 (*.f64 x x) x))))
(-.f64 (log1p.f64 (pow.f64 x 3)) (log1p.f64 (-.f64 (*.f64 x x) x)))
(-.f64 (log.f64 (-.f64 1 (*.f64 x x))) (log.f64 (-.f64 1 x)))
(-.f64 (log1p.f64 (*.f64 x (neg.f64 x))) (log1p.f64 (neg.f64 x)))
(-.f64 (+.f64 1 (log1p.f64 x)) 1)
(log1p.f64 x)
(*.f64 1 (log1p.f64 x))
(log1p.f64 x)
(*.f64 (log1p.f64 x) 1)
(log1p.f64 x)
(*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(log1p.f64 x)
(*.f64 (cbrt.f64 (log1p.f64 x)) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))
(log1p.f64 x)
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (log1p.f64 x)))
(log1p.f64 x)
(pow.f64 (log1p.f64 x) 1)
(log1p.f64 x)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(log1p.f64 x)
(pow.f64 (cbrt.f64 (log1p.f64 x)) 3)
(log1p.f64 x)
(pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)
(log1p.f64 x)
(sqrt.f64 (pow.f64 (log1p.f64 x) 2))
(log1p.f64 x)
(cbrt.f64 (pow.f64 (log1p.f64 x) 3))
(log1p.f64 x)
(expm1.f64 (log1p.f64 (log1p.f64 x)))
(log1p.f64 x)
(exp.f64 (log.f64 (log1p.f64 x)))
(log1p.f64 x)
(log1p.f64 x)

localize2.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.01%
(log1p.f64 x)
Compiler

Compiled 4 to 2 computations (50% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@-inf
(log1p.f64 x)
0.0ms
x
@0
(log1p.f64 x)
0.0ms
x
@inf
(log1p.f64 x)

rewrite99.0ms (3.2%)

Algorithm
batch-egg-rewrite
Rules
872×associate-*r*
704×add-sqr-sqrt
694×*-un-lft-identity
656×pow1
642×add-cube-cbrt
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045
1785
28845
Stop Event
node limit
Counts
1 → 38
Calls
Call 1
Inputs
(log1p.f64 x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (log1p.f64 x) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (log1p.f64 x) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log1p.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log1p.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log1p.f64 x)) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (log1p.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (sqrt.f64 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (sqrt.f64 (log1p.f64 x))) (*.f64 (sqrt.f64 (sqrt.f64 (log1p.f64 x))) (sqrt.f64 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 x))) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (sqrt.f64 (log1p.f64 x)))) (sqrt.f64 (sqrt.f64 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (log1p.f64 x)) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))) (*.f64 (cbrt.f64 (log1p.f64 x)) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (log1p.f64 x)) (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (sqrt.f64 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (sqrt.f64 (cbrt.f64 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (log1p.f64 x)) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (log1p.f64 x)) (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4)))) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))) (sqrt.f64 (cbrt.f64 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (cbrt.f64 (cbrt.f64 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))) (cbrt.f64 (sqrt.f64 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (log1p.f64 x))) (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (log1p.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 3/2) (pow.f64 (cbrt.f64 (log1p.f64 x)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (log1p.f64 x) 3) 1/6) (pow.f64 (pow.f64 (log1p.f64 x) 3) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 (log1p.f64 x) 1) (+.f64 (log1p.f64 x) 1)) 1) (+.f64 (+.f64 (log1p.f64 x) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log1p.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log1p.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log1p.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log1p.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log1p.f64 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log1p.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log1p.f64 x)))))))

simplify60.0ms (1.9%)

Algorithm
egg-herbie
Rules
1514×associate-*r*
1236×associate-*l*
818×distribute-lft-out
642×associate-/r*
604×fma-def
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01311310
13321102
29941078
352511078
Stop Event
node limit
Counts
50 → 98
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 -1/4 (pow.f64 x 4)) x)))
(*.f64 -1 (log.f64 (/.f64 1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x)) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (+.f64 (log1p.f64 x) 1) -1)
(-.f64 (+.f64 (log1p.f64 x) 1) 1)
(*.f64 (log1p.f64 x) 1)
(*.f64 1 (log1p.f64 x))
(*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(*.f64 (cbrt.f64 (log1p.f64 x)) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (log1p.f64 x)))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (sqrt.f64 (log1p.f64 x))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (log1p.f64 x))))
(*.f64 (sqrt.f64 (sqrt.f64 (log1p.f64 x))) (*.f64 (sqrt.f64 (sqrt.f64 (log1p.f64 x))) (sqrt.f64 (log1p.f64 x))))
(*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 x))) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (log1p.f64 x))))
(*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))
(*.f64 (*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (sqrt.f64 (log1p.f64 x)))) (sqrt.f64 (sqrt.f64 (log1p.f64 x))))
(*.f64 (*.f64 (cbrt.f64 (log1p.f64 x)) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))) (*.f64 (cbrt.f64 (log1p.f64 x)) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))))
(*.f64 (*.f64 (sqrt.f64 (log1p.f64 x)) (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (sqrt.f64 (log1p.f64 x))))
(*.f64 (*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (sqrt.f64 (cbrt.f64 (log1p.f64 x))))
(*.f64 (*.f64 (cbrt.f64 (log1p.f64 x)) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))
(*.f64 (*.f64 (cbrt.f64 (log1p.f64 x)) (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4)))) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))) (sqrt.f64 (cbrt.f64 (log1p.f64 x))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (cbrt.f64 (cbrt.f64 (log1p.f64 x))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))) (cbrt.f64 (sqrt.f64 (log1p.f64 x))))
(*.f64 (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (log1p.f64 x))) (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (log1p.f64 x))))
(*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))))
(*.f64 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))))
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 3/2) (pow.f64 (cbrt.f64 (log1p.f64 x)) 3/2))
(*.f64 (pow.f64 (pow.f64 (log1p.f64 x) 3) 1/6) (pow.f64 (pow.f64 (log1p.f64 x) 3) 1/6))
(/.f64 (-.f64 (*.f64 (+.f64 (log1p.f64 x) 1) (+.f64 (log1p.f64 x) 1)) 1) (+.f64 (+.f64 (log1p.f64 x) 1) 1))
(pow.f64 (log1p.f64 x) 1)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(pow.f64 (cbrt.f64 (log1p.f64 x)) 3)
(pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)
(sqrt.f64 (pow.f64 (log1p.f64 x) 2))
(log.f64 (+.f64 x 1))
(cbrt.f64 (pow.f64 (log1p.f64 x) 3))
(expm1.f64 (log1p.f64 (log1p.f64 x)))
(exp.f64 (log.f64 (log1p.f64 x)))
Outputs
x
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
(fma.f64 -1/2 (*.f64 x x) x)
(fma.f64 x (*.f64 x -1/2) x)
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
(fma.f64 -1/2 (*.f64 x x) (fma.f64 1/3 (pow.f64 x 3) x))
(fma.f64 x (*.f64 x -1/2) (fma.f64 1/3 (pow.f64 x 3) x))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 -1/4 (pow.f64 x 4)) x)))
(fma.f64 -1/2 (*.f64 x x) (fma.f64 1/3 (pow.f64 x 3) (fma.f64 -1/4 (pow.f64 x 4) x)))
(fma.f64 x (*.f64 x -1/2) (fma.f64 1/3 (pow.f64 x 3) (fma.f64 -1/4 (pow.f64 x 4) x)))
(*.f64 -1 (log.f64 (/.f64 1 x)))
(neg.f64 (neg.f64 (log.f64 x)))
(log.f64 x)
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x))
(fma.f64 -1 (neg.f64 (log.f64 x)) (/.f64 1 x))
(+.f64 (/.f64 1 x) (log.f64 x))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x)) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (/.f64 1 x)) (/.f64 1/2 (*.f64 x x)))
(+.f64 (/.f64 1 x) (-.f64 (log.f64 x) (/.f64 1/2 (*.f64 x x))))
(+.f64 (/.f64 1 x) (+.f64 (log.f64 x) (/.f64 (/.f64 -1/2 x) x)))
(+.f64 (log.f64 x) (-.f64 (/.f64 1 x) (/.f64 (/.f64 1/2 x) x)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (/.f64 1 x) (/.f64 1/3 (pow.f64 x 3)))) (/.f64 1/2 (*.f64 x x)))
(+.f64 (log.f64 x) (+.f64 (/.f64 1 x) (-.f64 (/.f64 1/3 (pow.f64 x 3)) (/.f64 1/2 (*.f64 x x)))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1/3 (pow.f64 x 3)) (+.f64 (log.f64 x) (/.f64 (/.f64 -1/2 x) x))))
(+.f64 (log.f64 x) (+.f64 (/.f64 1 x) (-.f64 (/.f64 1/3 (pow.f64 x 3)) (/.f64 (/.f64 1/2 x) x))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(fma.f64 -1 (log.f64 (/.f64 -1 x)) (log.f64 -1))
(-.f64 (log.f64 -1) (log.f64 (/.f64 -1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x)))
(+.f64 (fma.f64 -1 (log.f64 (/.f64 -1 x)) (log.f64 -1)) (/.f64 1 x))
(-.f64 (+.f64 (/.f64 1 x) (log.f64 -1)) (log.f64 (/.f64 -1 x)))
(+.f64 (/.f64 1 x) (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 x))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (fma.f64 -1 (log.f64 (/.f64 -1 x)) (log.f64 -1)) (/.f64 1 x)) (/.f64 1/2 (*.f64 x x)))
(+.f64 (-.f64 (+.f64 (/.f64 1 x) (log.f64 -1)) (log.f64 (/.f64 -1 x))) (/.f64 -1/2 (*.f64 x x)))
(+.f64 (log.f64 -1) (-.f64 (-.f64 (/.f64 1 x) (log.f64 (/.f64 -1 x))) (/.f64 1/2 (*.f64 x x))))
(+.f64 (/.f64 1 x) (-.f64 (log.f64 -1) (+.f64 (/.f64 (/.f64 1/2 x) x) (log.f64 (/.f64 -1 x)))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (fma.f64 -1 (log.f64 (/.f64 -1 x)) (log.f64 -1)) (+.f64 (/.f64 1 x) (/.f64 1/3 (pow.f64 x 3)))) (/.f64 1/2 (*.f64 x x)))
(+.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 x) (-.f64 (/.f64 1/3 (pow.f64 x 3)) (/.f64 1/2 (*.f64 x x)))))
(+.f64 (+.f64 (/.f64 1/3 (pow.f64 x 3)) (log.f64 -1)) (-.f64 (-.f64 (/.f64 1 x) (log.f64 (/.f64 -1 x))) (/.f64 1/2 (*.f64 x x))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 -1/2 (*.f64 x x)) (+.f64 (/.f64 1/3 (pow.f64 x 3)) (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 x))))))
(+.f64 (+.f64 (log1p.f64 x) 1) -1)
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(-.f64 (+.f64 (log1p.f64 x) 1) 1)
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (log1p.f64 x) 1)
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 1 (log1p.f64 x))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (cbrt.f64 (log1p.f64 x)) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (log1p.f64 x)))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (sqrt.f64 (log1p.f64 x))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))))
(*.f64 (sqrt.f64 (log1p.f64 x)) (*.f64 (fabs.f64 (cbrt.f64 (log1p.f64 x))) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))))
(*.f64 (sqrt.f64 (log1p.f64 x)) (pow.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) 3))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (log1p.f64 x))))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (sqrt.f64 (sqrt.f64 (log1p.f64 x))) (*.f64 (sqrt.f64 (sqrt.f64 (log1p.f64 x))) (sqrt.f64 (log1p.f64 x))))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 x))) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (cbrt.f64 (log1p.f64 x)))))
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (cbrt.f64 (log1p.f64 x)))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (log1p.f64 x))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4))) (*.f64 (cbrt.f64 (log1p.f64 x)) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))))
(*.f64 (cbrt.f64 (log1p.f64 x)) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4)))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (cbrt.f64 (log1p.f64 x)) (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4)))))
(*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))))
(*.f64 (*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (sqrt.f64 (log1p.f64 x)))) (sqrt.f64 (sqrt.f64 (log1p.f64 x))))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (*.f64 (cbrt.f64 (log1p.f64 x)) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))) (*.f64 (cbrt.f64 (log1p.f64 x)) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (*.f64 (sqrt.f64 (log1p.f64 x)) (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (sqrt.f64 (log1p.f64 x))))
(*.f64 (sqrt.f64 (log1p.f64 x)) (*.f64 (cbrt.f64 (log1p.f64 x)) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))))
(*.f64 (cbrt.f64 (log1p.f64 x)) (*.f64 (sqrt.f64 (log1p.f64 x)) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))))
(*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (*.f64 (sqrt.f64 (log1p.f64 x)) (cbrt.f64 (log1p.f64 x))))
(*.f64 (*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (sqrt.f64 (cbrt.f64 (log1p.f64 x))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))))
(*.f64 (sqrt.f64 (log1p.f64 x)) (*.f64 (fabs.f64 (cbrt.f64 (log1p.f64 x))) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))))
(*.f64 (sqrt.f64 (log1p.f64 x)) (pow.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) 3))
(*.f64 (*.f64 (cbrt.f64 (log1p.f64 x)) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (*.f64 (cbrt.f64 (log1p.f64 x)) (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4)))) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4))) (*.f64 (cbrt.f64 (log1p.f64 x)) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))))
(*.f64 (cbrt.f64 (log1p.f64 x)) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4)))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (cbrt.f64 (log1p.f64 x)) (cbrt.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 4)))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (sqrt.f64 (cbrt.f64 (log1p.f64 x)))) (sqrt.f64 (cbrt.f64 (log1p.f64 x))))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (cbrt.f64 (cbrt.f64 (log1p.f64 x))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (cbrt.f64 (log1p.f64 x)))))
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (cbrt.f64 (log1p.f64 x)))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))) (cbrt.f64 (sqrt.f64 (log1p.f64 x))))
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))))
(*.f64 (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (log1p.f64 x))) (*.f64 (sqrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (log1p.f64 x))))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))) (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2))))
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))))
(*.f64 (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))) (*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2)) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))))
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 2) (*.f64 (cbrt.f64 (sqrt.f64 (log1p.f64 x))) (cbrt.f64 (sqrt.f64 (log1p.f64 x)))))
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 3/2) (pow.f64 (cbrt.f64 (log1p.f64 x)) 3/2))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(*.f64 (pow.f64 (pow.f64 (log1p.f64 x) 3) 1/6) (pow.f64 (pow.f64 (log1p.f64 x) 3) 1/6))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(/.f64 (-.f64 (*.f64 (+.f64 (log1p.f64 x) 1) (+.f64 (log1p.f64 x) 1)) 1) (+.f64 (+.f64 (log1p.f64 x) 1) 1))
(/.f64 (*.f64 (+.f64 (log1p.f64 x) 2) (+.f64 (log1p.f64 x) 0)) (+.f64 (log1p.f64 x) 2))
(/.f64 (+.f64 2 (log1p.f64 x)) (/.f64 (+.f64 2 (log1p.f64 x)) (log1p.f64 x)))
(*.f64 (/.f64 (+.f64 2 (log1p.f64 x)) (+.f64 2 (log1p.f64 x))) (log1p.f64 x))
(pow.f64 (log1p.f64 x) 1)
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(pow.f64 (cbrt.f64 (log1p.f64 x)) 3)
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(sqrt.f64 (pow.f64 (log1p.f64 x) 2))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(log.f64 (+.f64 x 1))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(cbrt.f64 (pow.f64 (log1p.f64 x) 3))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(expm1.f64 (log1p.f64 (log1p.f64 x)))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)
(exp.f64 (log.f64 (log1p.f64 x)))
(+.f64 (log1p.f64 x) 0)
(log1p.f64 x)

eval72.0ms (2.3%)

Compiler

Compiled 1813 to 1049 computations (42.1% saved)

prune17.0ms (0.5%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1512153
Fresh000
Picked011
Done101
Total1523155
Error
0%
Counts
155 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.01%
(log1p.f64 x)
63.86%
(log.f64 x)
35.46%
x
Compiler

Compiled 8 to 5 computations (37.5% saved)

localize3.0ms (0.1%)

Compiler

Compiled 4 to 2 computations (50% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done011
Total033
Error
0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.01%
(log1p.f64 x)
63.86%
(log.f64 x)
35.46%
x
Compiler

Compiled 8 to 5 computations (37.5% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.01%
(log1p.f64 x)
63.86%
(log.f64 x)
35.46%
x
Compiler

Compiled 8 to 5 computations (37.5% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.01%
(log1p.f64 x)
63.86%
(log.f64 x)
35.46%
x
Compiler

Compiled 8 to 5 computations (37.5% saved)

regimes11.0ms (0.4%)

Counts
4 → 1
Calls
Call 1
Inputs
x
(log.f64 x)
(log1p.f64 x)
(log.f64 (+.f64 1 x))
Outputs
(log1p.f64 x)
Calls

3 calls:

6.0ms
x
2.0ms
(log.f64 (+.f64 1 x))
2.0ms
(+.f64 1 x)
Results
ErrorSegmentsBranch
0.01%1x
0.01%1(log.f64 (+.f64 1 x))
0.01%1(+.f64 1 x)
Compiler

Compiled 21 to 14 computations (33.3% saved)

regimes6.0ms (0.2%)

Accuracy

Total -60.9b remaining (-4644%)

Threshold costs -60.9b (-4644%)

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

1 calls:

6.0ms
x
Results
ErrorSegmentsBranch
2.05%2x
Compiler

Compiled 6 to 3 computations (50% saved)

bsearch15.0ms (0.5%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
15.0ms
0.28530243803750976
156178.46190758096
Results
14.0ms144×body256valid
Compiler

Compiled 72 to 52 computations (27.8% saved)

simplify6.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01121
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(log1p.f64 x)
(if (<=.f64 x 8376695306909123/4503599627370496) x (log.f64 x))
x
Outputs
(log1p.f64 x)
(if (<=.f64 x 8376695306909123/4503599627370496) x (log.f64 x))
x
Compiler

Compiled 13 to 8 computations (38.5% saved)

soundness12.0ms (0.4%)

Algorithm
egg-herbie
Rules
1-exp
log1p-def
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075
1115
Stop Event
saturated
Compiler

Compiled 7 to 5 computations (28.6% saved)

end18.0ms (0.6%)

Compiler

Compiled 11 to 6 computations (45.5% saved)

Profiling

Loading profile data...