Average Error: 1.7 → 1.4
Time: 37.9s
Precision: 64
Internal Precision: 128
\[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\]
\[\sqrt{\frac{\frac{1}{2}}{\sqrt{\frac{\frac{4}{\frac{Om}{\ell}} \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)}{\frac{Om}{\ell}} + 1}} + \frac{1}{2}}\]

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 1.7

    \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\]
  2. Initial simplification1.7

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right) \cdot \frac{\frac{4}{\frac{Om}{\ell}}}{\frac{Om}{\ell}} + 1}} + \frac{1}{2}}\]
  3. Using strategy rm
  4. Applied associate-*r/1.4

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\color{blue}{\frac{\left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right) \cdot \frac{4}{\frac{Om}{\ell}}}{\frac{Om}{\ell}}} + 1}} + \frac{1}{2}}\]
  5. Final simplification1.4

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\frac{\frac{4}{\frac{Om}{\ell}} \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)}{\frac{Om}{\ell}} + 1}} + \frac{1}{2}}\]

Reproduce

herbie shell --seed 2018360 
(FPCore (l Om kx ky)
  :name "Toniolo and Linder, Equation (3a)"
  (sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))

Details

Time bar (total: 31.7s)Debug log

start123.0ms

Algorithm
intervals

setup270.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 1.6b

localize49.0ms

Local error

Found 4 expressions with local error:

7.5b
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
4.1b
(* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l)))
0.5b
(/ 4 (/ Om l))
0.4b
(/ 1/2 (sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1)))

rewrite57.0ms

Algorithm
rewrite-expression-head
Counts
4 → 95
Calls

4 calls. Slowest were:

26.0ms
(* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l)))
20.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
9.0ms
(/ 1/2 (sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1)))

series848.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

335.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
259.0ms
(* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l)))
244.0ms
(/ 1/2 (sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1)))
10.0ms
(/ 4 (/ Om l))

simplify6.5s

Counts
71 → 107
Calls

71 calls. Slowest were:

532.0ms
(* (- (* (* (sin ky) (sin ky)) (* (sin ky) (sin ky))) (* (* (sin kx) (sin kx)) (* (sin kx) (sin kx)))) (/ (/ 4 (/ Om l)) (/ Om l)))
408.0ms
(+ (log (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx)))) (- (log (/ 4 (/ Om l))) (log (/ Om l))))
359.0ms
(* (* (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx)))) (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx)))) (/ (* (* (/ 4 (/ Om l)) (/ 4 (/ Om l))) (/ 4 (/ Om l))) (* (* (/ Om l) (/ Om l)) (/ Om l))))

prune2.1s

Pruning

3 alts after pruning (3 fresh and 0 done)

Merged error: 0.3b

localize17.0ms

Local error

Found 4 expressions with local error:

7.5b
(sqrt (+ (/ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ 4 (/ Om l))) (/ Om l)) 1))
3.2b
(* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ 4 (/ Om l)))
0.5b
(/ 4 (/ Om l))
0.5b
(/ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ 4 (/ Om l))) (/ Om l))

rewrite67.0ms

Algorithm
rewrite-expression-head
Counts
4 → 86
Calls

4 calls. Slowest were:

29.0ms
(* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ 4 (/ Om l)))
20.0ms
(sqrt (+ (/ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ 4 (/ Om l))) (/ Om l)) 1))
16.0ms
(/ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ 4 (/ Om l))) (/ Om l))

series818.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

281.0ms
(* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ 4 (/ Om l)))
281.0ms
(sqrt (+ (/ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ 4 (/ Om l))) (/ Om l)) 1))
241.0ms
(/ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ 4 (/ Om l))) (/ Om l))
15.0ms
(/ 4 (/ Om l))

simplify7.3s

Counts
65 → 98
Calls

65 calls. Slowest were:

699.0ms
(* (- (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ Om l))
432.0ms
(- (+ (log (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx)))) (log (/ 4 (/ Om l)))) (log (/ Om l)))
390.0ms
(* (+ (* (- (cos (- ky ky)) (cos (+ ky ky))) 2) (* 2 (- (cos (- kx kx)) (cos (+ kx kx))))) 4)

prune1.7s

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0.3b

localize37.0ms

Local error

Found 4 expressions with local error:

7.5b
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
7.5b
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
7.5b
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
7.2b
(cbrt (/ 1/2 (sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))))

rewrite76.0ms

Algorithm
rewrite-expression-head
Counts
4 → 57
Calls

4 calls. Slowest were:

24.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
21.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
20.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))

series1.2s

Counts
4 → 12
Calls

4 calls. Slowest were:

330.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
307.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
290.0ms
(cbrt (/ 1/2 (sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))))
271.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))

simplify2.7s

Counts
37 → 69
Calls

37 calls. Slowest were:

190.0ms
(cbrt (* (cbrt (/ 1/2 (sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1)))) (cbrt (/ 1/2 (sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))))))
188.0ms
(sqrt (* (cbrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1)) (cbrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))))
182.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))

prune1.6s

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0.3b

localize30.0ms

Local error

Found 4 expressions with local error:

7.5b
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
7.5b
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
7.5b
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
7.5b
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))

rewrite58.0ms

Algorithm
rewrite-expression-head
Counts
4 → 56
Calls

4 calls. Slowest were:

18.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
14.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
13.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))

series1.1s

Counts
4 → 12
Calls

4 calls. Slowest were:

305.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
290.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
289.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
260.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))

simplify2.6s

Counts
36 → 68
Calls

36 calls. Slowest were:

167.0ms
(sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1))
166.0ms
(sqrt (sqrt (+ (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) 1)))
153.0ms
(sqrt (- (* (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l))) (* (+ (* (sin ky) (sin ky)) (* (sin kx) (sin kx))) (/ (/ 4 (/ Om l)) (/ Om l)))) (* 1 1)))

prune2.1s

Pruning

3 alts after pruning (1 fresh and 2 done)

Merged error: 0.3b

regimes400.0ms

Accuracy

0% (0.7b remaining)

Error of 1.4b against oracle of 0.7b and baseline of 1.4b

bsearch2.0ms