Rust f64::acosh

Time bar (total: 4.6s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%25%75%0%0%0%0
100%25%0%75%0%0%0%1
Compiler

Compiled 6 to 5 computations (16.7% saved)

sample644.0ms (14%)

Memory
43.7MiB live, 867.5MiB allocated
Samples
428.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 166.0ms
ival-acosh: 126.0ms (75.8% of total)
ival->=: 28.0ms (16.8% of total)
exact: 8.0ms (4.8% of total)
ival-assert: 4.0ms (2.4% of total)
Bogosity

explain131.0ms (2.9%)

Memory
-31.6MiB live, 213.1MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1110-0-(sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))
10-0-(log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))))
00-0-(+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))
00-0-#s(literal 1 binary64)
00-0-(*.f64 x x)
00-0-(-.f64 (*.f64 x x) #s(literal 1 binary64))
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64(sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))oflow-rescue1110
(-.f64 (*.f64 x x) #s(literal 1 binary64))overflow111
(*.f64 x x)overflow111
log.f64(log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))))oflow-rescue10
(+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))overflow1
(-.f64 (*.f64 x x) #s(literal 1 binary64))overflow111
(*.f64 x x)overflow111
Confusion
Predicted +Predicted -
+1110
-0145
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+11100
-00145
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0145
1110
21
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
40.0ms512×0valid
Compiler

Compiled 79 to 25 computations (68.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
ival-sqrt: 7.0ms (29% of total)
ival-log: 6.0ms (24.9% of total)
ival-mult: 4.0ms (16.6% of total)
ival-sub: 3.0ms (12.4% of total)
ival-add: 3.0ms (12.4% of total)
ival-true: 1.0ms (4.1% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess388.0ms (8.4%)

Memory
-9.9MiB live, 360.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
047
1107
2147
3177
4217
5287
6357
079
0129
1219
2259
3409
4719
51329
62929
75729
820459
931559
1044339
1151069
1254089
1355939
1456959
1560149
1665609
1776719
080918
Stop Event
iter limit
node limit
iter limit
saturated
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.3MiB live, 0.3MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
58.0%
(log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify340.0ms (7.4%)

Memory
21.2MiB live, 299.4MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))
cost-diff0
(+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))
cost-diff0
(log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))))
cost-diff128
(-.f64 (*.f64 x x) #s(literal 1 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0733
01233
12133
22533
34033
47133
513233
629233
757233
8204533
9315533
10443333
11510633
12540833
13559333
14569533
15601433
16656033
17767133
0809129
Stop Event
iter limit
node limit
iter limit
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
(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))
(+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))
(+.f64 (sqrt.f64 (fma.f64 x x #s(literal -1 binary64))) x)
x
(sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))
(sqrt.f64 (fma.f64 x x #s(literal -1 binary64)))
(-.f64 (*.f64 x x) #s(literal 1 binary64))
(fma.f64 x x #s(literal -1 binary64))
(*.f64 x x)
#s(literal 1 binary64)

localize37.0ms (0.8%)

Memory
3.2MiB live, 42.6MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(-.f64 (*.f64 x x) #s(literal 1 binary64))
accuracy0.00390625
(+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))
accuracy0.24213560223994607
(log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))))
accuracy25.701679447727663
(sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))
Samples
30.0ms256×0valid
Compiler

Compiled 35 to 9 computations (74.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
ival-sqrt: 16.0ms (67% of total)
ival-log: 3.0ms (12.6% of total)
ival-mult: 2.0ms (8.4% of total)
ival-sub: 1.0ms (4.2% of total)
ival-add: 1.0ms (4.2% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series9.0ms (0.2%)

Memory
-26.3MiB live, 11.1MiB allocated
Counts
4 → 48
Calls
Call 1
Inputs
#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())
#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())
#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())
Outputs
#s(alt -1 (taylor 0 x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) 1) (taylor 0 x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (log (sqrt -1)) (taylor 0 x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (/ x (sqrt -1))) (taylor 0 x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1))))) (taylor 0 x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1))))) (taylor 0 x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (sqrt -1) (taylor 0 x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ x (sqrt -1)) (taylor 0 x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* x (+ 1 (* 1/2 (/ x (sqrt -1)))))) (taylor 0 x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* x (+ 1 (* x (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1)))))))) (taylor 0 x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (sqrt -1) (taylor 0 x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* 1/2 (/ (pow x 2) (sqrt -1)))) (taylor 0 x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* (pow x 2) (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1)))))) (taylor 0 x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* (pow x 2) (+ (* (pow x 2) (- (* 1/16 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/8 (/ 1 (pow (sqrt -1) 3))))) (* 1/2 (/ 1 (sqrt -1)))))) (taylor 0 x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2))))) (taylor inf x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (- 2 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 2 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2))))) (taylor inf x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ 2 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (- 1 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2))))) (taylor inf x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (-.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (-.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (log (/ -1 x))) (taylor -inf x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6))))))) (taylor -inf x) (#s(alt (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) (patch (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor -inf x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) x) (taylor -inf x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 2))) 1/2) x)) (taylor -inf x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (* -1 (/ (+ 1/16 (* 5/128 (/ 1 (pow x 2)))) (pow x 4))) (+ 1/2 (* 1/8 (/ 1 (pow x 2))))) x)) (taylor -inf x) (#s(alt (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) (patch (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- 1 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))) (taylor -inf x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify138.0ms (3%)

Memory
12.0MiB live, 169.1MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0150559
1411533
21146526
33331488
47979488
08531459
Stop Event
iter limit
node limit
Counts
48 → 47
Calls
Call 1
Inputs
-1
(- (pow x 2) 1)
(- (pow x 2) 1)
(- (pow x 2) 1)
(log (sqrt -1))
(+ (log (sqrt -1)) (/ x (sqrt -1)))
(+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1)))))
(+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1)))))
(sqrt -1)
(+ x (sqrt -1))
(+ (sqrt -1) (* x (+ 1 (* 1/2 (/ x (sqrt -1))))))
(+ (sqrt -1) (* x (+ 1 (* x (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1))))))))
(sqrt -1)
(+ (sqrt -1) (* 1/2 (/ (pow x 2) (sqrt -1))))
(+ (sqrt -1) (* (pow x 2) (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1))))))
(+ (sqrt -1) (* (pow x 2) (+ (* (pow x 2) (- (* 1/16 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/8 (/ 1 (pow (sqrt -1) 3))))) (* 1/2 (/ 1 (sqrt -1))))))
(pow x 2)
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(+ (log 2) (* -1 (log (/ 1 x))))
(- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2))))
(+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2)))))
(- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2))))
(* 2 x)
(* x (- 2 (* 1/2 (/ 1 (pow x 2)))))
(* x (+ 2 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))
(* x (- (+ 2 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))
x
(* x (- 1 (* 1/2 (/ 1 (pow x 2)))))
(* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))
(* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))
(pow x 2)
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(+ (log -1/2) (log (/ -1 x)))
(+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2)))))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2))))))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
(/ 1/2 x)
(/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) x)
(* -1 (/ (- (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 2))) 1/2) x))
(* -1 (/ (- (* -1 (/ (+ 1/16 (* 5/128 (/ 1 (pow x 2)))) (pow x 4))) (+ 1/2 (* 1/8 (/ 1 (pow x 2))))) x))
(* -1 x)
(* -1 (* x (- 1 (* 1/2 (/ 1 (pow x 2))))))
(* -1 (* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2))))))
(* -1 (* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2))))))
Outputs
-1
#s(literal -1 binary64)
(- (pow x 2) 1)
(fma.f64 x x #s(literal -1 binary64))
(- (pow x 2) 1)
(fma.f64 x x #s(literal -1 binary64))
(- (pow x 2) 1)
(fma.f64 x x #s(literal -1 binary64))
(log (sqrt -1))
(log.f64 (sqrt.f64 #s(literal -1 binary64)))
(+ (log (sqrt -1)) (/ x (sqrt -1)))
(+.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64))))
(+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1)))))
(fma.f64 (fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal 1 binary64)) (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64))))
(+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 3/40 binary64) x) (/.f64 x (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 #s(literal 1/6 binary64) (sqrt.f64 #s(literal -1 binary64)))) (+.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64)))))
(sqrt -1)
(sqrt.f64 #s(literal -1 binary64))
(+ x (sqrt -1))
(+.f64 (sqrt.f64 #s(literal -1 binary64)) x)
(+ (sqrt -1) (* x (+ 1 (* 1/2 (/ x (sqrt -1))))))
(fma.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) x #s(literal 1 binary64)) x (sqrt.f64 #s(literal -1 binary64)))
(+ (sqrt -1) (* x (+ 1 (* x (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1))))))))
(fma.f64 (fma.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (fma.f64 (*.f64 x x) #s(literal 1/8 binary64) #s(literal 1/2 binary64)) #s(literal 1 binary64)) x (sqrt.f64 #s(literal -1 binary64)))
(sqrt -1)
(sqrt.f64 #s(literal -1 binary64))
(+ (sqrt -1) (* 1/2 (/ (pow x 2) (sqrt -1))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) x) x (sqrt.f64 #s(literal -1 binary64)))
(+ (sqrt -1) (* (pow x 2) (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1))))))
(fma.f64 (*.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) x) (fma.f64 (*.f64 x x) #s(literal 1/8 binary64) #s(literal 1/2 binary64)) (sqrt.f64 #s(literal -1 binary64)))
(+ (sqrt -1) (* (pow x 2) (+ (* (pow x 2) (- (* 1/16 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/8 (/ 1 (pow (sqrt -1) 3))))) (* 1/2 (/ 1 (sqrt -1))))))
(fma.f64 (fma.f64 #s(literal 1/16 binary64) (/.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (*.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 #s(literal -1 binary64))) (fma.f64 #s(literal 1/8 binary64) (*.f64 x x) #s(literal 1/2 binary64)))) (*.f64 x x) (sqrt.f64 #s(literal -1 binary64)))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal -1 binary64))
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal -1 binary64))
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal -1 binary64))
(+ (log 2) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2))))
(-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x)))
(+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2)))))
(-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 (/.f64 (+.f64 (/.f64 #s(literal 3/32 binary64) (*.f64 x x)) #s(literal 1/4 binary64)) x) x))
(- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2))))
(-.f64 (-.f64 (log.f64 #s(literal 2 binary64)) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 5/96 binary64) (*.f64 x x)) #s(literal 3/32 binary64)) (pow.f64 x #s(literal 4 binary64))) (log.f64 x)))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* x (- 2 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 #s(literal 2 binary64) x (/.f64 #s(literal -1/2 binary64) x))
(* x (+ 2 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))
(fma.f64 #s(literal 2 binary64) x (/.f64 (-.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1/8 binary64) (*.f64 x x))) x))
(* x (- (+ 2 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (-.f64 #s(literal 2 binary64) (/.f64 (+.f64 (/.f64 #s(literal 1/16 binary64) (*.f64 x x)) #s(literal 1/8 binary64)) (pow.f64 x #s(literal 4 binary64)))) x (/.f64 #s(literal -1/2 binary64) x))
x
(* x (- 1 (* 1/2 (/ 1 (pow x 2)))))
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))
(-.f64 x (/.f64 (+.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64)) x))
(* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (/.f64 (-.f64 #s(literal -1/8 binary64) (/.f64 #s(literal 1/16 binary64) (*.f64 x x))) (pow.f64 x #s(literal 4 binary64))) x (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal -1 binary64))
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal -1 binary64))
(* (pow x 2) (- 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal -1 binary64))
(+ (log -1/2) (log (/ -1 x)))
(+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2)))))
(+.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2))))))
(+.f64 (+.f64 (+.f64 (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
(+.f64 (+.f64 (+.f64 (+.f64 (/.f64 #s(literal 5/96 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 #s(literal -1/2 binary64)))
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) x)
(/.f64 (+.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64)) x)
(* -1 (/ (- (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 2))) 1/2) x))
(-.f64 (/.f64 #s(literal 1/2 binary64) x) (/.f64 (-.f64 #s(literal -1/8 binary64) (/.f64 #s(literal 1/16 binary64) (*.f64 x x))) (pow.f64 x #s(literal 3 binary64))))
(* -1 (/ (- (* -1 (/ (+ 1/16 (* 5/128 (/ 1 (pow x 2)))) (pow x 4))) (+ 1/2 (* 1/8 (/ 1 (pow x 2))))) x))
(-.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 5/128 binary64) (*.f64 x x)) #s(literal 1/16 binary64)) (pow.f64 x #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 x #s(literal 3 binary64)))) (/.f64 #s(literal -1/2 binary64) x))
(* -1 x)
(neg.f64 x)
(* -1 (* x (- 1 (* 1/2 (/ 1 (pow x 2))))))
(-.f64 (/.f64 #s(literal 1/2 binary64) x) x)
(* -1 (* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2))))))
(-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64)) x) x)
(* -1 (* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2))))))
(fma.f64 (/.f64 (+.f64 (/.f64 #s(literal 1/16 binary64) (*.f64 x x)) #s(literal 1/8 binary64)) (pow.f64 x #s(literal 4 binary64))) x (-.f64 (/.f64 #s(literal 1/2 binary64) x) x))

rewrite228.0ms (5%)

Memory
3.2MiB live, 198.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0728
01228
14928
232228
3362628
0864624
Stop Event
iter limit
node limit
iter limit
Counts
4 → 320
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) #s(literal 1 binary64))
(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))))
(sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval96.0ms (2.1%)

Memory
9.1MiB live, 92.8MiB allocated
Compiler

Compiled 8 015 to 1 572 computations (80.4% saved)

prune17.0ms (0.4%)

Memory
-17.7MiB live, 19.4MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New3643367
Fresh000
Picked101
Done000
Total3653368
Accuracy
100.0%
Counts
368 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
99.1%
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))
99.2%
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))))
Compiler

