Average Error: 15.3 → 1.5
Time: 1.3m
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.3

    \[\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.5

    \[\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.5

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

Reproduce

herbie shell --seed 2019022 
(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.3m)Debug log

sample104.0ms

Algorithm
intervals
Results
60.0ms260×body80valid
17.0msbody1280valid
4.0msbody320valid
2.0msbody640valid
2.0msbody160valid

simplify104.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
104.0ms
(* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))))

prune11.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 14.2b

localize79.0ms

Local error

Found 4 expressions with local error:

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

rewrite163.0ms

Algorithm
rewrite-expression-head
Rules
10×*-un-lft-identity
add-log-exp
add-sqr-sqrt
add-cube-cbrt
add-exp-log
pow1
add-cbrt-cube
associate-*r*
unpow-prod-down
sub-neg
distribute-lft-out--
associate--r+
associate-*r/
diff-log
cos-sum
difference-of-squares
associate--r-
unpow2
flip--
flip-+
*-commutative
pow-exp
neg-log
flip3--
flip3-+
distribute-lft-in
distribute-rgt-neg-in
pow-pow
pow-to-exp
cos-diff
distribute-rgt-in
neg-sub0
associate--l-
Counts
4 → 59
Calls
4 calls:
Slowest
145.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
10.0ms
(pow (- (/ (+ m n) 2) M) 2)
6.0ms
(cos (- (/ (* K (+ m n)) 2) M))
1.0ms
(* K (+ m n))

series293.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
124.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
83.0ms
(cos (- (/ (* K (+ m n)) 2) M))
61.0ms
(pow (- (/ (+ m n) 2) M) 2)
26.0ms
(* K (+ m n))

simplify2.8s

Counts
36 → 71
Calls
36 calls:
Slowest
620.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
361.0ms
(/ (/ 1 (exp (pow (- (/ (+ m n) 2) M) 2))) (exp (- l (fabs (- m n)))))
253.0ms
(- (sqrt (- (pow (- (/ (+ m n) 2) M) 2))) (sqrt (- l (fabs (- m n)))))
246.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
217.0ms
(/ (exp (- (pow (- (/ (+ m n) 2) M) 2))) (exp (- l (fabs (- m n)))))

prune1.2s

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0.8b

localize6.0ms

Local error

Found 2 expressions with local error:

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

rewrite136.0ms

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity
add-log-exp
add-sqr-sqrt
add-cube-cbrt
add-exp-log
unpow-prod-down
pow1
distribute-lft-out--
associate--r+
diff-log
add-cbrt-cube
sub-neg
difference-of-squares
associate--r-
unpow2
flip--
pow-exp
neg-log
flip3--
distribute-rgt-neg-in
pow-pow
pow-to-exp
neg-sub0
associate--l-
Counts
2 → 34
Calls
2 calls:
Slowest
131.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
5.0ms
(pow (- (/ (+ m n) 2) M) 2)

series155.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
105.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
50.0ms
(pow (- (/ (+ m n) 2) M) 2)

simplify2.0s

Counts
20 → 40
Calls
20 calls:
Slowest
322.0ms
(/ (/ 1 (exp (pow (- (/ (+ m n) 2) M) 2))) (exp (- l (fabs (- m n)))))
243.0ms
(/ (exp (- (pow (- (/ (+ m n) 2) M) 2))) (exp (- l (fabs (- m n)))))
234.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
226.0ms
(- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n))))
226.0ms
(- (sqrt (- (pow (- (/ (+ m n) 2) M) 2))) (sqrt (- l (fabs (- m n)))))

prune608.0ms

Pruning

3 alts after pruning (1 fresh and 2 done)

Merged error: 0.8b

localize23.0ms

Local error

Found 4 expressions with local error:

33.1b
(cos (- (/ (cbrt (* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n)))) 2) M))
27.4b
(cbrt (* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n))))
0.3b
(* (* K (+ m n)) (* K (+ m n)))
0.1b
(* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n)))

rewrite56.0ms

Algorithm
rewrite-expression-head
Rules
138×associate-*r/
60×flip-+
60×flip3-+
60×frac-times
30×associate-*l/
26×cbrt-div
23×pow1
11×add-exp-log
11×add-cbrt-cube
distribute-lft-in
distribute-rgt-in
pow-prod-up
pow-plus
add-log-exp
cbrt-unprod
add-cube-cbrt
prod-exp
pow-prod-down
*-un-lft-identity
add-sqr-sqrt
pow2
*-commutative
pow3
associate-*l*
associate-*r*
cos-sum
rem-cbrt-cube
pow1/3
sub-neg
cos-diff
cbrt-prod
Counts
4 → 127
Calls
4 calls:
Slowest
22.0ms
(cbrt (* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n))))
17.0ms
(* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n)))
7.0ms
(* (* K (+ m n)) (* K (+ m n)))
7.0ms
(cos (- (/ (cbrt (* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n)))) 2) M))

