Hyperbolic tangent

Time bar (total: 9.5s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
100%100%0%0%0%0%0%2
Compiler

Compiled 15 to 9 computations (40% saved)

sample4.5s (47.1%)

Memory
35.1MiB live, 4 889.0MiB allocated
Samples
1.4s2 953×2valid
1.2s4 755×1valid
844.0ms7 735×0exit
64.0ms548×0valid
Precisions
Click to see histograms. Total time spent on operations: 2.9s
ival-exp: 2.0s (68.7% of total)
ival-div: 219.0ms (7.6% of total)
adjust: 209.0ms (7.2% of total)
ival-sub: 190.0ms (6.6% of total)
ival-add: 173.0ms (6% of total)
ival-neg: 94.0ms (3.3% of total)
ival-true: 13.0ms (0.5% of total)
ival-assert: 7.0ms (0.2% of total)
Bogosity

explain547.0ms (5.7%)

Memory
-23.0MiB live, 146.3MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
2480-0-(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
50-0-(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
00-0-(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
00-0-(exp.f64 x)
01(-408.44381563982313)0-(exp.f64 (neg.f64 x))
00-0-(neg.f64 x)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))cancellation2480
/.f64(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))o/o50
(exp.f64 x)overflow1
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))overflow5
(exp.f64 (neg.f64 x))overflow4
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))overflow5
(exp.f64 x)overflow1
(exp.f64 (neg.f64 x))overflow4
exp.f64(exp.f64 (neg.f64 x))sensitivity11
Confusion
Predicted +Predicted -
+2530
-12
Precision
0.9960629921259843
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+25300
-111
Precision?
0.9921568627450981
Recall?
1.0
Freqs
test
numberfreq
02
1254
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
264.0ms184×2valid
53.0ms296×1valid
2.0ms32×0valid
Compiler

Compiled 116 to 32 computations (72.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 295.0ms
adjust: 122.0ms (41.3% of total)
ival-add: 85.0ms (28.8% of total)
ival-exp: 71.0ms (24% of total)
ival-div: 8.0ms (2.7% of total)
ival-sub: 6.0ms (2% of total)
ival-neg: 3.0ms (1% of total)
ival-true: 1.0ms (0.3% of total)
ival-assert: 0.0ms (0% of total)

preprocess92.0ms (1%)

Memory
9.0MiB live, 9.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0927
13227
28026
319926
446826
5113026
6154726
7158526
8160426
9162326
10165726
11166926
0713
01313
12513
24213
36713
412213
527613
646213
768213
890513
9105813
10118613
11123313
0123313
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
Symmetry

(negabs x)

Compiler

Compiled 13 to 7 computations (46.2% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
9.3%
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 13 to 7 computations (46.2% saved)

simplify35.0ms (0.4%)

Memory
3.1MiB live, 3.1MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(exp.f64 (neg.f64 x))
cost-diff0
(exp.f64 x)
cost-diff0
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
cost-diff0
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0733
01333
12533
24233
36733
412233
527633
646233
768233
890533
9105833
10118633
11123333
0123333
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(exp.f64 x)
x
(exp.f64 (neg.f64 x))
(neg.f64 x)
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Outputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(exp.f64 x)
x
(exp.f64 (neg.f64 x))
(neg.f64 x)
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))

localize132.0ms (1.4%)

Memory
-20.1MiB live, 18.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(exp.f64 (neg.f64 x))
accuracy0
(exp.f64 x)
accuracy1.222670005254126
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
accuracy56.83057970434825
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Samples
95.0ms92×2valid
26.0ms148×1valid
1.0ms16×0valid
Compiler

Compiled 68 to 16 computations (76.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 111.0ms
ival-div: 55.0ms (49.7% of total)
ival-exp: 43.0ms (38.8% of total)
adjust: 5.0ms (4.5% of total)
ival-add: 3.0ms (2.7% of total)
ival-sub: 3.0ms (2.7% of total)
ival-neg: 1.0ms (0.9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series4.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Counts
4 → 48
Calls
Call 1
Inputs
#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())
#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())
#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())
#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())
Outputs
#s(alt x (taylor 0 x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3)))) (taylor 0 x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)))) (taylor 0 x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor 0 x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 2 (* 1/3 (pow x 2)))) (taylor 0 x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 2 (* (pow x 2) (+ 1/3 (* 1/60 (pow x 2)))))) (taylor 0 x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 2 (* (pow x 2) (+ 1/3 (* (pow x 2) (+ 1/60 (* 1/2520 (pow x 2)))))))) (taylor 0 x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ 1 x) (taylor 0 x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* x (+ 1 (* 1/2 x)))) (taylor 0 x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x)))))) (taylor 0 x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1 x)) (taylor 0 x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* x (- (* 1/2 x) 1))) (taylor 0 x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* x (- (* x (+ 1/2 (* -1/6 x))) 1))) (taylor 0 x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (- (exp x) (exp (neg x))) (taylor inf x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (exp x) (exp (neg x))) (taylor inf x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (exp x) (exp (neg x))) (taylor inf x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (exp x) (exp (neg x))) (taylor inf x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt (exp x) (taylor inf x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt (exp x) (taylor inf x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt (exp x) (taylor inf x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt (exp x) (taylor inf x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt (exp (neg x)) (taylor inf x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (exp (neg x)) (taylor inf x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (exp (neg x)) (taylor inf x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (exp (neg x)) (taylor inf x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (patch (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) #<representation binary64>) () ())) ())
#s(alt (- (exp x) (exp (* -1 x))) (taylor -inf x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (exp x) (exp (* -1 x))) (taylor -inf x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (exp x) (exp (* -1 x))) (taylor -inf x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (exp x) (exp (* -1 x))) (taylor -inf x) (#s(alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (patch (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #<representation binary64>) () ())) ())
#s(alt (exp x) (taylor -inf x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt (exp x) (taylor -inf x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt (exp x) (taylor -inf x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt (exp x) (taylor -inf x) (#s(alt (exp.f64 x) (patch (exp.f64 x) #<representation binary64>) () ())) ())
#s(alt (exp (* -1 x)) (taylor -inf x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (exp (* -1 x)) (taylor -inf x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (exp (* -1 x)) (taylor -inf x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (exp (* -1 x)) (taylor -inf x) (#s(alt (exp.f64 (neg.f64 x)) (patch (exp.f64 (neg.f64 x)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (- (exp x) (exp (neg x))) (exp x) (exp (neg x)))
1.0ms
x
@0
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (- (exp x) (exp (neg x))) (exp x) (exp (neg x)))
1.0ms
x
@inf
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (- (exp x) (exp (neg x))) (exp x) (exp (neg x)))

