Hyperbolic arcsine

Time bar (total: 3.5s)

start0.0ms (0%)

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

analyze72.0ms (2%)

Memory
33.2MiB live, 78.3MiB allocated; 6ms collecting garbage
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
25%25%75%0%0%0%0%3
50%50%50%0%0%0%0%4
62.5%62.5%37.5%0%0%0%0%5
68.8%68.7%31.2%0%0%0%0%6
71.9%71.8%28.1%0%0%0%0%7
73.4%73.4%26.5%0%0%0%0%8
74.2%74.2%25.8%0%0%0%0%9
74.6%74.6%25.4%0%0%0%0%10
74.8%74.8%25.2%0%0%0%0%11
74.9%74.9%25.1%0%0%0%0%12
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample2.1s (59.1%)

Memory
54.4MiB live, 1 878.4MiB allocated; 362ms collecting garbage
Samples
890.0ms1 637×2valid
759.0ms4 465×1valid
137.0ms2 154×0valid
Precisions
Click to see histograms. Total time spent on operations: 1.5s
ival-log: 705.0ms (47.2% of total)
ival-hypot: 492.0ms (33% of total)
adjust: 178.0ms (11.9% of total)
ival-add: 104.0ms (7% of total)
ival-true: 6.0ms (0.4% of total)
exact: 5.0ms (0.3% of total)
ival-assert: 3.0ms (0.2% of total)
Bogosity

explain204.0ms (5.8%)

Memory
-21.4MiB live, 214.5MiB allocated; 27ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1200-0-(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))
710-0-(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64))))
710-0-(sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))
00-0-#s(literal 1 binary64)
00-0-(+.f64 (*.f64 x x) #s(literal 1 binary64))
00-0-(*.f64 x x)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
log.f64(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))sensitivity1200
+.f64(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64))))cancellation710
sqrt.f64(sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))oflow-rescue710
(*.f64 x x)overflow71
(+.f64 (*.f64 x x) #s(literal 1 binary64))overflow71
Confusion
Predicted +Predicted -
+2240
-032
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+22400
-0032
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
032
1186
238
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
52.0ms282×1valid
51.0ms96×2valid
10.0ms134×0valid
Compiler

Compiled 79 to 25 computations (68.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 93.0ms
ival-log: 41.0ms (44.2% of total)
ival-hypot: 22.0ms (23.7% of total)
adjust: 17.0ms (18.3% of total)
ival-add: 7.0ms (7.5% of total)
ival-mult: 5.0ms (5.4% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

preprocess220.0ms (6.3%)

Memory
6.8MiB live, 191.5MiB allocated; 21ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
12221
25021
37421
413321
533921
6239721
7591721
079
0129
1209
2429
3829
41419
53479
624029
759039
081428
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))
Outputs
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))
(log.f64 (+.f64 (sqrt.f64 (fma.f64 x x #s(literal 1 binary64))) x))
Compiler

Compiled 9 to 7 computations (22.2% 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
17.7%
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))
Compiler

Compiled 9 to 7 computations (22.2% saved)

series5.0ms (0.2%)

Memory
8.3MiB live, 8.3MiB allocated; 0ms collecting garbage
Counts
7 → 42
Calls
Call 1
Inputs
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))
(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64))))
x
(sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 x x)
#s(literal 1 binary64)
Outputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 1))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* 1/2 x))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* x (+ 1/2 (* -1/8 (pow x 2)))))))))
#s(approx x #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 1))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* 1/2 (pow x 2)))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* -1/8 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/16 (pow x 2)) 1/8)))))))
#s(approx (+ (* x x) 1) #s(hole binary64 1))
#s(approx (+ (* x x) 1) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* 2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (+ 2 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (+ (* x x) 1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) 1) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (/ -1/2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- 1/2 (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (+ (* 1/8 (/ 1 (pow x 2))) (* 5/128 (/ 1 (pow x 6))))) x))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ 1 (pow x 2))))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4)))))))
Calls

3 calls:

TimeVariablePointExpression
2.0ms
x
@inf
((log (+ x (sqrt (+ (* x x) 1)))) (+ x (sqrt (+ (* x x) 1))) x (sqrt (+ (* x x) 1)) (+ (* x x) 1) (* x x) 1)
2.0ms
x
@-inf
((log (+ x (sqrt (+ (* x x) 1)))) (+ x (sqrt (+ (* x x) 1))) x (sqrt (+ (* x x) 1)) (+ (* x x) 1) (* x x) 1)
1.0ms
x
@0
((log (+ x (sqrt (+ (* x x) 1)))) (+ x (sqrt (+ (* x x) 1))) x (sqrt (+ (* x x) 1)) (+ (* x x) 1) (* x x) 1)

simplify168.0ms (4.8%)

