Details

Time bar (total: 3.8s)

analyze1.0ms (0%)

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

Compiled 6 to 5 computations (16.7% saved)

sample2.8s (73.8%)

Results
1.4s2739×body1024valid
957.0ms3866×body256valid
320.0ms1428×body512valid
104.0ms223×body2048valid
0.0msbody256invalid
Bogosity

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

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

prune1.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)
40.5%
(log.f64 (+.f64 1 x))
Compiler

Compiled 8 to 6 computations (25% saved)

localize5.0ms (0.1%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
93.5%
(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))

rewrite129.0ms (3.4%)

Algorithm
batch-egg-rewrite
Rules
1284×pow1
1184×add-exp-log
1184×log1p-expm1-u
1184×expm1-log1p-u
1160×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075
11365
216095
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(log.f64 (+.f64 1 x))
Outputs
(+.f64 0 (log1p.f64 x))
(+.f64 (log.f64 (hypot.f64 1 (sqrt.f64 x))) (log.f64 (hypot.f64 1 (sqrt.f64 x))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (log.f64 (cbrt.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 (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 (cbrt.f64 (log1p.f64 x)) (cbrt.f64 (pow.f64 (log1p.f64 x) 2)))
(*.f64 (cbrt.f64 (pow.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)

simplify62.0ms (1.6%)

Algorithm
egg-herbie
Rules
1244×distribute-lft-in
1198×fma-neg
1064×distribute-rgt-in
690×associate-+r+
668×fma-def
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
097568
1233492
2681492
33126492
47909492
Stop Event
node limit
Counts
32 → 56
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 (hypot.f64 1 (sqrt.f64 x))) (log.f64 (hypot.f64 1 (sqrt.f64 x))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 1 x)) 2)) (log.f64 (cbrt.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 (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 (cbrt.f64 (log1p.f64 x)) (cbrt.f64 (pow.f64 (log1p.f64 x) 2)))
(*.f64 (cbrt.f64 (pow.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)
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 (log.f64 x) (-.f64 (/.f64 1 x) (/.f64 1/2 (*.f64 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 (/.f64 1/2 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 (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 (log.f64 x) (-.f64 (/.f64 1 x) (/.f64 1/2 (*.f64 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 (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 x) (-.f64 (/.f64 1/3 (pow.f64 x 3)) (/.f64 (/.f64 1/2 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 0 (log1p.f64 x))
(log1p.f64 x)
(+.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 (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 (+.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 (log1p.f64 (pow.f64 x 3)) (log1p.f64 (*.f64 x (+.f64 x -1))))
(-.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 (cbrt.f64 (log1p.f64 x)) (cbrt.f64 (pow.f64 (log1p.f64 x) 2)))
(log1p.f64 x)
(*.f64 (cbrt.f64 (pow.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)

localize3.0ms (0.1%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(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)

rewrite94.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
694×pow1
666×add-sqr-sqrt
656×*-un-lft-identity
634×add-exp-log
634×log1p-expm1-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045
1785
28775
Stop Event
node limit
Counts
1 → 39
Calls
Call 1
Inputs
(log1p.f64 x)
Outputs
(+.f64 0 (log1p.f64 x))
(+.f64 (+.f64 1 (log1p.f64 x)) -1)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) (log.f64 (cbrt.f64 (+.f64 x 1))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 x 1))) (log.f64 (sqrt.f64 (+.f64 x 1))))
(-.f64 (log1p.f64 (pow.f64 x 3)) (log.f64 (+.f64 1 (-.f64 (*.f64 x x) x))))
(-.f64 (+.f64 1 (log1p.f64 x)) 1)
(-.f64 (log.f64 (-.f64 1 (*.f64 x x))) (log.f64 (-.f64 1 x)))
(*.f64 (log1p.f64 x) 1)
(*.f64 1 (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 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(*.f64 (pow.f64 (log1p.f64 x) 1/4) (sqrt.f64 (pow.f64 (log1p.f64 x) 3/2)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (log1p.f64 x) (cbrt.f64 (log1p.f64 x))) 2)) (cbrt.f64 (cbrt.f64 (log1p.f64 x))))
(*.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 5/2)) (pow.f64 (log1p.f64 x) 1/6))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 5)) (pow.f64 (log1p.f64 x) 1/6))
(*.f64 (sqrt.f64 (pow.f64 (log1p.f64 x) 3/2)) (pow.f64 (log1p.f64 x) 1/4))
(*.f64 (pow.f64 1 1/3) (log1p.f64 x))
(*.f64 (pow.f64 (pow.f64 (*.f64 (log1p.f64 x) (cbrt.f64 (log1p.f64 x))) 2) 1/3) (cbrt.f64 (cbrt.f64 (log1p.f64 x))))
(*.f64 (pow.f64 (pow.f64 (log1p.f64 x) 5/2) 1/3) (pow.f64 (log1p.f64 x) 1/6))
(/.f64 (-.f64 (pow.f64 (+.f64 1 (log1p.f64 x)) 3) 1) (+.f64 (*.f64 (+.f64 1 (log1p.f64 x)) (+.f64 1 (log1p.f64 x))) (+.f64 1 (*.f64 (+.f64 1 (log1p.f64 x)) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (log1p.f64 x)) (+.f64 1 (log1p.f64 x))) 1) (+.f64 (+.f64 1 (log1p.f64 x)) 1))
(pow.f64 (log1p.f64 x) 1)
(pow.f64 (cbrt.f64 (log1p.f64 x)) 3)
(pow.f64 (pow.f64 (log1p.f64 x) 2) 1/2)
(pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(pow.f64 (E.f64) (log.f64 (log1p.f64 x)))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (log1p.f64 x)))) (sqrt.f64 (log.f64 (log1p.f64 x))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (log1p.f64 x))) 2)) (cbrt.f64 (log.f64 (log1p.f64 x))))
(sqrt.f64 (pow.f64 (log1p.f64 x) 2))
(fabs.f64 (log1p.f64 x))
(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)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (log1p.f64 x))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (log1p.f64 x) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (log1p.f64 x))) 2))

simplify106.0ms (2.8%)

Algorithm
egg-herbie
Rules
1286×fma-def
880×associate-*r*
794×associate-*l*
790×log-prod
774×times-frac
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01541009
1383937
21120915
35856915
Stop Event
node limit
Counts
51 → 94
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 (+.f64 1 (log1p.f64 x)) -1)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) (log.f64 (cbrt.f64 (+.f64 x 1))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 x 1))) (log.f64 (sqrt.f64 (+.f64 x 1))))
(-.f64 (log1p.f64 (pow.f64 x 3)) (log.f64 (+.f64 1 (-.f64 (*.f64 x x) x))))
(-.f64 (+.f64 1 (log1p.f64 x)) 1)
(-.f64 (log.f64 (-.f64 1 (*.f64 x x))) (log.f64 (-.f64 1 x)))
(*.f64 (log1p.f64 x) 1)
(*.f64 1 (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 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(*.f64 (pow.f64 (log1p.f64 x) 1/4) (sqrt.f64 (pow.f64 (log1p.f64 x) 3/2)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (log1p.f64 x) (cbrt.f64 (log1p.f64 x))) 2)) (cbrt.f64 (cbrt.f64 (log1p.f64 x))))
(*.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 5/2)) (pow.f64 (log1p.f64 x) 1/6))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 5)) (pow.f64 (log1p.f64 x) 1/6))
(*.f64 (sqrt.f64 (pow.f64 (log1p.f64 x) 3/2)) (pow.f64 (log1p.f64 x) 1/4))
(*.f64 (pow.f64 1 1/3) (log1p.f64 x))
(*.f64 (pow.f64 (pow.f64 (*.f64 (log1p.f64 x) (cbrt.f64 (log1p.f64 x))) 2) 1/3) (cbrt.f64 (cbrt.f64 (log1p.f64 x))))
(*.f64 (pow.f64 (pow.f64 (log1p.f64 x) 5/2) 1/3) (pow.f64 (log1p.f64 x) 1/6))
(/.f64 (-.f64 (pow.f64 (+.f64 1 (log1p.f64 x)) 3) 1) (+.f64 (*.f64 (+.f64 1 (log1p.f64 x)) (+.f64 1 (log1p.f64 x))) (+.f64 1 (*.f64 (+.f64 1 (log1p.f64 x)) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (log1p.f64 x)) (+.f64 1 (log1p.f64 x))) 1) (+.f64 (+.f64 1 (log1p.f64 x)) 1))
(pow.f64 (log1p.f64 x) 1)
(pow.f64 (cbrt.f64 (log1p.f64 x)) 3)
(pow.f64 (pow.f64 (log1p.f64 x) 2) 1/2)
(pow.f64 (pow.f64 (log1p.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (log1p.f64 x)) 2)
(pow.f64 (E.f64) (log.f64 (log1p.f64 x)))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (log1p.f64 x)))) (sqrt.f64 (log.f64 (log1p.f64 x))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (log1p.f64 x))) 2)) (cbrt.f64 (log.f64 (log1p.f64 x))))
(sqrt.f64 (pow.f64 (log1p.f64 x) 2))
(fabs.f64 (log1p.f64 x))
(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)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (log1p.f64 x))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (log1p.f64 x) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (log1p.f64 x))) 2))
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 1/3 (pow.f64 x 3) (fma.f64 x (*.f64 x -1/2) (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 (*.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 (/.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 (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 (/.f64 1/2 x) x))
(+.f64 (log.f64 -1) (+.f64 (-.f64 (/.f64 1 x) (log.f64 (/.f64 -1 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 (+.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 (/.f64 1/2 x) x))))
(+.f64 (log.f64 -1) (-.f64 (+.f64 (/.f64 1/3 (pow.f64 x 3)) (-.f64 (/.f64 1 x) (log.f64 (/.f64 -1 x)))) (/.f64 1/2 (*.f64 x x))))
(+.f64 0 (log1p.f64 x))
(log1p.f64 x)
(+.f64 (+.f64 1 (log1p.f64 x)) -1)
(log1p.f64 x)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 x 1)) 2)) (log.f64 (cbrt.f64 (+.f64 x 1))))
(+.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 (sqrt.f64 (+.f64 x 1))) (log.f64 (sqrt.f64 (+.f64 x 1))))
(*.f64 2 (log.f64 (sqrt.f64 (+.f64 x 1))))
(*.f64 2 (log.f64 (hypot.f64 1 (sqrt.f64 x))))
(-.f64 (log1p.f64 (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 (+.f64 1 (log1p.f64 x)) 1)
(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 (log1p.f64 x) 1)
(log1p.f64 x)
(*.f64 1 (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)
(*.f64 (sqrt.f64 (log1p.f64 x)) (sqrt.f64 (log1p.f64 x)))
(log1p.f64 x)
(*.f64 (pow.f64 (log1p.f64 x) 1/4) (sqrt.f64 (pow.f64 (log1p.f64 x) 3/2)))
(log1p.f64 x)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (log1p.f64 x) (cbrt.f64 (log1p.f64 x))) 2)) (cbrt.f64 (cbrt.f64 (log1p.f64 x))))
(*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (pow.f64 (*.f64 (log1p.f64 x) (cbrt.f64 (log1p.f64 x))) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 4) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 8)))
(*.f64 (cbrt.f64 (pow.f64 (log1p.f64 x) 5/2)) (pow.f64 (log1p.f64 x) 1/6))
(*.f64 (pow.f64 (log1p.f64 x) 1/6) (cbrt.f64 (pow.f64 (log1p.f64 x) 5/2)))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 5)) (pow.f64 (log1p.f64 x) 1/6))
(*.f64 (pow.f64 (log1p.f64 x) 1/6) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 5)))
(*.f64 (pow.f64 (log1p.f64 x) 1/6) (pow.f64 (cbrt.f64 (log1p.f64 x)) 5/2))
(*.f64 (sqrt.f64 (pow.f64 (log1p.f64 x) 3/2)) (pow.f64 (log1p.f64 x) 1/4))
(log1p.f64 x)
(*.f64 (pow.f64 1 1/3) (log1p.f64 x))
(log1p.f64 x)
(*.f64 (pow.f64 (pow.f64 (*.f64 (log1p.f64 x) (cbrt.f64 (log1p.f64 x))) 2) 1/3) (cbrt.f64 (cbrt.f64 (log1p.f64 x))))
(*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (pow.f64 (*.f64 (log1p.f64 x) (cbrt.f64 (log1p.f64 x))) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 4) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 x))) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 x)) 8)))
(*.f64 (pow.f64 (pow.f64 (log1p.f64 x) 5/2) 1/3) (pow.f64 (log1p.f64 x) 1/6))
(*.f64 (pow.f64 (log1p.f64 x) 1/6) (cbrt.f64 (pow.f64 (log1p.f64 x) 5/2)))
(/.f64 (-.f64 (pow.f64 (+.f64 1 (log1p.f64 x)) 3) 1) (+.f64 (*.f64 (+.f64 1 (log1p.f64 x)) (+.f64 1 (log1p.f64 x))) (+.f64 1 (*.f64 (+.f64 1 (log1p.f64 x)) 1))))
(/.f64 (+.f64 (pow.f64 (+.f64 1 (log1p.f64 x)) 3) -1) (fma.f64 (+.f64 1 (log1p.f64 x)) (+.f64 1 (log1p.f64 x)) (+.f64 1 (+.f64 1 (log1p.f64 x)))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 1 (log1p.f64 x)) 3)) (fma.f64 (+.f64 1 (log1p.f64 x)) (+.f64 1 (log1p.f64 x)) (+.f64 2 (log1p.f64 x))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 1 (log1p.f64 x)) 3)) (+.f64 1 (*.f64 (+.f64 1 (log1p.f64 x)) (+.f64 2 (log1p.f64 x)))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (log1p.f64 x)) (+.f64 1 (log1p.f64 x))) 1) (+.f64 (+.f64 1 (log1p.f64 x)) 1))
(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) 2) 1/2)
(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)
(pow.f64 (E.f64) (log.f64 (log1p.f64 x)))
(log1p.f64 x)
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (log1p.f64 x)))) (sqrt.f64 (log.f64 (log1p.f64 x))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (log1p.f64 x))) 2)) (cbrt.f64 (log.f64 (log1p.f64 x))))
(sqrt.f64 (pow.f64 (log1p.f64 x) 2))
(log1p.f64 x)
(fabs.f64 (log1p.f64 x))
(log1p.f64 x)
(log.f64 (+.f64 x 1))
(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)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (log1p.f64 x))) 3))
(log1p.f64 x)
(exp.f64 (*.f64 (log.f64 (pow.f64 (log1p.f64 x) 3)) 1/3))
(log1p.f64 x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (log1p.f64 x))) 2))
(log1p.f64 x)

