Average Error: 16.9 → 8.0
Time: 24.3s
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}\;J \le 2.205439540951895 \cdot 10^{-236} \lor \neg \left(J \le 7.706939204047402 \cdot 10^{-195}\right):\\ \;\;\;\;\left(\sqrt{1^2 + \left(\frac{\frac{\frac{U}{2}}{J}}{\cos \left(\frac{K}{2}\right)}\right)^2}^* \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \left(J \cdot -2\right)\\ \mathbf{else}:\\ \;\;\;\;-U\\ \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 J < 2.205439540951895e-236 or 7.706939204047402e-195 < J

    1. Initial program 16.4

      \[\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. Simplified7.1

      \[\leadsto \color{blue}{\sqrt{1^2 + \left(\frac{\frac{\frac{U}{2}}{J}}{\cos \left(\frac{K}{2}\right)}\right)^2}^* \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)}\]
    3. Using strategy rm
    4. Applied associate-*r*7.0

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

    if 2.205439540951895e-236 < J < 7.706939204047402e-195

    1. Initial program 34.6

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

      \[\leadsto \color{blue}{\sqrt{1^2 + \left(\frac{\frac{\frac{U}{2}}{J}}{\cos \left(\frac{K}{2}\right)}\right)^2}^* \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)}\]
    3. Using strategy rm
    4. Applied add-sqr-sqrt21.4

      \[\leadsto \color{blue}{\left(\sqrt{\sqrt{1^2 + \left(\frac{\frac{\frac{U}{2}}{J}}{\cos \left(\frac{K}{2}\right)}\right)^2}^*} \cdot \sqrt{\sqrt{1^2 + \left(\frac{\frac{\frac{U}{2}}{J}}{\cos \left(\frac{K}{2}\right)}\right)^2}^*}\right)} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\]
    5. Applied associate-*l*21.4

      \[\leadsto \color{blue}{\sqrt{\sqrt{1^2 + \left(\frac{\frac{\frac{U}{2}}{J}}{\cos \left(\frac{K}{2}\right)}\right)^2}^*} \cdot \left(\sqrt{\sqrt{1^2 + \left(\frac{\frac{\frac{U}{2}}{J}}{\cos \left(\frac{K}{2}\right)}\right)^2}^*} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\right)}\]
    6. Using strategy rm
    7. Applied associate-*r*21.4

      \[\leadsto \sqrt{\sqrt{1^2 + \left(\frac{\frac{\frac{U}{2}}{J}}{\cos \left(\frac{K}{2}\right)}\right)^2}^*} \cdot \left(\sqrt{\sqrt{1^2 + \left(\frac{\frac{\frac{U}{2}}{J}}{\cos \left(\frac{K}{2}\right)}\right)^2}^*} \cdot \color{blue}{\left(\left(\cos \left(\frac{K}{2}\right) \cdot -2\right) \cdot J\right)}\right)\]
    8. Taylor expanded around inf 37.0

      \[\leadsto \color{blue}{-1 \cdot U}\]
    9. Simplified37.0

      \[\leadsto \color{blue}{-U}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification8.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;J \le 2.205439540951895 \cdot 10^{-236} \lor \neg \left(J \le 7.706939204047402 \cdot 10^{-195}\right):\\ \;\;\;\;\left(\sqrt{1^2 + \left(\frac{\frac{\frac{U}{2}}{J}}{\cos \left(\frac{K}{2}\right)}\right)^2}^* \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \left(J \cdot -2\right)\\ \mathbf{else}:\\ \;\;\;\;-U\\ \end{array}\]

Reproduce

herbie shell --seed 2019005 +o rules:numerics
(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: 23.0s)Debug log

sample158.0ms

Algorithm
intervals

simplify272.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

272.0ms
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

prune17.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 9.7b

localize27.0ms

Local error

Found 3 expressions with local error:

9.6b
(* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (* (cos (/ K 2)) (* -2 J)))
0.1b
(* (cos (/ K 2)) (* -2 J))
0.1b
(/ (/ (/ U 2) J) (cos (/ K 2)))

rewrite21.0ms

Algorithm
rewrite-expression-head
Counts
3 → 71
Calls

3 calls. Slowest were:

11.0ms
(* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (* (cos (/ K 2)) (* -2 J)))
5.0ms
(/ (/ (/ U 2) J) (cos (/ K 2)))
4.0ms
(* (cos (/ K 2)) (* -2 J))

series328.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

208.0ms
(* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (* (cos (/ K 2)) (* -2 J)))
80.0ms
(/ (/ (/ U 2) J) (cos (/ K 2)))
39.0ms
(* (cos (/ K 2)) (* -2 J))

simplify2.1s

Counts
56 → 80
Calls

56 calls. Slowest were:

488.0ms
(/ (* (* (/ (/ U 2) J) (/ (/ U 2) J)) (/ (/ U 2) J)) (* (* (cos (/ K 2)) (cos (/ K 2))) (cos (/ K 2))))
191.0ms
(* (* (* (cos (/ K 2)) (cos (/ K 2))) (cos (/ K 2))) (* (* (* -2 J) (* -2 J)) (* -2 J)))
179.0ms
(- (log (/ (/ U 2) J)) (log (cos (/ K 2))))

prune1.1s

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 5.4b

localize8.0ms

Local error

Found 3 expressions with local error:

9.7b
(* (* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (cos (/ K 2))) (* -2 J))
0.1b
(/ (/ (/ U 2) J) (cos (/ K 2)))
0.1b
(* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (cos (/ K 2)))

rewrite22.0ms

Algorithm
rewrite-expression-head
Counts
3 → 71
Calls

3 calls. Slowest were:

11.0ms
(* (* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (cos (/ K 2))) (* -2 J))
6.0ms
(* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (cos (/ K 2)))
5.0ms
(/ (/ (/ U 2) J) (cos (/ K 2)))

series489.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

254.0ms
(* (* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (cos (/ K 2))) (* -2 J))
155.0ms
(* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (cos (/ K 2)))
80.0ms
(/ (/ (/ U 2) J) (cos (/ K 2)))

simplify2.8s

Counts
57 → 80
Calls

57 calls. Slowest were:

616.0ms
(* (* (* (* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (cos (/ K 2))) (* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (cos (/ K 2)))) (* (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))) (cos (/ K 2)))) (* (* (* -2 J) (* -2 J)) (* -2 J)))
465.0ms
(/ (* (* (/ (/ U 2) J) (/ (/ U 2) J)) (/ (/ U 2) J)) (* (* (cos (/ K 2)) (cos (/ K 2))) (cos (/ K 2))))
222.0ms
(+ (* 1/16 (/ (* (pow K 2) U) J)) (* 1/2 (/ U J)))

