Average Error: 17.6 → 13.2
Time: 50.2s
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 9.063687261800663 \cdot 10^{+306}:\\ \;\;\;\;\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 9.063687261800663e+306 < (* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

    1. Initial program 60.3

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

      \[\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)))) < 9.063687261800663e+306

    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 simplification13.2

    \[\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 9.063687261800663 \cdot 10^{+306}:\\ \;\;\;\;\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 2019016 
(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: 48.5s)Debug log

sample191.0ms

Algorithm
intervals
Results
256×(pre true 80)
140×(body real 80)
49×(body real 1280)
39×(body real 640)
21×(body real 320)
(body real 160)

simplify349.0ms

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

prune11.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 17.1b

localize53.0ms

Local error

Found 4 expressions with local error:

8.7b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
8.3b
(* (* (* -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)))

rewrite61.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
33.0ms
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
12.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
8.0ms
(* (* -2 J) (cos (/ K 2)))
6.0ms
(pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)

series405.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
127.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
122.0ms
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
119.0ms
(pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)
38.0ms
(* (* -2 J) (cos (/ K 2)))

simplify6.1s

Counts
45 → 79
Calls
45 calls:
Slowest
476.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)))))
457.0ms
(sqrt (- 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
291.0ms
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
287.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
271.0ms
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

prune1.0s

Pruning

11 alts after pruning (10 fresh and 1 done)

Merged error: 12.5b

localize13.0ms

Local error

Found 4 expressions with local error:

8.7b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
8.7b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
8.3b
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
8.3b
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

rewrite28.0ms

Algorithm
rewrite-expression-head
Rules
26×sqrt-prod
16×add-sqr-sqrt
12×sqrt-div
10×add-cube-cbrt
10×*-un-lft-identity
rem-sqrt-square
add-log-exp
flip-+
add-exp-log
pow1/2
add-cbrt-cube
flip3-+
pow1
Counts
4 → 64
Calls
4 calls:
Slowest
7.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
7.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
6.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
6.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))

series623.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
206.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
170.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
134.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
112.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))

simplify6.7s

Counts
44 → 76
Calls
44 calls:
Slowest
305.0ms
(sqrt (sqrt (+ (pow 1 3) (pow (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) 3))))
281.0ms
(sqrt (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
270.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
259.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
257.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

prune1.5s

Pruning

11 alts after pruning (10 fresh and 1 done)

Merged error: 12.5b

localize19.0ms

Local error

Found 4 expressions with local error:

8.7b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
8.7b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
8.3b
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
8.3b
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

rewrite47.0ms

Algorithm
rewrite-expression-head
Rules
26×sqrt-prod
16×add-sqr-sqrt
12×sqrt-div
10×add-cube-cbrt
10×*-un-lft-identity
rem-sqrt-square
add-log-exp
flip-+
add-exp-log
pow1/2
add-cbrt-cube
flip3-+
pow1
Counts
4 → 64
Calls
4 calls:
Slowest
13.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
11.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
11.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
11.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

series549.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
202.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
163.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
98.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
85.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))

simplify7.9s

Counts
44 → 76
Calls
44 calls:
Slowest
672.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
325.0ms
(sqrt (sqrt (* (cbrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))) (cbrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))))
304.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))
288.0ms
(sqrt (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))
275.0ms
(sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

prune1.6s

Pruning

11 alts after pruning (9 fresh and 2 done)

Merged error: 12.5b

localize31.0ms

Local error

Found 4 expressions with local error:

13.2b
(cbrt (* (* (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))) (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))) (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))))
8.7b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
8.7b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
8.7b
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))

rewrite100.0ms

Algorithm
rewrite-expression-head
Rules
114×sqrt-div
30×flip-+
30×flip3-+
28×frac-times
26×cbrt-div
14×associate-*l/
10×add-sqr-sqrt
sqrt-prod
associate-*r/
add-cube-cbrt
*-un-lft-identity
add-log-exp
add-exp-log
add-cbrt-cube
pow1
pow1/2
rem-sqrt-square
rem-cbrt-cube
pow3
pow1/3
cbrt-prod
Counts
4 → 78
Calls
4 calls:
Slowest
59.0ms
(cbrt (* (* (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))) (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))) (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))))
14.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
12.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
11.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))

series557.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
191.0ms
(cbrt (* (* (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))) (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))) (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))))
132.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
121.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))
113.0ms
(sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))

simplify11.7s

Counts
58 → 90
Calls
58 calls:
Slowest
352.0ms
(cbrt (* (* (sqrt (sqrt (- (* 1 1) (* (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))) (sqrt (sqrt (+ (pow 1 3) (pow (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) 3))))) (sqrt (sqrt (- (* 1 1) (* (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))))
335.0ms
(cbrt (* (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))) (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))))
332.0ms
(cbrt (* (* (sqrt (sqrt (- (* 1 1) (* (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))) (sqrt (sqrt (+ (pow 1 3) (pow (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) 3))))) (sqrt (sqrt (+ (pow 1 3) (pow (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) 3))))))
330.0ms
(cbrt (* (* (sqrt (sqrt (+ (pow 1 3) (pow (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) 3)))) (sqrt (sqrt (- (* 1 1) (* (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))) (sqrt (sqrt (- (* 1 1) (* (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))))
328.0ms
(cbrt (* (* (sqrt (sqrt (+ (pow 1 3) (pow (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) 3)))) (sqrt (sqrt (- (* 1 1) (* (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2) (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))) (sqrt (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))))

prune2.2s

Pruning

11 alts after pruning (8 fresh and 3 done)

Merged error: 12.5b

regimes720.0ms

Accuracy

88.2% (0.6b remaining)

Error of 13.2b against oracle of 12.6b and baseline of 17.6b

bsearch6.0ms

end0.0ms

sample6.0s

Algorithm
intervals
Results
8004×(pre true 80)
4295×(body real 80)
1531×(body real 1280)
1226×(body real 640)
650×(body real 320)
302×(body real 160)