eval74.0ms (2%)

Compiler

Compiled 1610 to 1040 computations (35.4% saved)

prune13.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1482150
Fresh000
Picked011
Done101
Total1493152
Accurracy
100.0%
Counts
152 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
36.0%
(log.f64 x)
65.5%
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
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
36.0%
(log.f64 x)
65.5%
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
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
36.0%
(log.f64 x)
65.5%
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
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
36.0%
(log.f64 x)
65.5%
x
Compiler

Compiled 8 to 5 computations (37.5% saved)

regimes258.0ms (6.9%)

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:

253.0ms
x
2.0ms
(log.f64 (+.f64 1 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 21 to 14 computations (33.3% saved)

regimes6.0ms (0.2%)

Accuracy

Total -61.6b remaining (-8483.1%)

Threshold costs -61.6b (-8483.1%)

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

1 calls:

5.0ms
x
Results
AccuracySegmentsBranch
98.9%2x
Compiler

Compiled 6 to 3 computations (50% saved)

bsearch47.0ms (1.3%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
47.0ms
0.00022068606863773685
84.97520655130822
Results
46.0ms144×body256valid
Compiler

Compiled 72 to 52 computations (27.8% saved)

simplify4.0ms (0.1%)

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 4165829655317709/2251799813685248) x (log.f64 x))
x
Outputs
(log1p.f64 x)
(if (<=.f64 x 4165829655317709/2251799813685248) x (log.f64 x))
x
Compiler

Compiled 13 to 8 computations (38.5% saved)

soundness102.0ms (2.7%)

Rules
1244×distribute-lft-in
1198×fma-neg
1064×distribute-rgt-in
690×associate-+r+
668×fma-def
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075
1115
097568
1233492
2681492
33126492
47909492
Stop Event
node limit
saturated
Compiler

Compiled 25 to 18 computations (28% saved)

end46.0ms (1.2%)

Compiler

Compiled 72 to 50 computations (30.6% saved)

Profiling

Loading profile data...