prune1.0s

Pruning

10 alts after pruning (9 fresh and 1 done)

Merged error: 5.4b

localize18.0ms

Local error

Found 4 expressions with local error:

9.7b
(sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))
9.7b
(sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))
0.2b
(* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (cos (/ K 2)) (* -2 J))))
0.1b
(* (cos (/ K 2)) (* -2 J))

rewrite59.0ms

Algorithm
rewrite-expression-head
Counts
4 → 71
Calls

4 calls. Slowest were:

49.0ms
(* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (cos (/ K 2)) (* -2 J))))
6.0ms
(* (cos (/ K 2)) (* -2 J))
2.0ms
(sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))

series649.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

239.0ms
(* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (cos (/ K 2)) (* -2 J))))
196.0ms
(sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))
160.0ms
(sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))
55.0ms
(* (cos (/ K 2)) (* -2 J))

simplify2.1s

Counts
40 → 83
Calls

40 calls. Slowest were:

252.0ms
(* (* (* (cos (/ K 2)) (cos (/ K 2))) (cos (/ K 2))) (* (* (* -2 J) (* -2 J)) (* -2 J)))
162.0ms
(+ (log (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))) (log (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (cos (/ K 2)) (* -2 J)))))
149.0ms
(* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (cos (/ K 2)) (* -2 J))))

prune1.4s

Pruning

11 alts after pruning (10 fresh and 1 done)

Merged error: 5.4b

localize15.0ms

Local error

Found 4 expressions with local error:

9.7b
(sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))
9.7b
(sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))
0.2b
(* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (* (cos (/ K 2)) -2) J)))
0.1b
(* (* (cos (/ K 2)) -2) J)

rewrite44.0ms

Algorithm
rewrite-expression-head
Counts
4 → 62
Calls

4 calls. Slowest were:

35.0ms
(* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (* (cos (/ K 2)) -2) J)))
7.0ms
(* (* (cos (/ K 2)) -2) J)
1.0ms
(sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))

series689.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

285.0ms
(* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (* (cos (/ K 2)) -2) J)))
189.0ms
(sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))
169.0ms
(sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))
47.0ms
(* (* (cos (/ K 2)) -2) J)

simplify1.3s

Counts
33 → 74
Calls

33 calls. Slowest were:

168.0ms
(+ (log (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))) (log (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (* (cos (/ K 2)) -2) J))))
117.0ms
(* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (* (* (cos (/ K 2)) -2) J)))
113.0ms
(* (* (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))) (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))) (* (* (* (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2))))) (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))) (sqrt (hypot 1 (/ (/ (/ U 2) J) (cos (/ K 2)))))) (* (* (* (* (cos (/ K 2)) -2) J) (* (* (cos (/ K 2)) -2) J)) (* (* (cos (/ K 2)) -2) J))))

prune1.1s

Pruning

11 alts after pruning (9 fresh and 2 done)

Merged error: 5.4b

regimes606.0ms

Accuracy

-13.3% (4.2b remaining)

Error of 8.0b against oracle of 3.8b and baseline of 7.5b

bsearch320.0ms

end0.0ms

sample6.3s

Algorithm
intervals