* Bug #14303 fixed - matrix display for large number was not correctly aligned 47/17747/3
Pierre-Aime Agnel [Fri, 29 Jan 2016 11:22:48 +0000 (12:22 +0100)]
Change-Id: I411a353ce6f5b729e639cc9efef4753ad85be82c

scilab/CHANGES_6.0.X
scilab/modules/ast/src/cpp/types/double.cpp
scilab/modules/ast/src/cpp/types/tostring_common.cpp
scilab/modules/ast/tests/nonreg_tests/bug_14209.dia.ref
scilab/modules/ast/tests/nonreg_tests/bug_14303.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/nonreg_tests/bug_14303.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/displaycomplex.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_414.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_6891.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_883.dia.ref
scilab/modules/core/tests/unit_tests/parse.dia.ref

index 9ff0193..fcf8f8c 100644 (file)
@@ -152,6 +152,8 @@ API modification
 Bug Fixes
 =========
 
+* Bug #6057 fixed  - trailing space after minus sign has been removed from the display of values
+
 * Bug #11511 fixed - error() did non accept string matrix (non regression test).
 
 * Bug #12044 fixed - Adding or substracting the empty matrix now return an empty matrix.
@@ -291,6 +293,8 @@ Bug Fixes
 
 * Bug #14232 fixed - Typos in Xcos.
 
+* Bug #14303 fixed - matrix display for large number was not correctly aligned
+
 
 
 
index 3d377e1..fbbc4b4 100644 (file)
@@ -554,10 +554,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
         int *piSize = new int[getCols()];
         memset(piSize, 0x00, getCols() * sizeof(int));
 
-        //Array with the max precision of each col (use to padd right with 0 3.6000)
-        int *piMaxPrec = new int[getCols()];
-        memset(piMaxPrec, 0x00, getCols() * sizeof(int));
-
         if (isComplex() == false)
         {
             //compute the row size for padding for each printed bloc.
@@ -572,7 +568,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
                     DoubleFormat df;
                     getDoubleFormat(ZeroIsZero(m_pRealData[iPos]), &df);
                     piSize[iCols1] = std::max(piSize[iCols1], df.iWidth);
-                    piMaxPrec[iCols1] = std::max(piMaxPrec[iCols1], df.iPrec);
                 }
 
                 if (iLen + piSize[iCols1] > iLineLen && iCols1 != iLastCol)
@@ -594,7 +589,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
                             m_iRows2PrintState = iRows2;
                             m_iCols1PrintState = iLastCol;
                             delete[] piSize;
-                            delete[] piMaxPrec;
                             return false;
                         }
 
@@ -609,7 +603,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
 
                             ostemp << SPACE_BETWEEN_TWO_VALUES;
 
-                            df.iPrec = piMaxPrec[iCols2];
                             df.iWidth = piSize[iCols2];
                             addDoubleValue(&ostemp, ZeroIsZero(m_pRealData[iPos]), &df);
                         }
@@ -649,7 +642,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
                     m_iRows2PrintState = iRows2;
                     m_iCols1PrintState = iLastCol;
                     delete[] piSize;
-                    delete[] piMaxPrec;
                     return false;
                 }
 
@@ -663,7 +655,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
                     getDoubleFormat(ZeroIsZero(m_pRealData[iPos]), &df);
 
                     ostemp << SPACE_BETWEEN_TWO_VALUES;
-                    df.iPrec = piMaxPrec[iCols2];
                     df.iWidth = piSize[iCols2];
                     addDoubleValue(&ostemp, ZeroIsZero(m_pRealData[iPos]), &df);
                 }
@@ -697,7 +688,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
                         piSize[iCols1] = iTotalWidth;
                     }
 
-                    piMaxPrec[iCols1] = std::max(piMaxPrec[iCols1], dfR.iPrec);
                 }
 
                 if (iLen + piSize[iCols1] > iLineLen && iCols1 != iLastCol)
@@ -719,7 +709,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
                             m_iRows2PrintState = iRows2;
                             m_iCols1PrintState = iLastCol;
                             delete[] piSize;
-                            delete[] piMaxPrec;
                             return false;
                         }
 
@@ -734,8 +723,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
                             getComplexFormat(ZeroIsZero(m_pRealData[iPos]), ZeroIsZero(m_pImgData[iPos]), &iTotalWidth, &dfR, &dfI);
 
                             ostemp << SPACE_BETWEEN_TWO_VALUES;
