Average Error: 0.4 → 0.4
Time: 27.2s
Precision: 64
Internal Precision: 128
\[\frac{1}{\sqrt{k}} \cdot {\left(\left(2 \cdot \pi\right) \cdot n\right)}^{\left(\frac{1 - k}{2}\right)}\]
\[{\left(\left(2 \cdot \pi\right) \cdot n\right)}^{\left(\frac{1 - k}{2}\right)} \cdot {k}^{\frac{-1}{2}}\]

Error

Bits error versus k

Bits error versus n

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.4

    \[\frac{1}{\sqrt{k}} \cdot {\left(\left(2 \cdot \pi\right) \cdot n\right)}^{\left(\frac{1 - k}{2}\right)}\]
  2. Using strategy rm
  3. Applied pow1/20.4

    \[\leadsto \frac{1}{\color{blue}{{k}^{\frac{1}{2}}}} \cdot {\left(\left(2 \cdot \pi\right) \cdot n\right)}^{\left(\frac{1 - k}{2}\right)}\]
  4. Applied pow-flip0.4

    \[\leadsto \color{blue}{{k}^{\left(-\frac{1}{2}\right)}} \cdot {\left(\left(2 \cdot \pi\right) \cdot n\right)}^{\left(\frac{1 - k}{2}\right)}\]
  5. Simplified0.4

    \[\leadsto {k}^{\color{blue}{\frac{-1}{2}}} \cdot {\left(\left(2 \cdot \pi\right) \cdot n\right)}^{\left(\frac{1 - k}{2}\right)}\]
  6. Final simplification0.4

    \[\leadsto {\left(\left(2 \cdot \pi\right) \cdot n\right)}^{\left(\frac{1 - k}{2}\right)} \cdot {k}^{\frac{-1}{2}}\]

Reproduce

herbie shell --seed 2019010 +o rules:numerics
(FPCore (k n)
  :name "Migdal et al, Equation (51)"
  (* (/ 1 (sqrt k)) (pow (* (* 2 PI) n) (/ (- 1 k) 2))))

Details

Time bar (total: 26.4s)Debug log

sample319.0ms

Algorithm
intervals

simplify73.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
72.0ms
(* (/ 1 (sqrt k)) (pow (* (* 2 PI) n) (/ (- 1 k) 2)))

prune39.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.2b

localize47.0ms

Local error

Found 3 expressions with local error:

0.4b
(pow (* PI (* n 2)) (- 1/2 (/ k 2)))
0.2b
(* PI (* n 2))
0.2b
(/ (pow (* PI (* n 2)) (- 1/2 (/ k 2))) (sqrt k))

rewrite17.0ms

Algorithm
rewrite-expression-head
Rules
18×times-frac
15×add-cube-cbrt
15×*-un-lft-identity
15×add-sqr-sqrt
10×unpow-prod-up
add-exp-log
associate-/l*
add-cbrt-cube
unpow-prod-down
sub-neg
pow1
add-log-exp
log1p-expm1-u
div-exp
associate-/r*
pow-unpow
expm1-log1p-u
pow-sub
pow-exp
pow-to-exp
associate-/l/
div-inv
*-commutative
associate-*r*
frac-2neg
pow-pow
clear-num
cbrt-undiv
Counts
3 → 74
Calls
3 calls:
Slowest
10.0ms
(/ (pow (* PI (* n 2)) (- 1/2 (/ k 2))) (sqrt k))
4.0ms
(pow (* PI (* n 2)) (- 1/2 (/ k 2)))
2.0ms
(* PI (* n 2))

series495.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
263.0ms
(/ (pow (* PI (* n 2)) (- 1/2 (/ k 2))) (sqrt k))
167.0ms
(pow (* PI (* n 2)) (- 1/2 (/ k 2)))
65.0ms
(* PI (* n 2))

simplify2.6s

Counts
67 → 83
Calls
67 calls:
Slowest
375.0ms
(* (log (* PI (* n 2))) (- 1/2 (/ k 2)))
316.0ms
(- (+ (* 1/4 (* (log (* 2 PI)) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (log n) (pow k 2))))) (+ (* 1/8 (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (pow (log n) 2) (pow k 2)))) (+ (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* 1/8 (* (pow (log (* 2 PI)) 2) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (pow k 2))))))) (+ (* 1/2 (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (log n) k))) (* 1/2 (* (log (* 2 PI)) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) k)))))
261.0ms
(/ (* (* (pow (* PI (* n 2)) (- 1/2 (/ k 2))) (pow (* PI (* n 2)) (- 1/2 (/ k 2)))) (pow (* PI (* n 2)) (- 1/2 (/ k 2)))) (* (* (sqrt k) (sqrt k)) (sqrt k)))
261.0ms
(- (log (pow (* PI (* n 2)) (- 1/2 (/ k 2)))) (log (sqrt k)))
141.0ms
(exp (* (- 1/2 (* 1/2 k)) (- (log (* -2 PI)) (log (/ -1 n)))))

