ln(1 + x)

Time bar (total: 1.4s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

analyze1.0ms (0.1%)

Memory
1.3MiB live, 1.3MiB allocated; 0ms collecting garbage
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 4 computations (33.3% saved)

sample580.0ms (40.8%)

Memory
20.4MiB live, 765.7MiB allocated; 152ms collecting garbage
Samples
369.0ms8 256×0valid
0.0ms0invalid
Precisions
Click to see histograms. Total time spent on operations: 132.0ms
ival-log1p: 127.0ms (96.2% of total)
ival-assert: 3.0ms (2.3% of total)
adjust: 2.0ms (1.5% of total)
Bogosity

explain72.0ms (5.1%)

Memory
-16.5MiB live, 127.3MiB allocated; 22ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1670-0-(log.f64 (+.f64 #s(literal 1 binary64) x))
00-0-(+.f64 #s(literal 1 binary64) x)
00-0-#s(literal 1 binary64)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
log.f64(log.f64 (+.f64 #s(literal 1 binary64) x))sensitivity1671
Confusion
Predicted +Predicted -
+1670
-089
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+16700
-0188
Precision?
0.9940476190476191
Recall?
1.0
Freqs
test
numberfreq
089
1167
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
28.0ms512×0valid
Compiler

Compiled 26 to 16 computations (38.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-log1p: 9.0ms (61% of total)
ival-add: 4.0ms (27.1% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess318.0ms (22.4%)

Memory
-47.4MiB live, 186.4MiB allocated; 88ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
11215
21515
32915
47215
531713
6279913
7626013
044
064
194
2124
3234
4574
52484
621944
755124
086562
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(log.f64 (+.f64 #s(literal 1 binary64) x))
Outputs
(log.f64 (+.f64 #s(literal 1 binary64) x))
(log1p.f64 x)
Compiler

Compiled 4 to 4 computations (0% saved)

eval0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
39.5%
(log.f64 (+.f64 #s(literal 1 binary64) x))
Compiler

Compiled 4 to 4 computations (0% saved)

series2.0ms (0.2%)

Memory
3.2MiB live, 3.2MiB allocated; 0ms collecting garbage
Counts
4 → 17
Calls
Call 1
Inputs
(log.f64 (+.f64 #s(literal 1 binary64) x))
(+.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
Outputs
#s(approx (log (+ 1 x)) #s(hole binary64 x))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* -1/2 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* x (- (* 1/3 x) 1/2))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))))))
#s(approx (+ 1 x) #s(hole binary64 1))
#s(approx (+ 1 x) #s(hole binary64 (+ 1 x)))
#s(approx x #s(hole binary64 x))
#s(approx (log (+ 1 x)) #s(hole binary64 (* -1 (log (/ 1 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (* -1 (log (/ 1 x))) (/ 1 x))))
#s(approx (log (+ 1 x)) #s(hole binary64 (- (+ (* -1 (log (/ 1 x))) (/ 1 x)) (/ 1/2 (pow x 2)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (- (+ (* -1 (log (/ 1 x))) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (/ 1/2 (pow x 2)))))
#s(approx (+ 1 x) #s(hole binary64 x))
#s(approx (+ 1 x) #s(hole binary64 (* x (+ 1 (/ 1 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 x))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (/ 1 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* 1/2 (/ 1 x)) 1) x))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* -1 (/ (- (* 1/3 (/ 1 x)) 1/2) x)) 1) x))))))
Calls

3 calls:

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

rewrite169.0ms (11.9%)

Memory
-0.7MiB live, 185.4MiB allocated; 27ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
082260
083235
1482221
04608188
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
21 → 42
Calls
Call 1
Inputs
(log.f64 (+.f64 #s(literal 1 binary64) x))
(+.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
#s(approx (log (+ 1 x)) #s(hole binary64 x))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* -1/2 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* x (- (* 1/3 x) 1/2))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))))))
#s(approx (+ 1 x) #s(hole binary64 1))
#s(approx (+ 1 x) #s(hole binary64 (+ 1 x)))
#s(approx x #s(hole binary64 x))
#s(approx (log (+ 1 x)) #s(hole binary64 (* -1 (log (/ 1 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (* -1 (log (/ 1 x))) (/ 1 x))))
#s(approx (log (+ 1 x)) #s(hole binary64 (- (+ (* -1 (log (/ 1 x))) (/ 1 x)) (/ 1/2 (pow x 2)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (- (+ (* -1 (log (/ 1 x))) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (/ 1/2 (pow x 2)))))
#s(approx (+ 1 x) #s(hole binary64 x))
#s(approx (+ 1 x) #s(hole binary64 (* x (+ 1 (/ 1 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 x))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (/ 1 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* 1/2 (/ 1 x)) 1) x))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* -1 (/ (- (* 1/3 (/ 1 x)) 1/2) x)) 1) x))))))
Outputs
(log1p.f64 x)
(-.f64 (log.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (log.f64 (-.f64 #s(literal 1 binary64) x)))
(-.f64 (log1p.f64 (*.f64 (*.f64 x x) x)) (log1p.f64 (-.f64 (*.f64 x x) x)))
(log.f64 (-.f64 x #s(literal -1 binary64)))
(*.f64 (fma.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 1 binary64) #s(literal 1 binary64)) x)
(*.f64 x (fma.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 1 binary64) #s(literal 1 binary64)))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 x x) #s(literal -1 binary64))) x) (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -1 binary64))))
(/.f64 (*.f64 (fma.f64 (pow.f64 (*.f64 x x) #s(literal -1 binary64)) (pow.f64 x #s(literal -1 binary64)) #s(literal 1 binary64)) x) (fma.f64 (pow.f64 x #s(literal -1 binary64)) (-.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)))
(/.f64 (*.f64 x (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 x x) #s(literal -1 binary64)))) (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -1 binary64))))
(/.f64 (*.f64 x (fma.f64 (pow.f64 (*.f64 x x) #s(literal -1 binary64)) (pow.f64 x #s(literal -1 binary64)) #s(literal 1 binary64))) (fma.f64 (pow.f64 x #s(literal -1 binary64)) (-.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64)))
(/.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)) (-.f64 x #s(literal 1 binary64)))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (neg.f64 (-.f64 #s(literal 1 binary64) x)))
(/.f64 (neg.f64 (fma.f64 (*.f64 x x) x #s(literal 1 binary64))) (neg.f64 (+.f64 (-.f64 (*.f64 x x) x) #s(literal 1 binary64))))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)) (-.f64 #s(literal 1 binary64) x))
(/.f64 (fma.f64 (*.f64 x x) x #s(literal 1 binary64)) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(/.f64 (fma.f64 (*.f64 x x) x #s(literal 1 binary64)) (+.f64 (-.f64 (*.f64 x x) x) #s(literal 1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) x)) (/.f64 (*.f64 x x) (-.f64 #s(literal 1 binary64) x)))
(-.f64 x (*.f64 (neg.f64 x) (pow.f64 x #s(literal -1 binary64))))
(-.f64 x (*.f64 (pow.f64 (neg.f64 x) #s(literal -1 binary64)) x))
(-.f64 x #s(literal -1 binary64))
(+.f64 (/.f64 #s(literal 1 binary64) (+.f64 (-.f64 (*.f64 x x) x) #s(literal 1 binary64))) (/.f64 (*.f64 (*.f64 x x) x) (+.f64 (-.f64 (*.f64 x x) x) #s(literal 1 binary64))))
(+.f64 x #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
#s(approx (log (+ 1 x)) x)
#s(approx (log (+ 1 x)) (*.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64) #s(literal 1 binary64)) x))
#s(approx (log (+ 1 x)) (*.f64 (fma.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/3 binary64) x) #s(literal 1 binary64) #s(literal -1/2 binary64)) x) #s(literal 1 binary64) #s(literal 1 binary64)) x))
#s(approx (log (+ 1 x)) (*.f64 (fma.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -1/4 binary64) x #s(literal 1/3 binary64)) x #s(literal -1/2 binary64)) x) #s(literal 1 binary64) #s(literal 1 binary64)) x))
#s(approx (+ 1 x) #s(literal 1 binary64))
#s(approx (+ 1 x) (-.f64 x #s(literal -1 binary64)))
#s(approx x x)
#s(approx (log (+ 1 x)) (log.f64 x))
#s(approx (log (+ 1 x)) (fma.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 1 binary64) (log.f64 x)))
#s(approx (log (+ 1 x)) (-.f64 (fma.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 1 binary64) (log.f64 x)) (/.f64 #s(literal 1/2 binary64) (*.f64 x x))))
#s(approx (log (+ 1 x)) (-.f64 (fma.f64 (/.f64 #s(literal 1/3 binary64) (*.f64 (*.f64 x x) x)) #s(literal 1 binary64) (fma.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 1 binary64) (log.f64 x))) (/.f64 #s(literal 1/2 binary64) (*.f64 x x))))
#s(approx (+ 1 x) x)
#s(approx (+ 1 x) (-.f64 x #s(literal -1 binary64)))
#s(approx (log (+ 1 x)) (fma.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 x)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64))))
#s(approx (log (+ 1 x)) (fma.f64 (pow.f64 x #s(literal -1/2 binary64)) (pow.f64 x #s(literal -1/2 binary64)) (fma.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 x)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64)))))
#s(approx (log (+ 1 x)) (fma.f64 (/.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 1/2 binary64)) #s(literal 1 binary64) #s(literal -1 binary64)) x) #s(literal -1 binary64) (fma.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 x)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64)))))
#s(approx (log (+ 1 x)) (fma.f64 (/.f64 (fma.f64 (*.f64 (/.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 1/3 binary64)) #s(literal 1 binary64) #s(literal -1/2 binary64)) x) #s(literal -1 binary64)) #s(literal 1 binary64) #s(literal -1 binary64)) x) #s(literal -1 binary64) (fma.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 x)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64)))))

eval4.0ms (0.3%)

Memory
9.9MiB live, 9.9MiB allocated; 0ms collecting garbage
Compiler

Compiled 522 to 146 computations (72% saved)

prune5.0ms (0.4%)

Memory
11.8MiB live, 11.8MiB allocated; 0ms collecting garbage
Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New40141
Fresh000
Picked101
Done000
Total41142
Accuracy
100.0%
Counts
42 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
Compiler

Compiled 2 to 2 computations (0% saved)

series1.0ms (0.1%)

Memory
1.5MiB live, 1.5MiB allocated; 0ms collecting garbage
Counts
2 → 13
Calls
Call 1
Inputs
(log1p.f64 x)
x
Outputs
#s(approx (log (+ 1 x)) #s(hole binary64 x))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* -1/2 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* x (- (* 1/3 x) 1/2))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))))))
#s(approx x #s(hole binary64 x))
#s(approx (log (+ 1 x)) #s(hole binary64 (* -1 (log (/ 1 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (* -1 (log (/ 1 x))) (/ 1 x))))
#s(approx (log (+ 1 x)) #s(hole binary64 (- (+ (* -1 (log (/ 1 x))) (/ 1 x)) (/ 1/2 (pow x 2)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (- (+ (* -1 (log (/ 1 x))) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (/ 1/2 (pow x 2)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 x))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (/ 1 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* 1/2 (/ 1 x)) 1) x))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* -1 (/ (- (* 1/3 (/ 1 x)) 1/2) x)) 1) x))))))
Calls

3 calls:

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

rewrite136.0ms (9.6%)

Memory
-11.7MiB live, 173.5MiB allocated; 30ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075202
075181
1460167
04453160
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
15 → 18
Calls
Call 1
Inputs
(log1p.f64 x)
x
#s(approx (log (+ 1 x)) #s(hole binary64 x))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* -1/2 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* x (- (* 1/3 x) 1/2))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (* x (+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))))))
#s(approx x #s(hole binary64 x))
#s(approx (log (+ 1 x)) #s(hole binary64 (* -1 (log (/ 1 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (* -1 (log (/ 1 x))) (/ 1 x))))
#s(approx (log (+ 1 x)) #s(hole binary64 (- (+ (* -1 (log (/ 1 x))) (/ 1 x)) (/ 1/2 (pow x 2)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (- (+ (* -1 (log (/ 1 x))) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (/ 1/2 (pow x 2)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (* -1 (log (/ -1 x))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (/ 1 x)))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* 1/2 (/ 1 x)) 1) x))))))
#s(approx (log (+ 1 x)) #s(hole binary64 (+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* -1 (/ (- (* 1/3 (/ 1 x)) 1/2) x)) 1) x))))))
Outputs
(log1p.f64 x)
(-.f64 (log1p.f64 (*.f64 (neg.f64 x) x)) (log.f64 (-.f64 #s(literal 1 binary64) x)))
(-.f64 (log1p.f64 (*.f64 (*.f64 x x) x)) (log1p.f64 (-.f64 (*.f64 x x) x)))
(log.f64 (-.f64 x #s(literal -1 binary64)))
x
#s(approx (log (+ 1 x)) x)
#s(approx (log (+ 1 x)) (*.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64) #s(literal 1 binary64)) x))
#s(approx (log (+ 1 x)) (*.f64 (fma.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/3 binary64) x) #s(literal 1 binary64) #s(literal -1/2 binary64)) x) #s(literal 1 binary64) #s(literal 1 binary64)) x))
#s(approx (log (+ 1 x)) (*.f64 (fma.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -1/4 binary64) x #s(literal 1/3 binary64)) x #s(literal -1/2 binary64)) x) #s(literal 1 binary64) #s(literal 1 binary64)) x))
#s(approx x x)
#s(approx (log (+ 1 x)) (log.f64 x))
#s(approx (log (+ 1 x)) (fma.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -1 binary64)) (log.f64 x)))
#s(approx (log (+ 1 x)) (-.f64 (fma.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -1 binary64)) (log.f64 x)) (/.f64 #s(literal 1/2 binary64) (*.f64 x x))))
#s(approx (log (+ 1 x)) (-.f64 (fma.f64 (/.f64 #s(literal 1/3 binary64) (*.f64 (*.f64 x x) x)) #s(literal 1 binary64) (fma.f64 #s(literal 1 binary64) (pow.f64 x #s(literal -1 binary64)) (log.f64 x))) (/.f64 #s(literal 1/2 binary64) (*.f64 x x))))
#s(approx (log (+ 1 x)) (fma.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 x)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64))))
#s(approx (log (+ 1 x)) (fma.f64 (pow.f64 x #s(literal -1/2 binary64)) (pow.f64 x #s(literal -1/2 binary64)) (fma.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 x)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64)))))
#s(approx (log (+ 1 x)) (fma.f64 (/.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 1/2 binary64)) #s(literal 1 binary64) #s(literal -1 binary64)) x) #s(literal -1 binary64) (fma.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 x)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64)))))
#s(approx (log (+ 1 x)) (fma.f64 (/.f64 (fma.f64 (*.f64 (/.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal -1 binary64)) #s(literal 1/3 binary64)) #s(literal 1 binary64) #s(literal -1/2 binary64)) x) #s(literal -1 binary64)) #s(literal 1 binary64) #s(literal -1 binary64)) x) #s(literal -1 binary64) (fma.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 x)) #s(literal -1 binary64) (log.f64 #s(literal -1 binary64)))))

eval2.0ms (0.1%)

Memory
4.8MiB live, 4.8MiB allocated; 0ms collecting garbage
Compiler

Compiled 249 to 76 computations (69.5% saved)

prune2.0ms (0.2%)

Memory
5.9MiB live, 5.9MiB allocated; 0ms collecting garbage
Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New18018
Fresh000
Picked011
Done000
Total18119
Accuracy
100.0%
Counts
19 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
Compiler

Compiled 8 to 7 computations (12.5% saved)

regimes4.0ms (0.3%)

Memory
9.5MiB live, 9.5MiB allocated; 0ms collecting garbage
Counts
2 → 1
Calls
Call 1
Inputs
(log.f64 (+.f64 #s(literal 1 binary64) x))
(log1p.f64 x)
Outputs
(log1p.f64 x)
Calls

3 calls:

1.0ms
x
1.0ms
(log.f64 (+.f64 #s(literal 1 binary64) x))
1.0ms
(+.f64 #s(literal 1 binary64) x)
Results
AccuracySegmentsBranch
100.0%1(+.f64 #s(literal 1 binary64) x)
100.0%1(log.f64 (+.f64 #s(literal 1 binary64) x))
100.0%1x
Compiler

Compiled 8 to 8 computations (0% saved)

regimes3.0ms (0.2%)

Memory
8.7MiB live, 8.7MiB allocated; 0ms collecting garbage
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(log.f64 (+.f64 #s(literal 1 binary64) x))
Outputs
(log.f64 (+.f64 #s(literal 1 binary64) x))
Calls

3 calls:

1.0ms
x
1.0ms
(log.f64 (+.f64 #s(literal 1 binary64) x))
1.0ms
(+.f64 #s(literal 1 binary64) x)
Results
AccuracySegmentsBranch
39.5%1(+.f64 #s(literal 1 binary64) x)
39.5%1(log.f64 (+.f64 #s(literal 1 binary64) x))
39.5%1x
Compiler

Compiled 8 to 8 computations (0% saved)

simplify60.0ms (4.2%)

Memory
-32.0MiB live, 67.4MiB allocated; 21ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056
176
2106
3186
4416
52146
621356
752876
Stop Event
node limit
Calls
Call 1
Inputs
(log1p.f64 x)
(log.f64 (+.f64 #s(literal 1 binary64) x))
Outputs
(log1p.f64 x)
(log.f64 (+.f64 #s(literal 1 binary64) x))

derivations15.0ms (1%)

Memory
14.0MiB live, 14.0MiB allocated; 0ms collecting garbage
Stop Event
done
Compiler

Compiled 6 to 5 computations (16.7% saved)

preprocess47.0ms (3.3%)

Memory
-15.8MiB live, 31.3MiB allocated; 4ms collecting garbage
Compiler

Compiled 20 to 18 computations (10% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...