series155.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
66.0ms
(cos (- (/ (cbrt (* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n)))) 2) M))
47.0ms
(* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n)))
23.0ms
(cbrt (* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n))))
19.0ms
(* (* K (+ m n)) (* K (+ m n)))

simplify22.9s

Counts
129 → 139
Calls
129 calls:
Slowest
1.2s
(* (* (* K (- (* m m) (* n n))) (* K (- (* m m) (* n n)))) (* K (- (* m m) (* n n))))
772.0ms
(cbrt (* (* (* K (- (* m m) (* n n))) (* K (- (* m m) (* n n)))) (* K (- (* m m) (* n n)))))
749.0ms
(* (cos (/ (cbrt (* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n)))) 2)) (cos (- M)))
702.0ms
(* (cos (/ (cbrt (* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n)))) 2)) (cos (- M)))
685.0ms
(* (* (* K (+ m n)) (* K (+ m n))) (* K (+ m n)))

prune3.1s

Pruning

3 alts after pruning (1 fresh and 2 done)

Merged error: 0.8b

localize89.0ms

Local error

Found 4 expressions with local error:

33.4b
(/ (cbrt (* (* (* K (+ (pow m 3) (pow n 3))) (* K (+ (pow m 3) (pow n 3)))) (* K (- (* m m) (* n n))))) (cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n))))
32.9b
(cos (- (/ (/ (cbrt (* (* (* K (+ (pow m 3) (pow n 3))) (* K (+ (pow m 3) (pow n 3)))) (* K (- (* m m) (* n n))))) (cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n)))) 2) M))
22.9b
(cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n)))
13.9b
(cbrt (* (* (* K (+ (pow m 3) (pow n 3))) (* K (+ (pow m 3) (pow n 3)))) (* K (- (* m m) (* n n)))))

rewrite233.0ms

Algorithm
rewrite-expression-head
Rules
140×associate-*r/
112×frac-times
104×cbrt-div
72×flip-+
72×flip3-+
56×associate-*l/
36×flip--
36×flip3--
26×associate-/l/
26×associate-/r/
16×times-frac
14×add-cube-cbrt
14×*-un-lft-identity
14×add-sqr-sqrt
12×cbrt-prod
add-exp-log
add-log-exp
associate-/l*
add-cbrt-cube
associate-/r*
pow1
pow1/3
cos-sum
div-inv
div-exp
frac-2neg
sub-neg
clear-num
cbrt-undiv
cos-diff
Counts
4 → 168
Calls
4 calls:
Slowest
75.0ms
(cbrt (* (* (* K (+ (pow m 3) (pow n 3))) (* K (+ (pow m 3) (pow n 3)))) (* K (- (* m m) (* n n)))))
73.0ms
(cos (- (/ (/ (cbrt (* (* (* K (+ (pow m 3) (pow n 3))) (* K (+ (pow m 3) (pow n 3)))) (* K (- (* m m) (* n n))))) (cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n)))) 2) M))
47.0ms
(cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n)))
28.0ms
(/ (cbrt (* (* (* K (+ (pow m 3) (pow n 3))) (* K (+ (pow m 3) (pow n 3)))) (* K (- (* m m) (* n n))))) (cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n))))

series856.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
292.0ms
(cos (- (/ (/ (cbrt (* (* (* K (+ (pow m 3) (pow n 3))) (* K (+ (pow m 3) (pow n 3)))) (* K (- (* m m) (* n n))))) (cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n)))) 2) M))
289.0ms
(/ (cbrt (* (* (* K (+ (pow m 3) (pow n 3))) (* K (+ (pow m 3) (pow n 3)))) (* K (- (* m m) (* n n))))) (cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n))))
139.0ms
(cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n)))
136.0ms
(cbrt (* (* (* K (+ (pow m 3) (pow n 3))) (* K (+ (pow m 3) (pow n 3)))) (* K (- (* m m) (* n n)))))

simplify29.1s

Counts
162 → 180
Calls
162 calls:
Slowest
802.0ms
(cbrt (* (* (- (* (* m m) (* m m)) (* (- (* n n) (* m n)) (- (* n n) (* m n)))) (- (* (* m m) (* m m)) (* (- (* n n) (* m n)) (- (* n n) (* m n))))) (- m n)))
694.0ms
(cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n)))
683.0ms
(cbrt (cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n))))
670.0ms
(/ 1 (* (cbrt (cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n)))) (cbrt (cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n))))))
661.0ms
(sqrt (cbrt (* (* (+ (* m m) (- (* n n) (* m n))) (+ (* m m) (- (* n n) (* m n)))) (- m n))))

prune6.7s

Pruning

4 alts after pruning (2 fresh and 2 done)

Merged error: 0.7b

regimes558.0ms

Accuracy

0% (0.2b remaining)

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

bsearch3.0ms

end0.0ms

sample3.6s

Algorithm
intervals
Results
2.8s8090×body80valid
195.0ms118×body1280valid
169.0ms158×body640valid
150.0ms105×body320valid
31.0ms54×body160valid
8.0msbody2560valid