ln(1 + x)

Details

Time bar (total: 4.0s)

analyze1.1s (27.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%199.9%-99.9%0%0%0%1
0%0%399.8%-299.8%0%0%0%2
0%0%799.6%-699.6%0%0%0%3
0%0%1599.2%-1499.2%0%0%0%4
0%0%3198.4%-3098.4%0%0%0%5
0%0%6396.9%-6296.9%0%0%0%6
0%0%12793.8%-12693.8%0%0%0%7
0%0%25587.5%-25487.5%0%0%0%8
0%0%51175%-51075%0%0%0%9
0%0%102350%-102250%0%0%0%10
0%0%204700%-204600%0%0%0%11
0%0%409400%-409300%0%0%0%12
Compiler

Compiled 6 to 5 computations (16.7% saved)

sample2.5s (63.7%)

Results
968.0ms3740×body256valid
747.0ms2828×body1024valid
515.0ms2706×body256invalid
225.0ms1434×body512valid
72.0ms254×body2048valid
Bogosity

preprocess13.0ms (0.3%)

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)

simplify18.0ms (0.4%)

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)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Accurracy
100.0%
Counts
3 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
35.0%
(log.f64 (+.f64 1 x))
100.0%
(log1p.f64 x)
35.0%
(log.f64 (+.f64 1 x))
Compiler

Compiled 16 to 12 computations (25% saved)

localize115.0ms (2.9%)

Local Accuracy

Found 2 expressions with local accuracy:

NewAccuracyProgram
100.0%
(log1p.f64 x)
35.0%
(log.f64 (+.f64 1 x))
Compiler

Compiled 14 to 9 computations (35.7% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 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))
0.0ms
x
@-inf
(log1p.f64 x)
0.0ms
x
@inf
(log1p.f64 x)