Memory
-16.2MiB live, 175.7MiB allocated; 32ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0172797
1437789
21483779
36883779
08161719
Stop Event
iter limit
node limit
Counts
42 → 42
Calls
Call 1
Inputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 1))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* 1/2 x))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* x (+ 1/2 (* -1/8 (pow x 2)))))))))
#s(approx x #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 1))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* 1/2 (pow x 2)))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* -1/8 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/16 (pow x 2)) 1/8)))))))
#s(approx (+ (* x x) 1) #s(hole binary64 1))
#s(approx (+ (* x x) 1) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* 2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (+ 2 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (+ (* x x) 1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) 1) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (/ -1/2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- 1/2 (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (+ (* 1/8 (/ 1 (pow x 2))) (* 5/128 (/ 1 (pow x 6))))) x))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ 1 (pow x 2))))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4)))))))
Outputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 3/40 binary64) (*.f64 x x)) #s(literal 1/6 binary64)) x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -5/112 binary64) (-.f64 (*.f64 #s(literal 3/40 binary64) (*.f64 x x)) #s(literal 1/6 binary64))) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 1))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(literal 1 binary64))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) (-.f64 x #s(literal -1 binary64)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* 1/2 x))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* x (+ 1/2 (* -1/8 (pow x 2)))))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
#s(approx x #s(hole binary64 x))
#s(approx x x)
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 1))
#s(approx (sqrt (+ (* x x) 1)) #s(literal 1 binary64))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* 1/2 (pow x 2)))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x #s(literal 1 binary64)))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* -1/8 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (*.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x #s(literal 1 binary64)))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/16 (pow x 2)) 1/8)))))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal -1/8 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
#s(approx (+ (* x x) 1) #s(hole binary64 1))
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(approx (+ (* x x) 1) #s(hole binary64 (+ 1 (pow x 2))))
#s(approx (+ (* x x) 1) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (* x x) (*.f64 x x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (-.f64 (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))) (/.f64 #s(literal -5/96 binary64) (pow.f64 x #s(literal 6 binary64)))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* 2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) (*.f64 #s(literal 2 binary64) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (+ 2 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (*.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) #s(literal -2 binary64)) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (*.f64 (-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) #s(literal -2 binary64)) (/.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 4 binary64)))) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (*.f64 (-.f64 (-.f64 (-.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -2 binary64)) (/.f64 #s(literal -1/2 binary64) (*.f64 x x))) (/.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 4 binary64)))) x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) 1)) x)
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) x x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 4 binary64)))) x x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (-.f64 (-.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal -1/2 binary64) (*.f64 x x))) (/.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 4 binary64)))) x x))
#s(approx (+ (* x x) 1) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) 1) (*.f64 x x))
#s(approx (+ (* x x) 1) #s(hole binary64 (* (pow x 2) (+ 1 (/ 1 (pow x 2))))))
#s(approx (+ (* x x) 1) (fma.f64 x x #s(literal 1 binary64)))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 1/2 binary64))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))) (-.f64 (/.f64 #s(literal 1/4 binary64) (*.f64 x x)) (log.f64 #s(literal 1/2 binary64)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (+.f64 (+.f64 (log.f64 #s(literal 1/2 binary64)) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))) (log.f64 (/.f64 #s(literal -1 binary64) x))) (-.f64 (/.f64 #s(literal 5/96 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x)))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (/ -1/2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- 1/2 (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 (-.f64 #s(literal -1/2 binary64) (/.f64 #s(literal -1/8 binary64) (*.f64 x x))) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 (-.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64))) (neg.f64 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (+ (* 1/8 (/ 1 (pow x 2))) (* 5/128 (/ 1 (pow x 6))))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 (-.f64 (-.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64))) (/.f64 #s(literal 5/128 binary64) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 x)))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) 1)) (neg.f64 x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ 1 (pow x 2))))))))
#s(approx (sqrt (+ (* x x) 1)) (*.f64 (+.f64 (/.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal -1 binary64)) x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4)))))))
#s(approx (sqrt (+ (* x x) 1)) (neg.f64 (fma.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 4 binary64)))) x x)))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4)))))))
#s(approx (sqrt (+ (* x x) 1)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1/16 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 x #s(literal 4 binary64))))) x))

rewrite65.0ms (1.8%)