Compiled 20 to 18 computations (10% saved)

simplify266.0ms (5.8%)

Memory
38.0MiB live, 194.1MiB allocated
Algorithm
egg-herbie
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
cost-diff0
#s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))
cost-diff0
(+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))
cost-diff0
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
cost-diff0
(*.f64 #s(literal 2 binary64) x)
cost-diff0
#s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))
cost-diff0
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))
cost-diff0
(log.f64 #s(literal 2 binary64))
cost-diff0
(log.f64 x)
cost-diff0
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
cost-diff0
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021107
030107
144107
256107
380107
4121107
5245107
6509107
71050107
82643107
94348107
105370107
115813107
125921107
136000107
146076107
156798107
167454107
177886107
08062101
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(log.f64 x)
x
(log.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))
#s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))
(*.f64 #s(literal 2 binary64) x)
#s(literal 2 binary64)
x
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
(+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))
x
#s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(/.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
Outputs
#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)))) (+.f64 (log.f64 #s(literal 2 binary64)) (log.f64 x)))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(+.f64 (log.f64 #s(literal 2 binary64)) (log.f64 x))
(log.f64 x)
x
(log.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))
#s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))
(*.f64 #s(literal 2 binary64) x)
#s(literal 2 binary64)
x
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
(log.f64 (+.f64 #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) x))
(+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))
(+.f64 #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) x)
x
#s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(/.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)

localize96.0ms (2.1%)

Memory
-19.6MiB live, 140.8MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
accuracy0.00390625
(+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))
accuracy0.00390625
#s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))
accuracy0.24213560223994607
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
accuracy0
(*.f64 #s(literal 2 binary64) x)
accuracy0.24213560223994607
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))
accuracy0.40995626039568334
#s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))
accuracy0
(log.f64 x)
accuracy0
(log.f64 #s(literal 2 binary64))
accuracy0.1875
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
accuracy0.32804600046055943
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))))
Samples
62.0ms256×0valid
Compiler

