<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hello,<br>
    </p>
    <div class="moz-cite-prefix">Le 13/09/2019 à 12:51, Stéphane
      Mottelet a écrit :<br>
    </div>
    <blockquote type="cite"
      cite="mid:5ea315c5-8122-c5f8-2416-d9ba92fd914c@utc.fr">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p><br>
      </p>
      <div class="moz-cite-prefix">Le 13/09/2019 à 12:45, Samuel Gougeon
        a écrit :<br>
      </div>
      <blockquote type="cite"
        cite="mid:b6cb630c-990c-99b1-5f4a-cc006a11328a@free.fr">
        <meta http-equiv="Content-Type" content="text/html;
          charset=UTF-8">
        <div class="moz-cite-prefix">Hello,</div>
        <div class="moz-cite-prefix"><br>
        </div>
        <div class="moz-cite-prefix">To me, <a
href="https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/bugzilla.scilab.org/show_bug.cgi?id=15781#c2"
            moz-do-not-send="true">as already claimed there</a>, it's
          clear that, for a complex-encoded number, not displaying its
          null imaginary part is a bug, and the proposed patch is
          clearly welcome as well.<br>
        </div>
        <div class="moz-cite-prefix"><br>
        </div>
        <div class="moz-cite-prefix">Another regression very close to
          this one, but with real numbers display, would deserve the
          same care :</div>
        <div class="moz-cite-prefix">Scilab 5:</div>
        <div class="moz-cite-prefix"><tt>-->[1e30 1e-30]</tt><tt><br>
          </tt><tt> ans  = </tt><tt><br>
          </tt><tt>    1.000D+30    1.000D-30  </tt><tt><br>
          </tt><br>
          Scilab 6:<br>
        </div>
        <div class="moz-cite-prefix"><tt>--> [1e30 1e-30]</tt><tt><br>
          </tt><tt> ans  =</tt><tt><br>
          </tt><tt>   1.000D+30   0.</tt><tt><br>
          </tt></div>
      </blockquote>
      <tt>The patch also fixes this.</tt><br>
      <blockquote type="cite"
        cite="mid:b6cb630c-990c-99b1-5f4a-cc006a11328a@free.fr">
        <div class="moz-cite-prefix"><tt> </tt></div>
        <div class="moz-cite-prefix"><br>
        </div>
        <div class="moz-cite-prefix">So, very small numbers are reduced
          to strict 0...<br>
        </div>
      </blockquote>
    </blockquote>
    <p><br>
    </p>
    <p>Samuel,  do you know if a bug was reported for this particular
      point ?</p>
    <p>Thanks,</p>
    <p>S.<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:5ea315c5-8122-c5f8-2416-d9ba92fd914c@utc.fr">
      <blockquote type="cite"
        cite="mid:b6cb630c-990c-99b1-5f4a-cc006a11328a@free.fr">
        <div class="moz-cite-prefix"> </div>
        <div class="moz-cite-prefix">This is a bad implementation of the
          variable format mode. The Scilab 5 one was correct, at least
          on this point.<br>
        </div>
        <p> Best regards<br>
          Samuel<br>
        </p>
        <div class="moz-cite-prefix"><br>
        </div>
        <div class="moz-cite-prefix">Le 12/09/2019 à 10:26, Stéphane
          Mottelet a écrit :<br>
        </div>
        <blockquote type="cite"
          cite="mid:3f0654df-5d03-ce02-f3e5-c1e537483d05@utc.fr">Hello
          all, <br>
          <br>
          The subject has been already discussed a lot but I would like
          it to be discussed again because I now have a real rationale
          to promote a change in the way complex numbers with small
          imaginary part are displayed. <br>
          <br>
          I don't know if some of you were aware of the clever technique
          of complex-step derivative approximation, but until yesterday
          I was not (see e.g. <a class="moz-txt-link-freetext"
href="https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/mdolab.engin.umich.edu/sites/default/files/Martins2003CSD.pdf"
            moz-do-not-send="true">http://mdolab.engin.umich.edu/sites/default/files/Martins2003CSD.pdf</a>).
          Roughly speaking, using the extension of a real function
          x->f(x) to the complex plane allows to compute an
          approximation of the derivative f'(x0) at a real x0 without
          using a substraction, like in the central difference formula
          (f(x0+h)-f(x0-h))/2/h which is subject to substractive
          cancelation when h is small. In Scilab most operators and
          elementary functions are already complex-aware so this is easy
          to illustrate the technique. For example let us approximate
          the derivative of x->cos(x) at x=%pi/4, first with the
          central difference formula, then with the complex step
          technique: <br>
          <br>
          --> format("e",24) <br>
          <br>
          --> h=%eps/128, x0=%pi/4 <br>
           h  = <br>
          <br>
             1.73472347597680709D-18 <br>
          <br>
           x0  = <br>
          <br>
             7.85398163397448279D-01 <br>
          <br>
          <br>
          --> (cos(x0+h)-cos(x0-h))/2/h <br>
           ans  = <br>
          <br>
             0.00000000000000000D+00 <br>
          <br>
          <br>
          --> imag(cos(x0+%i*h))/h <br>
           ans  = <br>
          <br>
            -7.07106781186547462D-01 <br>
          <br>
          <br>
          --> -sin(x0) <br>
           ans  = <br>
          <br>
            -7.07106781186547462D-01 <br>
          <br>
          You can see the pathological approximation with central
          difference formula and the perfect (up to relative machine
          precision) approximation of complex-step formula. <br>
          <br>
          However, the following is a pity: <br>
          <br>
          <br>
          --> cos(x0+%i*h) <br>
           ans  = <br>
          <br>
             7.07106781186547573D-01 <br>
          <br>
          We cannot see the imaginary part although seeing the latter is
          fundamental in the complex-step technique. We have to force
          the display like this, and frankly I don't like having to do
          that with my students: <br>
          <br>
          --> imag(cos(x0+%i*h)) <br>
           ans  = <br>
          <br>
            -1.22663473334669916D-18 <br>
          <br>
          I hope that you will find that this example is a good
          rationale to change the default display of Scilab. To feed the
          discussion, here is how Matlab displays things, without having
          to change the default settings: <br>
          <br>
          <br>
          >> h=eps/128, x0=pi/4 <br>
          h = <br>
             1.7347e-18 <br>
          x0 = <br>
              0.7854 <br>
          <br>
          >> (cos(x0+h)-cos(x0-h))/2/h <br>
          ans = <br>
               0 <br>
          <br>
          >> cos(x0+i*h) <br>
          ans = <br>
             0.7071 - 0.0000i <br>
          <br>
          >> imag(cos(x0+i*h))/h <br>
          ans = <br>
             -0.7071 <br>
          <br>
          >> -sin(x0) <br>
          ans = <br>
             -0.7071 <br>
          <br>
          <br>
        </blockquote>
        <p><br>
        </p>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org" moz-do-not-send="true">users@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users" moz-do-not-send="true">https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users</a>
</pre>
      </blockquote>
      <pre class="moz-signature" cols="72">-- 
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
<a class="moz-txt-link-freetext" href="http://www.utc.fr/~mottelet" moz-do-not-send="true">http://www.utc.fr/~mottelet</a>
</pre>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
<a class="moz-txt-link-freetext" href="http://www.utc.fr/~mottelet">http://www.utc.fr/~mottelet</a>
</pre>
  </body>
</html>