prune1.0s

Pruning

9 alts after pruning (9 fresh and 0 done)

Merged error: 0b

localize22.0ms

Local error

Found 4 expressions with local error:

0.4b
(pow (* (* 2 PI) n) (/ (- 1 k) 2))
0.3b
(/ 1 (sqrt k))
0.2b
(* (* 2 PI) n)
0.2b
(* (/ 1 (sqrt k)) (pow (* (* 2 PI) n) (/ (- 1 k) 2)))

rewrite36.0ms

Algorithm
rewrite-expression-head
Rules
16×add-exp-log
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
prod-exp
add-cbrt-cube
pow1
associate-*l*
add-log-exp
log1p-expm1-u
associate-*r*
pow-unpow
rec-exp
expm1-log1p-u
pow-sub
div-inv
pow-exp
div-sub
associate-/r*
pow-to-exp
pow-flip
*-commutative
unpow-prod-down
inv-pow
cbrt-unprod
associate-*r/
associate-*l/
pow1/2
frac-2neg
pow-pow
clear-num
frac-times
Counts
4 → 76
Calls
4 calls:
Slowest
23.0ms
(* (/ 1 (sqrt k)) (pow (* (* 2 PI) n) (/ (- 1 k) 2)))
6.0ms
(pow (* (* 2 PI) n) (/ (- 1 k) 2))
4.0ms
(* (* 2 PI) n)
2.0ms
(/ 1 (sqrt k))

series377.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
163.0ms
(* (/ 1 (sqrt k)) (pow (* (* 2 PI) n) (/ (- 1 k) 2)))
141.0ms
(pow (* (* 2 PI) n) (/ (- 1 k) 2))
60.0ms
(* (* 2 PI) n)
13.0ms
(/ 1 (sqrt k))

simplify3.4s

Counts
42 → 88
Calls
42 calls:
Slowest
658.0ms
(exp (* 1/2 (* (- 1 k) (- (log (* -2 PI)) (log (/ -1 n))))))
583.0ms
(* (* (* (/ 1 (sqrt k)) (/ 1 (sqrt k))) (/ 1 (sqrt k))) (* (* (pow (* (* 2 PI) n) (/ (- 1 k) 2)) (pow (* (* 2 PI) n) (/ (- 1 k) 2))) (pow (* (* 2 PI) n) (/ (- 1 k) 2))))
347.0ms
(+ (log (/ 1 (sqrt k))) (log (pow (* (* 2 PI) n) (/ (- 1 k) 2))))
335.0ms
(- (+ (* 1/4 (* (log (* 2 PI)) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (log n) (pow k 2))))) (+ (* 1/8 (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (pow (log n) 2) (pow k 2)))) (+ (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* 1/8 (* (pow (log (* 2 PI)) 2) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (pow k 2))))))) (+ (* 1/2 (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (log n) k))) (* 1/2 (* (log (* 2 PI)) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) k)))))
299.0ms
(+ (- (log (sqrt k))) (log (pow (* (* 2 PI) n) (/ (- 1 k) 2))))

prune1.0s

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 0b

localize21.0ms

Local error

Found 3 expressions with local error:

0.4b
(pow (* (* 2 PI) n) (/ (- 1 k) 2))
0.2b
(* (* 2 PI) n)
0.2b
(* (pow k -1/2) (pow (* (* 2 PI) n) (/ (- 1 k) 2)))

rewrite26.0ms

Algorithm
rewrite-expression-head
Rules
11×add-exp-log
add-cube-cbrt
prod-exp
*-un-lft-identity
pow-to-exp
add-sqr-sqrt
add-cbrt-cube
associate-*l*
associate-*r*
pow-unpow
pow1
add-log-exp
log1p-expm1-u
pow-exp
expm1-log1p-u
pow-sub
*-commutative
div-sub
unpow-prod-down
div-inv
cbrt-unprod
associate-*r/
pow-pow
Counts
3 → 54
Calls
3 calls:
Slowest
15.0ms
(* (pow k -1/2) (pow (* (* 2 PI) n) (/ (- 1 k) 2)))
6.0ms
(pow (* (* 2 PI) n) (/ (- 1 k) 2))
4.0ms
(* (* 2 PI) n)

