Average Error: 17.1 → 12.9
Time: 43.7s
Precision: 64
Internal Precision: 128
\[\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\]
\[\begin{array}{l} \mathbf{if}\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) = -\infty:\\ \;\;\;\;\left(\frac{1}{2} \cdot \frac{U}{\cos \left(K \cdot \frac{1}{2}\right) \cdot J}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \mathbf{elif}\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) \le 2.5415280446002804 \cdot 10^{+305}:\\ \;\;\;\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{1}{2} \cdot \frac{U}{\cos \left(K \cdot \frac{1}{2}\right) \cdot J}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \end{array}\]

Error

Bits error versus J

Bits error versus K

Bits error versus U

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))) < -inf.0 or 2.5415280446002804e+305 < (* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

    1. Initial program 59.9

      \[\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\]
    2. Taylor expanded around -inf 45.4

      \[\leadsto \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \color{blue}{\left(\frac{1}{2} \cdot \frac{U}{\cos \left(\frac{1}{2} \cdot K\right) \cdot J}\right)}\]

    if -inf.0 < (* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))) < 2.5415280446002804e+305

    1. Initial program 0.1

      \[\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification12.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) = -\infty:\\ \;\;\;\;\left(\frac{1}{2} \cdot \frac{U}{\cos \left(K \cdot \frac{1}{2}\right) \cdot J}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \mathbf{elif}\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) \le 2.5415280446002804 \cdot 10^{+305}:\\ \;\;\;\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{1}{2} \cdot \frac{U}{\cos \left(K \cdot \frac{1}{2}\right) \cdot J}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019010 
(FPCore (J K U)
  :name "Maksimov and Kolovsky, Equation (3)"
  (* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))

Details

Time bar (total: 42.1s)Debug log

sample143.0ms

Algorithm
intervals

simplify315.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
315.0ms
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

prune17.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 14.9b

localize51.0ms

Local error

Found 4 expressions with local error:

8.9b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
5.9b
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
0.2b
(pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)
0.1b
(* (* -2 J) (cos (/ K 2)))

rewrite47.0ms

Algorithm
rewrite-expression-head
Rules
12×add-exp-log
12×pow1
11×add-cbrt-cube
10×add-sqr-sqrt
add-cube-cbrt
associate-*r*
*-un-lft-identity
sqrt-prod
add-log-exp
cbrt-unprod
prod-exp
pow-prod-down
sqrt-div
unpow-prod-down
flip-+
*-commutative
associate-*r/
associate-*l*
flip3-+
unpow2
div-inv
pow-exp
pow1/2
pow-pow
rem-sqrt-square
pow-to-exp
Counts
4 → 67
Calls
4 calls:
Slowest
31.0ms
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
7.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
4.0ms
(* (* -2 J) (cos (/ K 2)))
3.0ms
(pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)

series360.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
118.0ms
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
100.0ms
(pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)
96.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
45.0ms
(* (* -2 J) (cos (/ K 2)))

simplify6.5s