Compiled 77 to 17 computations (77.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 52.0ms
ival-log: 33.0ms (63.9% of total)
ival-mult: 9.0ms (17.4% of total)
ival-div: 2.0ms (3.9% of total)
ival-add: 2.0ms (3.9% of total)
ival-sub: 2.0ms (3.9% of total)
ival-sqrt: 2.0ms (3.9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series124.0ms (2.7%)

Memory
2.2MiB live, 169.2MiB allocated
Counts
11 → 120
Calls
Call 1
Inputs
#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())
#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())
#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())
#s(alt (log.f64 #s(literal 2 binary64)) (patch (log.f64 #s(literal 2 binary64)) #<representation binary64>) () ())
#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())
#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())
#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())
#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())
#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())
#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())
#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())
Outputs
#s(alt (log (sqrt -1)) (taylor 0 x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (/ x (sqrt -1))) (taylor 0 x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1))))) (taylor 0 x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1))))) (taylor 0 x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (log x)) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (log x)) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (log x)) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (log x)) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log (sqrt -1)) (taylor 0 x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (/ x (sqrt -1))) (taylor 0 x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1))))) (taylor 0 x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1))))) (taylor 0 x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (sqrt -1) (taylor 0 x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ x (sqrt -1)) (taylor 0 x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* x (+ 1 (* 1/2 (/ x (sqrt -1)))))) (taylor 0 x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* x (+ 1 (* x (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1)))))))) (taylor 0 x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (log (sqrt -1)) (taylor 0 x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (/ x (sqrt -1))) (taylor 0 x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1))))) (taylor 0 x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1))))) (taylor 0 x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (sqrt -1) (taylor 0 x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (+ x (sqrt -1)) (taylor 0 x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* x (+ 1 (* 1/2 (/ x (sqrt -1)))))) (taylor 0 x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* x (+ 1 (* x (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1)))))))) (taylor 0 x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (sqrt -1) (taylor 0 x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* 1/2 (/ (pow x 2) (sqrt -1)))) (taylor 0 x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* (pow x 2) (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1)))))) (taylor 0 x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (sqrt -1) (* (pow x 2) (+ (* (pow x 2) (- (* 1/16 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/8 (/ 1 (pow (sqrt -1) 3))))) (* 1/2 (/ 1 (sqrt -1)))))) (taylor 0 x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (/ -1/2 x) (taylor 0 x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (pow x 2) 1/2) x) (taylor 0 x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (pow x 2) 1/2) x) (taylor 0 x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (pow x 2) 1/2) x) (taylor 0 x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2))))) (taylor inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2))))) (taylor inf x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (- 2 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 2 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2))))) (taylor inf x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ 2 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2))))) (taylor inf x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (* x (- 2 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 2 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2))))) (taylor inf x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ 2 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* x (- 1 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2))))) (taylor inf x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (- 1 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (- 1 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (- 1 (* 1/2 (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (log (/ -1 x))) (taylor -inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6))))))) (taylor -inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (+ (log 2) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (+ (log 2) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (+ (log 2) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (+ (log 2) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (patch (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (log (/ -1 x))) (taylor -inf x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6))))))) (taylor -inf x) (#s(alt (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) (patch (log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor -inf x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) x) (taylor -inf x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 2))) 1/2) x)) (taylor -inf x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (* -1 (/ (+ 1/16 (* 5/128 (/ 1 (pow x 2)))) (pow x 4))) (+ 1/2 (* 1/8 (/ 1 (pow x 2))))) x)) (taylor -inf x) (#s(alt #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) (patch #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 2 binary64) x) (patch (*.f64 #s(literal 2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (log (/ -1 x))) (taylor -inf x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6))))))) (taylor -inf x) (#s(alt (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) (patch (log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor -inf x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) x) (taylor -inf x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 2))) 1/2) x)) (taylor -inf x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (* -1 (/ (+ 1/16 (* 5/128 (/ 1 (pow x 2)))) (pow x 4))) (+ 1/2 (* 1/8 (/ 1 (pow x 2))))) x)) (taylor -inf x) (#s(alt (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) (patch (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- 1 (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) (patch #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt x (taylor -inf x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* 1/2 (/ 1 (pow x 2))) 1))) (taylor -inf x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* 1/2 (/ 1 (pow x 2))) 1))) (taylor -inf x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* 1/2 (/ 1 (pow x 2))) 1))) (taylor -inf x) (#s(alt (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) (patch (-.f64 x (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
80.0ms
x
@0
((log (+ x (sqrt (- (* x x) 1)))) (+ (log x) (log 2)) (log x) (log 2) (log (+ x (sqrt (- (* x x) 1)))) (+ x (sqrt (- (* x x) 1))) (* 2 x) (log (+ x (sqrt (- (* x x) 1)))) (+ x (sqrt (- (* x x) 1))) (sqrt (- (* x x) 1)) (- x (/ 1/2 x)))
21.0ms
x
@-inf
((log (+ x (sqrt (- (* x x) 1)))) (+ (log x) (log 2)) (log x) (log 2) (log (+ x (sqrt (- (* x x) 1)))) (+ x (sqrt (- (* x x) 1))) (* 2 x) (log (+ x (sqrt (- (* x x) 1)))) (+ x (sqrt (- (* x x) 1))) (sqrt (- (* x x) 1)) (- x (/ 1/2 x)))
19.0ms
x
@inf
((log (+ x (sqrt (- (* x x) 1)))) (+ (log x) (log 2)) (log x) (log 2) (log (+ x (sqrt (- (* x x) 1)))) (+ x (sqrt (- (* x x) 1))) (* 2 x) (log (+ x (sqrt (- (* x x) 1)))) (+ x (sqrt (- (* x x) 1))) (sqrt (- (* x x) 1)) (- x (/ 1/2 x)))

simplify134.0ms (2.9%)

Memory
21.0MiB live, 170.4MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01601268
14321208
211801168
334251121
083291087
Stop Event
iter limit
node limit
Counts
120 → 117
Calls
Call 1
Inputs
(log (sqrt -1))
(+ (log (sqrt -1)) (/ x (sqrt -1)))
(+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1)))))
(+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1)))))
(+ (log 2) (log x))
(+ (log 2) (log x))
(+ (log 2) (log x))
(+ (log 2) (log x))
(log x)
(log x)
(log x)
(log x)
(log (sqrt -1))
(+ (log (sqrt -1)) (/ x (sqrt -1)))
(+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1)))))
(+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1)))))
(sqrt -1)
(+ x (sqrt -1))
(+ (sqrt -1) (* x (+ 1 (* 1/2 (/ x (sqrt -1))))))
(+ (sqrt -1) (* x (+ 1 (* x (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1))))))))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(log (sqrt -1))
(+ (log (sqrt -1)) (/ x (sqrt -1)))
(+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1)))))
(+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1)))))
(sqrt -1)
(+ x (sqrt -1))
(+ (sqrt -1) (* x (+ 1 (* 1/2 (/ x (sqrt -1))))))
(+ (sqrt -1) (* x (+ 1 (* x (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1))))))))
(sqrt -1)
(+ (sqrt -1) (* 1/2 (/ (pow x 2) (sqrt -1))))
(+ (sqrt -1) (* (pow x 2) (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1))))))
(+ (sqrt -1) (* (pow x 2) (+ (* (pow x 2) (- (* 1/16 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/8 (/ 1 (pow (sqrt -1) 3))))) (* 1/2 (/ 1 (sqrt -1))))))
(/ -1/2 x)
(/ (- (pow x 2) 1/2) x)
(/ (- (pow x 2) 1/2) x)
(/ (- (pow x 2) 1/2) x)
(+ (log 2) (* -1 (log (/ 1 x))))
(- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2))))
(+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2)))))
(- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2))))
(+ (log 2) (* -1 (log (/ 1 x))))
(+ (log 2) (* -1 (log (/ 1 x))))
(+ (log 2) (* -1 (log (/ 1 x))))
(+ (log 2) (* -1 (log (/ 1 x))))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(+ (log 2) (* -1 (log (/ 1 x))))
(- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2))))
(+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2)))))
(- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2))))
(* 2 x)
(* x (- 2 (* 1/2 (/ 1 (pow x 2)))))
(* x (+ 2 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))
(* x (- (+ 2 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(+ (log 2) (* -1 (log (/ 1 x))))
(- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2))))
(+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2)))))
(- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2))))
(* 2 x)
(* x (- 2 (* 1/2 (/ 1 (pow x 2)))))
(* x (+ 2 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))
(* x (- (+ 2 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))
x
(* x (- 1 (* 1/2 (/ 1 (pow x 2)))))
(* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))
(* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))
x
(* x (- 1 (* 1/2 (/ 1 (pow x 2)))))
(* x (- 1 (* 1/2 (/ 1 (pow x 2)))))
(* x (- 1 (* 1/2 (/ 1 (pow x 2)))))
(+ (log -1/2) (log (/ -1 x)))
(+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2)))))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2))))))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
(+ (log -1) (+ (log 2) (* -1 (log (/ -1 x)))))
(+ (log -1) (+ (log 2) (* -1 (log (/ -1 x)))))
(+ (log -1) (+ (log 2) (* -1 (log (/ -1 x)))))
(+ (log -1) (+ (log 2) (* -1 (log (/ -1 x)))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1/2) (log (/ -1 x)))
(+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2)))))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2))))))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
(/ 1/2 x)
(/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) x)
(* -1 (/ (- (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 2))) 1/2) x))
(* -1 (/ (- (* -1 (/ (+ 1/16 (* 5/128 (/ 1 (pow x 2)))) (pow x 4))) (+ 1/2 (* 1/8 (/ 1 (pow x 2))))) x))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(+ (log -1/2) (log (/ -1 x)))
(+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2)))))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2))))))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
(/ 1/2 x)
(/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) x)
(* -1 (/ (- (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 2))) 1/2) x))
(* -1 (/ (- (* -1 (/ (+ 1/16 (* 5/128 (/ 1 (pow x 2)))) (pow x 4))) (+ 1/2 (* 1/8 (/ 1 (pow x 2))))) x))
(* -1 x)
(* -1 (* x (- 1 (* 1/2 (/ 1 (pow x 2))))))
(* -1 (* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2))))))
(* -1 (* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2))))))
x
(* -1 (* x (- (* 1/2 (/ 1 (pow x 2))) 1)))
(* -1 (* x (- (* 1/2 (/ 1 (pow x 2))) 1)))
(* -1 (* x (- (* 1/2 (/ 1 (pow x 2))) 1)))
Outputs
(log (sqrt -1))
(log.f64 (sqrt.f64 #s(literal -1 binary64)))
(+ (log (sqrt -1)) (/ x (sqrt -1)))
(+.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64))))
(+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1)))))
(fma.f64 (fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal 1 binary64)) (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64))))
(+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 3/40 binary64) x) (/.f64 x (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 #s(literal 1/6 binary64) (sqrt.f64 #s(literal -1 binary64)))) (+.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64)))))
(+ (log 2) (log x))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(+ (log 2) (log x))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(+ (log 2) (log x))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(+ (log 2) (log x))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log (sqrt -1))
(log.f64 (sqrt.f64 #s(literal -1 binary64)))
(+ (log (sqrt -1)) (/ x (sqrt -1)))
(+.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64))))
(+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1)))))
(fma.f64 (fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal 1 binary64)) (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64))))
(+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 3/40 binary64) x) (/.f64 x (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 #s(literal 1/6 binary64) (sqrt.f64 #s(literal -1 binary64)))) (+.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64)))))
(sqrt -1)
(sqrt.f64 #s(literal -1 binary64))
(+ x (sqrt -1))
(+.f64 x (sqrt.f64 #s(literal -1 binary64)))
(+ (sqrt -1) (* x (+ 1 (* 1/2 (/ x (sqrt -1))))))
(fma.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) x #s(literal 1 binary64)) x (sqrt.f64 #s(literal -1 binary64)))
(+ (sqrt -1) (* x (+ 1 (* x (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1))))))))
(fma.f64 (fma.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (fma.f64 (*.f64 x x) #s(literal 1/8 binary64) #s(literal 1/2 binary64)) #s(literal 1 binary64)) x (sqrt.f64 #s(literal -1 binary64)))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(log (sqrt -1))
(log.f64 (sqrt.f64 #s(literal -1 binary64)))
(+ (log (sqrt -1)) (/ x (sqrt -1)))
(+.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64))))
(+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1)))))
(fma.f64 (fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal 1 binary64)) (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64))))
(+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 3/40 binary64) x) (/.f64 x (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 #s(literal 1/6 binary64) (sqrt.f64 #s(literal -1 binary64)))) (+.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64)))))
(sqrt -1)
(sqrt.f64 #s(literal -1 binary64))
(+ x (sqrt -1))
(+.f64 x (sqrt.f64 #s(literal -1 binary64)))
(+ (sqrt -1) (* x (+ 1 (* 1/2 (/ x (sqrt -1))))))
(fma.f64 (fma.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) x #s(literal 1 binary64)) x (sqrt.f64 #s(literal -1 binary64)))
(+ (sqrt -1) (* x (+ 1 (* x (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1))))))))
(fma.f64 (fma.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (fma.f64 (*.f64 x x) #s(literal 1/8 binary64) #s(literal 1/2 binary64)) #s(literal 1 binary64)) x (sqrt.f64 #s(literal -1 binary64)))
(sqrt -1)
(sqrt.f64 #s(literal -1 binary64))
(+ (sqrt -1) (* 1/2 (/ (pow x 2) (sqrt -1))))
(fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) x) x (sqrt.f64 #s(literal -1 binary64)))
(+ (sqrt -1) (* (pow x 2) (+ (* -1/8 (/ (pow x 2) (pow (sqrt -1) 3))) (* 1/2 (/ 1 (sqrt -1))))))
(fma.f64 (*.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) x) (fma.f64 (*.f64 x x) #s(literal 1/8 binary64) #s(literal 1/2 binary64)) (sqrt.f64 #s(literal -1 binary64)))
(+ (sqrt -1) (* (pow x 2) (+ (* (pow x 2) (- (* 1/16 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/8 (/ 1 (pow (sqrt -1) 3))))) (* 1/2 (/ 1 (sqrt -1))))))
(fma.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/16 binary64) x) (/.f64 x (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) (/.f64 #s(literal 1/8 binary64) (sqrt.f64 #s(literal -1 binary64)))) (fma.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) (sqrt.f64 #s(literal -1 binary64))) x) x (sqrt.f64 #s(literal -1 binary64))))
(/ -1/2 x)
(/.f64 #s(literal -1/2 binary64) x)
(/ (- (pow x 2) 1/2) x)
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(/ (- (pow x 2) 1/2) x)
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(/ (- (pow x 2) 1/2) x)
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(+ (log 2) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2))))
(-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x)))
(+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2)))))
(-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 (/.f64 (+.f64 (/.f64 #s(literal 3/32 binary64) (*.f64 x x)) #s(literal 1/4 binary64)) x) x))
(- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2))))
(-.f64 (-.f64 (log.f64 #s(literal 2 binary64)) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 5/96 binary64) (*.f64 x x)) #s(literal 3/32 binary64)) (pow.f64 x #s(literal 4 binary64))) (log.f64 x)))
(+ (log 2) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(+ (log 2) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(+ (log 2) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(+ (log 2) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(+ (log 2) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2))))
(-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x)))
(+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2)))))
(-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 (/.f64 (+.f64 (/.f64 #s(literal 3/32 binary64) (*.f64 x x)) #s(literal 1/4 binary64)) x) x))
(- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2))))
(-.f64 (-.f64 (log.f64 #s(literal 2 binary64)) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 5/96 binary64) (*.f64 x x)) #s(literal 3/32 binary64)) (pow.f64 x #s(literal 4 binary64))) (log.f64 x)))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* x (- 2 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 #s(literal 2 binary64) x (/.f64 #s(literal -1/2 binary64) x))
(* x (+ 2 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))
(fma.f64 #s(literal 2 binary64) x (/.f64 (-.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1/8 binary64) (*.f64 x x))) x))
(* x (- (+ 2 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (-.f64 #s(literal 2 binary64) (/.f64 (+.f64 (/.f64 #s(literal 1/16 binary64) (*.f64 x x)) #s(literal 1/8 binary64)) (pow.f64 x #s(literal 4 binary64)))) x (/.f64 #s(literal -1/2 binary64) x))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(+ (log 2) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2))))
(-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x)))
(+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2)))))
(-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 (/.f64 (+.f64 (/.f64 #s(literal 3/32 binary64) (*.f64 x x)) #s(literal 1/4 binary64)) x) x))
(- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2))))
(-.f64 (-.f64 (log.f64 #s(literal 2 binary64)) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 5/96 binary64) (*.f64 x x)) #s(literal 3/32 binary64)) (pow.f64 x #s(literal 4 binary64))) (log.f64 x)))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* x (- 2 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 #s(literal 2 binary64) x (/.f64 #s(literal -1/2 binary64) x))
(* x (+ 2 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))
(fma.f64 #s(literal 2 binary64) x (/.f64 (-.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1/8 binary64) (*.f64 x x))) x))
(* x (- (+ 2 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 (-.f64 #s(literal 2 binary64) (/.f64 (+.f64 (/.f64 #s(literal 1/16 binary64) (*.f64 x x)) #s(literal 1/8 binary64)) (pow.f64 x #s(literal 4 binary64)))) x (/.f64 #s(literal -1/2 binary64) x))
x
(* x (- 1 (* 1/2 (/ 1 (pow x 2)))))
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2)))))
(-.f64 x (/.f64 (+.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64)) x))
(* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2)))))
(-.f64 (/.f64 (-.f64 #s(literal -1/8 binary64) (/.f64 #s(literal 1/16 binary64) (*.f64 x x))) (pow.f64 x #s(literal 3 binary64))) (-.f64 (/.f64 #s(literal 1/2 binary64) x) x))
x
(* x (- 1 (* 1/2 (/ 1 (pow x 2)))))
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(* x (- 1 (* 1/2 (/ 1 (pow x 2)))))
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(* x (- 1 (* 1/2 (/ 1 (pow x 2)))))
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(+ (log -1/2) (log (/ -1 x)))
(+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2)))))
(+.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2))))))
(+.f64 (+.f64 (+.f64 (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
(+.f64 (+.f64 (+.f64 (+.f64 (/.f64 #s(literal 5/96 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1) (+ (log 2) (* -1 (log (/ -1 x)))))
(-.f64 (log.f64 #s(literal -1 binary64)) (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 2 binary64))))
(+ (log -1) (+ (log 2) (* -1 (log (/ -1 x)))))
(-.f64 (log.f64 #s(literal -1 binary64)) (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 2 binary64))))
(+ (log -1) (+ (log 2) (* -1 (log (/ -1 x)))))
(-.f64 (log.f64 #s(literal -1 binary64)) (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 2 binary64))))
(+ (log -1) (+ (log 2) (* -1 (log (/ -1 x)))))
(-.f64 (log.f64 #s(literal -1 binary64)) (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal 2 binary64))))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))
(+ (log -1/2) (log (/ -1 x)))
(+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2)))))
(+.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2))))))
(+.f64 (+.f64 (+.f64 (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
(+.f64 (+.f64 (+.f64 (+.f64 (/.f64 #s(literal 5/96 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 #s(literal -1/2 binary64)))
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) x)
(/.f64 (+.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64)) x)
(* -1 (/ (- (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 2))) 1/2) x))
(-.f64 (/.f64 #s(literal 1/2 binary64) x) (/.f64 (-.f64 #s(literal -1/8 binary64) (/.f64 #s(literal 1/16 binary64) (*.f64 x x))) (pow.f64 x #s(literal 3 binary64))))
(* -1 (/ (- (* -1 (/ (+ 1/16 (* 5/128 (/ 1 (pow x 2)))) (pow x 4))) (+ 1/2 (* 1/8 (/ 1 (pow x 2))))) x))
(-.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 5/128 binary64) (*.f64 x x)) #s(literal 1/16 binary64)) (pow.f64 x #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 x #s(literal 3 binary64)))) (/.f64 #s(literal -1/2 binary64) x))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(+ (log -1/2) (log (/ -1 x)))
(+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2)))))
(+.f64 (+.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2))))))
(+.f64 (+.f64 (+.f64 (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
(+.f64 (+.f64 (+.f64 (+.f64 (/.f64 #s(literal 5/96 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (/.f64 #s(literal 3/32 binary64) (pow.f64 x #s(literal 4 binary64)))) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 #s(literal -1/2 binary64)))
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) x)
(/.f64 (+.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64)) x)
(* -1 (/ (- (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 2))) 1/2) x))
(-.f64 (/.f64 #s(literal 1/2 binary64) x) (/.f64 (-.f64 #s(literal -1/8 binary64) (/.f64 #s(literal 1/16 binary64) (*.f64 x x))) (pow.f64 x #s(literal 3 binary64))))
(* -1 (/ (- (* -1 (/ (+ 1/16 (* 5/128 (/ 1 (pow x 2)))) (pow x 4))) (+ 1/2 (* 1/8 (/ 1 (pow x 2))))) x))
(-.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 5/128 binary64) (*.f64 x x)) #s(literal 1/16 binary64)) (pow.f64 x #s(literal 5 binary64))) (/.f64 #s(literal -1/8 binary64) (pow.f64 x #s(literal 3 binary64)))) (/.f64 #s(literal -1/2 binary64) x))
(* -1 x)
(neg.f64 x)
(* -1 (* x (- 1 (* 1/2 (/ 1 (pow x 2))))))
(-.f64 (/.f64 #s(literal 1/2 binary64) x) x)
(* -1 (* x (+ 1 (* -1 (/ (+ 1/2 (* 1/8 (/ 1 (pow x 2)))) (pow x 2))))))
(-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1/8 binary64) (*.f64 x x)) #s(literal 1/2 binary64)) x) x)
(* -1 (* x (- (+ 1 (* -1 (/ (+ 1/8 (* 1/16 (/ 1 (pow x 2)))) (pow x 4)))) (* 1/2 (/ 1 (pow x 2))))))
(-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) x) (/.f64 (-.f64 #s(literal -1/8 binary64) (/.f64 #s(literal 1/16 binary64) (*.f64 x x))) (pow.f64 x #s(literal 3 binary64)))) x)
x
(* -1 (* x (- (* 1/2 (/ 1 (pow x 2))) 1)))
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(* -1 (* x (- (* 1/2 (/ 1 (pow x 2))) 1)))
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
(* -1 (* x (- (* 1/2 (/ 1 (pow x 2))) 1)))
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))

rewrite191.0ms (4.2%)

Memory
-16.2MiB live, 227.1MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02198
03096
111296
278496
0844390
Stop Event
iter limit
node limit
iter limit
Counts
11 → 186
Calls
Call 1
Inputs
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(log.f64 x)
(log.f64 #s(literal 2 binary64))
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))
#s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x))
(*.f64 #s(literal 2 binary64) x)
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
(+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))))
#s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))
(-.f64 x (/.f64 #s(literal 1/2 binary64) x))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval38.0ms (0.8%)

Memory
-0.4MiB live, 72.9MiB allocated
Compiler

Compiled 6 209 to 969 computations (84.4% saved)

prune9.0ms (0.2%)

Memory
-14.6MiB live, 22.8MiB allocated
Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New3021303
Fresh000
Picked123
Done000
Total3033306
Accuracy
100.0%
Counts
306 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
99.1%
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))
99.5%
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
Compiler

Compiled 20 to 18 computations (10% saved)

simplify345.0ms (7.5%)

Memory
-2.8MiB live, 246.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 #s(literal 1/2 binary64) x)
cost-diff0
(log.f64 (/.f64 #s(literal 1/2 binary64) x))
cost-diff0
(neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))
cost-diff0
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01229
01529
12629
23229
34929
48229
514729
631429
759329
8212429
9325229
10453829
11524229
12555529
13574629
14584829
15616729
16671329
17782429
0806028
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
(neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))
(log.f64 (/.f64 #s(literal 1/2 binary64) x))
(/.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
Outputs
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
(neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))
(log.f64 (/.f64 #s(literal 1/2 binary64) x))
(/.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x

localize48.0ms (1%)

Memory
6.2MiB live, 43.7MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 #s(literal 1/2 binary64) x)
accuracy0
(neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))
accuracy0.00390625
(log.f64 (/.f64 #s(literal 1/2 binary64) x))
accuracy0.32804600046055943
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
Samples
41.0ms256×0valid
Compiler

Compiled 25 to 13 computations (48% saved)

Precisions
Click to see histograms. Total time spent on operations: 34.0ms
ival-log: 25.0ms (72.9% of total)
ival-div: 2.0ms (5.8% of total)
ival-mult: 2.0ms (5.8% of total)
ival-sqrt: 2.0ms (5.8% of total)
ival-add: 1.0ms (2.9% of total)
ival-sub: 1.0ms (2.9% of total)
ival-neg: 1.0ms (2.9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series71.0ms (1.6%)

Memory
15.8MiB live, 98.2MiB allocated
Counts
4 → 48
Calls
Call 1
Inputs
#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())
#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())
#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())
#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())
Outputs
#s(alt (log (sqrt -1)) (taylor 0 x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (/ x (sqrt -1))) (taylor 0 x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1))))) (taylor 0 x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1))))) (taylor 0 x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log 1/2) (* -1 (log x)))) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log 1/2) (* -1 (log x)))) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log 1/2) (* -1 (log x)))) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log 1/2) (* -1 (log x)))) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log 1/2) (* -1 (log x))) (taylor 0 x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log 1/2) (* -1 (log x))) (taylor 0 x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log 1/2) (* -1 (log x))) (taylor 0 x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log 1/2) (* -1 (log x))) (taylor 0 x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2))))) (taylor inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log 1/2) (log (/ 1 x)))) (taylor inf x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log 1/2) (log (/ 1 x)))) (taylor inf x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log 1/2) (log (/ 1 x)))) (taylor inf x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log 1/2) (log (/ 1 x)))) (taylor inf x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log 1/2) (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log 1/2) (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log 1/2) (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log 1/2) (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (log (/ -1 x))) (taylor -inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6))))))) (taylor -inf x) (#s(alt #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) (patch #s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log -1/2) (log (/ -1 x)))) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log -1/2) (log (/ -1 x)))) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log -1/2) (log (/ -1 x)))) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log -1/2) (log (/ -1 x)))) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) (patch (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (log (/ -1 x))) (taylor -inf x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (log (/ -1 x))) (taylor -inf x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (log (/ -1 x))) (taylor -inf x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log -1/2) (log (/ -1 x))) (taylor -inf x) (#s(alt (log.f64 (/.f64 #s(literal 1/2 binary64) x)) (patch (log.f64 (/.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1/2 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1/2 binary64) x) (patch (/.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
44.0ms
x
@0
((log (+ x (sqrt (- (* x x) 1)))) (neg (log (/ 1/2 x))) (log (/ 1/2 x)) (/ 1/2 x))
19.0ms
x
@-inf
((log (+ x (sqrt (- (* x x) 1)))) (neg (log (/ 1/2 x))) (log (/ 1/2 x)) (/ 1/2 x))
7.0ms
x
@inf
((log (+ x (sqrt (- (* x x) 1)))) (neg (log (/ 1/2 x))) (log (/ 1/2 x)) (/ 1/2 x))

simplify124.0ms (2.7%)

Memory
7.2MiB live, 45.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
086394
1207364
2509353
31209351
42910351
54922330
66910330
08080327
Stop Event
iter limit
node limit
Counts
48 → 48
Calls
Call 1
Inputs
(log (sqrt -1))
(+ (log (sqrt -1)) (/ x (sqrt -1)))
(+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1)))))
(+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1)))))
(* -1 (+ (log 1/2) (* -1 (log x))))
(* -1 (+ (log 1/2) (* -1 (log x))))
(* -1 (+ (log 1/2) (* -1 (log x))))
(* -1 (+ (log 1/2) (* -1 (log x))))
(+ (log 1/2) (* -1 (log x)))
(+ (log 1/2) (* -1 (log x)))
(+ (log 1/2) (* -1 (log x)))
(+ (log 1/2) (* -1 (log x)))
(/ 1/2 x)
(/ 1/2 x)
(/ 1/2 x)
(/ 1/2 x)
(+ (log 2) (* -1 (log (/ 1 x))))
(- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2))))
(+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2)))))
(- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2))))
(* -1 (+ (log 1/2) (log (/ 1 x))))
(* -1 (+ (log 1/2) (log (/ 1 x))))
(* -1 (+ (log 1/2) (log (/ 1 x))))
(* -1 (+ (log 1/2) (log (/ 1 x))))
(+ (log 1/2) (log (/ 1 x)))
(+ (log 1/2) (log (/ 1 x)))
(+ (log 1/2) (log (/ 1 x)))
(+ (log 1/2) (log (/ 1 x)))
(/ 1/2 x)
(/ 1/2 x)
(/ 1/2 x)
(/ 1/2 x)
(+ (log -1/2) (log (/ -1 x)))
(+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2)))))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2))))))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
(* -1 (+ (log -1/2) (log (/ -1 x))))
(* -1 (+ (log -1/2) (log (/ -1 x))))
(* -1 (+ (log -1/2) (log (/ -1 x))))
(* -1 (+ (log -1/2) (log (/ -1 x))))
(+ (log -1/2) (log (/ -1 x)))
(+ (log -1/2) (log (/ -1 x)))
(+ (log -1/2) (log (/ -1 x)))
(+ (log -1/2) (log (/ -1 x)))
(/ 1/2 x)
(/ 1/2 x)
(/ 1/2 x)
(/ 1/2 x)
Outputs
(log (sqrt -1))
(log.f64 (sqrt.f64 #s(literal -1 binary64)))
(+ (log (sqrt -1)) (/ x (sqrt -1)))
(+.f64 (/.f64 x (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64))))
(+ (log (sqrt -1)) (* x (+ (* -1/6 (/ (pow x 2) (pow (sqrt -1) 3))) (/ 1 (sqrt -1)))))
(+.f64 (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/6 binary64) x) (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64))))
(+ (log (sqrt -1)) (* x (+ (* (pow x 2) (- (* 3/40 (/ (pow x 2) (pow (sqrt -1) 5))) (* 1/6 (/ 1 (pow (sqrt -1) 3))))) (/ 1 (sqrt -1)))))
(fma.f64 (/.f64 (pow.f64 x #s(literal 5 binary64)) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 5 binary64))) #s(literal 3/40 binary64) (+.f64 (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/6 binary64) x) (sqrt.f64 #s(literal -1 binary64))) (log.f64 (sqrt.f64 #s(literal -1 binary64)))))
(* -1 (+ (log 1/2) (* -1 (log x))))
(-.f64 (log.f64 x) (log.f64 #s(literal 1/2 binary64)))
(* -1 (+ (log 1/2) (* -1 (log x))))
(-.f64 (log.f64 x) (log.f64 #s(literal 1/2 binary64)))
(* -1 (+ (log 1/2) (* -1 (log x))))
(-.f64 (log.f64 x) (log.f64 #s(literal 1/2 binary64)))
(* -1 (+ (log 1/2) (* -1 (log x))))
(-.f64 (log.f64 x) (log.f64 #s(literal 1/2 binary64)))
(+ (log 1/2) (* -1 (log x)))
(-.f64 (log.f64 #s(literal 1/2 binary64)) (log.f64 x))
(+ (log 1/2) (* -1 (log x)))
(-.f64 (log.f64 #s(literal 1/2 binary64)) (log.f64 x))
(+ (log 1/2) (* -1 (log x)))
(-.f64 (log.f64 #s(literal 1/2 binary64)) (log.f64 x))
(+ (log 1/2) (* -1 (log x)))
(-.f64 (log.f64 #s(literal 1/2 binary64)) (log.f64 x))
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(+ (log 2) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64)))
(- (+ (log 2) (* -1 (log (/ 1 x)))) (* 1/4 (/ 1 (pow x 2))))
(-.f64 (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))) (/.f64 #s(literal 1/4 binary64) (*.f64 x x)))
(+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 1/4 (* 3/32 (/ 1 (pow x 2)))) (pow x 2)))))
(-.f64 (/.f64 #s(literal -3/32 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (-.f64 (/.f64 #s(literal 1/4 binary64) (*.f64 x x)) (log.f64 x)) (log.f64 #s(literal 2 binary64))))
(- (+ (log 2) (+ (* -1 (log (/ 1 x))) (* -1 (/ (+ 3/32 (* 5/96 (/ 1 (pow x 2)))) (pow x 4))))) (* 1/4 (/ 1 (pow x 2))))
(-.f64 (-.f64 (log.f64 #s(literal 2 binary64)) (/.f64 #s(literal 1/4 binary64) (*.f64 x x))) (-.f64 (/.f64 (-.f64 (/.f64 #s(literal 5/96 binary64) (*.f64 x x)) #s(literal -3/32 binary64)) (pow.f64 x #s(literal 4 binary64))) (log.f64 x)))
(* -1 (+ (log 1/2) (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 #s(literal 1/2 binary64)))
(* -1 (+ (log 1/2) (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 #s(literal 1/2 binary64)))
(* -1 (+ (log 1/2) (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 #s(literal 1/2 binary64)))
(* -1 (+ (log 1/2) (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 #s(literal 1/2 binary64)))
(+ (log 1/2) (log (/ 1 x)))
(-.f64 (log.f64 #s(literal 1/2 binary64)) (log.f64 x))
(+ (log 1/2) (log (/ 1 x)))
(-.f64 (log.f64 #s(literal 1/2 binary64)) (log.f64 x))
(+ (log 1/2) (log (/ 1 x)))
(-.f64 (log.f64 #s(literal 1/2 binary64)) (log.f64 x))
(+ (log 1/2) (log (/ 1 x)))
(-.f64 (log.f64 #s(literal 1/2 binary64)) (log.f64 x))
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(+ (log -1/2) (log (/ -1 x)))
(-.f64 (log.f64 #s(literal -1/2 binary64)) (log.f64 (neg.f64 x)))
(+ (log -1/2) (+ (log (/ -1 x)) (* 1/4 (/ 1 (pow x 2)))))
(-.f64 (-.f64 (log.f64 #s(literal -1/2 binary64)) (/.f64 #s(literal -1/4 binary64) (*.f64 x x))) (log.f64 (neg.f64 x)))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (* 1/4 (/ 1 (pow x 2))))))
(-.f64 (-.f64 (log.f64 #s(literal -1/2 binary64)) (/.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 (neg.f64 x))))
(+ (log -1/2) (+ (log (/ -1 x)) (+ (/ 3/32 (pow x 4)) (+ (* 1/4 (/ 1 (pow x 2))) (* 5/96 (/ 1 (pow x 6)))))))
(-.f64 (-.f64 (+.f64 (/.f64 #s(literal 5/96 binary64) (pow.f64 x #s(literal 6 binary64))) (log.f64 #s(literal -1/2 binary64))) (/.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 (neg.f64 x))))
(* -1 (+ (log -1/2) (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1/2 binary64)))
(* -1 (+ (log -1/2) (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1/2 binary64)))
(* -1 (+ (log -1/2) (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1/2 binary64)))
(* -1 (+ (log -1/2) (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1/2 binary64)))
(+ (log -1/2) (log (/ -1 x)))
(-.f64 (log.f64 #s(literal -1/2 binary64)) (log.f64 (neg.f64 x)))
(+ (log -1/2) (log (/ -1 x)))
(-.f64 (log.f64 #s(literal -1/2 binary64)) (log.f64 (neg.f64 x)))
(+ (log -1/2) (log (/ -1 x)))
(-.f64 (log.f64 #s(literal -1/2 binary64)) (log.f64 (neg.f64 x)))
(+ (log -1/2) (log (/ -1 x)))
(-.f64 (log.f64 #s(literal -1/2 binary64)) (log.f64 (neg.f64 x)))
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)
(/ 1/2 x)
(/.f64 #s(literal 1/2 binary64) x)

rewrite206.0ms (4.5%)

Memory
-16.4MiB live, 138.2MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01227
01527
16625
241525
3424925
0811824
Stop Event
iter limit
node limit
iter limit
Counts
4 → 153
Calls
Call 1
Inputs
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
(neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x)))
(log.f64 (/.f64 #s(literal 1/2 binary64) x))
(/.f64 #s(literal 1/2 binary64) x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval38.0ms (0.8%)

Memory
-8.9MiB live, 28.7MiB allocated
Compiler

Compiled 2 335 to 637 computations (72.7% saved)

prune4.0ms (0.1%)

Memory
10.5MiB live, 10.5MiB allocated
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New2010201
Fresh000
Picked011
Done022
Total2013204
Accuracy
100.0%
Counts
204 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
99.1%
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))
99.5%
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
Compiler

Compiled 55 to 42 computations (23.6% saved)

regimes7.0ms (0.2%)

Memory
8.0MiB live, 8.0MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
(log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))))
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (+.f64 (log.f64 x) (log.f64 #s(literal 2 binary64))))
Outputs
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
Calls

3 calls:

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

Compiled 18 to 14 computations (22.2% saved)

regimes5.0ms (0.1%)

Memory
10.8MiB live, 10.8MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
Outputs
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
Calls

3 calls:

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

Compiled 18 to 14 computations (22.2% saved)

regimes4.0ms (0.1%)

Memory
6.4MiB live, 6.4MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

3 calls:

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))))
1.0ms
x
Results
AccuracySegmentsBranch
99.1%1x
99.1%1(log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64)))))
99.1%1(+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) #s(literal 1 binary64))))
Compiler

Compiled 18 to 14 computations (22.2% saved)

simplify118.0ms (2.6%)

Memory
-43.3MiB live, 51.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02043
13043
23943
34643
45143
55343
Stop Event
saturated
Calls
Call 1
Inputs
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))
Outputs
(log.f64 (+.f64 x #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x)))))
(log.f64 (+.f64 #s(approx (sqrt (- (* x x) 1)) (-.f64 x (/.f64 #s(literal 1/2 binary64) x))) x))
#s(approx (log (+ x (sqrt (- (* x x) 1)))) (neg.f64 (log.f64 (/.f64 #s(literal 1/2 binary64) x))))
(log.f64 #s(approx (+ x (sqrt (- (* x x) 1))) (*.f64 #s(literal 2 binary64) x)))

soundness539.0ms (11.7%)

Memory
21.3MiB live, 252.0MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02198
03096
111296
278496
0844390
0150559
1411533
21146526
33331488
47979488
08531459
Stop Event
done
iter limit
node limit
iter limit
node limit
iter limit
Compiler

Compiled 35 to 30 computations (14.3% saved)

preprocess197.0ms (4.3%)

Memory
-8.2MiB live, 73.3MiB allocated
Compiler

Compiled 82 to 60 computations (26.8% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...