series363.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
164.0ms
(* (pow k -1/2) (pow (* (* 2 PI) n) (/ (- 1 k) 2)))
140.0ms
(pow (* (* 2 PI) n) (/ (- 1 k) 2))
59.0ms
(* (* 2 PI) n)

simplify2.2s

Counts
31 → 63
Calls
31 calls:
Slowest
296.0ms
(+ (* (log k) -1/2) (log (pow (* (* 2 PI) n) (/ (- 1 k) 2))))
278.0ms
(- (+ (* 1/4 (* (log (* 2 PI)) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (log n) (pow k 2))))) (+ (* 1/8 (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (pow (log n) 2) (pow k 2)))) (+ (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* 1/8 (* (pow (log (* 2 PI)) 2) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (pow k 2))))))) (+ (* 1/2 (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (log n) k))) (* 1/2 (* (log (* 2 PI)) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) k)))))
263.0ms
(+ (log (pow k -1/2)) (log (pow (* (* 2 PI) n) (/ (- 1 k) 2))))
259.0ms
(exp (* 1/2 (* (- 1 k) (- (log (* -2 PI)) (log (/ -1 n))))))
169.0ms
(exp (* 1/2 (* (- 1 k) (- (log (* 2 PI)) (log (/ 1 n))))))

prune749.0ms

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0b

localize27.0ms

Local error

Found 3 expressions with local error:

0.4b
(pow (* (* n PI) 2) (- 1/2 (/ k 2)))
0.2b
(* n PI)
0.2b
(/ (pow (* (* n PI) 2) (- 1/2 (/ k 2))) (sqrt k))

rewrite18.0ms

Algorithm
rewrite-expression-head
Rules
18×times-frac
15×add-cube-cbrt
15×*-un-lft-identity
15×add-sqr-sqrt
10×unpow-prod-up
add-exp-log
associate-/l*
add-cbrt-cube
unpow-prod-down
sub-neg
pow1
add-log-exp
log1p-expm1-u
div-exp
associate-/r*
pow-unpow
expm1-log1p-u
pow-sub
pow-exp
pow-to-exp
associate-/l/
div-inv
*-commutative
frac-2neg
pow-pow
clear-num
cbrt-undiv
Counts
3 → 73
Calls
3 calls:
Slowest
11.0ms
(/ (pow (* (* n PI) 2) (- 1/2 (/ k 2))) (sqrt k))
6.0ms
(pow (* (* n PI) 2) (- 1/2 (/ k 2)))
0.0ms
(* n PI)

series390.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
213.0ms
(/ (pow (* (* n PI) 2) (- 1/2 (/ k 2))) (sqrt k))
139.0ms
(pow (* (* n PI) 2) (- 1/2 (/ k 2)))
38.0ms
(* n PI)

simplify3.6s

Counts
67 → 82
Calls
67 calls:
Slowest
658.0ms
(- (* (log (* (* n PI) 2)) (- 1/2 (/ k 2))) (log (sqrt k)))
550.0ms
(- (* (log (* (* n PI) 2)) (- 1/2 (/ k 2))) (log (sqrt k)))
349.0ms
(- (+ (* 1/4 (* (log (* 2 PI)) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (log n) (pow k 2))))) (+ (* 1/8 (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (pow (log n) 2) (pow k 2)))) (+ (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* 1/8 (* (pow (log (* 2 PI)) 2) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (pow k 2))))))) (+ (* 1/2 (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) (* (log n) k))) (* 1/2 (* (log (* 2 PI)) (* (exp (* 1/2 (+ (log n) (log (* 2 PI))))) k)))))
314.0ms
(* (log (* (* n PI) 2)) (- 1/2 (/ k 2)))
277.0ms
(/ (* (* (pow (* (* n PI) 2) (- 1/2 (/ k 2))) (pow (* (* n PI) 2) (- 1/2 (/ k 2)))) (pow (* (* n PI) 2) (- 1/2 (/ k 2)))) (* (* (sqrt k) (sqrt k)) (sqrt k)))

prune964.0ms

Pruning

6 alts after pruning (4 fresh and 2 done)

Merged error: 0b

regimes205.0ms

Accuracy

0% (0.3b remaining)

Error of 0.4b against oracle of 0.1b and baseline of 0.4b

bsearch2.0ms

end0.0ms

sample8.4s

Algorithm
intervals