Counts
45 → 79
Calls
45 calls:
Slowest
625.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
525.0ms
(sqrt (+ (* 1 1) (- (* (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)) (* 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
489.0ms
(sqrt (- 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
296.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
280.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

prune1.2s

Pruning

9 alts after pruning (8 fresh and 1 done)

Merged error: 9.9b

localize30.0ms

Local error

Found 4 expressions with local error:

8.9b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
5.9b
(* (* (* (* -2 J) (* (cbrt (cos (/ K 2))) (cbrt (cos (/ K 2))))) (cbrt (cos (/ K 2)))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
0.3b
(cbrt (cos (/ K 2)))
0.3b
(cbrt (cos (/ K 2)))

rewrite108.0ms

Algorithm
rewrite-expression-head
Rules
18×add-exp-log
18×pow1
13×add-cbrt-cube
10×cbrt-unprod
10×prod-exp
10×pow-prod-down
10×add-sqr-sqrt
add-cube-cbrt
*-un-lft-identity
sqrt-prod
associate-*r*
cbrt-prod
add-log-exp
sqrt-div
flip-+
associate-*r/
pow1/3
flip3-+
*-commutative
associate-*l*
pow1/2
rem-sqrt-square
Counts
4 → 65
Calls
4 calls:
Slowest
91.0ms
(* (* (* (* -2 J) (* (cbrt (cos (/ K 2))) (cbrt (cos (/ K 2))))) (cbrt (cos (/ K 2)))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
13.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
1.0ms
(cbrt (cos (/ K 2)))
1.0ms
(cbrt (cos (/ K 2)))

series606.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
180.0ms
(cbrt (cos (/ K 2)))
165.0ms
(cbrt (cos (/ K 2)))
141.0ms
(* (* (* (* -2 J) (* (cbrt (cos (/ K 2))) (cbrt (cos (/ K 2))))) (cbrt (cos (/ K 2)))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
120.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))

simplify5.9s

Counts
45 → 77
Calls
45 calls:
Slowest
533.0ms
(sqrt (+ (* 1 1) (- (* (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)) (* 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
378.0ms
(sqrt (- 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
327.0ms
(sqrt (cbrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
277.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
275.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))

prune1.4s

Pruning

10 alts after pruning (9 fresh and 1 done)

Merged error: 9.9b

localize8.0ms

Local error

Found 4 expressions with local error:

8.9b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
6.0b
(* (* (* -2 J) (* (cbrt (cos (/ K 2))) (cbrt (cos (/ K 2))))) (* (cbrt (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
0.3b
(cbrt (cos (/ K 2)))
0.3b
(cbrt (cos (/ K 2)))

rewrite81.0ms

Algorithm
rewrite-expression-head
Rules
25×add-exp-log
25×pow1
18×add-cbrt-cube
15×cbrt-unprod
15×prod-exp
15×pow-prod-down
add-sqr-sqrt
add-cube-cbrt
*-un-lft-identity
cbrt-prod
add-log-exp
associate-*r/
sqrt-div
sqrt-prod
flip-+
pow1/3
flip3-+
*-commutative
associate-*l*
associate-*r*
pow1/2
rem-sqrt-square
Counts
4 → 66
Calls
4 calls:
Slowest
69.0ms
(* (* (* -2 J) (* (cbrt (cos (/ K 2))) (cbrt (cos (/ K 2))))) (* (cbrt (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
7.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
1.0ms
(cbrt (cos (/ K 2)))
1.0ms
(cbrt (cos (/ K 2)))

series579.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
160.0ms
(cbrt (cos (/ K 2)))
160.0ms
(* (* (* -2 J) (* (cbrt (cos (/ K 2))) (cbrt (cos (/ K 2))))) (* (cbrt (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
148.0ms
(cbrt (cos (/ K 2)))
111.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))

simplify5.3s

Counts
46 → 78
Calls
46 calls:
Slowest
529.0ms
(sqrt (+ (* 1 1) (- (* (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)) (* 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
367.0ms
(sqrt (- 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
292.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
251.0ms
(sqrt (* (cbrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))) (cbrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
248.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))

prune1.4s

Pruning

10 alts after pruning (8 fresh and 2 done)

Merged error: 9.9b

localize28.0ms

Local error

Found 4 expressions with local error:

8.9b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
6.0b
(* (* (* -2 J) (* (cbrt (cos (/ K 2))) (* (* (cbrt (cbrt (cos (/ K 2)))) (cbrt (cbrt (cos (/ K 2))))) (cbrt (cbrt (cos (/ K 2))))))) (* (cbrt (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
0.3b
(cbrt (cos (/ K 2)))
0.3b
(cbrt (cos (/ K 2)))

rewrite259.0ms

Algorithm
rewrite-expression-head
Rules
49×add-exp-log
49×pow1
35×cbrt-unprod
35×prod-exp
35×pow-prod-down
30×add-cbrt-cube
add-sqr-sqrt
add-cube-cbrt
*-un-lft-identity
cbrt-prod
add-log-exp
associate-*r/
sqrt-div
sqrt-prod
flip-+
pow1/3
flip3-+
*-commutative
associate-*l*
associate-*r*
pow1/2
rem-sqrt-square
Counts
4 → 78
Calls
4 calls:
Slowest
248.0ms
(* (* (* -2 J) (* (cbrt (cos (/ K 2))) (* (* (cbrt (cbrt (cos (/ K 2)))) (cbrt (cbrt (cos (/ K 2))))) (cbrt (cbrt (cos (/ K 2))))))) (* (cbrt (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
6.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
1.0ms
(cbrt (cos (/ K 2)))
1.0ms
(cbrt (cos (/ K 2)))

series546.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
171.0ms
(cbrt (cos (/ K 2)))
145.0ms
(cbrt (cos (/ K 2)))
139.0ms
(* (* (* -2 J) (* (cbrt (cos (/ K 2))) (* (* (cbrt (cbrt (cos (/ K 2)))) (cbrt (cbrt (cos (/ K 2))))) (cbrt (cbrt (cos (/ K 2))))))) (* (cbrt (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
91.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))

simplify9.0s

Counts
58 → 90
Calls
58 calls:
Slowest
517.0ms
(sqrt (+ (* 1 1) (- (* (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)) (* 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
487.0ms
(+ (+ (log (* -2 J)) (+ (log (cbrt (cos (/ K 2)))) (+ (log (* (cbrt (cbrt (cos (/ K 2)))) (cbrt (cbrt (cos (/ K 2)))))) (log (cbrt (cbrt (cos (/ K 2)))))))) (+ (log (cbrt (cos (/ K 2)))) (log (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))))
431.0ms
(+ (+ (log (* -2 J)) (+ (log (cbrt (cos (/ K 2)))) (log (* (* (cbrt (cbrt (cos (/ K 2)))) (cbrt (cbrt (cos (/ K 2))))) (cbrt (cbrt (cos (/ K 2)))))))) (+ (log (cbrt (cos (/ K 2)))) (log (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))))
411.0ms
(* (* (* (* (* -2 J) (* -2 J)) (* -2 J)) (* (cos (/ K 2)) (* (* (cbrt (cos (/ K 2))) (cbrt (cos (/ K 2)))) (cbrt (cos (/ K 2)))))) (* (* (* (cbrt (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))) (* (cbrt (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))) (* (cbrt (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))))
373.0ms
(+ (+ (log (* -2 J)) (+ (log (cbrt (cos (/ K 2)))) (+ (+ (log (cbrt (cbrt (cos (/ K 2))))) (log (cbrt (cbrt (cos (/ K 2)))))) (log (cbrt (cbrt (cos (/ K 2)))))))) (+ (log (cbrt (cos (/ K 2)))) (log (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))))

prune1.5s

Pruning

11 alts after pruning (9 fresh and 2 done)

Merged error: 9.9b

regimes788.0ms

Accuracy

86.3% (0.7b remaining)

Error of 12.9b against oracle of 12.3b and baseline of 17.1b

bsearch7.0ms

end0.0ms

sample6.0s

Algorithm
intervals