simplify252.0ms (2.6%)

Memory
-1.5MiB live, 36.4MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
077339
1220338
2490332
31296332
42173332
53648332
64347332
75852332
87977332
08013310
Stop Event
iter limit
node limit
Counts
48 → 47
Calls
Call 1
Inputs
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(* 2 x)
(* x (+ 2 (* 1/3 (pow x 2))))
(* x (+ 2 (* (pow x 2) (+ 1/3 (* 1/60 (pow x 2))))))
(* x (+ 2 (* (pow x 2) (+ 1/3 (* (pow x 2) (+ 1/60 (* 1/2520 (pow x 2))))))))
1
(+ 1 x)
(+ 1 (* x (+ 1 (* 1/2 x))))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
1
(+ 1 (* -1 x))
(+ 1 (* x (- (* 1/2 x) 1)))
(+ 1 (* x (- (* x (+ 1/2 (* -1/6 x))) 1)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(- (exp x) (exp (neg x)))
(- (exp x) (exp (neg x)))
(- (exp x) (exp (neg x)))
(- (exp x) (exp (neg x)))
(exp x)
(exp x)
(exp x)
(exp x)
(exp (neg x))
(exp (neg x))
(exp (neg x))
(exp (neg x))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(- (exp x) (exp (* -1 x)))
(- (exp x) (exp (* -1 x)))
(- (exp x) (exp (* -1 x)))
(- (exp x) (exp (* -1 x)))
(exp x)
(exp x)
(exp x)
(exp x)
(exp (* -1 x))
(exp (* -1 x))
(exp (* -1 x))
(exp (* -1 x))
Outputs
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* x (+ 2 (* 1/3 (pow x 2))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) (*.f64 x x) #s(literal 2 binary64)) x)
(* x (+ 2 (* (pow x 2) (+ 1/3 (* 1/60 (pow x 2))))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/60 binary64) (*.f64 x x) #s(literal 1/3 binary64)) (*.f64 x x) #s(literal 2 binary64)) x)
(* x (+ 2 (* (pow x 2) (+ 1/3 (* (pow x 2) (+ 1/60 (* 1/2520 (pow x 2))))))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/2520 binary64) (*.f64 x x) #s(literal 1/60 binary64)) (*.f64 x x) #s(literal 1/3 binary64)) (*.f64 x x) #s(literal 2 binary64)) x)
1
#s(literal 1 binary64)
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(+ 1 (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))
1
#s(literal 1 binary64)
(+ 1 (* -1 x))
(-.f64 #s(literal 1 binary64) x)
(+ 1 (* x (- (* 1/2 x) 1)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64)) x #s(literal 1 binary64))
(+ 1 (* x (- (* x (+ 1/2 (* -1/6 x))) 1)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal -1 binary64)) x #s(literal 1 binary64))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(- (exp x) (exp (neg x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(- (exp x) (exp (neg x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(- (exp x) (exp (neg x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(- (exp x) (exp (neg x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(exp x)
(exp.f64 x)
(exp x)
(exp.f64 x)
(exp x)
(exp.f64 x)
(exp x)
(exp.f64 x)
(exp (neg x))
(exp.f64 (neg.f64 x))
(exp (neg x))
(exp.f64 (neg.f64 x))
(exp (neg x))
(exp.f64 (neg.f64 x))
(exp (neg x))
(exp.f64 (neg.f64 x))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(- (exp x) (exp (* -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(- (exp x) (exp (* -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(- (exp x) (exp (* -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(- (exp x) (exp (* -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(exp x)
(exp.f64 x)
(exp x)
(exp.f64 x)
(exp x)
(exp.f64 x)
(exp x)
(exp.f64 x)
(exp (* -1 x))
(exp.f64 (neg.f64 x))
(exp (* -1 x))
(exp.f64 (neg.f64 x))
(exp (* -1 x))
(exp.f64 (neg.f64 x))
(exp (* -1 x))
(exp.f64 (neg.f64 x))

rewrite440.0ms (4.6%)

Memory
-9.7MiB live, 110.6MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0724
01311
15511
242411
3708011
0806211
Stop Event
iter limit
node limit
iter limit
Counts
4 → 499
Calls
Call 1
Inputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(exp.f64 x)
(exp.f64 (neg.f64 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>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval350.0ms (3.7%)

Memory
28.9MiB live, 145.0MiB allocated
Compiler

Compiled 13 162 to 1 364 computations (89.6% saved)

prune37.0ms (0.4%)

Memory
-5.2MiB live, 32.5MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New5873590
Fresh000
Picked101
Done000
Total5883591
Accuracy
100.0%
Counts
591 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(tanh.f64 x)
97.3%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x))
97.0%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x))
Compiler

Compiled 26 to 19 computations (26.9% saved)

simplify215.0ms (2.3%)

Memory
1.2MiB live, 158.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
cost-diff0
(tanh.f64 x)
cost-diff0
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
cost-diff0
(pow.f64 x #s(literal 3 binary64))
cost-diff0
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
cost-diff0
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x))
cost-diff0
(pow.f64 x #s(literal 3 binary64))
cost-diff0
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
cost-diff0
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020109
03187
17487
216687
338787
497187
5139287
6194987
7315387
8540887
0817887
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(pow.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
#s(literal -1/3 binary64)
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
(pow.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
#s(literal -17/315 binary64)
(*.f64 x x)
#s(literal 2/15 binary64)
#s(literal -1/3 binary64)
(tanh.f64 x)
x
Outputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 #s(literal -1/3 binary64) (pow.f64 x #s(literal 3 binary64)) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(fma.f64 #s(literal -1/3 binary64) (pow.f64 x #s(literal 3 binary64)) x)
(pow.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
#s(literal -1/3 binary64)
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (pow.f64 x #s(literal 3 binary64)) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
(fma.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (pow.f64 x #s(literal 3 binary64)) x)
(pow.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64))
#s(literal -17/315 binary64)
(*.f64 x x)
#s(literal 2/15 binary64)
#s(literal -1/3 binary64)
(tanh.f64 x)
x

localize369.0ms (3.9%)

Memory
3.7MiB live, 248.4MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0.01171875
(tanh.f64 x)
accuracy0.0078125
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
accuracy0.0078125
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
accuracy0.015625
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
accuracy1.7583613602817596
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x))
accuracy0
(pow.f64 x #s(literal 3 binary64))
accuracy0.00390625
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
accuracy1.945754044832756
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x))
Samples
200.0ms148×1valid
129.0ms92×2valid
23.0ms16×0valid
Compiler

Compiled 177 to 38 computations (78.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 250.0ms
ival-exp: 97.0ms (38.7% of total)
const: 62.0ms (24.8% of total)
adjust: 36.0ms (14.4% of total)
ival-mult: 32.0ms (12.8% of total)
ival-add: 11.0ms (4.4% of total)
ival-div: 4.0ms (1.6% of total)
ival-sub: 3.0ms (1.2% of total)
ival-pow: 3.0ms (1.2% of total)
ival-tanh: 1.0ms (0.4% of total)
ival-neg: 1.0ms (0.4% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series21.0ms (0.2%)

Memory
-17.6MiB live, 21.3MiB allocated
Counts
8 → 96
Calls
Call 1
Inputs
#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())
#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())
#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())
#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())
#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())
#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())
#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())
Outputs
#s(alt x (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3)))) (taylor 0 x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)))) (taylor 0 x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt -1/3 (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 2/15 (pow x 2)) 1/3) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3)))) (taylor 0 x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)))) (taylor 0 x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt 2/15 (taylor 0 x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2/15 (* -17/315 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2/15 (* -17/315 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2/15 (* -17/315 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 3)) (taylor inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1/3)) (taylor inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1/3)) (taylor inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1/3)) (taylor inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 7)) (taylor inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 7) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 7) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 7) (- (+ (* 2/15 (/ 1 (pow x 2))) (/ 1 (pow x 6))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 4)) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x)))) (taylor inf x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x)))) (taylor inf x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x)))) (taylor inf x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x)))) (taylor inf x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 2)) (taylor inf x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 3)) (taylor -inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 7)) (taylor -inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 7) (- 17/315 (* 2/15 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 7) (- (+ 17/315 (/ 1/3 (pow x 4))) (* 2/15 (/ 1 (pow x 2)))))) (taylor -inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 7) (- (+ 17/315 (/ 1/3 (pow x 4))) (+ (* 2/15 (/ 1 (pow x 2))) (/ 1 (pow x 6)))))) (taylor -inf x) (#s(alt (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) (patch (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 4)) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x)))) (taylor -inf x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x)))) (taylor -inf x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x)))) (taylor -inf x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x)))) (taylor -inf x) (#s(alt (tanh.f64 x) (patch (tanh.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 2)) (taylor -inf x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (patch (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
12.0ms
x
@-inf
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (+ (* (pow x 3) -1/3) x) (pow x 3) (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (+ (* (pow x 3) (+ (* (+ (* -17/315 (* x x)) 2/15) (* x x)) -1/3)) x) (+ (* (+ (* -17/315 (* x x)) 2/15) (* x x)) -1/3) (tanh x) (+ (* -17/315 (* x x)) 2/15))
3.0ms
x
@inf
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (+ (* (pow x 3) -1/3) x) (pow x 3) (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (+ (* (pow x 3) (+ (* (+ (* -17/315 (* x x)) 2/15) (* x x)) -1/3)) x) (+ (* (+ (* -17/315 (* x x)) 2/15) (* x x)) -1/3) (tanh x) (+ (* -17/315 (* x x)) 2/15))
2.0ms
x
@0
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (+ (* (pow x 3) -1/3) x) (pow x 3) (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (+ (* (pow x 3) (+ (* (+ (* -17/315 (* x x)) 2/15) (* x x)) -1/3)) x) (+ (* (+ (* -17/315 (* x x)) 2/15) (* x x)) -1/3) (tanh x) (+ (* -17/315 (* x x)) 2/15))

simplify158.0ms (1.7%)

Memory
6.2MiB live, 163.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
080944
1205902
2526902
31637902
44306902
56951902
08317849
Stop Event
iter limit
node limit
Counts
96 → 91
Calls
Call 1
Inputs
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* -1/3 (pow x 2))))
(pow x 3)
(pow x 3)
(pow x 3)
(pow x 3)
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
-1/3
(- (* 2/15 (pow x 2)) 1/3)
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
2/15
(+ 2/15 (* -17/315 (pow x 2)))
(+ 2/15 (* -17/315 (pow x 2)))
(+ 2/15 (* -17/315 (pow x 2)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(* -1/3 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(pow x 3)
(pow x 3)
(pow x 3)
(pow x 3)
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(* -17/315 (pow x 7))
(* (pow x 7) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 7) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* (pow x 7) (- (+ (* 2/15 (/ 1 (pow x 2))) (/ 1 (pow x 6))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* -17/315 (pow x 4))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(* -17/315 (pow x 2))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(* -1/3 (pow x 3))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(pow x 3)
(pow x 3)
(pow x 3)
(pow x 3)
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(* -17/315 (pow x 7))
(* -1 (* (pow x 7) (- 17/315 (* 2/15 (/ 1 (pow x 2))))))
(* -1 (* (pow x 7) (- (+ 17/315 (/ 1/3 (pow x 4))) (* 2/15 (/ 1 (pow x 2))))))
(* -1 (* (pow x 7) (- (+ 17/315 (/ 1/3 (pow x 4))) (+ (* 2/15 (/ 1 (pow x 2))) (/ 1 (pow x 6))))))
(* -17/315 (pow x 4))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(* -17/315 (pow x 2))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
Outputs
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
-1/3
#s(literal -1/3 binary64)
(- (* 2/15 (pow x 2)) 1/3)
(fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64))
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
2/15
#s(literal 2/15 binary64)
(+ 2/15 (* -17/315 (pow x 2)))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(+ 2/15 (* -17/315 (pow x 2)))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(+ 2/15 (* -17/315 (pow x 2)))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -17/315 (pow x 7))
(*.f64 (pow.f64 x #s(literal 7 binary64)) #s(literal -17/315 binary64))
(* (pow x 7) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(*.f64 (-.f64 (/.f64 #s(literal 2/15 binary64) (*.f64 x x)) #s(literal 17/315 binary64)) (pow.f64 x #s(literal 7 binary64)))
(* (pow x 7) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(*.f64 (-.f64 (/.f64 #s(literal -1/3 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 #s(literal 17/315 binary64) (/.f64 #s(literal 2/15 binary64) (*.f64 x x)))) (pow.f64 x #s(literal 7 binary64)))
(* (pow x 7) (- (+ (* 2/15 (/ 1 (pow x 2))) (/ 1 (pow x 6))) (+ 17/315 (/ 1/3 (pow x 4)))))
(*.f64 (-.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal 17/315 binary64)) (-.f64 (/.f64 #s(literal -2/15 binary64) (*.f64 x x)) (/.f64 #s(literal -1/3 binary64) (pow.f64 x #s(literal 4 binary64))))) (pow.f64 x #s(literal 7 binary64)))
(* -17/315 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -17/315 binary64))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(*.f64 (*.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) x) x)
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (*.f64 #s(literal 2/15 binary64) x) x (*.f64 (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (pow.f64 x #s(literal 4 binary64))))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (*.f64 #s(literal 2/15 binary64) x) x (*.f64 (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (pow.f64 x #s(literal 4 binary64))))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -17/315 (pow x 2))
(*.f64 #s(literal -17/315 binary64) (*.f64 x x))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -17/315 (pow x 7))
(*.f64 (pow.f64 x #s(literal 7 binary64)) #s(literal -17/315 binary64))
(* -1 (* (pow x 7) (- 17/315 (* 2/15 (/ 1 (pow x 2))))))
(*.f64 (-.f64 (/.f64 #s(literal 2/15 binary64) (*.f64 x x)) #s(literal 17/315 binary64)) (pow.f64 x #s(literal 7 binary64)))
(* -1 (* (pow x 7) (- (+ 17/315 (/ 1/3 (pow x 4))) (* 2/15 (/ 1 (pow x 2))))))
(*.f64 (-.f64 (/.f64 #s(literal -1/3 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 #s(literal 17/315 binary64) (/.f64 #s(literal 2/15 binary64) (*.f64 x x)))) (pow.f64 x #s(literal 7 binary64)))
(* -1 (* (pow x 7) (- (+ 17/315 (/ 1/3 (pow x 4))) (+ (* 2/15 (/ 1 (pow x 2))) (/ 1 (pow x 6))))))
(*.f64 (-.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal 17/315 binary64)) (-.f64 (/.f64 #s(literal -2/15 binary64) (*.f64 x x)) (/.f64 #s(literal -1/3 binary64) (pow.f64 x #s(literal 4 binary64))))) (pow.f64 x #s(literal 7 binary64)))
(* -17/315 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -17/315 binary64))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(*.f64 (*.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) x) x)
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (*.f64 #s(literal 2/15 binary64) x) x (*.f64 (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (pow.f64 x #s(literal 4 binary64))))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (*.f64 #s(literal 2/15 binary64) x) x (*.f64 (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (pow.f64 x #s(literal 4 binary64))))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (/ 1 (exp x))) (+ (exp x) (/ 1 (exp x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -17/315 (pow x 2))
(*.f64 #s(literal -17/315 binary64) (*.f64 x x))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))

rewrite177.0ms (1.9%)

Memory
-3.9MiB live, 317.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02094
03172
115772
2117772
0853572
Stop Event
iter limit
node limit
iter limit
Counts
8 → 385
Calls
Call 1
Inputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(pow.f64 x #s(literal 3 binary64))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(tanh.f64 x)
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 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>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval65.0ms (0.7%)

Memory
23.9MiB live, 180.6MiB allocated
Compiler

Compiled 13 028 to 1 490 computations (88.6% saved)

prune9.0ms (0.1%)

Memory
-0.1MiB live, 38.2MiB allocated
Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New5002502
Fresh000
Picked213
Done000
Total5023505
Accuracy
100.0%
Counts
505 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(tanh.f64 x)
97.3%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
97.0%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))
Compiler

Compiled 30 to 18 computations (40% saved)

simplify215.0ms (2.3%)

Memory
-22.6MiB live, 259.7MiB allocated
Algorithm
egg-herbie
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64))
cost-diff0
(fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
cost-diff0
(*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x))
cost-diff0
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
cost-diff-5824
(fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)
cost-diff0
(*.f64 x x)
cost-diff0
(*.f64 #s(literal -1/3 binary64) (*.f64 x x))
cost-diff0
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019129
030129
167129
2127125
3273125
4650125
51443125
62006125
72764125
83801125
95027125
105613125
115876125
126481125
137553125
08466121
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))
(fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)
(*.f64 #s(literal -1/3 binary64) (*.f64 x x))
#s(literal -1/3 binary64)
(*.f64 x x)
x
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
(fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)
(*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x))
(fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64))
(*.f64 x x)
x
#s(literal -17/315 binary64)
#s(literal 2/15 binary64)
#s(literal -1/3 binary64)
Outputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x))
(fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(*.f64 #s(literal -1/3 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
#s(literal -1/3 binary64)
(*.f64 x x)
x
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 7 binary64)) #s(literal -17/315 binary64) (fma.f64 (fma.f64 (*.f64 #s(literal 2/15 binary64) x) x #s(literal -1/3 binary64)) (pow.f64 x #s(literal 3 binary64)) x)))
(fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)
(fma.f64 (pow.f64 x #s(literal 7 binary64)) #s(literal -17/315 binary64) (fma.f64 (fma.f64 (*.f64 #s(literal 2/15 binary64) x) x #s(literal -1/3 binary64)) (pow.f64 x #s(literal 3 binary64)) x))
(*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) x)
(fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(*.f64 x x)
x
#s(literal -17/315 binary64)
#s(literal 2/15 binary64)
#s(literal -1/3 binary64)

localize159.0ms (1.7%)

Memory
16.2MiB live, 340.8MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0.0078125
(fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
accuracy0.015625
(fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64))
accuracy0.20703125
(*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x))
accuracy1.7583613602817596
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
accuracy0
(*.f64 x x)
accuracy0.0078125
(fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)
accuracy0.203125
(*.f64 #s(literal -1/3 binary64) (*.f64 x x))
accuracy1.945754044832756
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))
Samples
72.0ms92×2valid
66.0ms148×1valid
3.0ms16×0valid
Compiler

Compiled 215 to 36 computations (83.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 121.0ms
ival-exp: 47.0ms (38.9% of total)
ival-mult: 19.0ms (15.7% of total)
const: 17.0ms (14.1% of total)
adjust: 14.0ms (11.6% of total)
ival-add: 11.0ms (9.1% of total)
ival-div: 8.0ms (6.6% of total)
ival-sub: 3.0ms (2.5% of total)
ival-neg: 1.0ms (0.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series12.0ms (0.1%)

Memory
-15.6MiB live, 22.6MiB allocated
Counts
8 → 96
Calls
Call 1
Inputs
#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())
#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())
#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())
#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())
#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())
#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())
Outputs
#s(alt x (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt -1/3 (taylor 0 x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 2/15 (pow x 2)) 1/3) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt 2/15 (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2/15 (* -17/315 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2/15 (* -17/315 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2/15 (* -17/315 (pow x 2))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 3)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1/3)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1/3)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1/3)) (taylor inf x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 6)) (taylor inf x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 4)) (taylor inf x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 2)) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) (patch (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 3)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) (patch (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 6)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 4)) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 2)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (patch (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
5.0ms
x
@-inf
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* -1/3 (* x x)) (* x x) (+ (* (* -1/3 (* x x)) x) x) (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (* x x)) (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (+ (* (* x x) -17/315) 2/15))
3.0ms
x
@inf
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* -1/3 (* x x)) (* x x) (+ (* (* -1/3 (* x x)) x) x) (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (* x x)) (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (+ (* (* x x) -17/315) 2/15))
1.0ms
x
@0
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* -1/3 (* x x)) (* x x) (+ (* (* -1/3 (* x x)) x) x) (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (* x x)) (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (+ (* (* x x) -17/315) 2/15))

simplify105.0ms (1.1%)

Memory
13.0MiB live, 168.4MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
061830
1146800
2332800
3991800
42536800
55103800
08091744
Stop Event
iter limit
node limit
Counts
96 → 93
Calls
Call 1
Inputs
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* -1/3 (pow x 2))))
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(* -1/3 (pow x 2))
(* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))
(* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))
(* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))
-1/3
(- (* 2/15 (pow x 2)) 1/3)
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
2/15
(+ 2/15 (* -17/315 (pow x 2)))
(+ 2/15 (* -17/315 (pow x 2)))
(+ 2/15 (* -17/315 (pow x 2)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* -1/3 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(* -17/315 (pow x 6))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* -17/315 (pow x 4))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* -17/315 (pow x 2))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* -1/3 (pow x 3))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(* -17/315 (pow x 6))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* -17/315 (pow x 4))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* -17/315 (pow x 2))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
Outputs
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))
(*.f64 (*.f64 (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64)) x) x)
(* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) x)
(* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) x)
-1/3
#s(literal -1/3 binary64)
(- (* 2/15 (pow x 2)) 1/3)
(fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64))
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
2/15
#s(literal 2/15 binary64)
(+ 2/15 (* -17/315 (pow x 2)))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(+ 2/15 (* -17/315 (pow x 2)))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(+ 2/15 (* -17/315 (pow x 2)))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* -1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -17/315 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -17/315 binary64))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -17/315 binary64) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* -17/315 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -17/315 binary64))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(*.f64 (*.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) x) x)
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(* -17/315 (pow x 2))
(*.f64 #s(literal -17/315 binary64) (*.f64 x x))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* -1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -17/315 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -17/315 binary64))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -17/315 binary64) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* -17/315 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -17/315 binary64))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(*.f64 (*.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) x) x)
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(* -17/315 (pow x 2))
(*.f64 #s(literal -17/315 binary64) (*.f64 x x))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))

rewrite167.0ms (1.8%)

Memory
-6.0MiB live, 316.8MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019102
03080
114777
2110577
0833574
Stop Event
iter limit
node limit
iter limit
Counts
8 → 218
Calls
Call 1
Inputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))
(*.f64 #s(literal -1/3 binary64) (*.f64 x x))
(*.f64 x x)
(fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x)
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
(*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x))
(fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 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>

eval47.0ms (0.5%)

Memory
3.0MiB live, 124.0MiB allocated
Compiler

Compiled 8 797 to 1 147 computations (87% saved)

prune20.0ms (0.2%)

Memory
15.1MiB live, 53.7MiB allocated
Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New3632365
Fresh000
Picked112
Done011
Total3644368
Accuracy
100.0%
Counts
368 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(tanh.f64 x)
97.3%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
97.4%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
97.0%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x))
Compiler

Compiled 45 to 27 computations (40% saved)

simplify179.0ms (1.9%)

Memory
13.6MiB live, 208.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64))
cost-diff0
(fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
cost-diff0
(*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x))
cost-diff0
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
cost-diff-5824
(fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)
cost-diff0
(*.f64 x #s(literal -1/3 binary64))
cost-diff0
(*.f64 (*.f64 x #s(literal -1/3 binary64)) x)
cost-diff0
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023143
033143
170143
2122139
3209139
4346139
5589139
6886139
71356139
82128139
93490139
106176139
08055130
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x))
(fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)
(*.f64 (*.f64 x #s(literal -1/3 binary64)) x)
(*.f64 x #s(literal -1/3 binary64))
x
#s(literal -1/3 binary64)
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
(fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)
(*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x))
(fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
#s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64))
#s(literal 2/15 binary64)
(*.f64 x x)
x
#s(literal -1/3 binary64)
Outputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x))
(fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(*.f64 (*.f64 x #s(literal -1/3 binary64)) x)
(*.f64 (*.f64 #s(literal -1/3 binary64) x) x)
(*.f64 x #s(literal -1/3 binary64))
(*.f64 #s(literal -1/3 binary64) x)
x
#s(literal -1/3 binary64)
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 5 binary64)) #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)))
(fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)
(fma.f64 (pow.f64 x #s(literal 5 binary64)) #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x))
(*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x))
(*.f64 (*.f64 (fma.f64 (*.f64 x x) #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #s(literal -1/3 binary64)) x) x)
(fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(fma.f64 (*.f64 x x) #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #s(literal -1/3 binary64))
#s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64))
#s(literal 2/15 binary64)
(*.f64 x x)
x
#s(literal -1/3 binary64)

localize177.0ms (1.9%)

Memory
-8.2MiB live, 356.4MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0.0078125
(fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
accuracy0.20703125
(*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x))
accuracy1.7583613602817596
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
accuracy2.269428587214888
#s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64))
accuracy0.0078125
(fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)
accuracy0.125
(*.f64 (*.f64 x #s(literal -1/3 binary64)) x)
accuracy0.34375
(*.f64 x #s(literal -1/3 binary64))
accuracy1.945754044832756
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x))
Samples
93.0ms148×1valid
62.0ms92×2valid
3.0ms16×0valid
Compiler

Compiled 193 to 37 computations (80.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 140.0ms
ival-exp: 40.0ms (28.7% of total)
const: 40.0ms (28.7% of total)
ival-mult: 27.0ms (19.3% of total)
adjust: 14.0ms (10% of total)
ival-add: 11.0ms (7.9% of total)
ival-div: 4.0ms (2.9% of total)
ival-sub: 3.0ms (2.1% of total)
ival-neg: 1.0ms (0.7% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series10.0ms (0.1%)

Memory
-17.5MiB live, 21.3MiB allocated
Counts
8 → 96
Calls
Call 1
Inputs
#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())
#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())
#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())
#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())
#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())
#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())
Outputs
#s(alt x (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor 0 x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor 0 x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor 0 x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor 0 x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1/3 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)))) (taylor 0 x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt -1/3 (taylor 0 x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 2/15 (pow x 2)) 1/3) (taylor 0 x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3) (taylor 0 x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3) (taylor 0 x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt 2/15 (taylor 0 x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2/15 (* -17/315 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2/15 (* -17/315 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2/15 (* -17/315 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor inf x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor inf x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor inf x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor inf x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 3)) (taylor inf x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1/3)) (taylor inf x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1/3)) (taylor inf x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1/3)) (taylor inf x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (taylor inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 6)) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 4)) (taylor inf x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor inf x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 2)) (taylor inf x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor inf x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) (patch (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor -inf x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor -inf x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor -inf x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 x) (taylor -inf x) (#s(alt (*.f64 x #s(literal -1/3 binary64)) (patch (*.f64 x #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/3 (pow x 3)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) (patch (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x)))) (taylor -inf x) (#s(alt #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) (patch #s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 6)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) (patch (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 4)) (taylor -inf x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor -inf x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4))))) (taylor -inf x) (#s(alt (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (patch (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -17/315 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315)) (taylor -inf x) (#s(alt #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (patch #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
4.0ms
x
@inf
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* (* x -1/3) x) (* x -1/3) (+ (* (* (* x -1/3) x) x) x) (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (* x x)) (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (+ (* (* x x) -17/315) 2/15))
2.0ms
x
@-inf
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* (* x -1/3) x) (* x -1/3) (+ (* (* (* x -1/3) x) x) x) (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (* x x)) (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (+ (* (* x x) -17/315) 2/15))
1.0ms
x
@0
((/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* (* x -1/3) x) (* x -1/3) (+ (* (* (* x -1/3) x) x) x) (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (* (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (* x x)) (+ (* (+ (* (* x x) -17/315) 2/15) (* x x)) -1/3) (+ (* (* x x) -17/315) 2/15))

simplify102.0ms (1.1%)

Memory
11.7MiB live, 168.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
062830
1148800
2330800
3971800
42505800
55083800
08114744
Stop Event
iter limit
node limit
Counts
96 → 93
Calls
Call 1
Inputs
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 x)
(* -1/3 x)
(* -1/3 x)
(* -1/3 x)
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* -1/3 (pow x 2))))
x
(* x (+ 1 (* -1/3 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(* -1/3 (pow x 2))
(* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))
(* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))
(* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))
-1/3
(- (* 2/15 (pow x 2)) 1/3)
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
2/15
(+ 2/15 (* -17/315 (pow x 2)))
(+ 2/15 (* -17/315 (pow x 2)))
(+ 2/15 (* -17/315 (pow x 2)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 x)
(* -1/3 x)
(* -1/3 x)
(* -1/3 x)
(* -1/3 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(* -17/315 (pow x 6))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* -17/315 (pow x 4))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* -17/315 (pow x 2))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 (pow x 2))
(* -1/3 x)
(* -1/3 x)
(* -1/3 x)
(* -1/3 x)
(* -1/3 (pow x 3))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(* -17/315 (pow x 6))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* -17/315 (pow x 4))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(* -17/315 (pow x 2))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
Outputs
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
x
(* x (+ 1 (* -1/3 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* x (+ 1 (* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x)
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* (pow x 2) (- (* 2/15 (pow x 2)) 1/3))
(*.f64 (*.f64 (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64)) x) x)
(* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) x)
(* (pow x 2) (- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x) x)
-1/3
#s(literal -1/3 binary64)
(- (* 2/15 (pow x 2)) 1/3)
(fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal -1/3 binary64))
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(- (* (pow x 2) (+ 2/15 (* -17/315 (pow x 2)))) 1/3)
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
2/15
#s(literal 2/15 binary64)
(+ 2/15 (* -17/315 (pow x 2)))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(+ 2/15 (* -17/315 (pow x 2)))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(+ 2/15 (* -17/315 (pow x 2)))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
(* -1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* (pow x 3) (- (/ 1 (pow x 2)) 1/3))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -17/315 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -17/315 binary64))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -17/315 binary64) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* -17/315 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -17/315 binary64))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(*.f64 (*.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) x) x)
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(* -17/315 (pow x 2))
(*.f64 #s(literal -17/315 binary64) (*.f64 x x))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/3 binary64))
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
(* -1/3 x)
(*.f64 #s(literal -1/3 binary64) x)
(* -1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64))
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(* -1 (* (pow x 3) (- 1/3 (/ 1 (pow x 2)))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x)
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/ (- (exp x) (exp (* -1 x))) (+ (exp x) (exp (* -1 x))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(* -17/315 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -17/315 binary64))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal -17/315 binary64) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* (pow x 6) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (pow.f64 x #s(literal 6 binary64)) (-.f64 #s(literal -17/315 binary64) (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 4 binary64)))) (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2/15 binary64)))
(* -17/315 (pow x 4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -17/315 binary64))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(*.f64 (*.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) x) x)
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(* (pow x 4) (- (* 2/15 (/ 1 (pow x 2))) (+ 17/315 (/ 1/3 (pow x 4)))))
(fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
(* -17/315 (pow x 2))
(*.f64 #s(literal -17/315 binary64) (*.f64 x x))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))
(* (pow x 2) (- (* 2/15 (/ 1 (pow x 2))) 17/315))
(fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64))

rewrite120.0ms (1.3%)

Memory
0.4MiB live, 196.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023114
03392
115089
2108689
0848982
Stop Event
iter limit
node limit
iter limit
Counts
8 → 139
Calls
Call 1
Inputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x))
(*.f64 (*.f64 x #s(literal -1/3 binary64)) x)
(*.f64 x #s(literal -1/3 binary64))
(fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x)
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
(*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x))
(fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64))
#s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 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>

eval48.0ms (0.5%)

Memory
8.2MiB live, 93.2MiB allocated
Compiler

Compiled 5 187 to 715 computations (86.2% saved)

prune23.0ms (0.2%)

Memory
-30.5MiB live, 48.0MiB allocated
Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New2293232
Fresh000
Picked112
Done022
Total2306236
Accuracy
100.0%
Counts
236 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(tanh.f64 x)
97.4%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (/.f64 (*.f64 x x) (/.f64 #s(literal 1 binary64) (fma.f64 (*.f64 x x) #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #s(literal -1/3 binary64)))) x x))
97.3%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
97.4%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (*.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) x) x #s(literal -1/3 binary64)) (*.f64 x x)) x x))
97.4%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (+.f64 (*.f64 (*.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) x) x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
97.0%
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x))
Compiler

Compiled 217 to 103 computations (52.5% saved)

regimes7.0ms (0.1%)

Memory
12.8MiB live, 12.8MiB allocated
Counts
11 → 1
Calls
Call 1
Inputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (*.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) x) x #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (+.f64 (*.f64 (*.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) x) x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (/.f64 (*.f64 x x) (/.f64 #s(literal 1 binary64) (fma.f64 (*.f64 x x) #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #s(literal -1/3 binary64)))) x x))
(tanh.f64 x)
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/3 binary64) x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) x))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
(tanh.f64 x)
Calls

2 calls:

3.0ms
x
3.0ms
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 14 to 8 computations (42.9% saved)

regimes5.0ms (0.1%)

Memory
10.0MiB live, 10.0MiB allocated
Counts
7 → 1
Calls
Call 1
Inputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (*.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) x) x #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (+.f64 (*.f64 (*.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) x) x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 x x) #s(literal -17/315 binary64) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (/.f64 (*.f64 x x) (/.f64 #s(literal 1 binary64) (fma.f64 (*.f64 x x) #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) #s(literal -1/3 binary64)))) x x))
Outputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
Calls

2 calls:

3.0ms
x
2.0ms
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Results
AccuracySegmentsBranch
97.4%1x
97.4%1(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 14 to 8 computations (42.9% saved)

regimes3.0ms (0%)

Memory
6.8MiB live, 6.8MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (*.f64 x #s(literal -1/3 binary64)) x) x x))
Outputs
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))
Calls

2 calls:

1.0ms
x
1.0ms
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Results
AccuracySegmentsBranch
97.0%1x
97.0%1(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 14 to 8 computations (42.9% saved)

simplify24.0ms (0.3%)

Memory
8.8MiB live, 47.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02359
12559
Stop Event
saturated
Calls
Call 1
Inputs
(tanh.f64 x)
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))
Outputs
(tanh.f64 x)
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 (fma.f64 #s(approx (+ (* (* x x) -17/315) 2/15) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal -1/3 binary64)) (*.f64 x x)) x x))
#s(approx (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) (fma.f64 (*.f64 #s(literal -1/3 binary64) (*.f64 x x)) x x))

soundness691.0ms (7.2%)

Memory
-34.5MiB live, 563.8MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
077339
1220338
2490332
31296332
42173332
53648332
64347332
75852332
87977332
08013310
0724
01311
15511
242411
3708011
0806211
02094
03172
115772
2117772
0853572
061830
1146800
2332800
3991800
42536800
55103800
08091744
Stop Event
fuel
iter limit
node limit
iter limit
node limit
iter limit
iter limit
node limit
iter limit
iter limit
node limit
Compiler

Compiled 101 to 61 computations (39.6% saved)

preprocess29.0ms (0.3%)

Memory
30.4MiB live, 69.2MiB allocated
Remove

(negabs x)

Compiler

Compiled 82 to 44 computations (46.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...