ln(1 + x)

Time bar (total: 5.7s)

analyze1.3s (23.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)

sample3.9s (68%)

Results
1.3s3901×body256valid
1.2s2757×body1024valid
704.0ms2672×body256invalid
618.0ms1339×body512valid
124.0ms259×body2048valid
Bogosity

preprocess15.0ms (0.3%)

Algorithm
egg-herbie
Rules
14×sub-neg
12×fma-def
10×+-commutative
associate-+l-
associate-+l+
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
12014
22714
33514
44514
55914
67514
77914
Stop Event
saturated
Calls
Call 1
Inputs
(log.f64 (+.f64 1 x))
(log.f64 (+.f64 1 (neg.f64 x)))
Outputs
(log.f64 (+.f64 1 x))
(log1p.f64 x)
(log.f64 (+.f64 1 (neg.f64 x)))
(log1p.f64 (neg.f64 x))
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify3.0ms (0.1%)

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)
44.7%
(log.f64 (+.f64 1 x))
100.0%
(log1p.f64 x)
44.7%
(log.f64 (+.f64 1 x))
Compiler

Compiled 16 to 12 computations (25% saved)

localize123.0ms (2.1%)

Local Accuracy

Found 2 expressions with local accuracy:

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

Compiled 14 to 9 computations (35.7% saved)

series3.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite125.0ms (2.2%)

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)))

simplify118.0ms (2.1%)

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)

eval14.0ms (0.2%)

Compiler

Compiled 552 to 364 computations (34.1% saved)

prune17.0ms (0.3%)

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)
44.7%
(log.f64 (+.f64 1 x))
61.4%
x
100.0%
(log1p.f64 x)
44.7%
(log.f64 (+.f64 1 x))
61.4%
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)
44.7%
(log.f64 (+.f64 1 x))
61.4%
x
100.0%
(log1p.f64 x)
44.7%
(log.f64 (+.f64 1 x))
61.4%
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)
44.7%
(log.f64 (+.f64 1 x))
61.4%
x
100.0%
(log1p.f64 x)
44.7%
(log.f64 (+.f64 1 x))
61.4%
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)
44.7%
(log.f64 (+.f64 1 x))
61.4%
x
Compiler

Compiled 18 to 12 computations (33.3% saved)

regimes12.0ms (0.2%)

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

3 calls:

5.0ms
(+.f64 1 x)
4.0ms
x
2.0ms
(log.f64 (+.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)

regimes8.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:

8.0ms
x
Results
AccuracySegmentsBranch
61.4%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.3%)

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)

end0.0ms (0%)

preprocess47.0ms (0.8%)

Compiler

Compiled 58 to 42 computations (27.6% saved)

Profiling

Loading profile data...