Average Error: 58.0 → 0.7
Time: 21.2s
Precision: 64
Internal Precision: 128
\[\frac{e^{x} - e^{-x}}{2}\]
\[\frac{2 \cdot x + \left({x}^{5} \cdot \frac{1}{60} + \frac{1}{3} \cdot {x}^{3}\right)}{2}\]

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 58.0

    \[\frac{e^{x} - e^{-x}}{2}\]
  2. Taylor expanded around 0 0.7

    \[\leadsto \frac{\color{blue}{2 \cdot x + \left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right)}}{2}\]
  3. Final simplification0.7

    \[\leadsto \frac{2 \cdot x + \left({x}^{5} \cdot \frac{1}{60} + \frac{1}{3} \cdot {x}^{3}\right)}{2}\]

Reproduce

herbie shell --seed 2018362 
(FPCore (x)
  :name "Hyperbolic sine"
  (/ (- (exp x) (exp (- x))) 2))

Details

Time bar (total: 12.9s)Debug log

start199.0ms

Algorithm
intervals

setup27.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 58.7b

localize48.0ms

Local error

Found 1 expressions with local error:

7.2b
(- (exp x) (exp (- x)))

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
1 → 14
Calls

1 calls. Slowest were:

8.0ms
(- (exp x) (exp (- x)))

series63.0ms

Counts
1 → 3
Calls

1 calls. Slowest were:

63.0ms
(- (exp x) (exp (- x)))

simplify434.0ms

Counts
7 → 17
Calls

7 calls. Slowest were:

325.0ms
(- (exp x) (exp (- x)))
49.0ms
(+ (* 2 x) (+ (* 1/3 (pow x 3)) (* 1/60 (pow x 5))))
24.0ms
(/ (exp (exp x)) (exp (exp (- x))))

prune187.0ms

Pruning

3 alts after pruning (3 fresh and 0 done)

Merged error: 0.0b

localize42.0ms

Local error

Found 2 expressions with local error:

0.1b
(* 1/3 (pow x 3))
0.1b
(* 1/60 (pow x 5))

rewrite5.0ms

Algorithm
rewrite-expression-head
Counts
2 → 24
Calls

2 calls. Slowest were:

2.0ms
(* 1/3 (pow x 3))
2.0ms
(* 1/60 (pow x 5))

series65.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

34.0ms
(* 1/60 (pow x 5))
31.0ms
(* 1/3 (pow x 3))

simplify56.0ms

Counts
13 → 30
Calls

13 calls. Slowest were:

10.0ms
(* 1/3 (pow x 3))
10.0ms
(* 1/3 (pow x 3))
10.0ms
(* 1/3 (pow x 3))

prune477.0ms

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0.0b

localize28.0ms

Local error

Found 4 expressions with local error:

7.2b
(- (* (exp x) (exp x)) (* (exp (- x)) (exp (- x))))
0.0b
(* (exp x) (exp x))
0.0b
(* (exp (- x)) (exp (- x)))
0.0b
(+ (exp x) (exp (- x)))

rewrite24.0ms

Algorithm
rewrite-expression-head
Counts
4 → 82
Calls

4 calls. Slowest were:

10.0ms
(* (exp (- x)) (exp (- x)))
6.0ms
(- (* (exp x) (exp x)) (* (exp (- x)) (exp (- x))))
4.0ms
(+ (exp x) (exp (- x)))

series125.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

68.0ms
(- (* (exp x) (exp x)) (* (exp (- x)) (exp (- x))))
36.0ms
(+ (exp x) (exp (- x)))
11.0ms
(* (exp (- x)) (exp (- x)))
9.0ms
(* (exp x) (exp x))

simplify1.2s

Counts
67 → 94
Calls

67 calls. Slowest were:

280.0ms
(* (* (* (exp (- x)) (exp (- x))) (exp (- x))) (* (* (exp (- x)) (exp (- x))) (exp (- x))))
177.0ms
(/ (exp (* (exp x) (exp x))) (exp (* (exp (- x)) (exp (- x)))))
159.0ms
(- (pow (exp x) 2) (pow (exp (- x)) 2))

prune515.0ms

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0.0b

localize22.0ms

Local error

Found 4 expressions with local error:

7.1b
(- (* (* (exp x) (exp x)) (* (exp x) (exp x))) (* (* (exp (- x)) (exp (- x))) (* (exp (- x)) (exp (- x)))))
0.0b
(* (* (exp (- x)) (exp (- x))) (* (exp (- x)) (exp (- x))))
0.0b
(* (exp x) (exp x))
0.0b
(* (exp x) (exp x))

rewrite84.0ms

Algorithm
rewrite-expression-head
Counts
4 → 211
Calls

4 calls. Slowest were:

43.0ms
(* (* (exp (- x)) (exp (- x))) (* (exp (- x)) (exp (- x))))
28.0ms
(- (* (* (exp x) (exp x)) (* (exp x) (exp x))) (* (* (exp (- x)) (exp (- x))) (* (exp (- x)) (exp (- x)))))
4.0ms
(* (exp x) (exp x))

series127.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

90.0ms
(- (* (* (exp x) (exp x)) (* (exp x) (exp x))) (* (* (exp (- x)) (exp (- x))) (* (exp (- x)) (exp (- x)))))
16.0ms
(* (* (exp (- x)) (exp (- x))) (* (exp (- x)) (exp (- x))))
11.0ms
(* (exp x) (exp x))
9.0ms
(* (exp x) (exp x))

simplify7.7s

Counts
299 → 223
Calls

299 calls. Slowest were:

348.0ms
(+ (log (* (exp (- x)) (exp (- x)))) (log (* (exp (- x)) (exp (- x)))))
300.0ms
(* (* (exp 0) (exp (- x))) (* (exp (- x)) (exp (- x))))
293.0ms
(+ (+ (- x) (- x)) (log (* (exp (- x)) (exp (- x)))))

prune1.3s

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0.0b

regimes118.0ms

Accuracy

0% (0.7b remaining)

Error of 0.7b against oracle of 0.0b and baseline of 0.7b

bsearch2.0ms