Average Error: 15.2 → 1.3
Time: 1.6m
Precision: 64
Internal Precision: 128
\[\cos \left(\frac{K \cdot \left(m + n\right)}{2} - M\right) \cdot e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}\]
\[e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}\]

Error

Bits error versus K

Bits error versus m

Bits error versus n

Bits error versus M

Bits error versus l

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 15.2

    \[\cos \left(\frac{K \cdot \left(m + n\right)}{2} - M\right) \cdot e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}\]
  2. Taylor expanded around 0 1.3

    \[\leadsto \color{blue}{1} \cdot e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}\]
  3. Final simplification1.3

    \[\leadsto e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}\]

Reproduce

herbie shell --seed 2018365 +o rules:numerics
(FPCore (K m n M l)
  :name "Maksimov and Kolovsky, Equation (32)"
  (* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))))

Details

Time bar (total: 1.5m)Debug log

start147.0ms

Algorithm
intervals

setup191.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 16.2b

localize88.0ms

Local error

Found 4 expressions with local error:

35.5b
(cos (- (/ (* K (+ m n)) 2) M))
0.0b
(pow (- (/ (+ m n) 2) M) 2)
0.0b
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
0.0b
(* K (+ m n))

rewrite191.0ms

Algorithm
rewrite-expression-head
Counts
4 → 139
Calls

4 calls. Slowest were:

165.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
12.0ms
(cos (- (/ (* K (+ m n)) 2) M))
10.0ms
(pow (- (/ (+ m n) 2) M) 2)

series295.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

138.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
73.0ms
(cos (- (/ (* K (+ m n)) 2) M))
66.0ms
(pow (- (/ (+ m n) 2) M) 2)
16.0ms
(* K (+ m n))

simplify37.1s

Counts
159 → 151
Calls

159 calls. Slowest were:

722.0ms
(fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1))
680.0ms
(fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1))
679.0ms
(fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1))

prune3.1s

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.6b

localize5.0ms

Local error

Found 3 expressions with local error:

0.0b
(pow (- (/ (+ m n) 2) M) 2)
0.0b
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
0.0b
(- (/ (+ m n) 2) M)

rewrite157.0ms

Algorithm
rewrite-expression-head
Counts
3 → 127
Calls

3 calls. Slowest were:

144.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
5.0ms
(pow (- (/ (+ m n) 2) M) 2)
5.0ms
(- (/ (+ m n) 2) M)

series197.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

117.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
57.0ms
(pow (- (/ (+ m n) 2) M) 2)
23.0ms
(- (/ (+ m n) 2) M)

simplify34.4s

Counts
149 → 136
Calls

149 calls. Slowest were:

712.0ms
(fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1))
701.0ms
(fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1))
691.0ms
(fma (- (- l (fabs (- m n)))) 1 (* (- l (fabs (- m n))) 1))

prune2.4s

Pruning

2 alts after pruning (1 fresh and 1 done)

Merged error: 0.6b

localize35.0ms

Local error

Found 4 expressions with local error:

17.8b
(cos (- (/ (expm1 (log1p (* K (+ m n)))) 2) M))
7.0b
(log1p (* K (+ m n)))
1.5b
(expm1 (log1p (* K (+ m n))))
0.0b
(pow (- (/ (+ m n) 2) M) 2)

rewrite27.0ms

Algorithm
rewrite-expression-head
Counts
4 → 50
Calls

4 calls. Slowest were:

14.0ms
(cos (- (/ (expm1 (log1p (* K (+ m n)))) 2) M))
10.0ms
(pow (- (/ (+ m n) 2) M) 2)
1.0ms
(log1p (* K (+ m n)))

series633.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

345.0ms
(cos (- (/ (expm1 (log1p (* K (+ m n)))) 2) M))
128.0ms
(expm1 (log1p (* K (+ m n))))
95.0ms
(log1p (* K (+ m n)))
65.0ms
(pow (- (/ (+ m n) 2) M) 2)

simplify4.1s

Counts
21 → 62
Calls

21 calls. Slowest were:

1.5s
(- (cos (- (* 1/2 (exp (- (+ (log (/ 1 m)) (log (/ 1 K)))))) (+ M 1/2))) (* 1/2 (/ (* (exp (- (+ (log (/ 1 m)) (log (/ 1 K))))) (sin (- (* 1/2 (exp (- (+ (log (/ 1 m)) (log (/ 1 K)))))) (+ M 1/2)))) (* m K))))
749.0ms
(- (+ (exp (- (+ (log (/ 1 m)) (log (/ 1 K))))) (/ (exp (- (+ (log (/ 1 m)) (log (/ 1 K))))) (* m K))) 1)
748.0ms
(- (+ (/ (exp (- (+ (log (/ -1 m)) (log (/ -1 K))))) (* m K)) (exp (- (+ (log (/ -1 m)) (log (/ -1 K)))))) 1)

prune1.4s

Pruning

2 alts after pruning (1 fresh and 1 done)

Merged error: 0.6b

localize21.0ms

Local error

Found 4 expressions with local error:

17.9b
(cos (- (/ (expm1 (* (sqrt (log1p (* K (+ m n)))) (sqrt (log1p (* K (+ m n)))))) 2) M))
7.0b
(log1p (* K (+ m n)))
7.0b
(log1p (* K (+ m n)))
2.2b
(sqrt (log1p (* K (+ m n))))

rewrite17.0ms

Algorithm
rewrite-expression-head
Counts
4 → 48
Calls

4 calls. Slowest were:

13.0ms
(cos (- (/ (expm1 (* (sqrt (log1p (* K (+ m n)))) (sqrt (log1p (* K (+ m n)))))) 2) M))
1.0ms
(sqrt (log1p (* K (+ m n))))
1.0ms
(log1p (* K (+ m n)))

series963.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

438.0ms
(sqrt (log1p (* K (+ m n))))
370.0ms
(cos (- (/ (expm1 (* (sqrt (log1p (* K (+ m n)))) (sqrt (log1p (* K (+ m n)))))) 2) M))
81.0ms
(log1p (* K (+ m n)))
74.0ms
(log1p (* K (+ m n)))

simplify3.0s

Counts
21 → 60
Calls

21 calls. Slowest were:

1.6s
(- (cos (- (* 1/2 (exp (- (+ (log (/ 1 m)) (log (/ 1 K)))))) (+ M 1/2))) (* 1/2 (/ (* (exp (- (+ (log (/ 1 m)) (log (/ 1 K))))) (sin (- (* 1/2 (exp (- (+ (log (/ 1 m)) (log (/ 1 K)))))) (+ M 1/2)))) (* m K))))
309.0ms
(+ (* 1/2 (/ (sqrt (/ -1 (+ (log (/ -1 m)) (log (/ -1 K))))) (* m K))) (sqrt (- (+ (log (/ -1 m)) (log (/ -1 K))))))
274.0ms
(- (/ 1 (* m K)) (+ (log (/ -1 m)) (log (/ -1 K))))

prune1.5s

Pruning

2 alts after pruning (1 fresh and 1 done)

Merged error: 0.6b

regimes257.0ms

Accuracy

0% (0.1b remaining)

Error of 1.3b against oracle of 1.2b and baseline of 1.3b

bsearch2.0ms