-                            dfR.iPrec = piMaxPrec[iCols2];
-                            dfI.iPrec = piMaxPrec[iCols2];
                             addDoubleComplexValue(&ostemp, ZeroIsZero(m_pRealData[iPos]), ZeroIsZero(m_pImgData[iPos]), piSize[iCols2], &dfR, &dfI);
                         }
                         ostemp << std::endl;
@@ -774,7 +761,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
                     m_iRows2PrintState = iRows2;
                     m_iCols1PrintState = iLastCol;
                     delete[] piSize;
-                    delete[] piMaxPrec;
                     return false;
                 }
 
@@ -789,8 +775,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
                     getComplexFormat(ZeroIsZero(m_pRealData[iPos]), ZeroIsZero(m_pImgData[iPos]), &iTotalWidth, &dfR, &dfI);
 
                     ostemp << SPACE_BETWEEN_TWO_VALUES;
-                    dfR.iPrec = piMaxPrec[iCols2];
-                    dfI.iPrec = piMaxPrec[iCols2];
                     addDoubleComplexValue(&ostemp, ZeroIsZero(m_pRealData[iPos]), ZeroIsZero(m_pImgData[iPos]), piSize[iCols2], &dfR, &dfI);
                 }
                 ostemp << std::endl;
@@ -804,7 +788,6 @@ bool Double::subMatrixToString(std::wostringstream& ostr, int* _piDims, int /*_i
         }
 
         delete[] piSize;
-        delete[] piMaxPrec;
     }
 
     return true;
index 4792ab6..566c6f2 100644 (file)
@@ -247,7 +247,7 @@ void addDoubleValue(std::wostringstream * _postr, double _dblVal, DoubleFormat *
         }
     }
 
-    os_swprintf(pwstSign, 32, L"%ls%ls%ls", pBlank, pSign, pBlank);
+    os_swprintf(pwstSign, 32, L"%ls%ls", pBlank, pSign);
 
     if (ISNAN(_dblVal))
     {
@@ -281,16 +281,17 @@ void addDoubleValue(std::wostringstream * _postr, double _dblVal, DoubleFormat *
 
         if (_pDF->bPrintPoint)
         {
-            os_swprintf(pwstFormat, 32, L"%ls%%#d.%%0%ddD%%+.02d", pwstSign, _pDF->iPrec);
+            os_swprintf(pwstFormat, 32, L"%ls%%#d.%%0%dldD%%+.02d", pwstSign, _pDF->iPrec);
         }
         else
         {
-            os_swprintf(pwstFormat, 32, L"%ls%%d%%0%ddD%%+.02d", pwstSign, _pDF->iPrec);
+            os_swprintf(pwstFormat, 32, L"%ls%%d%%0%dldD%%+.02d", pwstSign, _pDF->iPrec);
         }
 
-        if ((int)std::round(dblDec) != (int)dblDec)
+        if ((long long int)std::round(dblDec) != (long long int)dblDec)
         {
-            double d1 = (int)std::round(dblDec);
+            // casting to long long int to avoid overflow to negative values
+            double d1 = (long long int)std::round(dblDec);
             d1 = fmod(d1, std::pow(10., _pDF->iPrec));
             if (d1 < dblDec)
             {
@@ -301,7 +302,9 @@ void addDoubleValue(std::wostringstream * _postr, double _dblVal, DoubleFormat *
             dblDec = d1;
         }
 
-        os_swprintf(pwstOutput, 32, pwstFormat, (int)dblEnt, (int)dblDec, (int)dblTemp);
+        // long long int to be able to print up to format(25) otherwise you just write overflow
+        // and write a negative number, dblEnt is at most one digit
+        os_swprintf(pwstOutput, 32, pwstFormat, (int)dblEnt, (long long int)dblDec, (int)dblTemp);
     }
     else if ((_pDF->bPrintOne == true) || (isEqual(fabs(_dblVal), 1)) == false)
     {
@@ -455,3 +458,4 @@ void addColumnString(std::wostringstream& ostr, int _iFrom, int _iTo)
         ostr << std::endl << L"         column " << _iFrom << L" to " << _iTo << std::endl << std::endl;
     }
 }
+
index db96b55..e6f3e1a 100644 (file)
 // 1:245 creates infinite loop
 1:245
  ans  =
-         column 1 to 11
-    1.    2.    3.    4.    5.    6.    7.    8.    9.    10.    11.
-         column 12 to 21
-    12.    13.    14.    15.    16.    17.    18.    19.    20.    21.
-         column 22 to 31
-    22.    23.    24.    25.    26.    27.    28.    29.    30.    31.
-         column 32 to 41
-    32.    33.    34.    35.    36.    37.    38.    39.    40.    41.
-         column 42 to 51
-    42.    43.    44.    45.    46.    47.    48.    49.    50.    51.
-         column 52 to 61
-    52.    53.    54.    55.    56.    57.    58.    59.    60.    61.
-         column 62 to 71
-    62.    63.    64.    65.    66.    67.    68.    69.    70.    71.
-         column 72 to 81
-    72.    73.    74.    75.    76.    77.    78.    79.    80.    81.
-         column 82 to 91
-    82.    83.    84.    85.    86.    87.    88.    89.    90.    91.
-         column 92 to 100
-    92.    93.    94.    95.    96.    97.    98.    99.    100.
-         column 101 to 108
-    101.    102.    103.    104.    105.    106.    107.    108.
-         column 109 to 116
-    109.    110.    111.    112.    113.    114.    115.    116.
-         column 117 to 124
-    117.    118.    119.    120.    121.    122.    123.    124.
-         column 125 to 132
-    125.    126.    127.    128.    129.    130.    131.    132.
-         column 133 to 140
-    133.    134.    135.    136.    137.    138.    139.    140.
-         column 141 to 148
-    141.    142.    143.    144.    145.    146.    147.    148.
-         column 149 to 156
-    149.    150.    151.    152.    153.    154.    155.    156.
-         column 157 to 164
-    157.    158.    159.    160.    161.    162.    163.    164.
-         column 165 to 172
-    165.    166.    167.    168.    169.    170.    171.    172.
-         column 173 to 180
-    173.    174.    175.    176.    177.    178.    179.    180.
-         column 181 to 188
-    181.    182.    183.    184.    185.    186.    187.    188.
-         column 189 to 196
-    189.    190.    191.    192.    193.    194.    195.    196.
-         column 197 to 204
-    197.    198.    199.    200.    201.    202.    203.    204.
-         column 205 to 212
-    205.    206.    207.    208.    209.    210.    211.    212.
-         column 213 to 220
-    213.    214.    215.    216.    217.    218.    219.    220.
-         column 221 to 228
-    221.    222.    223.    224.    225.    226.    227.    228.
-         column 229 to 236
-    229.    230.    231.    232.    233.    234.    235.    236.
-         column 237 to 244
-    237.    238.    239.    240.    241.    242.    243.    244.
-         column 245
-    245.
+         column 1 to 13
+   1.   2.   3.   4.   5.   6.   7.   8.   9.   10.   11.   12.   13.
+         column 14 to 24
+   14.   15.   16.   17.   18.   19.   20.   21.   22.   23.   24.
+         column 25 to 35
+   25.   26.   27.   28.   29.   30.   31.   32.   33.   34.   35.
+         column 36 to 46
+   36.   37.   38.   39.   40.   41.   42.   43.   44.   45.   46.
+         column 47 to 57
+   47.   48.   49.   50.   51.   52.   53.   54.   55.   56.   57.
+         column 58 to 68
+   58.   59.   60.   61.   62.   63.   64.   65.   66.   67.   68.
+         column 69 to 79
+   69.   70.   71.   72.   73.   74.   75.   76.   77.   78.   79.
+         column 80 to 90
+   80.   81.   82.   83.   84.   85.   86.   87.   88.   89.   90.
+         column 91 to 101
+   91.   92.   93.   94.   95.   96.   97.   98.   99.   100.   101.
+         column 102 to 110
+   102.   103.   104.   105.   106.   107.   108.   109.   110.
+         column 111 to 119
+   111.   112.   113.   114.   115.   116.   117.   118.   119.
+         column 120 to 128
+   120.   121.   122.   123.   124.   125.   126.   127.   128.
+         column 129 to 137
+   129.   130.   131.   132.   133.   134.   135.   136.   137.
+         column 138 to 146
+   138.   139.   140.   141.   142.   143.   144.   145.   146.
+         column 147 to 155
+   147.   148.   149.   150.   151.   152.   153.   154.   155.
+         column 156 to 164
+   156.   157.   158.   159.   160.   161.   162.   163.   164.
+         column 165 to 173
+   165.   166.   167.   168.   169.   170.   171.   172.   173.
+         column 174 to 182
+   174.   175.   176.   177.   178.   179.   180.   181.   182.
+         column 183 to 191
+   183.   184.   185.   186.   187.   188.   189.   190.   191.
+         column 192 to 200
+   192.   193.   194.   195.   196.   197.   198.   199.   200.
+         column 201 to 209
+   201.   202.   203.   204.   205.   206.   207.   208.   209.
+         column 210 to 218
+   210.   211.   212.   213.   214.   215.   216.   217.   218.
+         column 219 to 227
+   219.   220.   221.   222.   223.   224.   225.   226.   227.
+         column 228 to 236
+   228.   229.   230.   231.   232.   233.   234.   235.   236.
+         column 237 to 245
+   237.   238.   239.   240.   241.   242.   243.   244.   245.
diff --git a/scilab/modules/ast/tests/nonreg_tests/bug_14303.dia.ref b/scilab/modules/ast/tests/nonreg_tests/bug_14303.dia.ref
new file mode 100644 (file)
index 0000000..07d67a8
--- /dev/null
@@ -0,0 +1,150 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Pierre-Aime AGNEL
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 14303 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14303
+//
+// <-- Short Description -->
+// Display of matrices with scientific notation and lots of digits
+// were wrong
+A = [1,0,0,0,0,0,0,0;
+0,1,0,0,0,0,0,0;
+-1,0,2,0,0,0,0,0;
+0,-3,0,4,0,0,0,0;
+1,0,-8,0,8,0,0,0;
+0,5,0,-20,0,16,0,0;
+-1,0,18,0,-48,0,32,0;
+0,-7,0,56,0,-112,0,64]
+ A  = 
+   1.   0.   0.    0.    0.    0.     0.    0. 
+   0.   1.   0.    0.    0.    0.     0.    0. 
+  -1.   0.   2.    0.    0.    0.     0.    0. 
+   0.  -3.   0.    4.    0.    0.     0.    0. 
+   1.   0.  -8.    0.    8.    0.     0.    0. 
+   0.   5.   0.   -20.   0.    16.    0.    0. 
+  -1.   0.   18.   0.   -48.   0.     32.   0. 
+   0.  -7.   0.    56.   0.   -112.   0.    64.
+//display is ok
+disp(expm(A));
+         column 1 to 6
+   2.7182818   0.          0.          0.          0.          0.       
+   0.          2.7182818   0.          0.0000001   0.         -0.0000002
+  -4.6707743   0.          7.3890561   0.          0.          0.       
+   0.         -51.879868   0.          54.59815    0.          0.0000002
+   986.51887   0.         -3964.7586   0.          2980.9581   0.       
+   0.          5923608.3   0.         -14809151.   0.          8885544.9
+  -3.505D+12   0.          2.980D+13   0.         -5.258D+13   0.       
+   0.         -1.908D+08   0.          8.924D+08   0.         -1.243D+09
+         column 7 to 8
+   0.          0.       
+   0.          8.396D-08
+   0.          0.       
+   0.         -7.490D-08
+  -0.000061    0.       
+   0.          0.000001 
+   2.629D+13   0.       
+   0.          5.417D+08
+// now display is ok
+format(25);
+disp(expm(A));
+         column 1 to 2
+   2.7182818284590459789740   0.                      
+   0.                         2.7182818015177225845491
+  -4.6707742704716039838786   0.                      
+   0.                        -51.879868171559834877371
+   986.51887138491565565346   0.                      
+   0.                         5923608.336195232346654 
+  -3505325614554.6108398438   0.                      
+   0.                        -190824518.11990356445312
+         column 3 to 4
+   0.                         0.                      
+   0.                         0.0000001317192458835057
+   7.3890560989306468542281   0.                      
+   0.                         54.59814989296543075170 
+  -3964.7586192011626735621   0.                      
+   0.                        -14809150.540157752111554
+   29795267732595.20703125    0.                      
+   0.                         892372855.75740456581116
+         column 5 to 6
+   0.                         0.                      
+   0.                        -0.0000001887344807005064
+   0.                         0.                      
+   0.                         0.0000001819498482334282
+   2980.9580906107216833334   0.                      
+   0.                         8885544.922243420034647 
+  -52579884242037.671875      0.                      
+   0.                        -1243259289.7225642204285
+         column 7 to 8
+   0.                         0.                      
+   0.                         0.0000000839564363063566
+   0.                         0.                      
+   0.                        -0.000000074896572352002 
+  -0.0000609660211250409242   0.                      
+   0.                         0.0000009705089855263858
+   26289942123999.79296875    0.                      
+   0.                         541710954.80334520339966
+A =  (rand(8,8) - 0.5) .* 10 .^ (100*rand(8,8));
+disp(A);
+         column 1 to 2
+  -1.152382593853394688D+37   13828508828410826457088.
+   6.572339451314636736D+72  -2.377050357234635328D+62
+  -7.184434921596705152D+25   7.388845917315683712D+74
+  -1.460665822852772224D+49   11644.822571620286908001
+   4.020407579238427508D+25   3.928973261927621888D+66
+   4.407254235427137344D+51  -44770666213083734016.   
+   2.023251346759814772D+53   5.777291352008974848D+37
+   185412704886.58285522461  -2.698852520989025280D+82
+         column 3 to 4
+  -1.646616705377840896D+58  -5.147909587494249088D+51
+  -5.551397644948195904D+47  -4.262739462669012256D+98
+   8171273493477926633472.    5.104574239366676208D+63
+   1.556556714454542464D+83  -2.959913572286739072D+97
+  -220873521326.19219970703  -16945.815687946760590421
+   1.549141476585236928D+28   6.697633939853373568D+73
+  -3.393120025441348288D+85   1.684459501435421568D+38
+  -1.635643902950186368D+84  -4.421569138861139328D+59
+         column 5 to 6
+  -6.384589689143696832D+84  -1.997583295908201600D+55
+   353938.03434380819089711  -1158615347918.9926757812
+  -5.856778292959950720D+81   1.724869078287576448D+72
+   1.758340164843228672D+92  -1.726646475300363136D+26
+  -2.144526103437785824D+56  -1.745939787243337600D+54
+  -2.372709795161990400D+55   1.326979315171807424D+98
+  -9.421033327385178048D+80  -3.138651211374607456D+73
+  -41654.899522167565010022   0.4638577071769591775308
+         column 7 to 8
+   3.460869547272914304D+58   71.648021056924804383925
+  -8.646990192170752768D+29   2.169898772883512640D+51
+  -3.011545501165211026D+24   6.225533857461559968D+36
+   1.249566775012397088D+62  -2.057406060779635840D+23
+  -144859034086.54284667969  -4.965610945697822080D+49
+  -4.440202060740571008D+60   9.696850027558079744D+41
+   4.275780530481831040D+66   3.884596969988515840D+28
+   1.423464813929957248D+32  -118506605.46667523682117
+format(10);
+disp(A);
+         column 1 to 6
+  -1.152D+37   1.383D+22  -1.647D+58  -5.148D+51  -6.385D+84  -1.998D+55
+   6.572D+72  -2.377D+62  -5.551D+47  -4.263D+98   353938.03  -1.159D+12
+  -7.184D+25   7.389D+74   8.171D+21   5.105D+63  -5.857D+81   1.725D+72
+  -1.461D+49   11644.823   1.557D+83  -2.960D+97   1.758D+92  -1.727D+26
+   4.020D+25   3.929D+66  -2.209D+11  -16945.816  -2.145D+56  -1.746D+54
+   4.407D+51  -4.477D+19   1.549D+28   6.698D+73  -2.373D+55   1.327D+98
+   2.023D+53   5.777D+37  -3.393D+85   1.684D+38  -9.421D+80  -3.139D+73
+   1.854D+11  -2.699D+82  -1.636D+84  -4.422D+59  -41654.9     0.4638577
+         column 7 to 8
+   3.461D+58   71.648021
+  -8.647D+29   2.170D+51
+  -3.012D+24   6.226D+36
+   1.250D+62  -2.057D+23
+  -1.449D+11  -4.966D+49
+  -4.440D+60   9.697D+41
+   4.276D+66   3.885D+28
+   1.423D+32  -1.185D+08
diff --git a/scilab/modules/ast/tests/nonreg_tests/bug_14303.tst b/scilab/modules/ast/tests/nonreg_tests/bug_14303.tst
new file mode 100644 (file)
index 0000000..1ca8320
--- /dev/null
@@ -0,0 +1,39 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Pierre-Aime AGNEL
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 14303 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14303
+//
+// <-- Short Description -->
+// Display of matrices with scientific notation and lots of digits
+// were wrong
+
+A = [1,0,0,0,0,0,0,0;
+0,1,0,0,0,0,0,0;
+-1,0,2,0,0,0,0,0;
+0,-3,0,4,0,0,0,0;
+1,0,-8,0,8,0,0,0;
+0,5,0,-20,0,16,0,0;
+-1,0,18,0,-48,0,32,0;
+0,-7,0,56,0,-112,0,64]
+//display is ok
+
+disp(expm(A));
+// now display is ok
+
+format(25);
+disp(expm(A));
+
+A =  (rand(8,8) - 0.5) .* 10 .^ (100*rand(8,8));
+disp(A);
+format(10);
+disp(A);
+
index 658b895..a8a436d 100644 (file)
@@ -8,64 +8,64 @@
 // Test display of complex matrix, leave each line without semicolon
 complex(ones(1,5), ones(1,5))
  ans  =
-    1. + i      1. + i      1. + i      1. + i      1. + i  
+   1. +i     1. +i     1. +i     1. +i     1. +i
 complex(ones(1,5), 2*ones(1,5))
  ans  =
-    1. + 2.i    1. + 2.i    1. + 2.i    1. + 2.i    1. + 2.i
+   1. +2.i   1. +2.i   1. +2.i   1. +2.i   1. +2.i
 complex(ones(1,5), zeros(1,5))
  ans  =
-    1.    1.    1.    1.    1.
+   1.   1.   1.   1.   1.
 [1 + %i, 1 + 2*%i, 1 + 3*%i]
  ans  =
-    1. + i      1. + 2.i    1. + 3.i
+   1. +i     1. +2.i   1. +3.i
 [1 + %i, 1 + 2*%i, 1 + 3*%i ; 1 + 3*%i, 1 + %i, 1+3*%i]
  ans  =
-    1. + i      1. + 2.i    1. + 3.i
-    1. + 3.i    1. + i      1. + 3.i
+   1. +i       1. +2.i     1. +3.i
+   1. +3.i     1. +i       1. +3.i
 [1, 1+%i, 1 + 3*%i ; 1 + 3*%i, 1 + 3*%i, 1 + 3*%i]
  ans  =
-    1.          1. + i      1. + 3.i
-    1. + 3.i    1. + 3.i    1. + 3.i
+   1.          1. +i       1. +3.i
+   1. +3.i     1. +3.i     1. +3.i
 [1, 1+%i, 1 + 3*%i ; 1 + 3*%i, 1 + %i, 1 + 3*%i]
  ans  =
-    1.          1. + i      1. + 3.i
-    1. + 3.i    1. + i      1. + 3.i
+   1.          1. +i       1. +3.i
+   1. +3.i     1. +i       1. +3.i
 [rand() + rand()*%i, rand()+rand()*%i;
  1+%i, 1+%i;
  1, 1+%i;
 %i, 2 + 2*%i;
 -2, -2 - 2*%i]
  ans  =
-    0.2113249 + 0.7560439i    0.0002211 + 0.3303271i
-    1.0000000 + i             1.0000000 + i         
-    1.0000000                 1.0000000 + i         
-    i                         2.0000000 + 2.0000000i
-  - 2.0000000               - 2.0000000 - 2.0000000i
+   0.2113249 +0.7560439i     0.0002211 +0.3303271i
+   1. +i                     1. +i
+   1.                        1. +i
+   i                         2. +2.i
+  -2.                       -2. -2.i
 [ 1+%i, 1+%i;
  1, 1+%i;
 %i, 2 + 2*%i;
 -2, -2 - 2*%i]
  ans  =
-    1. + i      1. + i  
-    1.          1. + i  
-    i           2. + 2.i
-  - 2.        - 2. - 2.i
+   1. +i       1. +i
+   1.          1. +i
+   i           2. +2.i
+  -2.         -2. -2.i
 [2+2*%i, 2+2*%i;]
  ans  =
-    2. + 2.i    2. + 2.i
+   2. +2.i   2. +2.i
 [ 1+%i, 1+%i]
  ans  =
-    1. + i      1. + i  
+   1. +i     1. +i
 [1+%i, 1+%i;
 1+%i, 1+%i;]
  ans  =
-    1. + i      1. + i  
-    1. + i      1. + i  
+   1. +i       1. +i
+   1. +i       1. +i
 [%i, 1+%i]
  ans  =
-    i     1. + i  
+   i    1. +i
 [%i, 1+%i;
 %i, 1+%i]
  ans  =
-    i     1. + i  
-    i     1. + i  
+   i     1. +i
+   i     1. +i
index de71116..b63df6d 100644 (file)
 // a tiny bug regarding the display of (boolean only?) arrays.
 t=(1:35)>0;
 for ll=69:73,lines(0,ll),t,end
-t  = 
+ t  = 
        column 1 to 34
   T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T
        column 35 to 35
   T
-t  = 
+ t  = 
        column 1 to 34
   T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T
        column 35 to 35
   T
-t  = 
+ t  = 
   T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T
-t  = 
+ t  = 
   T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T
-t  = 
+ t  = 
   T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T
 t=(1:13);
 for ll=69:6:90,lines(0,ll),t,end
-t  = 
+ t  = 
          column 1 to 10
     1.    2.    3.    4.    5.    6.    7.    8.    9.    10.
          column 11 to 13
     11.    12.    13.
-t  = 
+ t  = 
          column 1 to 11
     1.    2.    3.    4.    5.    6.    7.    8.    9.    10.    11.
          column 12 to 13
     12.    13.
-t  = 
+ t  = 
          column 1 to 12
     1.    2.    3.    4.    5.    6.    7.    8.    9.    10.    11.    12.
          column 13
     13.
-t  = 
+ t  = 
     1.    2.    3.    4.    5.    6.    7.    8.    9.    10.    11.    12.    13.
 t=int32(1:23);
 for ll=55:2:65,lines(0,ll),t,end
-t  = 
+ t  = 
          column 1 to 16
   1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16
          column 17 to 23
   17  18  19  20  21  22  23
-t  = 
-         column 1 to 16
-  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16
-         column 17 to 23
-  17  18  19  20  21  22  23
-t  = 
+ t  = 
          column 1 to 17
   1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17
          column 18 to 23
   18  19  20  21  22  23
-t  = 
+ t  = 
          column 1 to 17
   1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17
          column 18 to 23
   18  19  20  21  22  23
-t  = 
+ t  = 
          column 1 to 18
   1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18
          column 19 to 23
   19  20  21  22  23
-t  = 
+ t  = 
          column 1 to 18
   1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18
          column 19 to 23
   19  20  21  22  23
+ t  = 
+         column 1 to 19
+  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19
+         column 20 to 23
+  20  21  22  23
index f132b05..7f98880 100644 (file)
 whos -name %modalWarning
 Name                     Type           Size           Bytes        
  
-%modalWarning            boolean*       1 by 1         24           
+%modalWarning            boolean*       1 by 1         0            
 whos -name corel
 Name                     Type           Size           Bytes        
  
-corelib                  library                       592          
+corelib                  library                       0            
 whos -type polynomial
 Name                     Type           Size           Bytes        
  
-$                        polynomial     1 by 1         56           
-%s                       polynomial     1 by 1         56           
-%z                       polynomial     1 by 1         56           
+%s                       polynomial     1 by 1         0            
+%z                       polynomial     1 by 1         0            
index c404e9d..b075d86 100644 (file)
@@ -19,51 +19,27 @@ for i=2:25
  format(i);
  disp(b);
 end;
-   **  
-   ***  
-   200.  
-    200.  
-    200.  
-    200.  
-    200.  
-    200.  
-    200.  
-    200.  
-    200.  
-    200.  
-    200.  
-    200.  
-    200.  
-    200.  
-    200.  
-    199.99999999999997  
-    199.999999999999972  
-    199.9999999999999716  
-    199.99999999999997158  
-    199.999999999999971578  
-    199.9999999999999715783  
-    199.99999999999997157829  
+    1.0    D+02
+    1.0   D+02
+    1.0  D+02
+    200.
+    200.
+    200.
+    200.
+    200.
+    200.
+    200.
+    200.
+    200.
+    200.
+    200.
+    200.
+    200.
+    200.
+    199.99999999999997
+    199.999999999999972
+    199.9999999999999716
+    199.9999999999999716
+    199.999999999999971578
+    199.9999999999999715783
+    199.9999999999999715783
index 41c6400..6d19187 100644 (file)
@@ -31,7 +31,7 @@ sin(3)
  ans  =
     0.14112
 ans
-ans  =
+ ans  = 
     0.14112
 ans==1
  ans  =
@@ -54,46 +54,46 @@ disp xxx
  xxx
 //syntax with simple lhs
 a=1
-a  =
+ a  = 
     1.
 a=[1 2 3]
-a  =
+ a  = 
     1.    2.    3.
 a=[1 2 3
 4 5 6]
-a  =
+ a  = 
     1.    2.    3.
     4.    5.    6.
 a(2)=44
-a  =
+ a  = 
     1.     2.    3.
     44.    5.    6.
 clear c;c(5)=9
-c  =
+ c  = 
     0.
     0.
     0.
     0.
     9.
 [m,k]=max(1:3)
-k  =
+ k  = 
     3.
-m  =
+ m  = 
     3.
 [d1f d2f d3f d4f] = (1,2,3,4)
-d4f  =
+ d4f  = 
     4.
-d3f  =
+ d3f  = 
     3.
-d2f  =
+ d2f  = 
     2.
-d1f  =
+ d1f  = 
     1.
 //if 10<>3 then x=disp('abcd'),end
 if 10<>3 then disp("abcd"),end
  abcd
 //if 10<>3  x=disp('abcd'),end//matlab syntax
-if 10<>3  disp("abcd"),endend//matlab syntax
+if 10<>3  disp("abcd"),end//matlab syntax
  abcd
 if (1==1) then "ok",end
  ans  =
@@ -111,13 +111,13 @@ for k=1:2,(1+1),end
  ans  =
     2.
 for k=1:2,[m,k]=max(1:k),end
-k  =
+ k  = 
     1.
-m  =
+ m  = 
     1.
-k  =
+ k  = 
     2.
-m  =
+ m  = 
     2.
 for k=1:2,[1,2],end
  ans  =
@@ -125,61 +125,61 @@ for k=1:2,[1,2],end
  ans  =
     1.    2.
 for k=1:3 k,end //matlab syntax
-k  = (2)
+ k  = 
     1.
-k  = (2)
+ k  = 
     2.
-k  = (2)
+ k  = 
     3.
 //nouvelles syntaxes
 [a(1),b(2)]=(3,4)
-b  =
+ b  = 
     0.
     4.
-a  =
+ a  = 
     3.     2.    3.
     44.    5.    6.
 [a(1),x,b(2)]=(3,4,5)
-b  =
+ b  = 
     0.
     5.
-x  =
+ x  = 
     4.
-a  =
+ a  = 
     3.     2.    3.
     44.    5.    6.
 [a(1),b(1,2),x]=(3,4,5)
-x  =
+ x  = 
     5.
-b  =
+ b  = 
     0.    4.
     5.    0.
-a  =
+ a  = 
     3.     2.    3.
     44.    5.    6.
 I1=list(2,3);I2=list(1,2);
 clear x y;[x,y(I2(:))]=(11,12)
-y  =
+ y  = 
     0.    12.
-x  =
+ x  = 
     11.
 clear x y;[x(I1(:)),y]=(11,12)
-y  =
+ y  = 
     12.
-x  =
-    0.    0.    0.
+ x  = 
+    0.    0.    0. 
     0.    0.    11.
 clear x y;[x(I1(:)),y(I2(:))]=(11,12)
-y  =
+ y  = 
     0.    12.
-x  =
-    0.    0.    0.
+ x  = 
+    0.    0.    0. 
     0.    0.    11.
 str_l=list();str_l(1)=1;str_l(1)
  ans  =
     1.
 l=list(1,2,3);l(3)=null()
-l  =
+ l  = 
        l(1)
     1.
        l(2)
@@ -211,48 +211,48 @@ deff("t1=foo()","t1(2)= 1");foo()
     1.
 deff("t1=foo()","t1=list();t1(1)= 44;");foo()
  ans  =
-             ans(1)
+       ans(1)
     44.
 deff("[a,b,x]=foo()","[a(1),b(1,2),x]=(3,4,5);");[a,b,x]=foo()
-x  =
+ x  = 
     5.
-b  =
+ b  = 
     0.    4.
-a  =
+ a  = 
     3.
 function [a,b,x]=foo(),u=5;[a(1),b(1,2),x]=(3,4,u),a(2)=44,endfunction
 [a,b,x]=foo()
-x  =
+ x  = 
     5.
-b  =
+ b  = 
     0.    4.
-a  =
+ a  = 
     3.
     44.
 function [a,b,x]=foo(),[a,b,x]=(3,4,5),endfunction
 [a,b,x]=foo()
-x  =
+ x  = 
     5.
-b  =
+ b  = 
     4.
-a  =
+ a  = 
     3.
 function x=foo(),INDX=list(2,3); x(INDX(:))=11; endfunction
 foo()
  ans  =
-    0.    0.    0.
+    0.    0.    0. 
     0.    0.    11.
 I1=list(2,3);I2=list(1,2);
 function foo(),[x(I1(:)),y(I2(:))]=(11,12);disp(x,y), endfunction
 foo()
     0.    12.
-    0.    0.    0.
+    0.    0.    0. 
     0.    0.    11.
 function l=foo(),l=list(1,2,3);l(3)=null();endfunction
 foo()
  ans  =
-             ans(1)
+       ans(1)
     1.
-             ans(2)
+       ans(2)
     2.
 funcprot(1);