Bernoulli numbers: Difference between revisions

no edit summary
m (→‎{{header|Sidef}}: updated code)
No edit summary
Line 827:
B(60) = -1215233140483755572040304994079820246041491 / 56786730
</pre>
=={{header|factor}}==
<lang factor>
SYMBOL: j
SYMBOL: k
SYMBOL: n
SYMBOL: tab
 
: tangent-numbers ( n -- seq )
n set
n get 1 + 0 <array> tab set
1 1 tab get set-nth
2 n get [a,b] [
k set
k get 1 - dup
tab get nth *
k get tab get set-nth
] each
2 n get [a,b] [
k set
k get n get [a,b] [
j set
j get tab get nth
j get k get - 2 + *
j get 1 - tab get nth
j get k get - * +
j get tab get set-nth
] each
] each
tab get
;
 
: tangent-number>bernoulli-number ( t n -- b )
2 * dup 2 swap ^ dup 1 - * / swap *
;
</lang>
This uses a method described by Brent and Harvey in https://arxiv.org/pdf/1108.0286.pdf to calculate the tangent numbers, and then from those the bernoulli numbers (without sign).
=={{header|FreeBASIC}}==
{{libheader|GMP}}