Memory
43.2MiB live, 90.3MiB allocated; 5ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0733
01220
15120
039119
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
7 → 87
Calls
Call 1
Inputs
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))
(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64))))
x
(sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 x x)
#s(literal 1 binary64)
Outputs
(asinh.f64 x)
(-.f64 (log.f64 (-.f64 (*.f64 x x) (fma.f64 x x #s(literal 1 binary64)))) (log.f64 (-.f64 x (cosh.f64 (asinh.f64 x)))))
(-.f64 (log.f64 (+.f64 (pow.f64 (cosh.f64 (asinh.f64 x)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (log.f64 (fma.f64 (cosh.f64 (asinh.f64 x)) (-.f64 (cosh.f64 (asinh.f64 x)) x) (*.f64 x x))))
(log.f64 (+.f64 (cosh.f64 (asinh.f64 x)) x))
(/.f64 (-.f64 (fma.f64 x x #s(literal 1 binary64)) (*.f64 x x)) (-.f64 (cosh.f64 (asinh.f64 x)) x))
(/.f64 (neg.f64 (-.f64 (*.f64 x x) (fma.f64 x x #s(literal 1 binary64)))) (neg.f64 (-.f64 x (cosh.f64 (asinh.f64 x)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cosh.f64 (asinh.f64 x)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 (cosh.f64 (asinh.f64 x)) (-.f64 (cosh.f64 (asinh.f64 x)) x) (*.f64 x x))))
(/.f64 (-.f64 (*.f64 x x) (fma.f64 x x #s(literal 1 binary64))) (-.f64 x (cosh.f64 (asinh.f64 x))))
(/.f64 (+.f64 (pow.f64 (cosh.f64 (asinh.f64 x)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (+.f64 (fma.f64 x x #s(literal 1 binary64)) (-.f64 (*.f64 x x) (*.f64 (cosh.f64 (asinh.f64 x)) x))))
(/.f64 (+.f64 (pow.f64 (cosh.f64 (asinh.f64 x)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 (cosh.f64 (asinh.f64 x)) (-.f64 (cosh.f64 (asinh.f64 x)) x) (*.f64 x x)))
(fma.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 1/4 binary64)) x)
(-.f64 (/.f64 (*.f64 x x) (-.f64 x (cosh.f64 (asinh.f64 x)))) (/.f64 (fma.f64 x x #s(literal 1 binary64)) (-.f64 x (cosh.f64 (asinh.f64 x)))))
(+.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (cosh.f64 (asinh.f64 x)) (-.f64 (cosh.f64 (asinh.f64 x)) x) (*.f64 x x))) (/.f64 (pow.f64 (cosh.f64 (asinh.f64 x)) #s(literal 3 binary64)) (fma.f64 (cosh.f64 (asinh.f64 x)) (-.f64 (cosh.f64 (asinh.f64 x)) x) (*.f64 x x))))
(+.f64 (cosh.f64 (asinh.f64 x)) x)
(+.f64 x (cosh.f64 (asinh.f64 x)))
x
(*.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 1/4 binary64)))
(pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (sqrt.f64 (fma.f64 x x #s(literal -1 binary64))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64))) (sqrt.f64 (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x))))
(/.f64 (+.f64 (exp.f64 (asinh.f64 x)) (exp.f64 (neg.f64 (asinh.f64 x)))) #s(literal 2 binary64))
(cosh.f64 (neg.f64 (asinh.f64 x)))
(cosh.f64 (asinh.f64 (neg.f64 x)))
(cosh.f64 (asinh.f64 (fabs.f64 x)))
(cosh.f64 (asinh.f64 x))
(sqrt.f64 (fma.f64 x x #s(literal 1 binary64)))
(exp.f64 (*.f64 (log1p.f64 (*.f64 x x)) #s(literal 1/2 binary64)))
(*.f64 (neg.f64 (cosh.f64 (asinh.f64 x))) (neg.f64 (cosh.f64 (asinh.f64 x))))
(*.f64 (fabs.f64 (cosh.f64 (asinh.f64 x))) (fabs.f64 (cosh.f64 (asinh.f64 x))))
(*.f64 (cosh.f64 (asinh.f64 x)) (cosh.f64 (asinh.f64 x)))
(pow.f64 (*.f64 (fma.f64 x x #s(literal 1 binary64)) (fma.f64 x x #s(literal 1 binary64))) #s(literal 1/2 binary64))
(pow.f64 (cosh.f64 (asinh.f64 x)) #s(literal 2 binary64))
(pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 1 binary64))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 x x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 x x #s(literal -1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (fma.f64 x x #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -1 binary64)) (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x)))
(fma.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) #s(literal 1 binary64))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) #s(literal 1 binary64))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) #s(literal 1 binary64))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (neg.f64 x) (neg.f64 x) #s(literal 1 binary64))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (fabs.f64 x) (fabs.f64 x) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 (*.f64 x x) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 x (*.f64 x #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 x x #s(literal 1 binary64))
(sqrt.f64 (*.f64 (fma.f64 x x #s(literal 1 binary64)) (fma.f64 x x #s(literal 1 binary64))))
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 x x #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 x x #s(literal -1 binary64))))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 x) x))
(-.f64 #s(literal 1 binary64) (*.f64 x (neg.f64 x)))
(-.f64 (*.f64 x x) #s(literal -1 binary64))
(+.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 1 binary64)) (*.f64 x x))))
(+.f64 #s(literal 1 binary64) (*.f64 x x))
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 #s(literal 1 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 x (*.f64 x #s(literal 1 binary64)))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(neg.f64 (*.f64 x (neg.f64 x)))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
#s(literal 1 binary64)

eval28.0ms (0.8%)

Memory
-15.6MiB live, 35.9MiB allocated; 12ms collecting garbage
Compiler

Compiled 1 986 to 593 computations (70.1% saved)

prune5.0ms (0.1%)

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

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1275132
Fresh000
Picked101
Done000
Total1285133
Accuracy
100.0%
Counts
133 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
25.3%
(log.f64 (+.f64 x #s(approx (sqrt (+ (* x x) 1)) x)))
28.2%
(log.f64 #s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x)))
99.8%
(asinh.f64 x)
47.4%
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
49.5%
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
Compiler

Compiled 106 to 80 computations (24.5% saved)

series10.0ms (0.3%)

Memory
-34.8MiB live, 11.6MiB allocated; 5ms collecting garbage
Counts
15 → 56
Calls
Call 1
Inputs
(asinh.f64 x)
x
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
(log.f64 (+.f64 x #s(approx (sqrt (+ (* x x) 1)) x)))
(+.f64 x #s(approx (sqrt (+ (* x x) 1)) x))
#s(approx (sqrt (+ (* x x) 1)) x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
(pow.f64 x #s(literal 3 binary64))
#s(literal 3 binary64)
#s(literal -1/6 binary64)
(log.f64 #s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x))
(/.f64 #s(literal -1/2 binary64) x)
#s(literal -1/2 binary64)
Outputs
#s(approx (asinh x) #s(hole binary64 x))
#s(approx (asinh x) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (asinh x) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (asinh x) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx x #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 1))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* 1/2 x))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* x (+ 1/2 (* -1/8 (pow x 2)))))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 1))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* 1/2 (pow x 2)))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* -1/8 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/16 (pow x 2)) 1/8)))))))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 x))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (pow x 3) #s(hole binary64 (pow x 3)))
#s(approx (/ -1/2 x) #s(hole binary64 (/ -1/2 x)))
#s(approx (asinh x) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (asinh x) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* 2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (+ 2 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* -1/6 (pow x 3))))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* (pow x 3) (- (/ 1 (pow x 2)) 1/6))))
#s(approx (asinh x) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (/ -1/2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- 1/2 (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (+ (* 1/8 (/ 1 (pow x 2))) (* 5/128 (/ 1 (pow x 6))))) x))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ 1 (pow x 2))))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4)))))))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))))
Calls

3 calls:

TimeVariablePointExpression
6.0ms
x
@inf
((asinh x) x (log (+ x (sqrt (+ (* x x) 1)))) (log (+ x (sqrt (+ (* x x) 1)))) (+ x (sqrt (+ (* x x) 1))) (sqrt (+ (* x x) 1)) (log (+ x (sqrt (+ (* x x) 1)))) (+ (* (pow x 3) -1/6) x) (pow x 3) 3 -1/6 (log (+ x (sqrt (+ (* x x) 1)))) (+ x (sqrt (+ (* x x) 1))) (/ -1/2 x) -1/2)
2.0ms
x
@-inf
((asinh x) x (log (+ x (sqrt (+ (* x x) 1)))) (log (+ x (sqrt (+ (* x x) 1)))) (+ x (sqrt (+ (* x x) 1))) (sqrt (+ (* x x) 1)) (log (+ x (sqrt (+ (* x x) 1)))) (+ (* (pow x 3) -1/6) x) (pow x 3) 3 -1/6 (log (+ x (sqrt (+ (* x x) 1)))) (+ x (sqrt (+ (* x x) 1))) (/ -1/2 x) -1/2)
1.0ms
x
@0
((asinh x) x (log (+ x (sqrt (+ (* x x) 1)))) (log (+ x (sqrt (+ (* x x) 1)))) (+ x (sqrt (+ (* x x) 1))) (sqrt (+ (* x x) 1)) (log (+ x (sqrt (+ (* x x) 1)))) (+ (* (pow x 3) -1/6) x) (pow x 3) 3 -1/6 (log (+ x (sqrt (+ (* x x) 1)))) (+ x (sqrt (+ (* x x) 1))) (/ -1/2 x) -1/2)

simplify169.0ms (4.8%)

Memory
22.9MiB live, 208.8MiB allocated; 31ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01941054
14601024
215091020
353581018
08199954
Stop Event
iter limit
node limit
Counts
56 → 56
Calls
Call 1
Inputs
#s(approx (asinh x) #s(hole binary64 x))
#s(approx (asinh x) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (asinh x) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (asinh x) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx x #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 1))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* 1/2 x))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* x (+ 1/2 (* -1/8 (pow x 2)))))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 1))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* 1/2 (pow x 2)))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* -1/8 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/16 (pow x 2)) 1/8)))))))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 x))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (pow x 3) #s(hole binary64 (pow x 3)))
#s(approx (/ -1/2 x) #s(hole binary64 (/ -1/2 x)))
#s(approx (asinh x) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (asinh x) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* 2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (+ 2 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* -1/6 (pow x 3))))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* (pow x 3) (- (/ 1 (pow x 2)) 1/6))))
#s(approx (asinh x) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (/ -1/2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- 1/2 (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (+ (* 1/8 (/ 1 (pow x 2))) (* 5/128 (/ 1 (pow x 6))))) x))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ 1 (pow x 2))))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4)))))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4)))))))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))))
Outputs
#s(approx (asinh x) #s(hole binary64 x))
#s(approx (asinh x) x)
#s(approx (asinh x) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (asinh x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
#s(approx (asinh x) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (asinh x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 3/40 binary64) (*.f64 x x)) #s(literal 1/6 binary64)) x))
#s(approx (asinh x) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx (asinh x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -5/112 binary64) (-.f64 (*.f64 #s(literal 3/40 binary64) (*.f64 x x)) #s(literal 1/6 binary64))) x))
#s(approx x #s(hole binary64 x))
#s(approx x x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 3/40 binary64) (*.f64 x x)) #s(literal 1/6 binary64)) x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -5/112 binary64) (-.f64 (*.f64 #s(literal 3/40 binary64) (*.f64 x x)) #s(literal 1/6 binary64))) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 1))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(literal 1 binary64))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) (-.f64 x #s(literal -1 binary64)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* 1/2 x))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (+ 1 (* x (+ 1 (* x (+ 1/2 (* -1/8 (pow x 2)))))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 1))
#s(approx (sqrt (+ (* x x) 1)) #s(literal 1 binary64))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* 1/2 (pow x 2)))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) x #s(literal 1 binary64)))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* -1/8 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (*.f64 (fma.f64 #s(literal -1/8 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x) x #s(literal 1 binary64)))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/16 (pow x 2)) 1/8)))))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal -1/8 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 x))
#s(approx (+ (* (pow x 3) -1/6) x) x)
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (+ (* (pow x 3) -1/6) x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
#s(approx (pow x 3) #s(hole binary64 (pow x 3)))
#s(approx (pow x 3) (pow.f64 x #s(literal 3 binary64)))
#s(approx (/ -1/2 x) #s(hole binary64 (/ -1/2 x)))
#s(approx (/ -1/2 x) (/.f64 #s(literal -1/2 binary64) x))
#s(approx (asinh x) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (asinh x) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))))
#s(approx (asinh x) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (asinh x) (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (asinh x) (-.f64 (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (asinh x) (-.f64 (-.f64 (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))) (/.f64 #s(literal -5/96 binary64) (pow.f64 x #s(literal 6 binary64)))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (-.f64 (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))) (/.f64 #s(literal -5/96 binary64) (pow.f64 x #s(literal 6 binary64)))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* 2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) (*.f64 #s(literal 2 binary64) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (+ 2 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (*.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) #s(literal -2 binary64)) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (*.f64 (-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) #s(literal -2 binary64)) (/.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 4 binary64)))) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* x (- (+ 2 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (*.f64 (-.f64 (-.f64 (-.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -2 binary64)) (/.f64 #s(literal -1/2 binary64) (*.f64 x x))) (/.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 4 binary64)))) x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) 1)) x)
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ 1 (pow x 2)))))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) x x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 4 binary64)))) x x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4))))))
#s(approx (sqrt (+ (* x x) 1)) (fma.f64 (-.f64 (-.f64 (/.f64 #s(literal 1/16 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal -1/2 binary64) (*.f64 x x))) (/.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 4 binary64)))) x x))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* -1/6 (pow x 3))))
#s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64)))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* (pow x 3) (- (/ 1 (pow x 2)) 1/6))))
#s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1/6 binary64)) (pow.f64 x #s(literal 3 binary64))))
#s(approx (asinh x) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (asinh x) (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 1/2 binary64))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (asinh x) (-.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (asinh x) (-.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))) (-.f64 (/.f64 #s(literal 1/4 binary64) (*.f64 x x)) (log.f64 #s(literal 1/2 binary64)))))
#s(approx (asinh x) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (asinh x) (-.f64 (+.f64 (+.f64 (log.f64 #s(literal 1/2 binary64)) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))) (log.f64 (/.f64 #s(literal -1 binary64) x))) (-.f64 (/.f64 #s(literal 5/96 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 1/2 binary64))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))) (-.f64 (/.f64 #s(literal 1/4 binary64) (*.f64 x x)) (log.f64 #s(literal 1/2 binary64)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (+.f64 (+.f64 (log.f64 #s(literal 1/2 binary64)) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))) (log.f64 (/.f64 #s(literal -1 binary64) x))) (-.f64 (/.f64 #s(literal 5/96 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x)))))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (/ -1/2 x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- 1/2 (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 (-.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64)) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (* 1/8 (/ 1 (pow x 2)))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 (+.f64 (/.f64 #s(literal -1/16 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64))) x))
#s(approx (+ x (sqrt (+ (* x x) 1))) #s(hole binary64 (* -1 (/ (- (+ 1/2 (/ 1/16 (pow x 4))) (+ (* 1/8 (/ 1 (pow x 2))) (* 5/128 (/ 1 (pow x 6))))) x))))
#s(approx (+ x (sqrt (+ (* x x) 1))) (-.f64 (/.f64 (+.f64 (/.f64 #s(literal -1/16 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64))) x) (/.f64 #s(literal -5/128 binary64) (pow.f64 x #s(literal 7 binary64)))))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) 1)) (neg.f64 x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ 1 (pow x 2))))))))
#s(approx (sqrt (+ (* x x) 1)) (*.f64 (+.f64 (/.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal -1 binary64)) x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (* 1/2 (/ 1 (pow x 2)))) (/ 1/8 (pow x 4)))))))
#s(approx (sqrt (+ (* x x) 1)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal -1 binary64)) (/.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 4 binary64)))) x))
#s(approx (sqrt (+ (* x x) 1)) #s(hole binary64 (* -1 (* x (- (+ 1 (+ (* 1/2 (/ 1 (pow x 2))) (* 1/16 (/ 1 (pow x 6))))) (/ 1/8 (pow x 4)))))))
#s(approx (sqrt (+ (* x x) 1)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1/16 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 x #s(literal 4 binary64))))) x))
#s(approx (+ (* (pow x 3) -1/6) x) #s(hole binary64 (* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))))
#s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x))))

rewrite55.0ms (1.6%)

Memory
8.6MiB live, 54.7MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02199
02970
19970
070070
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
15 → 66
Calls
Call 1
Inputs
(asinh.f64 x)
x
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
(log.f64 (+.f64 x #s(approx (sqrt (+ (* x x) 1)) x)))
(+.f64 x #s(approx (sqrt (+ (* x x) 1)) x))
#s(approx (sqrt (+ (* x x) 1)) x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
(pow.f64 x #s(literal 3 binary64))
#s(literal 3 binary64)
#s(literal -1/6 binary64)
(log.f64 #s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x))
(/.f64 #s(literal -1/2 binary64) x)
#s(literal -1/2 binary64)
Outputs
(asinh.f64 x)
(-.f64 (log.f64 (-.f64 (*.f64 x x) (fma.f64 x x #s(literal 1 binary64)))) (log.f64 (-.f64 x (cosh.f64 (asinh.f64 x)))))
(-.f64 (log.f64 (+.f64 (pow.f64 (cosh.f64 (asinh.f64 x)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (log.f64 (fma.f64 (cosh.f64 (asinh.f64 x)) (-.f64 (cosh.f64 (asinh.f64 x)) x) (*.f64 x x))))
(log.f64 (+.f64 (cosh.f64 (asinh.f64 x)) x))
x
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
(-.f64 (log.f64 (*.f64 (+.f64 #s(approx (sqrt (+ (* x x) 1)) x) x) (-.f64 x #s(approx (sqrt (+ (* x x) 1)) x)))) (log.f64 (-.f64 x #s(approx (sqrt (+ (* x x) 1)) x))))
(-.f64 (log.f64 (+.f64 (pow.f64 #s(approx (sqrt (+ (* x x) 1)) x) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (log.f64 (fma.f64 #s(approx (sqrt (+ (* x x) 1)) x) (-.f64 #s(approx (sqrt (+ (* x x) 1)) x) x) (*.f64 x x))))
(log.f64 (+.f64 #s(approx (sqrt (+ (* x x) 1)) x) x))
(/.f64 (-.f64 (pow.f64 #s(approx (sqrt (+ (* x x) 1)) x) #s(literal 2 binary64)) (*.f64 x x)) (-.f64 #s(approx (sqrt (+ (* x x) 1)) x) x))
(/.f64 (neg.f64 (*.f64 (+.f64 #s(approx (sqrt (+ (* x x) 1)) x) x) (-.f64 x #s(approx (sqrt (+ (* x x) 1)) x)))) (neg.f64 (-.f64 x #s(approx (sqrt (+ (* x x) 1)) x))))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (sqrt (+ (* x x) 1)) x) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(approx (sqrt (+ (* x x) 1)) x) (-.f64 #s(approx (sqrt (+ (* x x) 1)) x) x) (*.f64 x x))))
(/.f64 (*.f64 (+.f64 #s(approx (sqrt (+ (* x x) 1)) x) x) (-.f64 x #s(approx (sqrt (+ (* x x) 1)) x))) (-.f64 x #s(approx (sqrt (+ (* x x) 1)) x)))
(/.f64 (+.f64 (pow.f64 #s(approx (sqrt (+ (* x x) 1)) x) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 #s(approx (sqrt (+ (* x x) 1)) x) #s(approx (sqrt (+ (* x x) 1)) x) (-.f64 (*.f64 x x) (*.f64 #s(approx (sqrt (+ (* x x) 1)) x) x))))
(/.f64 (+.f64 (pow.f64 #s(approx (sqrt (+ (* x x) 1)) x) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 #s(approx (sqrt (+ (* x x) 1)) x) (-.f64 #s(approx (sqrt (+ (* x x) 1)) x) x) (*.f64 x x)))
(-.f64 (/.f64 (*.f64 x x) (-.f64 x #s(approx (sqrt (+ (* x x) 1)) x))) (/.f64 (pow.f64 #s(approx (sqrt (+ (* x x) 1)) x) #s(literal 2 binary64)) (-.f64 x #s(approx (sqrt (+ (* x x) 1)) x))))
(+.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(approx (sqrt (+ (* x x) 1)) x) (-.f64 #s(approx (sqrt (+ (* x x) 1)) x) x) (*.f64 x x))) (/.f64 (pow.f64 #s(approx (sqrt (+ (* x x) 1)) x) #s(literal 3 binary64)) (fma.f64 #s(approx (sqrt (+ (* x x) 1)) x) (-.f64 #s(approx (sqrt (+ (* x x) 1)) x) x) (*.f64 x x))))
(+.f64 #s(approx (sqrt (+ (* x x) 1)) x) x)
(+.f64 x #s(approx (sqrt (+ (* x x) 1)) x))
#s(approx (sqrt (+ (* x x) 1)) x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x))
(/.f64 (-.f64 (*.f64 x x) (*.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)))) (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)))))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 (neg.f64 x) x))) (neg.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)))
(/.f64 (neg.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))))))))
(/.f64 (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 (neg.f64 x) x)) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x))
(/.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x (-.f64 (*.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64))) (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 4 binary64))))))
(/.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)))))))
(fma.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3/2 binary64))) (pow.f64 x #s(literal 3/2 binary64)) x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 x x)) x x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) x) (*.f64 x x) x)
(fma.f64 (pow.f64 x #s(literal 3/2 binary64)) (*.f64 (pow.f64 x #s(literal 3/2 binary64)) #s(literal -1/6 binary64)) x)
(fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x)
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
(fma.f64 (*.f64 x x) (*.f64 x #s(literal -1/6 binary64)) x)
(fma.f64 x (*.f64 (*.f64 x x) #s(literal -1/6 binary64)) x)
(-.f64 (/.f64 (*.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64))) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)))
(-.f64 x (*.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal 3 binary64))))
(-.f64 x (*.f64 (neg.f64 (pow.f64 x #s(literal 3 binary64))) #s(literal -1/6 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 3 binary64)) (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))))))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))))))))
(+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)
(+.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))))
(*.f64 (*.f64 x (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 x (fabs.f64 x)) (fabs.f64 x))
(*.f64 (neg.f64 (pow.f64 x #s(literal 3/2 binary64))) (neg.f64 (pow.f64 x #s(literal 3/2 binary64))))
(*.f64 (fabs.f64 (pow.f64 x #s(literal 3/2 binary64))) (fabs.f64 (pow.f64 x #s(literal 3/2 binary64))))
(*.f64 (pow.f64 x #s(literal 3/2 binary64)) (pow.f64 x #s(literal 3/2 binary64)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) x))
(*.f64 (*.f64 x x) x)
(*.f64 x (*.f64 x x))
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 3 binary64))
(pow.f64 (pow.f64 x #s(literal 3/2 binary64)) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 3/2 binary64))
(pow.f64 x #s(literal 3 binary64))
(exp.f64 (*.f64 (log.f64 x) #s(literal 3 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 3 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal 3 binary64))))
#s(literal 3 binary64)
#s(literal -1/6 binary64)
(log.f64 #s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x)))
#s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x))
(/.f64 #s(literal 1/2 binary64) (neg.f64 x))
(/.f64 #s(literal -1/2 binary64) (neg.f64 (neg.f64 x)))
(/.f64 #s(literal -1/2 binary64) x)
(neg.f64 (/.f64 #s(literal 1/2 binary64) x))
(neg.f64 (/.f64 #s(literal -1/2 binary64) (neg.f64 x)))
#s(literal -1/2 binary64)

eval14.0ms (0.4%)

Memory
-21.5MiB live, 25.3MiB allocated; 4ms collecting garbage
Compiler

Compiled 2 684 to 450 computations (83.2% saved)

prune4.0ms (0.1%)

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

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New1301131
Fresh000
Picked145
Done000
Total1315136
Accuracy
100.0%
Counts
136 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
25.3%
(log.f64 (+.f64 x #s(approx (sqrt (+ (* x x) 1)) x)))
28.2%
(log.f64 #s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x)))
99.8%
(asinh.f64 x)
47.4%
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (*.f64 (*.f64 x x) x) #s(literal -1/6 binary64) x))
49.5%
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
Compiler

Compiled 55 to 40 computations (27.3% saved)

series4.0ms (0.1%)

Memory
7.2MiB live, 7.2MiB allocated; 0ms collecting garbage
Counts
6 → 20
Calls
Call 1
Inputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (*.f64 (*.f64 x x) x) #s(literal -1/6 binary64) x))
(fma.f64 (*.f64 (*.f64 x x) x) #s(literal -1/6 binary64) x)
(*.f64 (*.f64 x x) x)
(*.f64 x x)
x
#s(literal -1/6 binary64)
Outputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 x))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (* (* x x) x) #s(hole binary64 (pow x 3)))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx x #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* -1/6 (pow x 3))))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* (pow x 3) (- (/ 1 (pow x 2)) 1/6))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))))
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
((log (+ x (sqrt (+ (* x x) 1)))) (+ (* (* (* x x) x) -1/6) x) (* (* x x) x) (* x x) x -1/6)
1.0ms
x
@inf
((log (+ x (sqrt (+ (* x x) 1)))) (+ (* (* (* x x) x) -1/6) x) (* (* x x) x) (* x x) x -1/6)
1.0ms
x
@0
((log (+ x (sqrt (+ (* x x) 1)))) (+ (* (* (* x x) x) -1/6) x) (* (* x x) x) (* x x) x -1/6)

simplify176.0ms (5%)

Memory
-1.8MiB live, 147.6MiB allocated; 12ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
094389
1211373
2649373
32905373
08314349
Stop Event
iter limit
node limit
Counts
20 → 20
Calls
Call 1
Inputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 x))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (* (* x x) x) #s(hole binary64 (pow x 3)))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx x #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* -1/6 (pow x 3))))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* (pow x 3) (- (/ 1 (pow x 2)) 1/6))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))))
Outputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* 3/40 (pow x 2)) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 3/40 binary64) (*.f64 x x) #s(literal -1/6 binary64)) x))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 3/40 (* -5/112 (pow x 2)))) 1/6))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -5/112 binary64) (*.f64 x x) #s(literal 3/40 binary64)) (*.f64 x x) #s(literal -1/6 binary64)) x))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 x))
#s(approx (+ (* (* (* x x) x) -1/6) x) x)
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* x (+ 1 (* -1/6 (pow x 2))))))
#s(approx (+ (* (* (* x x) x) -1/6) x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
#s(approx (* (* x x) x) #s(hole binary64 (pow x 3)))
#s(approx (* (* x x) x) (pow.f64 x #s(literal 3 binary64)))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (* x x) (*.f64 x x))
#s(approx x #s(hole binary64 x))
#s(approx x x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (* -1 (log (/ 1 x))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* 1/4 (/ 1 (pow x 2))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))) (/ 3/32 (pow x 4)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (-.f64 (-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))) (/.f64 #s(literal -5/96 binary64) (pow.f64 x #s(literal 6 binary64)))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* -1/6 (pow x 3))))
#s(approx (+ (* (* (* x x) x) -1/6) x) (*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64)))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* (pow x 3) (- (/ 1 (pow x 2)) 1/6))))
#s(approx (+ (* (* (* x x) x) -1/6) x) (*.f64 (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1/6 binary64)) (pow.f64 x #s(literal 3 binary64))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (+ (log 1/2) (log (/ -1 x)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 1/2 binary64))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (log (/ -1 x))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (* 1/4 (/ 1 (pow x 2))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))) (-.f64 (/.f64 #s(literal 1/4 binary64) (*.f64 x x)) (log.f64 #s(literal 1/2 binary64)))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) #s(hole binary64 (- (+ (log 1/2) (+ (log (/ -1 x)) (/ 3/32 (pow x 4)))) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (-.f64 (-.f64 (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64))) (/.f64 #s(literal 5/96 binary64) (pow.f64 x #s(literal 6 binary64)))) (-.f64 (/.f64 #s(literal 1/4 binary64) (*.f64 x x)) (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 1/2 binary64))))))
#s(approx (+ (* (* (* x x) x) -1/6) x) #s(hole binary64 (* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))))
#s(approx (+ (* (* (* x x) x) -1/6) x) (*.f64 (-.f64 #s(literal 1/6 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) (pow.f64 (neg.f64 x) #s(literal 3 binary64))))

rewrite64.0ms (1.8%)

Memory
-13.3MiB live, 33.6MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01236
01623
17023
056123
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
6 → 56
Calls
Call 1
Inputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (*.f64 (*.f64 x x) x) #s(literal -1/6 binary64) x))
(fma.f64 (*.f64 (*.f64 x x) x) #s(literal -1/6 binary64) x)
(*.f64 (*.f64 x x) x)
(*.f64 x x)
x
#s(literal -1/6 binary64)
Outputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x))
(/.f64 (-.f64 (*.f64 x x) (*.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)))) (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)))))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 (neg.f64 x) x))) (neg.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)))
(/.f64 (neg.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))))))))
(/.f64 (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 (neg.f64 x) x)) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x))
(/.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x (-.f64 (*.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64))) (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 4 binary64))))))
(/.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)))))))
(fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 x x)) x x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) x) (*.f64 x x) x)
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x)
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
(fma.f64 (*.f64 x x) (*.f64 #s(literal -1/6 binary64) x) x)
(fma.f64 x (*.f64 (*.f64 x x) #s(literal -1/6 binary64)) x)
(fma.f64 x (*.f64 x (*.f64 #s(literal -1/6 binary64) x)) x)
(-.f64 (/.f64 (*.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64))) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)))
(-.f64 x (*.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal 3 binary64))))
(-.f64 x (*.f64 (neg.f64 (pow.f64 x #s(literal 3 binary64))) #s(literal -1/6 binary64)))
(-.f64 x (*.f64 (neg.f64 (*.f64 x x)) (*.f64 #s(literal -1/6 binary64) x)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 3 binary64)) (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))))))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 1/36 binary64) (pow.f64 x #s(literal 6 binary64)) (*.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))))))))
(+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)
(+.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))))
(*.f64 (*.f64 x (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 x (fabs.f64 x)) (fabs.f64 x))
(*.f64 (pow.f64 x #s(literal 3/2 binary64)) (pow.f64 x #s(literal 3/2 binary64)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) x))
(*.f64 (*.f64 x x) x)
(*.f64 x (*.f64 x x))
(pow.f64 x #s(literal 3 binary64))
(exp.f64 (*.f64 (log.f64 x) #s(literal 3 binary64)))
(*.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x x))
(*.f64 x (*.f64 x #s(literal 1 binary64)))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(neg.f64 (*.f64 x (neg.f64 x)))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
x
#s(literal -1/6 binary64)

eval9.0ms (0.3%)

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

Compiled 1 791 to 313 computations (82.5% saved)

prune5.0ms (0.1%)

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

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New82082
Fresh000
Picked011
Done044
Total82587
Accuracy
100.0%
Counts
87 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
25.3%
(log.f64 (+.f64 x #s(approx (sqrt (+ (* x x) 1)) x)))
28.2%
(log.f64 #s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x)))
99.8%
(asinh.f64 x)
47.4%
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (*.f64 (*.f64 x x) x) #s(literal -1/6 binary64) x))
49.5%
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
Compiler

Compiled 135 to 70 computations (48.1% saved)

regimes20.0ms (0.6%)

Memory
-35.6MiB live, 22.9MiB allocated; 8ms collecting garbage
Counts
7 → 1
Calls
Call 1
Inputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (*.f64 (*.f64 x x) x) #s(literal -1/6 binary64) x))
(asinh.f64 x)
(log.f64 (+.f64 x #s(approx (sqrt (+ (* x x) 1)) x)))
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
(log.f64 #s(approx (+ x (sqrt (+ (* x x) 1))) (/.f64 #s(literal -1/2 binary64) x)))
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))
Outputs
(asinh.f64 x)
Calls

3 calls:

15.0ms
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))
2.0ms
x
2.0ms
(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64))))
Results
AccuracySegmentsBranch
99.8%1(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64))))
99.8%1(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) #s(literal 1 binary64)))))
99.8%1x
Compiler

Compiled 18 to 14 computations (22.2% saved)

regimes4.0ms (0.1%)

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

Total -1.6b remaining (-4.9%)

Threshold costs -1.6b (-4.9%)

Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) (fma.f64 (*.f64 (*.f64 x x) x) #s(literal -1/6 binary64) x))
Outputs
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
Calls

3 calls:

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

Compiled 18 to 14 computations (22.2% saved)

simplify51.0ms (1.4%)

Memory
-10.2MiB live, 35.5MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0913
11713
23913
38013
413013
533413
6265913
7673213
Stop Event
node limit
Calls
Call 1
Inputs
(asinh.f64 x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)
Outputs
(asinh.f64 x)
#s(approx (log (+ x (sqrt (+ (* x x) 1)))) x)

derivations37.0ms (1%)

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

Compiled 13 to 9 computations (30.8% saved)

preprocess47.0ms (1.3%)

Memory
-7.8MiB live, 39.0MiB allocated; 2ms collecting garbage
Compiler

Compiled 92 to 60 computations (34.8% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...