<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Hello Lester,</div>
    <div class="moz-cite-prefix"><br>
      <br>
    </div>
    <div class="moz-cite-prefix">Le 29/12/2021 à 09:00, Lester Anderson
      a écrit :<br>
    </div>
    <blockquote type="cite"
cite="mid:CAE3taFBPOF_pw=kwyTUaSwFFk812i+vgNyDkn=nmZy4r7Hv+8A@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Hello,
        <div><br>
        </div>
        <div>A quick query. Have adapted existing Matlab code for Scilan
          to calculate Bernoulli numbers using an explicit formula (<a
            href="http://www.bernoulli.org" moz-do-not-send="true">www.bernoulli.org</a>).
        </div>
      </div>
    </blockquote>
    <br>
    Not so explicit. Could you please provide the formula, before
    implementing it in Scilab language?<br>
    The following is a "vectorized" version of your code, likely with
    the same mistake:<br>
    <pre style="font-family:Monospaced;font-style:normal;font-size:13.0;"><span style="color:rgb(0,0,0);">B</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(74,85,219);">[</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(160,32,240);">for</span> <span style="color:rgb(0,0,0);">m</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">0</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(188,143,143);">20</span>
    <span style="color:rgb(0,0,0);">Sum</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">0</span><span style="color:rgb(0,0,0);">;</span>
    <span style="color:rgb(160,32,240);">for</span> <span style="color:rgb(0,0,0);">k</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">0</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(0,0,0);">m</span>
        <span style="color:rgb(0,0,0);">v</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">0</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(0,0,0);">k</span><span style="color:rgb(0,0,0);">;</span>
        <span style="color:rgb(0,0,0);">Sum</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">Sum</span> <span style="color:rgb(92,92,92);">+</span> <span style="color:rgb(50,185,185);">sum</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">.^</span><span style="color:rgb(0,0,0);">v</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">.*</span><span style="color:rgb(0,0,0);">nchoosek</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">k</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">v</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">.*</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">v</span><span style="color:rgb(92,92,92);">.^</span><span style="color:rgb(0,0,0);">m</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">k</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
    <span style="color:rgb(160,32,240);">end</span>
    <span style="color:rgb(0,0,0);">B</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">m</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">Sum</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(160,32,240);">end</span></pre>
    <p>A working implementation based on the recurrent formula
      <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow></mrow></semantics></math><font
        face="monospace"><math
          xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>
                  B</mi><mi>m</mi></msub><mo>=</mo><mfrac><mrow><mo>−</mo><mn>1</mn></mrow><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow></mfrac><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><mo>(</mo><mfrac
                  linethickness="0px"><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow><mi>k</mi></mfrac><mo>)</mo></mrow><msub><mi>B</mi><mi>k</mi></msub></mrow></semantics></math></font><br>
    </p>
    <p>could be:</p>
    <pre style="font-family:Monospaced;font-style:normal;font-size:13.0;"><span style="color:rgb(0,0,0);">mMax</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">20</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">B</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(50,185,185);">zeros</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">mMax</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">B</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(74,85,219);">)</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(160,32,240);">for</span> <span style="color:rgb(0,0,0);">m</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">2</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(0,0,0);">mMax</span>
    <span style="color:rgb(0,0,0);">B</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">m</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(92,92,92);">-</span><span style="color:rgb(50,185,185);">sum</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">nchoosek</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">m</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">0</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(0,0,0);">m</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">.*</span><span style="color:rgb(0,0,0);">B</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(0,0,0);">m</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">m</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(160,32,240);">end</span><font face="monospace">

--> B</font><font face="monospace">
 ans  =</font><font face="monospace">
         column 1 to 13</font><font face="monospace">
   1.  -0.5   0.1666667   0.  -0.0333333   0.   0.0238095   0.  -0.0333333   0.   0.0757576   0.  -0.2531136</font>
</pre>
    <font face="monospace"><br>
               column 14 to 21<br>
         0.   1.1666667   0.  -7.0921569   0.   54.971178   0. 
      -529.12424<br>
    </font><br>
    <p>To fasten the loop, the call to nchoosek() could be replaced with
      the 3 last rows of Pascal's triangle.<br>
      <br>
      Regards<br>
      Samuel<br>
    </p>
  </body>
</html>