rewrite55.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1286×pow1
1186×add-exp-log
1186×log1p-expm1-u
1186×expm1-log1p-u
1162×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
115510
2162610
Stop Event
node limit
Counts
2 → 40
Calls
Call 1
Inputs
(log.f64 (+.f64 1 x))
(log1p.f64 x)
Outputs
(+.f64 0 (log1p.f64 x))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (+.f64 1 x) 2))) (log.f64 (cbrt.f64 (+.f64 1 x))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) (log.f64 (sqrt.f64 (+.f64 1 x))))
(-.f64 (log.f64 (-.f64 1 (*.f64 x x))) (log.f64 (-.f64 1 x)))
(-.f64 (log.f64 (+.f64 1 (pow.f64 x 3))) (log.f64 (+.f64 1 (fma.f64 x x (neg.f64 x)))))
(-.f64 (+.f64 1 (log1p.f64 x)) 1)
(*.f64 1 (log1p.f64 x))
(*.f64 (log1p.f64 x) 1)
(*.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 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(pow.f64 (log1p.f64 x) 1)
(pow.f64 (cbrt.f64 (log1p.f64 x)) 3)
(pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(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)
(+.f64 0 (log1p.f64 x))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (+.f64 1 x) 2))) (log.f64 (cbrt.f64 (+.f64 1 x))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) (log.f64 (sqrt.f64 (+.f64 1 x))))
(-.f64 (log.f64 (-.f64 1 (*.f64 x x))) (log.f64 (-.f64 1 x)))
(-.f64 (log.f64 (+.f64 1 (pow.f64 x 3))) (log.f64 (+.f64 1 (fma.f64 x x (neg.f64 x)))))
(-.f64 (+.f64 1 (log1p.f64 x)) 1)
(*.f64 1 (log1p.f64 x))
(*.f64 (log1p.f64 x) 1)
(*.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 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(pow.f64 (log1p.f64 x) 1)
(pow.f64 (cbrt.f64 (log1p.f64 x)) 3)
(pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(sqrt.f64 (pow.f64 (log1p.f64 x) 2))
(log.f64 (+.f64 1 x))
(cbrt.f64 (pow.f64 (log1p.f64 x) 3))
(expm1.f64 (log1p.f64 (log1p.f64 x)))
(exp.f64 (log.f64 (log1p.f64 x)))

simplify65.0ms (1.6%)

Algorithm
egg-herbie
Rules
1290×fma-neg
884×sub-neg
706×log-prod
700×cancel-sign-sub-inv
672×fma-def
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0981104
1234992
2685992
33210992
45848992
Stop Event
node limit
Counts
64 → 54
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))))
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 (cbrt.f64 (pow.f64 (+.f64 1 x) 2))) (log.f64 (cbrt.f64 (+.f64 1 x))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) (log.f64 (sqrt.f64 (+.f64 1 x))))
(-.f64 (log.f64 (-.f64 1 (*.f64 x x))) (log.f64 (-.f64 1 x)))
(-.f64 (log.f64 (+.f64 1 (pow.f64 x 3))) (log.f64 (+.f64 1 (fma.f64 x x (neg.f64 x)))))
(-.f64 (+.f64 1 (log1p.f64 x)) 1)
(*.f64 1 (log1p.f64 x))
(*.f64 (log1p.f64 x) 1)
(*.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 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(pow.f64 (log1p.f64 x) 1)
(pow.f64 (cbrt.f64 (log1p.f64 x)) 3)
(pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(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)
(+.f64 0 (log1p.f64 x))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (+.f64 1 x) 2))) (log.f64 (cbrt.f64 (+.f64 1 x))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) (log.f64 (sqrt.f64 (+.f64 1 x))))
(-.f64 (log.f64 (-.f64 1 (*.f64 x x))) (log.f64 (-.f64 1 x)))
(-.f64 (log.f64 (+.f64 1 (pow.f64 x 3))) (log.f64 (+.f64 1 (fma.f64 x x (neg.f64 x)))))
(-.f64 (+.f64 1 (log1p.f64 x)) 1)
(*.f64 1 (log1p.f64 x))
(*.f64 (log1p.f64 x) 1)
(*.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 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(pow.f64 (log1p.f64 x) 1)
(pow.f64 (cbrt.f64 (log1p.f64 x)) 3)
(pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(sqrt.f64 (pow.f64 (log1p.f64 x) 2))
(log.f64 (+.f64 1 x))
(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 1/2 (*.f64 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 (+.f64 (/.f64 1 x) (/.f64 1/3 (pow.f64 x 3))) (+.f64 (log.f64 x) (/.f64 -1/2 (*.f64 x x))))
(+.f64 (/.f64 1 x) (-.f64 (+.f64 (log.f64 x) (/.f64 1/3 (pow.f64 x 3))) (/.f64 1/2 (*.f64 x x))))
(+.f64 (+.f64 (/.f64 1 x) (-.f64 (log.f64 x) (/.f64 1/2 (*.f64 x x)))) (/.f64 1/3 (pow.f64 x 3)))
(+.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 -1/2 (*.f64 x x))))
(+.f64 (/.f64 1 x) (-.f64 (log.f64 x) (/.f64 1/2 (*.f64 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 (+.f64 (/.f64 1 x) (/.f64 1/3 (pow.f64 x 3))) (+.f64 (log.f64 x) (/.f64 -1/2 (*.f64 x x))))
(+.f64 (/.f64 1 x) (-.f64 (+.f64 (log.f64 x) (/.f64 1/3 (pow.f64 x 3))) (/.f64 1/2 (*.f64 x x))))
(+.f64 (+.f64 (/.f64 1 x) (-.f64 (log.f64 x) (/.f64 1/2 (*.f64 x x)))) (/.f64 1/3 (pow.f64 x 3)))
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 1/2 (*.f64 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 (+.f64 (/.f64 1 x) (/.f64 1/3 (pow.f64 x 3))) (+.f64 (log.f64 x) (/.f64 -1/2 (*.f64 x x))))
(+.f64 (/.f64 1 x) (-.f64 (+.f64 (log.f64 x) (/.f64 1/3 (pow.f64 x 3))) (/.f64 1/2 (*.f64 x x))))
(+.f64 (+.f64 (/.f64 1 x) (-.f64 (log.f64 x) (/.f64 1/2 (*.f64 x x)))) (/.f64 1/3 (pow.f64 x 3)))
(+.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 -1/2 (*.f64 x x))))
(+.f64 (/.f64 1 x) (-.f64 (log.f64 x) (/.f64 1/2 (*.f64 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 (+.f64 (/.f64 1 x) (/.f64 1/3 (pow.f64 x 3))) (+.f64 (log.f64 x) (/.f64 -1/2 (*.f64 x x))))
(+.f64 (/.f64 1 x) (-.f64 (+.f64 (log.f64 x) (/.f64 1/3 (pow.f64 x 3))) (/.f64 1/2 (*.f64 x x))))
(+.f64 (+.f64 (/.f64 1 x) (-.f64 (log.f64 x) (/.f64 1/2 (*.f64 x x)))) (/.f64 1/3 (pow.f64 x 3)))
(+.f64 0 (log1p.f64 x))
(log1p.f64 x)
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (+.f64 1 x) 2))) (log.f64 (cbrt.f64 (+.f64 1 x))))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2))) (log.f64 (cbrt.f64 (+.f64 x 1))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) (log.f64 (sqrt.f64 (+.f64 1 x))))
(log1p.f64 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 (log.f64 (+.f64 1 (pow.f64 x 3))) (log.f64 (+.f64 1 (fma.f64 x x (neg.f64 x)))))
(-.f64 (log1p.f64 (pow.f64 x 3)) (log1p.f64 (fma.f64 x x (neg.f64 x))))
(-.f64 (log1p.f64 (pow.f64 x 3)) (log1p.f64 (-.f64 (*.f64 x x) 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 (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)
(*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(log1p.f64 x)
(pow.f64 (log1p.f64 x) 1)
(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)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(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)
(+.f64 0 (log1p.f64 x))
(log1p.f64 x)
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (+.f64 1 x) 2))) (log.f64 (cbrt.f64 (+.f64 1 x))))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (+.f64 x 1) 2))) (log.f64 (cbrt.f64 (+.f64 x 1))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) (log.f64 (sqrt.f64 (+.f64 1 x))))
(log1p.f64 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 (log.f64 (+.f64 1 (pow.f64 x 3))) (log.f64 (+.f64 1 (fma.f64 x x (neg.f64 x)))))
(-.f64 (log1p.f64 (pow.f64 x 3)) (log1p.f64 (fma.f64 x x (neg.f64 x))))
(-.f64 (log1p.f64 (pow.f64 x 3)) (log1p.f64 (-.f64 (*.f64 x x) 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 (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)
(*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(log1p.f64 x)
(pow.f64 (log1p.f64 x) 1)
(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)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(log1p.f64 x)
(sqrt.f64 (pow.f64 (log1p.f64 x) 2))
(log1p.f64 x)
(log.f64 (+.f64 1 x))
(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)

eval11.0ms (0.3%)

Compiler

Compiled 552 to 364 computations (34.1% saved)

prune14.0ms (0.4%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New53154
Fresh000
Picked022
Done000
Total53356
Accurracy
100.0%
Counts
56 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
35.0%
(log.f64 (+.f64 1 x))
70.7%
x
100.0%
(log1p.f64 x)
35.0%
(log.f64 (+.f64 1 x))
70.7%
x
Compiler

Compiled 20 to 14 computations (30% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
35.0%
(log.f64 (+.f64 1 x))
70.7%
x
100.0%
(log1p.f64 x)
35.0%
(log.f64 (+.f64 1 x))
70.7%
x
Compiler

Compiled 20 to 14 computations (30% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
35.0%
(log.f64 (+.f64 1 x))
70.7%
x
100.0%
(log1p.f64 x)
35.0%
(log.f64 (+.f64 1 x))
70.7%
x
Compiler

Compiled 20 to 14 computations (30% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
35.0%
(log.f64 (+.f64 1 x))
70.7%
x
Compiler

Compiled 18 to 12 computations (33.3% saved)

regimes11.0ms (0.3%)

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

3 calls:

4.0ms
(log.f64 (+.f64 1 x))
4.0ms
x
2.0ms
(+.f64 1 x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(log.f64 (+.f64 1 x))
100.0%1(+.f64 1 x)
Compiler

Compiled 19 to 13 computations (31.6% saved)

regimes3.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
x
Outputs
x
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
70.7%1x
Compiler

Compiled 4 to 2 computations (50% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(log1p.f64 x)
x
Outputs
(log1p.f64 x)
x
Compiler

Compiled 5 to 3 computations (40% saved)

soundness15.0ms (0.4%)

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)

end35.0ms (0.9%)

Compiler

Compiled 58 to 42 computations (27.6% saved)

Profiling

Loading profile data...