remane sci_warning.cpp/h to warningmode.cpp/h for compatibility with master branch 65/11565/2
Antoine ELIAS [Thu, 23 May 2013 08:18:57 +0000 (10:18 +0200)]
Change-Id: I07bbd22299bfca34ef3236bb2e598362d55fab45

44 files changed:
scilab/modules/console/src/c/prompt.c
scilab/modules/core/sci_gateway/cpp/sci_warning.cpp
scilab/modules/core/src/c/getval.c
scilab/modules/core/src/c/texmacs.c
scilab/modules/differential_equations/sci_gateway/cpp/sci_int2d.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_int3d.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_intg.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_ode.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_odedc.cpp
scilab/modules/differential_equations/src/cpp/checkodeerror.cpp
scilab/modules/dynamic_link/src/cpp/addinter.cpp
scilab/modules/dynamic_link/src/cpp/dynamic_link.cpp
scilab/modules/fileio/sci_gateway/cpp/sci_createdir.cpp
scilab/modules/fileio/sci_gateway/cpp/sci_mclearerr.cpp
scilab/modules/fileio/sci_gateway/cpp/sci_meof.cpp
scilab/modules/fileio/sci_gateway/cpp/sci_merror.cpp
scilab/modules/fileio/sci_gateway/cpp/sci_removedir.cpp
scilab/modules/fileio/src/c/scicurdir.c
scilab/modules/fileio/src/cpp/mclose.cpp
scilab/modules/fileio/src/cpp/mopen.cpp
scilab/modules/fileio/src/cpp/mput.cpp
scilab/modules/graphics/sci_gateway/c/sci_xset.c
scilab/modules/graphics/src/c/getHandleProperty/set_line_style_property.c
scilab/modules/gui/sci_gateway/c/sci_mpopup.c
scilab/modules/gui/sci_gateway/cpp/sci_toprint.cpp
scilab/modules/interpolation/sci_gateway/cpp/sci_lsq_splin.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_inv.cpp
scilab/modules/localization/sci_gateway/cpp/sci_setdefaultlanguage.cpp
scilab/modules/localization/sci_gateway/cpp/sci_setlanguage.cpp
scilab/modules/operations/src/cpp/types_divide.cpp
scilab/modules/optimization/src/c/sp.c
scilab/modules/output_stream/src/c/msgs.c
scilab/modules/randlib/src/c/clcg4.c
scilab/modules/spreadsheet/src/c/csvRead.c
scilab/modules/string/sci_gateway/cpp/sci_ascii.cpp
scilab/modules/string/src/c/pcre_private.c
scilab/modules/system_env/Makefile.am
scilab/modules/system_env/Makefile.in
scilab/modules/system_env/includes/warningmode.h [moved from scilab/modules/system_env/includes/sci_warning.h with 85% similarity]
scilab/modules/system_env/src/cpp/warningmode.cpp [moved from scilab/modules/system_env/src/cpp/sci_warning.cpp with 90% similarity]
scilab/modules/system_env/system_env.iss
scilab/modules/system_env/system_env.vcxproj
scilab/modules/system_env/system_env.vcxproj.filters
scilab/modules/umfpack/sci_gateway/c/sci_umf_lufact.c

index b88ec7b..9dd4f53 100644 (file)
@@ -2,11 +2,11 @@
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) INRIA
 * Copyright (C) DIGITEO - 2010
-* 
+*
 * This file must be used under the terms of the CeCILL.
 * This source file is licensed as described in the file COPYING, which
 * you should have received as part of this distribution.  The terms
-* are also available at    
+* are also available at
 * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 *
 */
@@ -14,7 +14,7 @@
 #include <string.h>
 #include "prompt.h"
 #include "sciprint.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "localization.h"
 #include "MALLOC.h"
 #include "os_strdup.h"
@@ -28,67 +28,67 @@ static char *temporaryPrompt = NULL;
 /*------------------------------------------------------------------------*/
 void C2F(setprlev)( int *pause)
 {
-       if ( *pause == 0 ) 
-       {
-               if(temporaryPrompt != NULL)
-               {
-                       strcpy(Sci_Prompt,temporaryPrompt);
-                       ClearTemporaryPrompt();
-               }
-               else
-               {               
-                       sprintf(Sci_Prompt,SCIPROMPT);
-               }
-       }
-       else if ( *pause > 0 )
-       {
-               if (dispWarningLevelPrompt)
-               {
-                       if (getWarningMode())
-                       {
-                               sciprint(_("Type '%s' or '%s' to return to standard level prompt.\n\n"),"resume","abort");
-                               dispWarningLevelPrompt = FALSE;
-                       }
-               }
-               sprintf(Sci_Prompt,SCIPROMPT_INTERRUPT,*pause);
-               // bug 5513
-               // when we change prompt to a pause level, we change also temp. prompt
-               //SetTemporaryPrompt(Sci_Prompt);
-       }
-       else 
-       {
-               sprintf(Sci_Prompt,SCIPROMPT_PAUSE);
-               // bug 5513
-               // when we change prompt to halt level, we change also temp. prompt
-               SetTemporaryPrompt(Sci_Prompt);
-       }
+    if ( *pause == 0 )
+    {
+        if (temporaryPrompt != NULL)
+        {
+            strcpy(Sci_Prompt, temporaryPrompt);
+            ClearTemporaryPrompt();
+        }
+        else
+        {
+            sprintf(Sci_Prompt, SCIPROMPT);
+        }
+    }
+    else if ( *pause > 0 )
+    {
+        if (dispWarningLevelPrompt)
+        {
+            if (getWarningMode())
+            {
+                sciprint(_("Type '%s' or '%s' to return to standard level prompt.\n\n"), "resume", "abort");
+                dispWarningLevelPrompt = FALSE;
+            }
+        }
+        sprintf(Sci_Prompt, SCIPROMPT_INTERRUPT, *pause);
+        // bug 5513
+        // when we change prompt to a pause level, we change also temp. prompt
+        //SetTemporaryPrompt(Sci_Prompt);
+    }
+    else
+    {
+        sprintf(Sci_Prompt, SCIPROMPT_PAUSE);
+        // bug 5513
+        // when we change prompt to halt level, we change also temp. prompt
+        SetTemporaryPrompt(Sci_Prompt);
+    }
 }
 /*------------------------------------------------------------------------*/
 void GetCurrentPrompt(char *CurrentPrompt)
 {
-       if (CurrentPrompt)
-       {
-               strcpy(CurrentPrompt,Sci_Prompt);
-       }
+    if (CurrentPrompt)
+    {
+        strcpy(CurrentPrompt, Sci_Prompt);
+    }
 }
 /*------------------------------------------------------------------------*/
 void SetTemporaryPrompt(char *tempPrompt)
 {
-       ClearTemporaryPrompt();
-       temporaryPrompt = os_strdup(tempPrompt);
+    ClearTemporaryPrompt();
+    temporaryPrompt = os_strdup(tempPrompt);
 }
 /*------------------------------------------------------------------------*/
 char *GetTemporaryPrompt(void)
 {
-       return temporaryPrompt;
+    return temporaryPrompt;
 }
 /*------------------------------------------------------------------------*/
 void ClearTemporaryPrompt(void)
 {
-       if (temporaryPrompt)
-       {
-               FREE(temporaryPrompt);
-               temporaryPrompt = NULL;
-       }
+    if (temporaryPrompt)
+    {
+        FREE(temporaryPrompt);
+        temporaryPrompt = NULL;
+    }
 }
 /*------------------------------------------------------------------------*/
index fc43c61..7a4dc8d 100644 (file)
@@ -17,7 +17,7 @@
 
 extern "C"
 {
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "charEncoding.h"
 #include "sciprint.h"
 #include "getos.h"
index 2a6bc0f..b8f9c56 100644 (file)
 #include "parserConstant.h"
 #include "sciprint.h"
 #include "localization.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 /* Table of constant values */
 #define EXPMAX 309
index c5b1c8e..a38c2ef 100644 (file)
@@ -19,7 +19,7 @@
 #include "api_scilab.h"
 #include "sciprint.h"
 #include "localization.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 /*--------------------------------------------------------------------------*/
 #if 0 /* to debug TeXmacs interface */
 #define DATA_BEGIN  ((char) 'B')
@@ -31,8 +31,8 @@
 #define DATA_ESCAPE  ((char) 27)
 #define Pause C2F(recu).paus
 /*--------------------------------------------------------------------------*/
-static int first=1;
-static int texmacs_mode=0;
+static int first = 1;
+static int texmacs_mode = 0;
 /*--------------------------------------------------------------------------*/
 void settexmacs(void)
 {
@@ -46,7 +46,7 @@ int C2F(intexmacs)(void)
 /*--------------------------------------------------------------------------*/
 void next_input (void)
 {
-    fprintf(stdout, "%cchannel:prompt%c", DATA_BEGIN,DATA_END);
+    fprintf(stdout, "%cchannel:prompt%c", DATA_BEGIN, DATA_END);
     if (Pause == 0)
     {
         fprintf(stdout, SCIPROMPT);
@@ -62,8 +62,8 @@ void next_input (void)
 /*--------------------------------------------------------------------------*/
 void C2F(texmacsin)(char buffer[], int *buf_size, int *len_line, int *eof, long int dummy1)
 {
-    #define STDIN_ID 5
-    #define TEXMACSLIB "texmacslib"
+#define STDIN_ID 5
+#define TEXMACSLIB "texmacslib"
     int nr = 0, info = 0;
     if (first == 1)
     {
index f49843b..f01544e 100644 (file)
@@ -25,7 +25,7 @@ extern "C"
 #include "localization.h"
 #include "Scierror.h"
 #include "scifunctions.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 }
 
@@ -50,60 +50,60 @@ types::Function::ReturnValue sci_int2d(types::typed_list &in, int _iRetCount, ty
     int nu          = 0;
     int nd          = 0;
 
-// *** check the minimal number of input args. ***
-    if(in.size() < 3 || in.size() > 4)
+    // *** check the minimal number of input args. ***
+    if (in.size() < 3 || in.size() > 4)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d to %d expected.\n"), "int2d", 3, 4);
         return types::Function::Error;
     }
 
-// *** check number of output args according the methode. ***
-    if(_iRetCount > 3)
+    // *** check number of output args according the methode. ***
+    if (_iRetCount > 3)
     {
         Scierror(78, _("%s: Wrong number of output argument(s): %d expected.\n"), "int2d", 2);
         return types::Function::Error;
     }
 
-// *** check type of input args and get it. ***
+    // *** check type of input args and get it. ***
     // X
-    if(in[0]->isDouble() == false)
+    if (in[0]->isDouble() == false)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int2d", 1);
         return types::Function::Error;
     }
     pDblX = in[0]->getAs<types::Double>();//->clone()->getAs<types::Double>();
-    if(pDblX->isComplex())
+    if (pDblX->isComplex())
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int2d", 1);
         return types::Function::Error;
     }
 
-    if(pDblX->getRows() != 3)
+    if (pDblX->getRows() != 3)
     {
         Scierror(999, _("%s: Wrong size for input argument #%d : A 3 by N matrix expected.\n"), "int2d", 1);
         return types::Function::Error;
     }
 
     // Y
-    if(in[1]->isDouble() == false)
+    if (in[1]->isDouble() == false)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int2d", 2);
         return types::Function::Error;
     }
     pDblY = in[1]->getAs<types::Double>();//->clone()->getAs<types::Double>();
-    if(pDblY->isComplex())
+    if (pDblY->isComplex())
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int2d", 2);
         return types::Function::Error;
     }
 
-    if(pDblY->getRows() != 3)
+    if (pDblY->getRows() != 3)
     {
         Scierror(999, _("%s: Wrong size for input argument #%d : A 3 by N matrix expected.\n"), "int2d", 2);
         return types::Function::Error;
     }
 
-    if(pDblY->getCols() != pDblX->getCols())
+    if (pDblY->getCols() != pDblX->getCols())
     {
         Scierror(999, _("%s: Wrong size for input argument #%d : Same size of input argument %d expected.\n"), "int2d", 2, 1);
         return types::Function::Error;
@@ -114,7 +114,7 @@ types::Function::ReturnValue sci_int2d(types::typed_list &in, int _iRetCount, ty
     DifferentialEquationFunctions* deFunctionsManager = new DifferentialEquationFunctions(L"int2d");
     DifferentialEquation::addDifferentialEquationFunctions(deFunctionsManager);
 
-    if(in[2]->isCallable())
+    if (in[2]->isCallable())
     {
         types::Callable* pCall = in[2]->getAs<types::Callable>();
         deFunctionsManager->setFFunction(pCall);
@@ -123,20 +123,20 @@ types::Function::ReturnValue sci_int2d(types::typed_list &in, int _iRetCount, ty
         double x = 1;
         double y = 1;
         double ret = int2d_f(&x, &y);
-        if(ret == 0)
+        if (ret == 0)
         {
             Scierror(50, _("%s: Argument #%d : Variable returned by scilab argument function is incorrect.\n"), "int2d", 3);
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
     }
-    else if(in[2]->isString())
+    else if (in[2]->isString())
     {
         bool bOK = false;
         types::String* pStr = in[2]->getAs<types::String>();
         bOK = deFunctionsManager->setFFunction(pStr);
 
-        if(bOK == false)
+        if (bOK == false)
         {
             char* pst = wide_string_to_UTF8(pStr->get(0));
             Scierror(50, _("%s: Subroutine not found: %s\n"), "int2d", pst);
@@ -145,21 +145,21 @@ types::Function::ReturnValue sci_int2d(types::typed_list &in, int _iRetCount, ty
             return types::Function::Error;
         }
     }
-    else if(in[2]->isList())
+    else if (in[2]->isList())
     {
         types::List* pList = in[2]->getAs<types::List>();
 
-        if(pList->getSize() == 0)
+        if (pList->getSize() == 0)
         {
             Scierror(50, _("%s: Argument #%d : Subroutine not found in list: %s\n"), "int2d", 3, "(string empty)");
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
 
-        if(pList->get(0)->isCallable())
+        if (pList->get(0)->isCallable())
         {
             deFunctionsManager->setFFunction(pList->get(0)->getAs<types::Callable>());
-            for(int iter = 1; iter < pList->getSize(); iter++)
+            for (int iter = 1; iter < pList->getSize(); iter++)
             {
                 deFunctionsManager->setFArgs(pList->get(iter)->getAs<types::InternalType>());
             }
@@ -179,9 +179,9 @@ types::Function::ReturnValue sci_int2d(types::typed_list &in, int _iRetCount, ty
     }
 
     // params (optional)
-    if(in.size() == 4)
+    if (in.size() == 4)
     {
-        if(in[3]->isDouble() == false)
+        if (in[3]->isDouble() == false)
         {
             Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int2d", 4);
             DifferentialEquation::removeDifferentialEquationFunctions();
@@ -189,35 +189,35 @@ types::Function::ReturnValue sci_int2d(types::typed_list &in, int _iRetCount, ty
         }
 
         pDblParams = in[3]->getAs<types::Double>();
-        if(pDblParams->isComplex())
+        if (pDblParams->isComplex())
         {
             Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int2d", 4);
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
 
-        if(pDblParams->getSize() != 5)
+        if (pDblParams->getSize() != 5)
         {
             Scierror(999, _("%s: Wrong size for input argument #%d : %d expected.\n"), "int2d", 4, 5);
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
 
-        if(getWarningMode())
+        if (getWarningMode())
         {
-            if(pDblParams->get(0) < 0.0e0)
+            if (pDblParams->get(0) < 0.0e0)
             {
-                sciprint(_("%ls: Warning : Wrong value for the first element of argument #%d : The default value will be used.\n"),L"int2d", 4);
+                sciprint(_("%ls: Warning : Wrong value for the first element of argument #%d : The default value will be used.\n"), L"int2d", 4);
             }
 
-            if(pDblParams->get(2) < 1)
+            if (pDblParams->get(2) < 1)
             {
-                sciprint(_("%ls: Warning : Wrong value for the third element of argument #%d : The default value will be used.\n"),L"int2d", 4);
+                sciprint(_("%ls: Warning : Wrong value for the third element of argument #%d : The default value will be used.\n"), L"int2d", 4);
             }
 
-            if(pDblParams->get(3) < 1)
+            if (pDblParams->get(3) < 1)
             {
-                sciprint(_("%ls: Warning : Wrong value for the fourth element of argument #%d : The default value will be used.\n"),L"int2d", 4);
+                sciprint(_("%ls: Warning : Wrong value for the fourth element of argument #%d : The default value will be used.\n"), L"int2d", 4);
             }
         }
 
@@ -228,7 +228,7 @@ types::Function::ReturnValue sci_int2d(types::typed_list &in, int _iRetCount, ty
         iflag    = (int)pDblParams->get(4);
     }
 
-// *** Perform operation. ***
+    // *** Perform operation. ***
     int size = pDblX->getCols();
 
     double* dwork   = (double*)malloc(9 * maxtri * sizeof(double));
@@ -240,9 +240,9 @@ types::Function::ReturnValue sci_int2d(types::typed_list &in, int _iRetCount, ty
     free(iwork);
     DifferentialEquation::removeDifferentialEquationFunctions();
 
-    if(iflag)
+    if (iflag)
     {
-        switch(iflag)
+        switch (iflag)
         {
             case 1 :
             {
@@ -277,17 +277,17 @@ types::Function::ReturnValue sci_int2d(types::typed_list &in, int _iRetCount, ty
         return types::Function::Error;
     }
 
-// *** Return result in Scilab. ***
+    // *** Return result in Scilab. ***
     types::Double* pDblOut = new types::Double(result);
     out.push_back(pDblOut);
 
-    if(_iRetCount > 1)
+    if (_iRetCount > 1)
     {
         types::Double* pDblErrOut = new types::Double(err);
         out.push_back(pDblErrOut);
     }
 
-    if(_iRetCount == 3)
+    if (_iRetCount == 3)
     {
         types::Double* pDblNevalsOut = new types::Double((double)nevals);
         out.push_back(pDblNevalsOut);
index 5c17bb4..b16b166 100644 (file)
@@ -26,7 +26,7 @@ extern "C"
 #include "localization.h"
 #include "Scierror.h"
 #include "scifunctions.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 }
 
@@ -49,85 +49,85 @@ types::Function::ReturnValue sci_int3d(types::typed_list &in, int _iRetCount, ty
     int ifail = 0;
     int nevals = 0;
 
-// *** check the minimal number of input args. ***
-    if(in.size() < 4 || in.size() > 6)
+    // *** check the minimal number of input args. ***
+    if (in.size() < 4 || in.size() > 6)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d to %d expected.\n"), "int3d", 4, 6);
         return types::Function::Error;
     }
 
-// *** check number of output args according the methode. ***
-    if(_iRetCount > 3)
+    // *** check number of output args according the methode. ***
+    if (_iRetCount > 3)
     {
         Scierror(78, _("%s: Wrong number of output argument(s): %d expected.\n"), "int3d", 2);
         return types::Function::Error;
     }
 
-// *** check type of input args and get it. ***
+    // *** check type of input args and get it. ***
     // X
-    if(in[0]->isDouble() == false)
+    if (in[0]->isDouble() == false)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int3d", 1);
         return types::Function::Error;
     }
     pDblX = in[0]->getAs<types::Double>();
-    if(pDblX->isComplex())
+    if (pDblX->isComplex())
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int3d", 1);
         return types::Function::Error;
     }
 
-    if(pDblX->getRows() != 4)
+    if (pDblX->getRows() != 4)
     {
         Scierror(999, _("%s: Wrong size for input argument #%d : A 4 by N matrix expected.\n"), "int3d", 1);
         return types::Function::Error;
     }
 
     // Y
-    if(in[1]->isDouble() == false)
+    if (in[1]->isDouble() == false)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int3d", 2);
         return types::Function::Error;
     }
     pDblY = in[1]->getAs<types::Double>();
-    if(pDblY->isComplex())
+    if (pDblY->isComplex())
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int3d", 2);
         return types::Function::Error;
     }
 
-    if(pDblY->getRows() != 4)
+    if (pDblY->getRows() != 4)
     {
         Scierror(999, _("%s: Wrong size for input argument #%d : A 4 by N matrix expected.\n"), "int3d", 2);
         return types::Function::Error;
     }
 
-    if(pDblY->getCols() != pDblX->getCols())
+    if (pDblY->getCols() != pDblX->getCols())
     {
         Scierror(999, _("%s: Wrong size for input argument #%d : Same size of input argument %d expected.\n"), "int3d", 2, 1);
         return types::Function::Error;
     }
 
     // Z
-    if(in[2]->isDouble() == false)
+    if (in[2]->isDouble() == false)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int3d", 3);
         return types::Function::Error;
     }
     pDblZ = in[2]->getAs<types::Double>();
-    if(pDblZ->isComplex())
+    if (pDblZ->isComplex())
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int3d", 3);
         return types::Function::Error;
     }
 
-    if(pDblZ->getRows() != 4)
+    if (pDblZ->getRows() != 4)
     {
         Scierror(999, _("%s: Wrong size for input argument #%d : A 4 by N matrix expected.\n"), "int3d", 4);
         return types::Function::Error;
     }
 
-    if(pDblZ->getCols() != pDblX->getCols())
+    if (pDblZ->getCols() != pDblX->getCols())
     {
         Scierror(999, _("%s: Wrong size for input argument #%d : Same size of input argument %d expected.\n"), "int3d", 3, 1);
         return types::Function::Error;
@@ -137,30 +137,30 @@ types::Function::ReturnValue sci_int3d(types::typed_list &in, int _iRetCount, ty
     DifferentialEquationFunctions* deFunctionsManager = new DifferentialEquationFunctions(L"int3d");
     DifferentialEquation::addDifferentialEquationFunctions(deFunctionsManager);
 
-    if(in[3]->isCallable())
+    if (in[3]->isCallable())
     {
         types::Callable* pCall = in[3]->getAs<types::Callable>();
         deFunctionsManager->setFFunction(pCall);
 
         // check function
-        double xyz[3] = {1,1,1};
+        double xyz[3] = {1, 1, 1};
         int numfun = 1;
         double out;
         double ret = int3d_f(xyz, &numfun, &out);
-        if(ret == 0)
+        if (ret == 0)
         {
             Scierror(50, _("%s: Argument #%d : Variable returned by scilab argument function is incorrect.\n"), "int3d", 4);
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
     }
-    else if(in[3]->isString())
+    else if (in[3]->isString())
     {
         bool bOK = false;
         types::String* pStr = in[3]->getAs<types::String>();
         bOK = deFunctionsManager->setFFunction(pStr);
 
-        if(bOK == false)
+        if (bOK == false)
         {
             char* pst = wide_string_to_UTF8(pStr->get(0));
             Scierror(50, _("%s: Subroutine not found: %s\n"), "int3d", pst);
@@ -169,21 +169,21 @@ types::Function::ReturnValue sci_int3d(types::typed_list &in, int _iRetCount, ty
             return types::Function::Error;
         }
     }
-    else if(in[3]->isList())
+    else if (in[3]->isList())
     {
         types::List* pList = in[3]->getAs<types::List>();
 
-        if(pList->getSize() == 0)
+        if (pList->getSize() == 0)
         {
             Scierror(50, _("%s: Argument #%d : Subroutine not found in list: %s\n"), "int3d", 4, "(string empty)");
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
 
-        if(pList->get(0)->isCallable())
+        if (pList->get(0)->isCallable())
         {
             deFunctionsManager->setFFunction(pList->get(0)->getAs<types::Callable>());
-            for(int iter = 1; iter < pList->getSize(); iter++)
+            for (int iter = 1; iter < pList->getSize(); iter++)
             {
                 deFunctionsManager->setFArgs(pList->get(iter)->getAs<types::InternalType>());
             }
@@ -203,23 +203,23 @@ types::Function::ReturnValue sci_int3d(types::typed_list &in, int _iRetCount, ty
     }
 
     // nf (optional)
-    if(in.size() > 4)
+    if (in.size() > 4)
     {
-        if(in[4]->isDouble() == false)
+        if (in[4]->isDouble() == false)
         {
             Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int3d", 5);
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
         types::Double* pDblNf = in[4]->getAs<types::Double>();
-        if(pDblNf->isComplex())
+        if (pDblNf->isComplex())
         {
             Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int3d", 5);
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
 
-        if(pDblNf->isScalar() == false)
+        if (pDblNf->isScalar() == false)
         {
             Scierror(999, _("%s: Wrong size for input argument #%d : A scalar expected.\n"), "int3d", 5);
             DifferentialEquation::removeDifferentialEquationFunctions();
@@ -227,7 +227,7 @@ types::Function::ReturnValue sci_int3d(types::typed_list &in, int _iRetCount, ty
         }
         nf = (int)pDblNf->get(0);
 
-        if(nf < 1)
+        if (nf < 1)
         {
             Scierror(999, _("%s: Wrong value for input argument #%d : A positive value expected.\n"), "int3d", 5);
             DifferentialEquation::removeDifferentialEquationFunctions();
@@ -236,9 +236,9 @@ types::Function::ReturnValue sci_int3d(types::typed_list &in, int _iRetCount, ty
     }
 
     // params (optional)
-    if(in.size() == 6)
+    if (in.size() == 6)
     {
-        if(in[5]->isDouble() == false)
+        if (in[5]->isDouble() == false)
         {
             Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int3d", 6);
             DifferentialEquation::removeDifferentialEquationFunctions();
@@ -246,27 +246,27 @@ types::Function::ReturnValue sci_int3d(types::typed_list &in, int _iRetCount, ty
         }
 
         types::Double* pDblParams = in[5]->getAs<types::Double>();
-        if(pDblParams->isComplex())
+        if (pDblParams->isComplex())
         {
             Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "int3d", 6);
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
 
-        if(pDblParams->getSize() != 4)
+        if (pDblParams->getSize() != 4)
         {
             Scierror(999, _("%s: Wrong size for input argument #%d : %d expected.\n"), "int3d", 6, 4);
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
 
-        if(getWarningMode())
+        if (getWarningMode())
         {
-            for(int i = 0; i < 4; i++)
+            for (int i = 0; i < 4; i++)
             {
-                if(pDblParams->get(i) < 0)
+                if (pDblParams->get(i) < 0)
                 {
-                    sciprint(_("%ls: Warning : Wrong value for the element %d of argument #%d : The default value will be used.\n"),L"int3d", i+1, 6);
+                    sciprint(_("%ls: Warning : Wrong value for the element %d of argument #%d : The default value will be used.\n"), L"int3d", i + 1, 6);
                 }
             }
         }
@@ -276,17 +276,17 @@ types::Function::ReturnValue sci_int3d(types::typed_list &in, int _iRetCount, ty
         epsabs = pDblParams->get(2) < 0.0 ? epsabs : pDblParams->get(2);
         epsrel = pDblParams->get(3) < 0.0 ? epsrel : pDblParams->get(3);
 
-        if(pDblParams->get(2) == 0.0 && pDblParams->get(3) == 0.0)
+        if (pDblParams->get(2) == 0.0 && pDblParams->get(3) == 0.0)
         {
-            if(getWarningMode())
+            if (getWarningMode())
             {
-                sciprint(_("%ls: Warning : Wrong value for the element %d and %d of argument #%d : The default value will be used.\n"),L"int3d", 3, 4, 6);
+                sciprint(_("%ls: Warning : Wrong value for the element %d and %d of argument #%d : The default value will be used.\n"), L"int3d", 3, 4, 6);
             }
             epsabs = 0.0;
             epsrel = 1.0e-5;
         }
 
-        if(minpts > maxpts)
+        if (minpts > maxpts)
         {
             Scierror(999, _("%s: Wrong value for input argument #%d : minpts smaller than maxpts expected.\n"), "int3d", 6);
             DifferentialEquation::removeDifferentialEquationFunctions();
@@ -296,7 +296,7 @@ types::Function::ReturnValue sci_int3d(types::typed_list &in, int _iRetCount, ty
 
     maxpts = Max(maxpts, 43 * pDblX->getCols());
 
-// *** Perform operation. ***
+    // *** Perform operation. ***
     int one     = 1;
     int three   = 3;
     int maxsub  = 7 * (maxpts - 43 * pDblX->getCols()) / (8 * 43) + pDblX->getCols();
@@ -330,16 +330,16 @@ types::Function::ReturnValue sci_int3d(types::typed_list &in, int _iRetCount, ty
     free(iwork);
     DifferentialEquation::removeDifferentialEquationFunctions();
 
-    if(ifail)
+    if (ifail)
     {
-        if(ifail == 1)
+        if (ifail == 1)
         {
-            if(getWarningMode())
+            if (getWarningMode())
             {
-                sciprint(_("%ls: Warning : maxpts was too small to obtain the required accuracy.\n"),L"int3d");
+                sciprint(_("%ls: Warning : maxpts was too small to obtain the required accuracy.\n"), L"int3d");
             }
         }
-        else if(ifail == 3)
+        else if (ifail == 3)
         {
             Scierror(999, _("%s: The volume of one of the initially given tetrahedrons is zero.\n"), "int3d");
             free(pdResult);
@@ -355,19 +355,19 @@ types::Function::ReturnValue sci_int3d(types::typed_list &in, int _iRetCount, ty
         }
     }
 
-// *** Return result in Scilab. ***
+    // *** Return result in Scilab. ***
     types::Double* pDblOut = new types::Double(nf, 1);
     pDblOut->set(pdResult);
     out.push_back(pDblOut);
 
-    if(_iRetCount > 1)
+    if (_iRetCount > 1)
     {
         types::Double* pDblErrOut = new types::Double(nf, 1);
         pDblErrOut->set(pdErr);
         out.push_back(pDblErrOut);
     }
 
-    if(_iRetCount == 3)
+    if (_iRetCount == 3)
     {
         types::Double* pDblNevalsOut = new types::Double((double)nevals);
         out.push_back(pDblNevalsOut);
index f4a38c8..ec3cef6 100644 (file)
@@ -25,7 +25,7 @@ extern "C"
 #include "localization.h"
 #include "Scierror.h"
 #include "scifunctions.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 }
 
@@ -40,23 +40,23 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
     double result = 0;
     double abserr = 0;
 
-// *** check the minimal number of input args. ***
-    if(in.size() < 3 || in.size() > 5)
+    // *** check the minimal number of input args. ***
+    if (in.size() < 3 || in.size() > 5)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "intg", 3);
         return types::Function::Error;
     }
 
-// *** check number of output args ***
-    if(_iRetCount > 2)
+    // *** check number of output args ***
+    if (_iRetCount > 2)
     {
         Scierror(78, _("%s: Wrong number of output argument(s): %d expected.\n"), "intg", 2);
         return types::Function::Error;
     }
 
-// *** check type of input args and get it. ***
+    // *** check type of input args and get it. ***
     // A
-    if(in[0]->isDouble() == false)
+    if (in[0]->isDouble() == false)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "intg", 1);
         return types::Function::Error;
@@ -64,7 +64,7 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
 
     types::Double* pDblA = in[0]->getAs<types::Double>();
 
-    if(pDblA->isScalar() == false)
+    if (pDblA->isScalar() == false)
     {
         Scierror(999, _("%s: Wrong size for input argument #%d : A scalar expected.\n"), "intg", 1);
         return types::Function::Error;
@@ -73,7 +73,7 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
     pdA = pDblA->get(0);
 
     // B
-    if(in[1]->isDouble() == false)
+    if (in[1]->isDouble() == false)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "intg", 2);
         return types::Function::Error;
@@ -81,7 +81,7 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
 
     types::Double* pDblB = in[1]->getAs<types::Double>();
 
-    if(pDblB->isScalar() == false)
+    if (pDblB->isScalar() == false)
     {
         Scierror(999, _("%s: Wrong size for input argument #%d : A scalar expected.\n"), "intg", 2);
         return types::Function::Error;
@@ -93,7 +93,7 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
     DifferentialEquationFunctions* deFunctionsManager = new DifferentialEquationFunctions(L"intg");
     DifferentialEquation::addDifferentialEquationFunctions(deFunctionsManager);
 
-    if(in[2]->isCallable())
+    if (in[2]->isCallable())
     {
         types::Callable* pCall = in[2]->getAs<types::Callable>();
         deFunctionsManager->setFFunction(pCall);
@@ -101,20 +101,20 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
         // check function
         double t = 1;
         double ret = intg_f(&t);
-        if(ret == 0)
+        if (ret == 0)
         {
             Scierror(50, _("%s: Argument #%d : Variable returned by scilab argument function is incorrect.\n"), "intg", 3);
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
     }
-    else if(in[2]->isString())
+    else if (in[2]->isString())
     {
         bool bOK = false;
         types::String* pStr = in[2]->getAs<types::String>();
         bOK = deFunctionsManager->setFFunction(pStr);
 
-        if(bOK == false)
+        if (bOK == false)
         {
             char* pst = wide_string_to_UTF8(pStr->get(0));
             Scierror(50, _("%s: Subroutine not found: %s\n"), "intg", pst);
@@ -123,21 +123,21 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
             return types::Function::Error;
         }
     }
-    else if(in[2]->isList())
+    else if (in[2]->isList())
     {
         types::List* pList = in[2]->getAs<types::List>();
 
-        if(pList->getSize() == 0)
+        if (pList->getSize() == 0)
         {
             Scierror(50, _("%s: Argument #%d : Subroutine not found in list: %s\n"), "intg", 3, "(string empty)");
             DifferentialEquation::removeDifferentialEquationFunctions();
             return types::Function::Error;
         }
 
-        if(pList->get(0)->isCallable())
+        if (pList->get(0)->isCallable())
         {
             deFunctionsManager->setFFunction(pList->get(0)->getAs<types::Callable>());
-            for(int iter = 1; iter < pList->getSize(); iter++)
+            for (int iter = 1; iter < pList->getSize(); iter++)
             {
                 deFunctionsManager->setFArgs(pList->get(iter)->getAs<types::InternalType>());
             }
@@ -156,9 +156,9 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
         return types::Function::Error;
     }
 
-    if(in.size() > 3)
+    if (in.size() > 3)
     {
-        if(in[3]->isDouble() == false)
+        if (in[3]->isDouble() == false)
         {
             Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "intg", 4);
             DifferentialEquation::removeDifferentialEquationFunctions();
@@ -167,7 +167,7 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
 
         types::Double* pDblEpsR = in[3]->getAs<types::Double>();
 
-        if(pDblEpsR->isScalar() == false)
+        if (pDblEpsR->isScalar() == false)
         {
             Scierror(999, _("%s: Wrong size for input argument #%d : A scalar expected.\n"), "intg", 4);
             DifferentialEquation::removeDifferentialEquationFunctions();
@@ -177,9 +177,9 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
         pdEpsR = pDblEpsR->get(0);
     }
 
-    if(in.size() == 5)
+    if (in.size() == 5)
     {
-        if(in[4]->isDouble() == false)
+        if (in[4]->isDouble() == false)
         {
             Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "intg", 5);
             DifferentialEquation::removeDifferentialEquationFunctions();
@@ -188,7 +188,7 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
 
         types::Double* pDblEpsA = in[4]->getAs<types::Double>();
 
-        if(pDblEpsA->isScalar() == false)
+        if (pDblEpsA->isScalar() == false)
         {
             Scierror(999, _("%s: Wrong size for input argument #%d : A scalar expected.\n"), "intg", 5);
             DifferentialEquation::removeDifferentialEquationFunctions();
@@ -197,7 +197,7 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
         pdEpsA = pDblEpsA->get(0);
     }
 
-// *** Create working table. ***
+    // *** Create working table. ***
     int limit = 750;
 
     // rwork
@@ -211,7 +211,7 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
     double epsabs   = fabs(pdEpsA);
     double epsrel   = fabs(pdEpsR);
 
-// *** Perform operation. ***
+    // *** Perform operation. ***
     int ier = 0;
     C2F(dqags)(intg_f, &pdA, &pdB, &epsabs, &epsrel, alist, blist, elist, rlist, &limit, iwork, &limit, &result, &abserr, &ier);
 
@@ -222,9 +222,9 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
     free(iwork);
     DifferentialEquation::removeDifferentialEquationFunctions();
 
-    if(ier)
+    if (ier)
     {
-        switch(ier)
+        switch (ier)
         {
             case 1 :
             {
@@ -233,9 +233,9 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
             }
             case 2 :
             {
-                if(getWarningMode())
+                if (getWarningMode())
                 {
-                    sciprint(_("%ls: Warning : The occurrence of roundoff error is detected, which prevents the requested tolerance from being achieved. The error may be under-estimated.\n"),L"intg");
+                    sciprint(_("%ls: Warning : The occurrence of roundoff error is detected, which prevents the requested tolerance from being achieved. The error may be under-estimated.\n"), L"intg");
                 }
                 break;
             }
@@ -246,9 +246,9 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
             }
             case 4 :
             {
-                if(getWarningMode())
+                if (getWarningMode())
                 {
-                    sciprint(_("%ls: Warning : The algorithm does not converge. Roundoff error is detected in the extrapolation table. It is presumed that the requested tolerance cannot be achieved, and that the returned result is the best which can be obtained.\n"),L"intg");
+                    sciprint(_("%ls: Warning : The algorithm does not converge. Roundoff error is detected in the extrapolation table. It is presumed that the requested tolerance cannot be achieved, and that the returned result is the best which can be obtained.\n"), L"intg");
                 }
                 break;
             }
@@ -260,11 +260,11 @@ types::Function::ReturnValue sci_intg(types::typed_list &in, int _iRetCount, typ
         }
     }
 
-// *** Return result in Scilab. ***
+    // *** Return result in Scilab. ***
     types::Double* pDblOut = new types::Double(result);
     out.push_back(pDblOut);
 
-    if(_iRetCount == 2)
+    if (_iRetCount == 2)
     {
         types::Double* pDblErrOut = new types::Double(abserr);
         out.push_back(pDblErrOut);
index 49c249c..11d5e34 100644 (file)
@@ -26,7 +26,7 @@ extern "C"
 #include "Scierror.h"
 #include "scifunctions.h"
 #include "elem_common.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 #include "common_structure.h"
 #include "checkodeerror.h"
index 2108734..952ba62 100644 (file)
@@ -26,7 +26,7 @@ extern "C"
 #include "localization.h"
 #include "Scierror.h"
 #include "elem_common.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 #include "common_structure.h"
 #include "scifunctions.h"
@@ -72,11 +72,11 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
 
     int sizeYc      = 0;
     int sizeOfYSize = 1;
-    int* YSize      = NULL;    // YSize(1) = size of y0, 
-                               // YSize(n) = size of Args(n) in list case.
+    int* YSize      = NULL;    // YSize(1) = size of y0,
+    // YSize(n) = size of Args(n) in list case.
 
     C2F(eh0001).mesflg = 1; // flag to control printing of error messages in lapack routine.
-                            // 1 means print, 0 means no printing.
+    // 1 means print, 0 means no printing.
     C2F(eh0001).lunit = 6;  // 6 = stdout
 
     int one = 1; // used in C2F(dcopy)
@@ -84,48 +84,48 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
     // For root methode
     int* jroot = NULL;
 
-// *** check the minimal number of input args. ***
-    if(in.size() < 4)
+    // *** check the minimal number of input args. ***
+    if (in.size() < 4)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "odedc", 6);
         return types::Function::Error;
     }
 
-// *** Get the methode. ***
-    if(in[0]->isString())
+    // *** Get the methode. ***
+    if (in[0]->isString())
     {
         pStrType = in[0]->getAs<types::String>();
         wcsType = pStrType->get(0);
         iPos++;
     }
 
-    if(iPos)
+    if (iPos)
     {
-        if(wcscmp(wcsType, L"adams") == 0)
+        if (wcscmp(wcsType, L"adams") == 0)
         {
             meth = 1;
         }
-        else if(wcscmp(wcsType, L"stiff") == 0)
+        else if (wcscmp(wcsType, L"stiff") == 0)
         {
             meth = 2;
         }
-        else if(wcscmp(wcsType, L"root") == 0)
+        else if (wcscmp(wcsType, L"root") == 0)
         {
             meth = 3;
         }
-        else if(wcscmp(wcsType, L"discrete") == 0)
+        else if (wcscmp(wcsType, L"discrete") == 0)
         {
             meth = 4;
         }
-        else if(wcscmp(wcsType, L"rk") == 0)
+        else if (wcscmp(wcsType, L"rk") == 0)
         {
             meth = 5;
         }
-        else if(wcscmp(wcsType, L"rkf") == 0)
+        else if (wcscmp(wcsType, L"rkf") == 0)
         {
             meth = 6;
         }
-        else if(wcscmp(wcsType, L"fix") == 0)
+        else if (wcscmp(wcsType, L"fix") == 0)
         {
             meth = 7;
         }
@@ -136,18 +136,18 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         }
     }
 
-// *** check number of output args according the methode. ***
-    if(meth < 3)
+    // *** check number of output args according the methode. ***
+    if (meth < 3)
     {
-        if(_iRetCount != 1 && _iRetCount != 3)
+        if (_iRetCount != 1 && _iRetCount != 3)
         {
             Scierror(78, _("%s: Wrong number of output argument(s): %d or %d expected.\n"), "odedc", 1, 3);
             return types::Function::Error;
         }
     }
-    else if(meth == 3)
+    else if (meth == 3)
     {
-        if(_iRetCount == 3 || _iRetCount > 4)
+        if (_iRetCount == 3 || _iRetCount > 4)
         {
             Scierror(78, _("%s: Wrong number of output argument(s): %d, %d or %d expected.\n"), "odedc", 1, 2, 4);
             return types::Function::Error;
@@ -155,101 +155,101 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
     }
     else // meth > 3
     {
-        if(_iRetCount != 1)
+        if (_iRetCount != 1)
         {
             Scierror(78, _("%s: Wrong number of output argument(s): %d expected.\n"), "odedc", 1);
             return types::Function::Error;
         }
     }
 
-// *** check type of input args and get it. ***
+    // *** check type of input args and get it. ***
     // y0 => [y0c ; y0d]
-    if(in[iPos]->isDouble())
+    if (in[iPos]->isDouble())
     {
         pDblY0 = in[iPos]->getAs<types::Double>();
-        if(pDblY0->isComplex())
+        if (pDblY0->isComplex())
         {
-            Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "odedc", iPos+1);
+            Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "odedc", iPos + 1);
             return types::Function::Error;
         }
 
-        if(pDblY0->getCols() != 1)
+        if (pDblY0->getCols() != 1)
         {
-            Scierror(999, _("%s: Wrong size for input argument #%d : A real colunm vector expected (n x 1).\n"), "odedc", iPos+1);
+            Scierror(999, _("%s: Wrong size for input argument #%d : A real colunm vector expected (n x 1).\n"), "odedc", iPos + 1);
             return types::Function::Error;
         }
     }
     else
     {
-        Scierror(999, _("%s: Wrong type for input argument #%d : A matrix\n"), "odedc", iPos+1);
+        Scierror(999, _("%s: Wrong type for input argument #%d : A matrix\n"), "odedc", iPos + 1);
         return types::Function::Error;
     }
 
     // nd
     iPos++;
-    if(in[iPos]->isDouble() == false)
+    if (in[iPos]->isDouble() == false)
     {
-        Scierror(999, _("%s: Wrong type for input argument #%d : A real scalar expected.\n"), "odedc", iPos+1);
+        Scierror(999, _("%s: Wrong type for input argument #%d : A real scalar expected.\n"), "odedc", iPos + 1);
         return types::Function::Error;
     }
 
     pDblNd = in[iPos]->getAs<types::Double>();
 
-    if(pDblNd->isComplex() || pDblNd->isScalar() == false)
+    if (pDblNd->isComplex() || pDblNd->isScalar() == false)
     {
-        Scierror(999, _("%s: Wrong type for input argument #%d : A real scalar expected.\n"), "odedc", iPos+1);
+        Scierror(999, _("%s: Wrong type for input argument #%d : A real scalar expected.\n"), "odedc", iPos + 1);
         return types::Function::Error;
     }
 
-    if(pDblNd->get(0) > pDblY0->getSize())
+    if (pDblNd->get(0) > pDblY0->getSize())
     {
-        Scierror(999, _("%s: Wrong value for input argument #%d : Value must not exceeds dimension of argument %d.\n"), "odedc", iPos+1, iPos);
+        Scierror(999, _("%s: Wrong value for input argument #%d : Value must not exceeds dimension of argument %d.\n"), "odedc", iPos + 1, iPos);
         return types::Function::Error;
     }
 
     // stdel => hstep and/or delta with delta=0 as default value
     iPos++;
-    if(in[iPos]->isDouble() == false)
+    if (in[iPos]->isDouble() == false)
     {
-        Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "odedc", iPos+1);
+        Scierror(999, _("%s: Wrong type for input argument #%d : A real matrix expected.\n"), "odedc", iPos + 1);
         return types::Function::Error;
     }
 
     pDblStdel = in[iPos]->getAs<types::Double>();
 
-    if(pDblStdel->isComplex())
+    if (pDblStdel->isComplex())
     {
-        Scierror(999, _("%s: Wrong type for input argument #%d : A real scalar expected.\n"), "odedc", iPos+1);
+        Scierror(999, _("%s: Wrong type for input argument #%d : A real scalar expected.\n"), "odedc", iPos + 1);
         return types::Function::Error;
     }
 
-    if(pDblStdel->getSize() > 2)
+    if (pDblStdel->getSize() > 2)
     {
-        Scierror(999, _("%s: Wrong size for input argument #%d : %d or %d values expected.\n"), "odedc", iPos+1, 1, 2);
+        Scierror(999, _("%s: Wrong size for input argument #%d : %d or %d values expected.\n"), "odedc", iPos + 1, 1, 2);
         return types::Function::Error;
     }
 
     // t0
     iPos++;
-    if(in[iPos]->isDouble() == false)
+    if (in[iPos]->isDouble() == false)
     {
-        Scierror(999, _("%s: Wrong type for input argument #%d : A scalar expected.\n"), "odedc", iPos+1);
+        Scierror(999, _("%s: Wrong type for input argument #%d : A scalar expected.\n"), "odedc", iPos + 1);
         return types::Function::Error;
     }
 
     pDblT0 = in[iPos]->getAs<types::Double>();
 
-    if(pDblT0->isScalar() == false)
+    if (pDblT0->isScalar() == false)
     {
-        Scierror(999, _("%s: Wrong type for input argument #%d : A scalar expected.\n"), "odedc", iPos+1);
+        Scierror(999, _("%s: Wrong type for input argument #%d : A scalar expected.\n"), "odedc", iPos + 1);
         return types::Function::Error;
     }
 
     // t
     iPos++;
-    if(in[iPos]->isDouble() == false)
+    if (in[iPos]->isDouble() == false)
     {
-        Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "odedc", iPos+1);
+        Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "odedc", iPos + 1);
         return types::Function::Error;
     }
 
@@ -257,7 +257,7 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
 
     // size of continuous part
     sizeYc = pDblY0->getSize() - (int)pDblNd->get(0);
-    if(sizeYc < 0)
+    if (sizeYc < 0)
     {
         Scierror(999, _("%s: Wrong value for input argument #%d : Value of nd exceeds dimension of y0.\n"), "odedc", 2);
         return types::Function::Error;
@@ -275,208 +275,221 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
     pdYData = (double*)malloc(pDblY0->getSize() * sizeof(double));
     C2F(dcopy)(YSize, pDblY0->get(), &one, pdYData, &one);
 
-    if(meth == 4)
+    if (meth == 4)
     {
-        if(in.size() != 7)
+        if (in.size() != 7)
         {
             Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "odedc", 7);
             DifferentialEquation::removeDifferentialEquationFunctions();
-            free(pdYData);free(YSize);
+            free(pdYData);
+            free(YSize);
             return types::Function::Error;
         }
 
-        if(in[6]->isCallable() == false && in[6]->isString() == false && in[6]->isList() == false)
+        if (in[6]->isCallable() == false && in[6]->isString() == false && in[6]->isList() == false)
         {
-                Scierror(999, _("%s: Wrong type for input argument #%d : A function expected.\n"), "odedc", 7);
-                DifferentialEquation::removeDifferentialEquationFunctions();
-                free(pdYData);free(YSize);
-                return types::Function::Error;
+            Scierror(999, _("%s: Wrong type for input argument #%d : A function expected.\n"), "odedc", 7);
+            DifferentialEquation::removeDifferentialEquationFunctions();
+            free(pdYData);
+            free(YSize);
+            return types::Function::Error;
         }
     }
 
-    for(iPos++; iPos < in.size(); iPos++)
+    for (iPos++; iPos < in.size(); iPos++)
     {
-        if(in[iPos]->isDouble())
+        if (in[iPos]->isDouble())
         {
-            if(pDblRtol == NULL && bFuncF == false)
+            if (pDblRtol == NULL && bFuncF == false)
             {
                 pDblRtol = in[iPos]->getAs<types::Double>();
-                if(pDblRtol->getSize() != pDblY0->getSize() && pDblRtol->isScalar() == false)
+                if (pDblRtol->getSize() != pDblY0->getSize() && pDblRtol->isScalar() == false)
                 {
-                    Scierror(267, _("%s: Arg %d and arg %d must have equal dimensions.\n"), "odedc", pStrType ? 2 : 1, iPos+1);
+                    Scierror(267, _("%s: Arg %d and arg %d must have equal dimensions.\n"), "odedc", pStrType ? 2 : 1, iPos + 1);
                     DifferentialEquation::removeDifferentialEquationFunctions();
-                    free(pdYData);free(YSize);
+                    free(pdYData);
+                    free(YSize);
                     return types::Function::Error;
                 }
             }
-            else if(pDblAtol == NULL && bFuncF == false)
+            else if (pDblAtol == NULL && bFuncF == false)
             {
                 pDblAtol = in[iPos]->getAs<types::Double>();
-                if(pDblAtol->getSize() != pDblY0->getSize() && pDblAtol->isScalar() == false)
+                if (pDblAtol->getSize() != pDblY0->getSize() && pDblAtol->isScalar() == false)
                 {
-                    Scierror(267, _("%s: Arg %d and arg %d must have equal dimensions.\n"), "odedc", pStrType ? 2 : 1, iPos+1);
+                    Scierror(267, _("%s: Arg %d and arg %d must have equal dimensions.\n"), "odedc", pStrType ? 2 : 1, iPos + 1);
                     DifferentialEquation::removeDifferentialEquationFunctions();
-                    free(pdYData);free(YSize);
+                    free(pdYData);
+                    free(YSize);
                     return types::Function::Error;
                 }
             }
-            else if(pDblNg == NULL && bFuncF == true && meth == 3)
+            else if (pDblNg == NULL && bFuncF == true && meth == 3)
             {
                 pDblNg = in[iPos]->getAs<types::Double>();
             }
-            else if(pDblW == NULL && bFuncF == true && (bFuncG == true || meth != 3))
+            else if (pDblW == NULL && bFuncF == true && (bFuncG == true || meth != 3))
             {
-                if(in.size() == iPos + 2)
+                if (in.size() == iPos + 2)
                 {
-                    if(in[iPos+1]->isDouble() == false)
+                    if (in[iPos + 1]->isDouble() == false)
                     {
-                        Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "odedc", iPos+2);
+                        Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "odedc", iPos + 2);
                         DifferentialEquation::removeDifferentialEquationFunctions();
-                        free(pdYData);free(YSize);
+                        free(pdYData);
+                        free(YSize);
                         return types::Function::Error;
                     }
 
                     pDblW = in[iPos]->getAs<types::Double>();
-                    pDblIw = in[iPos+1]->getAs<types::Double>();
+                    pDblIw = in[iPos + 1]->getAs<types::Double>();
                     iPos++;
                 }
                 else
                 {
-                    Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "odedc", iPos+2);
+                    Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "odedc", iPos + 2);
                     DifferentialEquation::removeDifferentialEquationFunctions();
-                    free(pdYData);free(YSize);
+                    free(pdYData);
+                    free(YSize);
                     return types::Function::Error;
                 }
             }
             else
             {
-                Scierror(999, _("%s: Wrong type for input argument #%d : A function expected.\n"), "odedc", iPos+1);
+                Scierror(999, _("%s: Wrong type for input argument #%d : A function expected.\n"), "odedc", iPos + 1);
                 DifferentialEquation::removeDifferentialEquationFunctions();
-                free(pdYData);free(YSize);
+                free(pdYData);
+                free(YSize);
                 return types::Function::Error;
             }
         }
-        else if(in[iPos]->isCallable())
+        else if (in[iPos]->isCallable())
         {
             types::Callable* pCall = in[iPos]->getAs<types::Callable>();
-            if(bFuncF == false)
+            if (bFuncF == false)
             {
                 deFunctionsManager->setFFunction(pCall);
                 bFuncF = true;
             }
-            else if(bFuncJac == false && (pDblNg == NULL || meth != 3))
+            else if (bFuncJac == false && (pDblNg == NULL || meth != 3))
             {
                 deFunctionsManager->setJacFunction(pCall);
                 bFuncJac = true;
             }
-            else if(bFuncG == false && meth == 3)
+            else if (bFuncG == false && meth == 3)
             {
                 deFunctionsManager->setGFunction(pCall);
                 bFuncG = true;
             }
             else
             {
-                Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "odedc", iPos+1);
+                Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "odedc", iPos + 1);
                 DifferentialEquation::removeDifferentialEquationFunctions();
-                free(pdYData);free(YSize);
+                free(pdYData);
+                free(YSize);
                 return types::Function::Error;
             }
         }
-        else if(in[iPos]->isString())
+        else if (in[iPos]->isString())
         {
             types::String* pStr = in[iPos]->getAs<types::String>();
             bool bOK = false;
 
-            if(bFuncF == false)
+            if (bFuncF == false)
             {
                 bOK = deFunctionsManager->setFFunction(pStr);
                 bFuncF = true;
             }
-            else if(bFuncJac == false && (pDblNg == NULL || meth != 3))
+            else if (bFuncJac == false && (pDblNg == NULL || meth != 3))
             {
                 bOK = deFunctionsManager->setJacFunction(pStr);
                 bFuncJac = true;
             }
-            else if(bFuncG == false && meth == 3)
+            else if (bFuncG == false && meth == 3)
             {
                 bOK = deFunctionsManager->setGFunction(pStr);
                 bFuncG = true;
             }
             else
             {
-                Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "odedc", iPos+1);
+                Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "odedc", iPos + 1);
                 DifferentialEquation::removeDifferentialEquationFunctions();
-                free(pdYData);free(YSize);
+                free(pdYData);
+                free(YSize);
                 return types::Function::Error;
             }
 
-            if(bOK == false)
+            if (bOK == false)
             {
                 char* pst = wide_string_to_UTF8(pStr->get(0));
                 Scierror(50, _("%s: Subroutine not found: %s\n"), "odedc", pst);
                 FREE(pst);
                 DifferentialEquation::removeDifferentialEquationFunctions();
-                free(pdYData);free(YSize);
+                free(pdYData);
+                free(YSize);
                 return types::Function::Error;
             }
         }
-        else if(in[iPos]->isList())
+        else if (in[iPos]->isList())
         {
             types::List* pList = in[iPos]->getAs<types::List>();
 
-            if(pList->getSize() == 0)
+            if (pList->getSize() == 0)
             {
-                Scierror(50, _("%s: Argument #%d : Subroutine not found in list: %s\n"), "odedc", iPos+1, "(string empty)");
+                Scierror(50, _("%s: Argument #%d : Subroutine not found in list: %s\n"), "odedc", iPos + 1, "(string empty)");
                 DifferentialEquation::removeDifferentialEquationFunctions();
-                free(pdYData);free(YSize);
+                free(pdYData);
+                free(YSize);
                 return types::Function::Error;
             }
 
-            if(bFuncF && (bFuncJac || pDblNg) && (bFuncG || meth != 3))
+            if (bFuncF && (bFuncJac || pDblNg) && (bFuncG || meth != 3))
             {
-                Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "odedc", iPos+1);
+                Scierror(999, _("%s: Wrong type for input argument #%d : A matrix expected.\n"), "odedc", iPos + 1);
                 DifferentialEquation::removeDifferentialEquationFunctions();
-                free(pdYData);free(YSize);
+                free(pdYData);
+                free(YSize);
                 return types::Function::Error;
             }
 
-            if(pList->get(0)->isString())
+            if (pList->get(0)->isString())
             {
                 types::String* pStr = pList->get(0)->getAs<types::String>();
                 bool bOK = false;
 
-                if(bFuncF == false)
+                if (bFuncF == false)
                 {
                     bFuncF = true;
                     bOK = deFunctionsManager->setFFunction(pStr);
                     sizeOfpdYData = *YSize;
                 }
-                else if(bFuncJac == false && (pDblNg == NULL || meth != 3))
+                else if (bFuncJac == false && (pDblNg == NULL || meth != 3))
                 {
                     bFuncJac = true;
                     bOK = deFunctionsManager->setJacFunction(pStr);
-                    if(sizeOfpdYData == 0)
+                    if (sizeOfpdYData == 0)
                     {
                         sizeOfpdYData = *YSize;
                     }
                 }
-                else if(bFuncG == false && meth == 3)
+                else if (bFuncG == false && meth == 3)
                 {
                     bFuncG = true;
                     bOK = deFunctionsManager->setGFunction(pStr);
-                    if(sizeOfpdYData == 0)
+                    if (sizeOfpdYData == 0)
                     {
                         sizeOfpdYData = *YSize;
                     }
                 }
 
-                if(bOK == false)
+                if (bOK == false)
                 {
                     char* pst = wide_string_to_UTF8(pStr->get(0));
-                    Scierror(50, _("%s: Argument #%d : Subroutine not found in list: %s\n"), "odedc", iPos+1, pst);
+                    Scierror(50, _("%s: Argument #%d : Subroutine not found in list: %s\n"), "odedc", iPos + 1, pst);
                     FREE(pst);
                     DifferentialEquation::removeDifferentialEquationFunctions();
-                    free(pdYData);free(YSize);
+                    free(pdYData);
+                    free(YSize);
                     return types::Function::Error;
                 }
 
@@ -488,16 +501,17 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                 memcpy(YSize, sizeTemp, sizeOfYSize * sizeof(int));
 
                 std::vector<types::Double*> vpDbl;
-                for(int iter = 0; iter < pList->getSize() - 1; iter++)
+                for (int iter = 0; iter < pList->getSize() - 1; iter++)
                 {
-                    if(pList->get(iter + 1)->isDouble() == false)
+                    if (pList->get(iter + 1)->isDouble() == false)
                     {
-                        Scierror(999, _("%s: Wrong type for input argument #%d : Argument %d in the list must be a matrix.\n"), "odedc", iPos+1, iter+1);
-                        free(pdYData);free(YSize);
+                        Scierror(999, _("%s: Wrong type for input argument #%d : Argument %d in the list must be a matrix.\n"), "odedc", iPos + 1, iter + 1);
+                        free(pdYData);
+                        free(YSize);
                         return types::Function::Error;
                     }
 
-                    vpDbl.push_back(pList->get(iter+1)->getAs<types::Double>());
+                    vpDbl.push_back(pList->get(iter + 1)->getAs<types::Double>());
                     YSize[sizeOfYSize + iter] = vpDbl[iter]->getSize();
                     totalSize += YSize[sizeOfYSize + iter];
                 }
@@ -508,7 +522,7 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                 C2F(dcopy)(&sizeOfpdYData, pdYDataTemp, &one, pdYData, &one);
 
                 int position = sizeOfpdYData;
-                for(int iter = 0; iter < pList->getSize()-1; iter++)
+                for (int iter = 0; iter < pList->getSize() - 1; iter++)
                 {
                     C2F(dcopy)(&YSize[sizeOfYSize + iter], vpDbl[iter]->get(), &one, &pdYData[position], &one);
                     position += vpDbl[iter]->getSize();
@@ -519,31 +533,31 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                 free(pdYDataTemp);
                 free(sizeTemp);
             }
-            else if(pList->get(0)->isCallable())
+            else if (pList->get(0)->isCallable())
             {
-                if(bFuncF == false)
+                if (bFuncF == false)
                 {
                     bFuncF = true;
                     deFunctionsManager->setFFunction(pList->get(0)->getAs<types::Callable>());
-                    for(int iter = 1; iter < pList->getSize(); iter++)
+                    for (int iter = 1; iter < pList->getSize(); iter++)
                     {
                         deFunctionsManager->setFArgs(pList->get(iter)->getAs<types::InternalType>());
                     }
                 }
-                else if(bFuncJac == false && (pDblNg == NULL || meth != 3))
+                else if (bFuncJac == false && (pDblNg == NULL || meth != 3))
                 {
                     bFuncJac = true;
                     deFunctionsManager->setJacFunction(pList->get(0)->getAs<types::Callable>());
-                    for(int iter = 1; iter < pList->getSize(); iter++)
+                    for (int iter = 1; iter < pList->getSize(); iter++)
                     {
                         deFunctionsManager->setJacArgs(pList->get(iter)->getAs<types::InternalType>());
                     }
                 }
-                else if(bFuncG == false && meth == 3)
+                else if (bFuncG == false && meth == 3)
                 {
                     bFuncG = true;
                     deFunctionsManager->setGFunction(pList->get(0)->getAs<types::Callable>());
-                    for(int iter = 1; iter < pList->getSize(); iter++)
+                    for (int iter = 1; iter < pList->getSize(); iter++)
                     {
                         deFunctionsManager->setGArgs(pList->get(iter)->getAs<types::InternalType>());
                     }
@@ -551,45 +565,50 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
             }
             else
             {
-                Scierror(999, _("%s: Wrong type for input argument #%d : The first argument in the list must be a string or a function.\n"), "odedc", iPos+1);
+                Scierror(999, _("%s: Wrong type for input argument #%d : The first argument in the list must be a string or a function.\n"), "odedc", iPos + 1);
                 DifferentialEquation::removeDifferentialEquationFunctions();
-                free(pdYData);free(YSize);
+                free(pdYData);
+                free(YSize);
                 return types::Function::Error;
             }
         }
         else
         {
-            Scierror(999, _("%s: Wrong type for input argument #%d : A matrix or a function expected.\n"), "odedc", iPos+1);
+            Scierror(999, _("%s: Wrong type for input argument #%d : A matrix or a function expected.\n"), "odedc", iPos + 1);
             DifferentialEquation::removeDifferentialEquationFunctions();
-            free(pdYData);free(YSize);
+            free(pdYData);
+            free(YSize);
             return types::Function::Error;
         }
     }
 
-    if(bFuncF == false)
+    if (bFuncF == false)
     {
         int val = (meth == 3) ? 3 : 1;
         Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "odedc", in.size() + val);
         DifferentialEquation::removeDifferentialEquationFunctions();
-        free(pdYData);free(YSize);
+        free(pdYData);
+        free(YSize);
         return types::Function::Error;
     }
-    if(pDblNg == NULL && meth == 3)
+    if (pDblNg == NULL && meth == 3)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "odedc", in.size() + 2);
         DifferentialEquation::removeDifferentialEquationFunctions();
-        free(pdYData);free(YSize);
+        free(pdYData);
+        free(YSize);
         return types::Function::Error;
     }
-    if(bFuncG == false && meth == 3)
+    if (bFuncG == false && meth == 3)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "odedc", in.size() + 1);
         DifferentialEquation::removeDifferentialEquationFunctions();
-        free(pdYData);free(YSize);
+        free(pdYData);
+        free(YSize);
         return types::Function::Error;
     }
 
-// *** Initialization. ***
+    // *** Initialization. ***
 
     int itol        = 1;
     int itask       = 4;
@@ -625,10 +644,10 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
 
     // get %ODEOPTIONS
     types::InternalType* pIT = symbol::Context::getInstance()->get(symbol::Symbol(L"%ODEOPTIONS"));
-    if(pIT != NULL && pIT->isDouble())
+    if (pIT != NULL && pIT->isDouble())
     {
         pDblOdeOptions = pIT->getAs<types::Double>();
-        if(pDblOdeOptions->getSize() == 12)
+        if (pDblOdeOptions->getSize() == 12)
         {
             iopt    = 1;
             itask   = (int)pDblOdeOptions->get(0);
@@ -636,9 +655,9 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
             ml      = (int)pDblOdeOptions->get(10);
             mu      = (int)pDblOdeOptions->get(11);
 
-            if(itask != 4 && itask != 5)
+            if (itask != 4 && itask != 5)
             {
-                if(itask == 1)
+                if (itask == 1)
                 {
                     itask = 4;
                 }
@@ -647,43 +666,45 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                     itask = 5;
                 }
 
-                if(getWarningMode())
+                if (getWarningMode())
                 {
-                    sciprint(_("%s: Warning: odedc forces itask = %d.\n"), "odedc",itask);
+                    sciprint(_("%s: Warning: odedc forces itask = %d.\n"), "odedc", itask);
                 }
             }
         }
     }
 
-    if(iopt == 1 && (pDblOdeOptions->get(4) > pDblOdeOptions->get(3))) // hmin > hmax ?
+    if (iopt == 1 && (pDblOdeOptions->get(4) > pDblOdeOptions->get(3))) // hmin > hmax ?
     {
         Scierror(9999, _("%s: Wrong value of hmin and hmax : hmin = %d is greater than hmax = %d.\n"), "odedc", pDblOdeOptions->get(4), pDblOdeOptions->get(3));
         DifferentialEquation::removeDifferentialEquationFunctions();
-        free(pdYData);free(YSize);
+        free(pdYData);
+        free(YSize);
         return types::Function::Error;
     }
 
-    if(jt < 0 || jt > 5)
+    if (jt < 0 || jt > 5)
     {
         Scierror(9999, _("%s: Wrong value of Jacobian type : A number between %d and %d expected.\n"), "odedc", 0, 5);
         DifferentialEquation::removeDifferentialEquationFunctions();
-        free(pdYData);free(YSize);
+        free(pdYData);
+        free(YSize);
         return types::Function::Error;
     }
 
-    if(iopt == 0 && bFuncJac)
+    if (iopt == 0 && bFuncJac)
     {
         jt = 1;
     }
 
-    if(bFuncJac && (jt == 2 || jt == 5) && getWarningMode())
+    if (bFuncJac && (jt == 2 || jt == 5) && getWarningMode())
     {
         sciprint(_("%s: Warning: Jacobian is given, but not used.\n"), "odedc");
     }
 
-    if(bFuncJac == false && (jt == 1 || jt == 4))
+    if (bFuncJac == false && (jt == 1 || jt == 4))
     {
-        if(getWarningMode())
+        if (getWarningMode())
         {
             sciprint(_("%s: Warning: No Jacobian external given, but one is required by %ODEOPTIONS(6) value. Jacobian will be estimated.\n"), "odedc");
         }
@@ -695,9 +716,9 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
     double* rtol = NULL;
     double* atol = NULL;
 
-    if(pDblRtol)
+    if (pDblRtol)
     {
-        if(pDblRtol->isScalar())
+        if (pDblRtol->isScalar())
         {
             rtol = (double*)malloc(sizeof(double));
             *rtol = pDblRtol->get(0);
@@ -711,7 +732,7 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
     else
     {
         rtol = (double*)malloc(sizeof(double));
-        if(meth == 6 || meth == 7)
+        if (meth == 6 || meth == 7)
         {
             *rtol = 1.e-3;
         }
@@ -721,9 +742,9 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         }
     }
 
-    if(pDblAtol)
+    if (pDblAtol)
     {
-        if(pDblAtol->isScalar())
+        if (pDblAtol->isScalar())
         {
             atol = (double*)malloc(sizeof(double));
             *atol = pDblAtol->get(0);
@@ -737,7 +758,7 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
     else
     {
         atol = (double*)malloc(sizeof(double));
-        if(meth == 6 || meth == 7)
+        if (meth == 6 || meth == 7)
         {
             *atol = 1.e-4;
         }
@@ -755,20 +776,20 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
     int lrn     = 0;
     int lrs     = 0;
 
-    if(pDblW) // structure ls0001 have been restored.
+    if (pDblW) // structure ls0001 have been restored.
     {
         nyh = C2F(ls0001).nyh;
     }
 
-    if(iopt == 1)
+    if (iopt == 1)
     {
         mxordn = (int)pDblOdeOptions->get(7);
         mxords = (int)pDblOdeOptions->get(8);
     }
 
-    if(mxordn > 12 || mxords > 5 || mxordn < 1 || mxords < 1)
+    if (mxordn > 12 || mxords > 5 || mxordn < 1 || mxords < 1)
     {
-        if(getWarningMode())
+        if (getWarningMode())
         {
             sciprint(_("%s: Warning: Wrong value for maximun stiff/non-stiff order allowed :\nAt most %d for mxordn, %d for mxords and no null value for both expected.\nWrong value will be reduced to the default value.\n"), "ode", 12, 5);
         }
@@ -779,21 +800,21 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
 
     int maxord = mxords;
 
-    switch(meth)
+    switch (meth)
     {
         case 3 : // lsodar (root)
         {
-//             lrn = 20 + nyh*(mxordn+1) + 3*neq + 3*ng,
-//             lrs = 20 + nyh*(mxords+1) + 3*neq + lmat + 3*ng,
-//          where
-//             nyh    = the initial value of neq,
-//             mxordn = 12, unless a smaller value is given as an
-//                      optional input,
-//             mxords = 5, unless a smaller value is given as an
-//                      optional input,
-//             lmat   = length of matrix work space..
-//             lmat   = neq**2 + 2              if jt = 1 or 2,
-//             lmat   = (2*ml + mu + 1)*neq + 2 if jt = 4 or 5.
+            //             lrn = 20 + nyh*(mxordn+1) + 3*neq + 3*ng,
+            //             lrs = 20 + nyh*(mxords+1) + 3*neq + lmat + 3*ng,
+            //          where
+            //             nyh    = the initial value of neq,
+            //             mxordn = 12, unless a smaller value is given as an
+            //                      optional input,
+            //             mxords = 5, unless a smaller value is given as an
+            //                      optional input,
+            //             lmat   = length of matrix work space..
+            //             lmat   = neq**2 + 2              if jt = 1 or 2,
+            //             lmat   = (2*ml + mu + 1)*neq + 2 if jt = 4 or 5.
 
             lrn = 3 * (int)pDblNg->get(0);
             lrs = lrn;
@@ -803,32 +824,33 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         }
         case 0 : // lsoda
         {
-//             lrn = 20 + nyh*(mxordn+1) + 3*neq,
-//             lrs = 20 + nyh*(mxords+1) + 3*neq + lmat,
-//          where
-//             nyh    = the initial value of neq,
-//             mxordn = 12, unless a smaller value is given as an
-//                      optional input,
-//             mxords = 5, unless a smaller value is given as an
-//                      optional input,
-//             lmat   = length of matrix work space..
-//             lmat   = neq**2 + 2              if jt = 1 or 2,
-//             lmat   = (2*ml + mu + 1)*neq + 2 if jt = 4 or 5.
-
-            if(jt == 1 || jt == 2)
+            //             lrn = 20 + nyh*(mxordn+1) + 3*neq,
+            //             lrs = 20 + nyh*(mxords+1) + 3*neq + lmat,
+            //          where
+            //             nyh    = the initial value of neq,
+            //             mxordn = 12, unless a smaller value is given as an
+            //                      optional input,
+            //             mxords = 5, unless a smaller value is given as an
+            //                      optional input,
+            //             lmat   = length of matrix work space..
+            //             lmat   = neq**2 + 2              if jt = 1 or 2,
+            //             lmat   = (2*ml + mu + 1)*neq + 2 if jt = 4 or 5.
+
+            if (jt == 1 || jt == 2)
             {
                 lmat = (sizeYc) * (sizeYc) + 2;       //  if jt = 1 or 2,
             }
-            else if(jt == 4 || jt == 5)
-            {   //ml and mu = -1 in all cases
-                lmat = (2 * ml + mu + 1) * (sizeYc) + 2; //  if jt = 4 or 5. 
+            else if (jt == 4 || jt == 5)
+            {
+                //ml and mu = -1 in all cases
+                lmat = (2 * ml + mu + 1) * (sizeYc) + 2; //  if jt = 4 or 5.
             }
 
             lrn += 20 + nyh * (mxordn + 1) + 3 * (sizeYc);
             lrs += 20 + nyh * (mxords + 1) + 3 * (sizeYc) + lmat;
 
             rworkSize   = max(lrn, lrs);
-            iworkSize   = 20 + sizeYc;     
+            iworkSize   = 20 + sizeYc;
 
             dStructTabSize += 241;
             iStructTabSize += 50;
@@ -841,32 +863,32 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         }
         case 2 : // lsode (stiff)
         {
-//          20 + nyh*(maxord + 1) + 3*neq + lmat
-//        where
-//          nyh    = the initial value of neq,
-//          maxord = 12 (if meth = 1) or 5 (if meth = 2) (unless a
-//                   smaller value is given as an optional input),
-//          lmat   = 0             if miter = 0,
-//          lmat   = neq**2 + 2    if miter is 1 or 2,
-//          lmat   = neq + 2       if miter = 3, and
-//          lmat   = (2*ml+mu+1)*neq + 2 if miter is 4 or 5.
-
-            if(jt == 1 || jt == 2)
+            //          20 + nyh*(maxord + 1) + 3*neq + lmat
+            //        where
+            //          nyh    = the initial value of neq,
+            //          maxord = 12 (if meth = 1) or 5 (if meth = 2) (unless a
+            //                   smaller value is given as an optional input),
+            //          lmat   = 0             if miter = 0,
+            //          lmat   = neq**2 + 2    if miter is 1 or 2,
+            //          lmat   = neq + 2       if miter = 3, and
+            //          lmat   = (2*ml+mu+1)*neq + 2 if miter is 4 or 5.
+
+            if (jt == 1 || jt == 2)
             {
                 lmat = (sizeYc) * (sizeYc) + 2;
             }
-            else if(jt == 3)
+            else if (jt == 3)
             {
                 lmat = (sizeYc) + 2;
             }
-            else if(jt == 4 || jt == 5)
+            else if (jt == 4 || jt == 5)
             {
                 lmat = (2 * ml + mu + 1) * (sizeYc) + 2;
             }
 
             rworkSize = 20 + nyh * (maxord + 1) + 3 * (sizeYc) + lmat;
             iworkSize = 20; // if jt = 0 or 3
-            if(jt == 1 || jt == 2 || jt == 4 || jt == 5)// iSize = 20 + neq  otherwise
+            if (jt == 1 || jt == 2 || jt == 4 || jt == 5) // iSize = 20 + neq  otherwise
             {
                 iworkSize += (sizeYc);
             }
@@ -907,18 +929,28 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
     rwork = (double*)malloc(rworkSize * sizeof(double));
     iwork = (int*)malloc(iworkSize * sizeof(int));
 
-    if(meth < 4)
+    if (meth < 4)
     {
-        if(pDblW && pDblIw)
+        if (pDblW && pDblIw)
         {
-            if(pDblW->getSize() != rwSize || pDblIw->getSize() != iwSize)
+            if (pDblW->getSize() != rwSize || pDblIw->getSize() != iwSize)
             {
                 Scierror(9999, _("%s: Wrong size for w and iw : w = %d and iw = %d expected.\n"), "odedc", rwSize, iwSize);
                 DifferentialEquation::removeDifferentialEquationFunctions();
-                free(pdYData);free(YSize);
-                if(jroot) free(jroot);
-                if(itol == 1 || itol == 3) free(atol);
-                if(itol < 3) free(rtol);
+                free(pdYData);
+                free(YSize);
+                if (jroot)
+                {
+                    free(jroot);
+                }
+                if (itol == 1 || itol == 3)
+                {
+                    free(atol);
+                }
+                if (itol < 3)
+                {
+                    free(rtol);
+                }
                 return types::Function::Error;
             }
 
@@ -930,12 +962,12 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
             C2F(dcopy)(&rworkSize, pDblW->get(), &one, rwork, &one);
             C2F(dcopy)(&dStructTabSize, pDblW->get() + rworkSize, &one, dStructTab, &one);
 
-            for(int i = 0; i < iworkSize; i++)
+            for (int i = 0; i < iworkSize; i++)
             {
                 iwork[i] = (int)pDblIw->get(i);
             }
 
-            for(int i = 0; i < iStructTabSize; i++)
+            for (int i = 0; i < iStructTabSize; i++)
             {
                 iStructTab[i] = (int)pDblIw->get(i + iworkSize);
             }
@@ -943,9 +975,9 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         else
         {
             //if iopt = 0 default value are used without set it.
-            if(iopt == 1)
+            if (iopt == 1)
             {
-                if(itask >= 4)
+                if (itask >= 4)
                 {
                     rwork[0] = pDblOdeOptions->get(1); // tcrit
                 }
@@ -964,16 +996,16 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         }
     }
 
-    if(pDblOdeOptions && pDblOdeOptions->get(9) == 1)
+    if (pDblOdeOptions && pDblOdeOptions->get(9) == 1)
     {
         sciprint(_("itask = %d\tmeth = %d\tjactyp = %d\tml = %d\tmu = %d\n"), itask, meth, jt, ml, mu, iopt);
         sciprint(_("tcrit = %lf\th0 = %lf\thmax = %lf\thmin = %lf\n"), pDblOdeOptions->get(1), pDblOdeOptions->get(2), pDblOdeOptions->get(3), pDblOdeOptions->get(4));
     }
 
     // get rwork and iwork
-    if(meth < 4)
+    if (meth < 4)
     {
-        if(pDblW && pDblIw)
+        if (pDblW && pDblIw)
         {
             int dPos    = 0;
             int iPos    = 0;
@@ -987,7 +1019,7 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
             iPos = 39;
 
             //restore lsa001 from w (rwork) and iw (iwork).
-            if(meth == 0 || meth == 3)
+            if (meth == 0 || meth == 3)
             {
                 dSize = 22;
                 C2F(dcopy)(&dSize, dStructTab + dPos, &one, lsa001d, &one);
@@ -998,16 +1030,16 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
             }
 
             //restore lsr001
-            if(meth == 3)
+            if (meth == 3)
             {
                 dSize = 5;
                 C2F(dcopy)(&dSize, dStructTab + dPos, &one, lsr001d, &one);
                 memcpy(lsr001i, &iStructTab[iPos], 9 * sizeof(int));
-            }           
+            }
         }
     }
 
-// *** Perform operation. ***
+    // *** Perform operation. ***
     double ret      = 0;
     double nhpass   = 0;
     double delta    = 0;
@@ -1022,21 +1054,21 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
 
     char* strMeth;
 
-    if(pDblStdel->isScalar() == false)
+    if (pDblStdel->isScalar() == false)
     {
         delta = (int)pDblStdel->get(1);
     }
 
-    if(itask == 5 || itask == 3 || itask == 2)
+    if (itask == 5 || itask == 3 || itask == 2)
     {
         bOneStep = true;
-        if(getWarningMode() && pDblT->isScalar() == false)
+        if (getWarningMode() && pDblT->isScalar() == false)
         {
             sciprint(_("itask = %d : At most one value of t is allowed, the last element of t is used.\n"), itask);
         }
     }
 
-    if(bOneStep)
+    if (bOneStep)
     {
         std::list<double*> pDblYOutList = std::list<double*>();
         std::list<double> pDblTOutList = std::list<double>();
@@ -1045,31 +1077,47 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
 
         do
         {
-            if(bIntegrateContPart == false)
+            if (bIntegrateContPart == false)
             {
                 hf = min(pDblT0->get(0) + (nhpass + delta) * pDblStdel->get(0), pDblT->get(iLastT));
             }
 
-            if(fabs(tleft - hf) < 1.0e-12) // update discrete part
+            if (fabs(tleft - hf) < 1.0e-12) // update discrete part
             {
                 bIntegrateContPart = false;
                 deFunctionsManager->setOdedcFlag();
 
-                if(pDblOdeOptions && pDblOdeOptions->get(9) == 1)
+                if (pDblOdeOptions && pDblOdeOptions->get(9) == 1)
                 {
                     sciprint(_("update at t = %lf\n"), tright);
                 }
 
-                if(ode_f(&sizeYc, &tright, pdYData, pdYData + sizeYc) == 0)
+                if (ode_f(&sizeYc, &tright, pdYData, pdYData + sizeYc) == 0)
                 {
                     Scierror(999, _("%s: Update failed at t = %lf\n"), "odedc", tright);
                     DifferentialEquation::removeDifferentialEquationFunctions();
-                    free(pdYData);free(YSize);
-                    if(jroot) free(jroot);
-                    if(dStructTab) free(dStructTab);
-                    if(iStructTab) free(iStructTab);
-                    if(itol == 1 || itol == 3) free(atol);
-                    if(itol < 3) free(rtol);
+                    free(pdYData);
+                    free(YSize);
+                    if (jroot)
+                    {
+                        free(jroot);
+                    }
+                    if (dStructTab)
+                    {
+                        free(dStructTab);
+                    }
+                    if (iStructTab)
+                    {
+                        free(iStructTab);
+                    }
+                    if (itol == 1 || itol == 3)
+                    {
+                        free(atol);
+                    }
+                    if (itol < 3)
+                    {
+                        free(rtol);
+                    }
                     return types::Function::Error;
                 }
 
@@ -1087,12 +1135,12 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                 tright = hf;
                 rwork[0] = hf; // tcrit = hf
 
-                if(pDblOdeOptions && pDblOdeOptions->get(9) == 1)
+                if (pDblOdeOptions && pDblOdeOptions->get(9) == 1)
                 {
                     sciprint(_("integ. from tleft= %lf to tf= %lf\n"), tleft, tright);
                 }
 
-                switch(meth)
+                switch (meth)
                 {
                     case 0 : // lsoda
                     {
@@ -1104,7 +1152,7 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                     case 2 : // lsode (stiff)
                     {
                         strMeth = "lsode";
-                        int jacType = 10*meth + jt;
+                        int jacType = 10 * meth + jt;
                         ret = C2F(lsode)(ode_f, &sizeYc, pdYData, &tleft, &tright, &itol, rtol, atol, &itask, &istate, &iopt, rwork, &rworkSize, iwork, &iworkSize, bFuncJac ? ode_jac : NULL, &jacType);
                         break;
                     }
@@ -1142,24 +1190,40 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                 }
                 // check error
                 int err = checkOdeError(meth, istate);
-                if(err == 1) // error case
+                if (err == 1) // error case
                 {
                     Scierror(999, _("%s: %s exit with state %d.\n"), "odedc", strMeth, istate);
                     DifferentialEquation::removeDifferentialEquationFunctions();
-                    free(pdYData);free(YSize);
-                    if(jroot) free(jroot);
-                    if(dStructTab) free(dStructTab);
-                    if(iStructTab) free(iStructTab);
-                    if(itol == 1 || itol == 3) free(atol);
-                    if(itol < 3) free(rtol);
+                    free(pdYData);
+                    free(YSize);
+                    if (jroot)
+                    {
+                        free(jroot);
+                    }
+                    if (dStructTab)
+                    {
+                        free(dStructTab);
+                    }
+                    if (iStructTab)
+                    {
+                        free(iStructTab);
+                    }
+                    if (itol == 1 || itol == 3)
+                    {
+                        free(atol);
+                    }
+                    if (itol < 3)
+                    {
+                        free(rtol);
+                    }
                     return types::Function::Error;
                 }
 
-                if(err == 2) // warning case
+                if (err == 2) // warning case
                 {
-                    if(getWarningMode())
+                    if (getWarningMode())
                     {
-                        sciprint(_("Integration was stoped at t = %lf.\n"),tleft);
+                        sciprint(_("Integration was stoped at t = %lf.\n"), tleft);
                     }
                     break;
                 }
@@ -1169,14 +1233,14 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                 pDblYOutList.push_back(copy);
                 pDblTOutList.push_back(tleft);
 
-                if(meth == 3 && istate == 3 && getWarningMode())
+                if (meth == 3 && istate == 3 && getWarningMode())
                 {
-                // istate == 3  means the integration was successful, and one or more
-                //              roots were found before satisfying the stop condition
-                //              specified by itask.  see jroot.
+                    // istate == 3  means the integration was successful, and one or more
+                    //              roots were found before satisfying the stop condition
+                    //              specified by itask.  see jroot.
 
                     sciprint(_("%s: Warning: At t = %lf, y is a root, jroot = "), "odedc", tleft);
-                    for(int k = 0; k < pDblNg->get(0); k++)
+                    for (int k = 0; k < pDblNg->get(0); k++)
                     {
                         sciprint("\t%d", jroot[k]);
                     }
@@ -1185,15 +1249,15 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                 }
             }
         }
-        while(fabs(tleft - pDblT->get(iLastT)) > 1.0e-12 || bIntegrateContPart);
+        while (fabs(tleft - pDblT->get(iLastT)) > 1.0e-12 || bIntegrateContPart);
 
         // Create result
         pDblYOut = new types::Double(pDblY0->getRows() + 1, (int)pDblYOutList.size() * pDblY0->getCols());
         int iSizeList = (int)pDblYOutList.size();
-        for(int i = 0; i < iSizeList; i++)
+        for (int i = 0; i < iSizeList; i++)
         {
             pDblYOut->set(i * (*YSize + 1), pDblTOutList.front());
-            for(int j = 0; j < *YSize; j++)
+            for (int j = 0; j < *YSize; j++)
             {
                 pDblYOut->set(i * (*YSize + 1) + (j + 1), pDblYOutList.front()[j]);
             }
@@ -1206,49 +1270,49 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         // Create result
         pDblYOut = new types::Double(pDblY0->getRows(), pDblT->getSize() * pDblY0->getCols());
 
-        for(int i = 0; i < pDblT->getSize(); i++)
+        for (int i = 0; i < pDblT->getSize(); i++)
         {
             hf = pDblT0->get(0) + (nhpass + delta) * pDblStdel->get(0);
             tf = pDblT->get(i);
 
-            if(pDblOdeOptions && pDblOdeOptions->get(9) == 1)
+            if (pDblOdeOptions && pDblOdeOptions->get(9) == 1)
             {
                 sciprint("tf - hf = %lf\n", tf - hf);
             }
 
-            if(fabs(tf - hf) < 1.0e-12)
+            if (fabs(tf - hf) < 1.0e-12)
             {
                 tright  = hf;
                 bStore  = true;
                 bUpdate = true;
-                if(pDblOdeOptions && pDblOdeOptions->get(9) == 1)
+                if (pDblOdeOptions && pDblOdeOptions->get(9) == 1)
                 {
                     sciprint(_("integ. from tleft= %lf to hf=tf= %lf\n"), tleft, tright);
                 }
             }
-            else if(tf < hf)
+            else if (tf < hf)
             {
                 tright  = tf;
                 bStore  = true;
                 bUpdate = false;
-                if(pDblOdeOptions && pDblOdeOptions->get(9) == 1)
+                if (pDblOdeOptions && pDblOdeOptions->get(9) == 1)
                 {
                     sciprint(_("integ. from tleft= %lf to tf= %lf\n"), tleft, tright);
                 }
             }
-            else if(tf > hf)
+            else if (tf > hf)
             {
                 tright  = hf;
                 bStore  = false;
                 bUpdate = true;
-                if(pDblOdeOptions && pDblOdeOptions->get(9) == 1)
+                if (pDblOdeOptions && pDblOdeOptions->get(9) == 1)
                 {
                     sciprint(_("integ. from tleft= %lf to hf= %lf\n"), tleft, tright);
                 }
             }
 
             rwork[0] = hf; // tcrit = hf
-            switch(meth)
+            switch (meth)
             {
                 case 0 : // lsoda
                 {
@@ -1260,7 +1324,7 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                 case 2 : // lsode (stiff)
                 {
                     strMeth = "lsode";
-                    int jacType = 10*meth + jt;
+                    int jacType = 10 * meth + jt;
                     ret = C2F(lsode)(ode_f, &sizeYc, pdYData, &tleft, &tright, &itol, rtol, atol, &itask, &istate, &iopt, rwork, &rworkSize, iwork, &iworkSize, bFuncJac ? ode_jac : NULL, &jacType);
                     break;
                 }
@@ -1298,38 +1362,70 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
             }
             // check error
             int err = checkOdeError(meth, istate);
-            if(err == 1) // error case
+            if (err == 1) // error case
             {
                 Scierror(999, _("%s: %s exit with state %d.\n"), "odedc", strMeth, istate);
                 DifferentialEquation::removeDifferentialEquationFunctions();
-                free(pdYData);free(YSize);
-                if(jroot) free(jroot);
-                if(dStructTab) free(dStructTab);
-                if(iStructTab) free(iStructTab);
-                if(itol == 1 || itol == 3) free(atol);
-                if(itol < 3) free(rtol);
+                free(pdYData);
+                free(YSize);
+                if (jroot)
+                {
+                    free(jroot);
+                }
+                if (dStructTab)
+                {
+                    free(dStructTab);
+                }
+                if (iStructTab)
+                {
+                    free(iStructTab);
+                }
+                if (itol == 1 || itol == 3)
+                {
+                    free(atol);
+                }
+                if (itol < 3)
+                {
+                    free(rtol);
+                }
                 return types::Function::Error;
             }
 
-            if(bUpdate)
+            if (bUpdate)
             {
                 deFunctionsManager->setOdedcFlag();
 
-                if(pDblOdeOptions && pDblOdeOptions->get(9) == 1)
+                if (pDblOdeOptions && pDblOdeOptions->get(9) == 1)
                 {
                     sciprint(_("update at t = %lf\n"), tright);
                 }
 
-                if(ode_f(&sizeYc, &tright, pdYData, pdYData + sizeYc) == 0)
+                if (ode_f(&sizeYc, &tright, pdYData, pdYData + sizeYc) == 0)
                 {
                     Scierror(999, _("%s: Update failed at t = %lf\n"), "odedc", tright);
                     DifferentialEquation::removeDifferentialEquationFunctions();
-                    free(pdYData);free(YSize);
-                    if(jroot) free(jroot);
-                    if(dStructTab) free(dStructTab);
-                    if(iStructTab) free(iStructTab);
-                    if(itol == 1 || itol == 3) free(atol);
-                    if(itol < 3) free(rtol);
+                    free(pdYData);
+                    free(YSize);
+                    if (jroot)
+                    {
+                        free(jroot);
+                    }
+                    if (dStructTab)
+                    {
+                        free(dStructTab);
+                    }
+                    if (iStructTab)
+                    {
+                        free(iStructTab);
+                    }
+                    if (itol == 1 || itol == 3)
+                    {
+                        free(atol);
+                    }
+                    if (itol < 3)
+                    {
+                        free(rtol);
+                    }
                     return types::Function::Error;
                 }
 
@@ -1337,11 +1433,11 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                 nhpass++;
             }
 
-            if(bStore)
+            if (bStore)
             {
-                for(int j = 0; j < *YSize; j++)
+                for (int j = 0; j < *YSize; j++)
                 {
-                    pDblYOut->set(i*(*YSize) + j, pdYData[j]);
+                    pDblYOut->set(i * (*YSize) + j, pdYData[j]);
                 }
             }
             else
@@ -1349,16 +1445,16 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                 i--;
             }
 
-            if(err == 2) // warning case
+            if (err == 2) // warning case
             {
-                if(getWarningMode())
+                if (getWarningMode())
                 {
-                    sciprint(_("Integration was stoped at t = %lf.\n"),tleft);
+                    sciprint(_("Integration was stoped at t = %lf.\n"), tleft);
                 }
 
                 types::Double* pDblYOutTemp = pDblYOut;
-                pDblYOut = new types::Double(pDblYOutTemp->getRows(), i+1);
-                for(int k = 0; k < pDblYOut->getSize(); k++)
+                pDblYOut = new types::Double(pDblYOutTemp->getRows(), i + 1);
+                for (int k = 0; k < pDblYOut->getSize(); k++)
                 {
                     pDblYOut->set(k, pDblYOutTemp->get(k));
                 }
@@ -1366,22 +1462,22 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
                 break;
             }
 
-            if(meth == 3 && istate == 3 && getWarningMode())
+            if (meth == 3 && istate == 3 && getWarningMode())
             {
                 // istate == 3  means the integration was successful, and one or more
                 //              roots were found before satisfying the stop condition
                 //              specified by itask.  see jroot.
 
                 sciprint(_("%s: Warning: At t = %lf, y is a root, jroot = "), "odedc", tleft);
-                for(int k = 0; k < pDblNg->get(0); k++)
+                for (int k = 0; k < pDblNg->get(0); k++)
                 {
                     sciprint("\t%d", jroot[k]);
                 }
                 sciprint("\n");
 
                 types::Double* pDblYOutTemp = pDblYOut;
-                pDblYOut = new types::Double(pDblYOutTemp->getRows(), i+1);
-                for(int k = 0; k < pDblYOut->getSize(); k++)
+                pDblYOut = new types::Double(pDblYOutTemp->getRows(), i + 1);
+                for (int k = 0; k < pDblYOut->getSize(); k++)
                 {
                     pDblYOut->set(k, pDblYOutTemp->get(k));
                 }
@@ -1391,15 +1487,15 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         }
     }
 
-    if(meth < 4)
+    if (meth < 4)
     {
-        if(_iRetCount > 2)//save ls0001 and eh0001 following w and iw.
+        if (_iRetCount > 2) //save ls0001 and eh0001 following w and iw.
         {
             int dPos    = 0;
             int iPos    = 0;
             int dSize   = 219;
 
-            if(dStructTab == NULL)
+            if (dStructTab == NULL)
             {
                 dStructTab = (double*)malloc(dStructTabSize * sizeof(double));
                 iStructTab = (int*)malloc(iStructTabSize * sizeof(int));
@@ -1412,7 +1508,7 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
             iPos = 39;
 
             //save lsa001
-            if(meth == 0 || meth == 3)
+            if (meth == 0 || meth == 3)
             {
                 dSize = 22;
                 C2F(dcopy)(&dSize, lsa001d, &one, dStructTab + dPos, &one);
@@ -1423,7 +1519,7 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
             }
 
             //save lsr001
-            if(meth == 3)
+            if (meth == 3)
             {
                 dSize = 5;
                 C2F(dcopy)(&dSize, lsr001d, &one, dStructTab + dPos, &one);
@@ -1436,18 +1532,18 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         }
     }
 
-// *** Return result in Scilab. ***
+    // *** Return result in Scilab. ***
 
     out.push_back(pDblYOut); // y
 
-    if(meth == 3 && _iRetCount >= 2)
+    if (meth == 3 && _iRetCount >= 2)
     {
         int sizeOfRd = 1;
         int k = 0;
 
-        for(int i = 0; i < pDblNg->get(0); i++)
+        for (int i = 0; i < pDblNg->get(0); i++)
         {
-            if(jroot[i])
+            if (jroot[i])
             {
                 sizeOfRd++;
             }
@@ -1456,9 +1552,9 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         types::Double* pDblRd = new types::Double(1, sizeOfRd);
         //rd : The first entry contains the stopping time.
         pDblRd->set(0, C2F(lsr001).tlast);
-        for(int i = 0; i < pDblNg->get(0); i++)
+        for (int i = 0; i < pDblNg->get(0); i++)
         {
-            if(jroot[i])
+            if (jroot[i])
             {
                 k++;
                 pDblRd->set(k, (double)i + 1);
@@ -1467,19 +1563,19 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         out.push_back(pDblRd); // rd
     }
 
-    if((meth < 3 && _iRetCount == 3) || (meth == 3 && _iRetCount == 4))
+    if ((meth < 3 && _iRetCount == 3) || (meth == 3 && _iRetCount == 4))
     {
-        types::Double* pDblWOut = new types::Double(1,rwSize);
+        types::Double* pDblWOut = new types::Double(1, rwSize);
         C2F(dcopy)(&rworkSize, rwork, &one, pDblWOut->get(), &one);
         C2F(dcopy)(&dStructTabSize, dStructTab, &one, pDblWOut->get() + rworkSize, &one);
 
-        types::Double* pDblIwOut = new types::Double(1,iwSize);
-        for(int i = 0; i < iworkSize; i++)
+        types::Double* pDblIwOut = new types::Double(1, iwSize);
+        for (int i = 0; i < iworkSize; i++)
         {
             pDblIwOut->set(i, (double)iwork[i]);
         }
 
-        for(int i = 0; i < iStructTabSize; i++)
+        for (int i = 0; i < iStructTabSize; i++)
         {
             pDblIwOut->set(iworkSize + i, (double)iStructTab[i]);
         }
@@ -1488,13 +1584,13 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
         out.push_back(pDblIwOut); // iw
     }
 
-// *** free. ***
-    if(itol == 1 || itol == 3) // atol is scalar
+    // *** free. ***
+    if (itol == 1 || itol == 3) // atol is scalar
     {
         free(atol);
     }
 
-    if(itol < 3) // rtol is scalar
+    if (itol < 3) // rtol is scalar
     {
         free(rtol);
     }
@@ -1504,12 +1600,12 @@ types::Function::ReturnValue sci_odedc(types::typed_list &in, int _iRetCount, ty
     free(rwork);
     free(iwork);
 
-    if(jroot)
+    if (jroot)
     {
         free(jroot);
     }
 
-    if(dStructTab)
+    if (dStructTab)
     {
         free(dStructTab);
         free(iStructTab);
index 7af200b..44e6a83 100644 (file)
 */
 /*--------------------------------------------------------------------------*/
 
-extern "C"{
+extern "C" {
 #include "checkodeerror.h"
 #include "sciprint.h"
 #include "localization.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 }
 // return 0 = ok, return 1 = error, return 2 = warning
 int checkOdeError(int meth, int istate)
-{       
-    switch(meth)
+{
+    switch (meth)
     {
         case 0 : // lsoda
         case 3 : // lsodar
         {
-            if(istate == -7)
+            if (istate == -7)
             {
                 sciprint(_("Work space insufficient to finish (see messages).\n"));
                 return 1;
@@ -34,42 +34,42 @@ int checkOdeError(int meth, int istate)
         case 1 : // lsode | lsodi (adams)
         case 2 : // lsode | lsodi (stiff)
         {
-            if(istate == -1)
+            if (istate == -1)
             {
                 sciprint(_("Excess work done on this call (perhaps wrong jacobian type).\n"));
                 return 1;
             }
-            else if(istate == -2)
+            else if (istate == -2)
             {
                 sciprint(_("Excess accuracy requested (tolerances too small).\n"));
                 return 1;
             }
-            else if(istate == -3)
+            else if (istate == -3)
             {
                 sciprint(_("Illegal input detected (see printed message).\n"));
                 return 1;
             }
-            else if(istate == -4)
+            else if (istate == -4)
             {
                 sciprint(_("Repeated error test failures (check all inputs).\n"));
                 return 1;
             }
-            else if(istate == -5)
+            else if (istate == -5)
             {
                 sciprint(_("Repeated convergence failures (perhaps bad jacobian supplied or wrong choice of jacobian type or tolerances).\n"));
                 return 1;
             }
-            else if(istate == -6)
+            else if (istate == -6)
             {
                 sciprint(_("Error weight became zero during problem. (solution component i vanished, and atol or atol(i) = 0.)\n"));
                 return 1;
             }
-            else if(istate == -7) // only used with impl (lsodi)
+            else if (istate == -7) // only used with impl (lsodi)
             {
                 sciprint(_("The user-supplied subroutine res set its error flag (ires = 3) despite repeated tries by lsodi to avoid that condition.\n"));
                 return 1;
             }
-            else if(istate == -8) // only used with impl (lsodi)
+            else if (istate == -8) // only used with impl (lsodi)
             {
                 sciprint(_("istate was 0 on input but lsodi was unable to compute the initial value of dy/dt.\n"));
                 return 1;
@@ -78,15 +78,16 @@ int checkOdeError(int meth, int istate)
         }
         case 4 : // lsdisc (discrete)
         {
-            if(istate < 0) // from lsdisc.f :
-            {              // istate = 2 if lsdisc was successful, negative otherwise...
+            if (istate < 0) // from lsdisc.f :
+            {
+                // istate = 2 if lsdisc was successful, negative otherwise...
                 return 1;
             }
             break;
         }
         case 5 : // lsrgk (rk)
         {
-            if(istate == -1) // from lsrgk.f
+            if (istate == -1) // from lsrgk.f
             {
                 return 1;
             }
@@ -94,55 +95,56 @@ int checkOdeError(int meth, int istate)
         }
         case 6 : // rkf45 (rkf)
         {
-            switch(istate)
+            switch (istate)
             {
                 case 3:
                 {
-                    if(getWarningMode())
+                    if (getWarningMode())
                     {
-                        sciprint(_("Integration was not completed because relative error tolerance was too small. rerr has been increased appropriately for continuing.\n")); 
+                        sciprint(_("Integration was not completed because relative error tolerance was too small. rerr has been increased appropriately for continuing.\n"));
                     }
-                        return 2;
+                    return 2;
                 }
                 case 4:
                 {
-                    if(getWarningMode())
+                    if (getWarningMode())
                     {
                         sciprint(_("Integration was not completed because more than 3000 derivative evaluations were needed. This is approximately 500 steps.\n"));
                     }
-                        return 2;
+                    return 2;
                 }
                 case 5:
                 {
                     sciprint(_("Integration was not completed because solution vanished making a pure relative error test impossible. Must use non-zero aerr to continue. Using the one-step integration mode for one step is a good way to proceed.\n"));
-                        return 1;
+                    return 1;
                 }
                 case 6:
                 {
                     sciprint(_("Integration was not completed because requested accuracy could not be achieved using smallest allowable stepsize. User must increase the error tolerance before continued integration can be attempted.\n"));
-                        return 1;
+                    return 1;
                 }
                 case 7:
                 {
                     sciprint(_("It is likely that rkf45 is inefficient for solving this problem. Too much output is restricting the natural stepsize choice. Use the one-step integrator mode.\n"));
-                        return 1;
+                    return 1;
                 }
                 case 8:
                 {
                     sciprint(_("invalid input parameters : atol and rtol must be greater than 0.\n"));
-                        return 1;
+                    return 1;
                 }
-                default : break;
+                default :
+                    break;
             }
             break;
         }
         case 7 : // rksimp (fix)
         {
-            if(istate == 3)
+            if (istate == 3)
             {
                 return 1;
             }
-            else if(istate == 4)
+            else if (istate == 4)
             {
                 sciprint(_("Inappropriate error tolerance.\n"));
                 return 1;
@@ -155,14 +157,16 @@ int checkOdeError(int meth, int istate)
 
 int checkDasslError(int idid)
 {
-    switch(idid)
+    switch (idid)
     {
         case 4 ://Only used in dasrt
-        {       //One or more root found at t
+        {
+            //One or more root found at t
             return 2;
         }
-        case 3 ://The integration to TOUT was successfully completed (T=TOUT) by 
-        {       //stepping past TOUT. Y,ydot are obtained by interpolation.
+        case 3 ://The integration to TOUT was successfully completed (T=TOUT) by
+        {
+            //stepping past TOUT. Y,ydot are obtained by interpolation.
             return 0;
         }
         case 2 : //The integration to TSTOP was successfully completed (T=TSTOP)
@@ -170,14 +174,15 @@ int checkDasslError(int idid)
             return 2;
         }
         case 1 : //A step was successfully taken in the intermediate-output mode.
-        {        //The code has not yet reached TOUT.
+        {
+            //The code has not yet reached TOUT.
             return 0;
         }
         case -1 : //A large amount of work has been expended (About 500 steps)
         {
-            if(getWarningMode())
+            if (getWarningMode())
             {
-                sciprint(_("To many steps necessary to reached next required time discretization point. Change discretisation of time vector t or decrease accuracy.\n")); 
+                sciprint(_("To many steps necessary to reached next required time discretization point. Change discretisation of time vector t or decrease accuracy.\n"));
             }
             return 2;
         }
@@ -188,29 +193,29 @@ int checkDasslError(int idid)
         }
         case -3 :
         {
-            //The local error test cannot be satisfied because you specified 
+            //The local error test cannot be satisfied because you specified
             //a zero component in ATOL and the corresponding computed solution
-            //component is zero. Thus, a pure relative error test is impossible 
+            //component is zero. Thus, a pure relative error test is impossible
             //for this component.
-            if(getWarningMode())
+            if (getWarningMode())
             {
-                sciprint(_("Atol and computed test value are zero.\n")); 
+                sciprint(_("Atol and computed test value are zero.\n"));
             }
             return 2;
         }
         case -6 : //Repeated error test failures on the last attempted step.
         {
-            if(getWarningMode())
+            if (getWarningMode())
             {
-                sciprint(_("A singularity in the solution may be present.\n")); 
+                sciprint(_("A singularity in the solution may be present.\n"));
             }
             return 2;
         }
         case -7 : //The corrector could not converge.
         {
-            if(getWarningMode())
+            if (getWarningMode())
             {
-                sciprint(_("May be inaccurate or ill-conditioned JACOBIAN.\n")); 
+                sciprint(_("May be inaccurate or ill-conditioned JACOBIAN.\n"));
             }
             return 2;
         }
@@ -220,23 +225,25 @@ int checkDasslError(int idid)
             return 1;
         }
         case -9 : //The corrector could not converge.
-        {         //There were repeated error test failures in this step.
-            if(getWarningMode())
+        {
+            //There were repeated error test failures in this step.
+            if (getWarningMode())
             {
-                sciprint(_("Either ill-posed problem or discontinuity or singularity encountered.\n")); 
+                sciprint(_("Either ill-posed problem or discontinuity or singularity encountered.\n"));
             }
             return 2;
         }
         case -10 :
         {
-            if(getWarningMode())
+            if (getWarningMode())
             {
-                sciprint(_("External ''res'' return many times with ires=-1.\n")); 
+                sciprint(_("External ''res'' return many times with ires=-1.\n"));
             }
             return 2;
         }
         case -11 : //IRES equal to -2 was encountered and
-        {          //control is being returned to the calling program.
+        {
+            //control is being returned to the calling program.
             sciprint(_("Error in external ''res''.\n"));
             return 1;
         }
@@ -252,7 +259,7 @@ int checkDasslError(int idid)
             //explaining the trouble and control is returned
             //to the calling program. For example, this occurs
             //when invalid input is detected.
-            if(getWarningMode())
+            if (getWarningMode())
             {
                 sciprint(_("dassl encountered trouble.\n"));
             }
index 2bebba4..207b5c2 100644 (file)
@@ -2,11 +2,11 @@
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA/ENPC
  * Copyright (C) 2008 - INRIA - Allan CORNET
- * 
+ *
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
- * are also available at    
+ * are also available at
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  */
 
 extern "C"
 {
-#include <string.h> 
+#include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
 
 #include "core_math.h"
 #include "dynamic_link.h"
 #include "men_Sutils.h"
-#include "addinter.h" 
+#include "addinter.h"
 
 #include "do_error_number.h"
 #include "stack-c.h"
 #include "MALLOC.h" /* MALLOC */
 #include "sciprint.h"
 #include "Funtab.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "GetenvB.h"
 #include "localization.h"
 #include "Scierror.h"
@@ -41,38 +41,40 @@ extern "C"
 
 int AddInterfaceToScilab(wchar_t* _pwstDynamicLibraryName, wchar_t* _pwstModuleName, wchar_t** _pwstEntryPointName, int _iEntryPointSize)
 {
-       int iLibID = -1; /* Id of library */
-       int iErr = 0;
-       
-       /** Try to unlink the interface if it was previously linked **/
+    int iLibID = -1; /* Id of library */
+    int iErr = 0;
+
+    /** Try to unlink the interface if it was previously linked **/
     ConfigVariable::EntryPointStr* pEP = ConfigVariable::getEntryPoint(_pwstModuleName);
-    if(pEP)
-    {//entry point already linked, so remove it before add it
+    if (pEP)
+    {
+        //entry point already linked, so remove it before add it
         ConfigVariable::removeDynamicLibrary(pEP->iLibIndex);
     }
 
-       /* link then search  */ 
-       /* Haven't been able to find the symbol. Try C symbol */
+    /* link then search  */
+    /* Haven't been able to find the symbol. Try C symbol */
     iLibID =  scilabLink(iLibID, _pwstDynamicLibraryName, &_pwstModuleName, 1, FALSE, &iErr);
-    if(iErr)
-       {
-       /* Trying with the fortran symbol */
+    if (iErr)
+    {
+        /* Trying with the fortran symbol */
         iLibID =  scilabLink(iLibID, _pwstDynamicLibraryName, &_pwstModuleName, 1, TRUE, &iErr);
-        if(iErr)
+        if (iErr)
         {
             return iErr;
         }
     }
 
     pEP = ConfigVariable::getEntryPoint(_pwstModuleName);
-    if(pEP == NULL)
-    {//
+    if (pEP == NULL)
+    {
+        //
         return -1;
     }
 
-    for(int i = 0 ; i < _iEntryPointSize ; i++)
+    for (int i = 0 ; i < _iEntryPointSize ; i++)
     {
         pEP->functionPtr(_pwstEntryPointName[i]);
     }
-       return 0;
+    return 0;
 }
index 1109839..44a233e 100644 (file)
@@ -24,7 +24,7 @@ extern "C"
 #include "dynamiclibrary.h"
 #include "men_Sutils.h"
 #include "MALLOC.h" /* MALLOC */
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 #include "stack-c.h"
 #include "addinter.h"
@@ -36,21 +36,23 @@ extern "C"
 #include "getenvc.h"
 #include "dllinfo.h"
 
-/* struct used by fortran (F2C) */
-/* required to be defined in C */
+    /* struct used by fortran (F2C) */
+    /* required to be defined in C */
 
-typedef struct {
-    char name[nlgh+1];
-} CINTER_struct;
+    typedef struct
+    {
+        char name[nlgh + 1];
+    } CINTER_struct;
 
-__declspec (dllexport) CINTER_struct C2F(cinter);
+    __declspec (dllexport) CINTER_struct C2F(cinter);
 
-/* struct used by fortran (F2C) */
-/* required to be defined in C */
-typedef struct {
-    int ibuf[lsiz];
-} IBFU_struct;
-__declspec (dllexport) CINTER_struct C2F(ibfu);
+    /* struct used by fortran (F2C) */
+    /* required to be defined in C */
+    typedef struct
+    {
+        int ibuf[lsiz];
+    } IBFU_struct;
+    __declspec (dllexport) CINTER_struct C2F(ibfu);
 
 #endif
 #include "getshortpathname.h"
@@ -63,39 +65,39 @@ static void Underscores(BOOL _bFortran, wchar_t* _pwstEntryPointName, wchar_t* _
 typedef void (*function) (wchar_t*);
 
 
-int scilabLink(int _iLibID, wchar_t* _pwstLibraryName, wchar_t** _pwstEntryPointName, int _iEntryPointSize, BOOL _bFortran ,int *_piErr)
+int scilabLink(int _iLibID, wchar_t* _pwstLibraryName, wchar_t** _pwstEntryPointName, int _iEntryPointSize, BOOL _bFortran , int *_piErr)
 {
-    int iLibID = -1; 
+    int iLibID = -1;
 
-    if(_iLibID == -1) 
+    if (_iLibID == -1)
     {
         iLibID = Sci_dlopen(_pwstLibraryName);
-    } 
-    else 
+    }
+    else
     {
         iLibID = _iLibID;
     }
 
-    if(iLibID == -1) 
+    if (iLibID == -1)
     {
-        if( getWarningMode() ) 
+        if ( getWarningMode() )
         {
 #ifdef _MSC_VER
-            if(isDllW(_pwstLibraryName))
+            if (isDllW(_pwstLibraryName))
             {
 #ifdef _WIN64
-                if(isX86DllW(_pwstLibraryName))
+                if (isX86DllW(_pwstLibraryName))
                 {
-                    if(getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
+                    if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
                     {
                         sciprint(_("%s: can not to load a x86 dll in a x64 environment.\n" ), "link");
                     }
                     SetLastError(ERROR_DLL_INIT_FAILED);
                 }
 #else
-                if(isX64DllW(_pwstLibraryName))
+                if (isX64DllW(_pwstLibraryName))
                 {
-                    if(getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
+                    if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
                     {
                         sciprint(_("%s: can not load a x64 dll in a x86 environment.\n" ), "link");
                     }
@@ -106,16 +108,16 @@ int scilabLink(int _iLibID, wchar_t* _pwstLibraryName, wchar_t** _pwstEntryPoint
             else
             {
                 wchar_t* pwstPathSearch = searchEnvW(_pwstLibraryName, L"PATH");
-                if(pwstPathSearch == NULL)
+                if (pwstPathSearch == NULL)
                 {
-                    if(getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
+                    if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
                     {
                         sciprint(_("%ls: The file %ls does not exist in PATH environment.\n" ), L"link", _pwstLibraryName);
                     }
                 }
             }
 #else
-            if(getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
+            if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
             {
                 sciprint(_("Link failed for dynamic library '%ls'.\n"), _pwstLibraryName);
                 sciprint(_("An error occurred: %s\n"), GetLastDynLibError());
@@ -126,13 +128,13 @@ int scilabLink(int _iLibID, wchar_t* _pwstLibraryName, wchar_t** _pwstEntryPoint
         return iLibID;
     }
 
-    if( (_iLibID == -1) && (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)) 
+    if ( (_iLibID == -1) && (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT))
     {
         sciprint(_("Shared archive loaded.\n"));
         sciprint(_("Link done.\n"));
     }
 
-    for(int i = 0 ; i < _iEntryPointSize ; i++)
+    for (int i = 0 ; i < _iEntryPointSize ; i++)
     {
         *_piErr = Sci_dlsym(_pwstEntryPointName[i], iLibID, _bFortran);
     }
@@ -141,8 +143,8 @@ int scilabLink(int _iLibID, wchar_t* _pwstLibraryName, wchar_t** _pwstEntryPoint
 }
 /*---------------------------------------------------------------------------*/
 /**
-* Underscores : deals with the trailing _ 
-* in entry names 
+* Underscores : deals with the trailing _
+* in entry names
 */
 static void Underscores(BOOL _bFortran, wchar_t* _pwstEntryPointName, wchar_t* _pwstTrailingName)
 {
@@ -152,7 +154,7 @@ static void Underscores(BOOL _bFortran, wchar_t* _pwstEntryPointName, wchar_t* _
 #endif
     wcscpy(_pwstTrailingName, _pwstEntryPointName);
 #ifdef WTU
-    if(_bFortran)
+    if (_bFortran)
     {
         wcscat(_pwstTrailingName, L"_");
     }
@@ -182,7 +184,7 @@ int Sci_dlopen(wchar_t* _pwstDynLibPath)
     }
 #endif
 
-    if(hLib == NULL)
+    if (hLib == NULL)
     {
         return -1 ; /* the shared archive was not loaded. */
     }
@@ -191,7 +193,7 @@ int Sci_dlopen(wchar_t* _pwstDynLibPath)
     ConfigVariable::setLibraryName(pDL, _pwstDynLibPath);
     pDL->hLib = (unsigned long long)hLib;
 
-    
+
     return ConfigVariable::addDynamicLibrary(pDL);
 }
 /*---------------------------------------------------------------------------*/
@@ -205,14 +207,15 @@ int Sci_dlsym(wchar_t* _pwstEntryPointName, int _iLibID, BOOL _bFortran)
 
     Underscores(_bFortran, _pwstEntryPointName, pwstEntryPointName);
 
-    
-    if(_iLibID < 0 || ConfigVariable::isDynamicLibrary(_iLibID) == false)
-    {//no valid library at this ID
+
+    if (_iLibID < 0 || ConfigVariable::isDynamicLibrary(_iLibID) == false)
+    {
+        //no valid library at this ID
         return -3;
     }
 
     /** entry was previously loaded **/
-    if(ConfigVariable::getEntryPoint(_pwstEntryPointName, _iLibID) != NULL)
+    if (ConfigVariable::getEntryPoint(_pwstEntryPointName, _iLibID) != NULL)
     {
         sciprint(_("Entry name %ls.\n"), _pwstEntryPointName);
         return -4;
@@ -226,10 +229,10 @@ int Sci_dlsym(wchar_t* _pwstEntryPointName, int _iLibID, BOOL _bFortran)
     char* pstEntryPointName = wide_string_to_UTF8(pwstEntryPointName);
     pEP->functionPtr = (function) GetDynLibFuncPtr(hDynLib, pstEntryPointName);
     FREE(pstEntryPointName);
-#endif    
-    if(pEP->functionPtr == NULL)
+#endif
+    if (pEP->functionPtr == NULL)
     {
-        if(getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
+        if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
         {
             sciprint(_("%ls is not an entry point.\n"), _pwstEntryPointName);
         }
@@ -237,7 +240,7 @@ int Sci_dlsym(wchar_t* _pwstEntryPointName, int _iLibID, BOOL _bFortran)
     }
 
 
-    if(0 /*debug mode*/)
+    if (0 /*debug mode*/)
     {
         sciprint(_("Linking %ls.\n"), _pwstEntryPointName);
     }
@@ -245,6 +248,6 @@ int Sci_dlsym(wchar_t* _pwstEntryPointName, int _iLibID, BOOL _bFortran)
     ConfigVariable::setEntryPointName(pEP, _pwstEntryPointName);
     ConfigVariable::addEntryPoint(pEP);
     FREE(pwstEntryPointName);
-    return 0;  
+    return 0;
 }
 /*---------------------------------------------------------------------------*/
index ce81ea6..0fd1afe 100644 (file)
@@ -23,7 +23,7 @@ extern "C"
 #include "createdirectory.h"
 #include "isdir.h"
 #include "expandPathVariable.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 #include "Scierror.h"
 #include "localization.h"
@@ -35,13 +35,13 @@ using namespace types;
 
 Function::ReturnValue sci_createdir(typed_list &in, int _iRetCount, typed_list &out)
 {
-    if(in.size() != 1)
+    if (in.size() != 1)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "createdir", 1);
         return Function::Error;
     }
 
-    if(in[0]->isString() == false || in[0]->getAs<types::String>()->getSize() != 1)
+    if (in[0]->isString() == false || in[0]->getAs<types::String>()->getSize() != 1)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d: A String expected.\n"), "createdir", 1);
         return Function::Error;
@@ -49,13 +49,13 @@ Function::ReturnValue sci_createdir(typed_list &in, int _iRetCount, typed_list &
 
     wchar_t* pwstPath = expandPathVariableW(in[0]->getAs<types::String>()->get(0));
     int iRet = 0;
-    if(!isdirW(pwstPath))
+    if (!isdirW(pwstPath))
     {
         iRet = createdirectoryW(pwstPath);
     }
     else
     {
-        if(getWarningMode())
+        if (getWarningMode())
         {
             sciprint(_("%ls: Warning: Directory '%ls' already exists.\n"), L"createdir", pwstPath);
         }
@@ -67,47 +67,47 @@ Function::ReturnValue sci_createdir(typed_list &in, int _iRetCount, typed_list &
 
     out.push_back(pOut);
     return Function::OK;
-       //CheckRhs(1,1);
-       //CheckLhs(0,1);
+    //CheckRhs(1,1);
+    //CheckLhs(0,1);
 
-       //if (GetType(1) == sci_strings)
-       //{
-       //      BOOL bOK = FALSE;
-       //      int m1 = 0, n1 = 0, l1 = 0;
-       //      char *expandedpath = NULL;
-       //      int out_n = 0;
+    //if (GetType(1) == sci_strings)
+    //{
+    // BOOL bOK = FALSE;
+    // int m1 = 0, n1 = 0, l1 = 0;
+    // char *expandedpath = NULL;
+    // int out_n = 0;
 
-       //      GetRhsVar(1,STRING_DATATYPE,&m1,&n1,&l1);
+    // GetRhsVar(1,STRING_DATATYPE,&m1,&n1,&l1);
 
-       //      expandedpath = expandPathVariable(cstk(l1));
+    // expandedpath = expandPathVariable(cstk(l1));
 
-       //      if (!isdir(expandedpath))
-       //      {
-       //              bOK = createdirectory(expandedpath);
-       //      }
-       //      else
-       //      {
-       //              if (getWarningMode()) sciprint(_("%s: Warning: Directory '%s' already exists.\n"),fname,expandedpath);
-       //              bOK = TRUE;
-       //      }
+    // if (!isdir(expandedpath))
+    // {
+    //         bOK = createdirectory(expandedpath);
+    // }
+    // else
+    // {
+    //         if (getWarningMode()) sciprint(_("%s: Warning: Directory '%s' already exists.\n"),fname,expandedpath);
+    //         bOK = TRUE;
+    // }
 
-       //      if (expandedpath)
-       //      {
-       //              FREE(expandedpath);
-       //              expandedpath = NULL;
-       //      }
+    // if (expandedpath)
+    // {
+    //         FREE(expandedpath);
+    //         expandedpath = NULL;
+    // }
 
-       //      m1 = 1; n1 = 1;
-       //      CreateVar(Rhs+1,MATRIX_OF_BOOLEAN_DATATYPE, &m1, &n1 ,&l1);
-       //      *istk(l1) = bOK;
+    // m1 = 1; n1 = 1;
+    // CreateVar(Rhs+1,MATRIX_OF_BOOLEAN_DATATYPE, &m1, &n1 ,&l1);
+    // *istk(l1) = bOK;
 
-       //      LhsVar(1)=Rhs+1;
-       //      C2F(putlhsvar)();
-       //}
-       //else
-       //{
-       //      Scierror(999,_("%s: Wrong type for input argument: A string expected.\n"), fname);
-       //}
-       //return 0;
+    // LhsVar(1)=Rhs+1;
+    // C2F(putlhsvar)();
+    //}
+    //else
+    //{
+    // Scierror(999,_("%s: Wrong type for input argument: A string expected.\n"), fname);
+    //}
+    //return 0;
 }
 /*--------------------------------------------------------------------------*/
index f981f67..56e4149 100644 (file)
@@ -23,7 +23,7 @@ extern "C"
 #include <stdio.h>
 #include <string.h>
 #include "expandPathVariable.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 #include "Scierror.h"
 #include "localization.h"
@@ -36,14 +36,14 @@ Function::ReturnValue sci_mclearerr(types::typed_list &in, int _iRetCount, types
     int iRet  = 0;
     int iFile = -1; //default file : last opened file
 
-    if(in.size() > 1)
+    if (in.size() > 1)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d to %d expected.\n"), "mclearerr", 0, 1);
         return types::Function::Error;
     }
-    if(in.size() == 1)
+    if (in.size() == 1)
     {
-        if(in[0]->isDouble() == false || in[0]->getAs<types::Double>()->isScalar() == false || in[0]->getAs<types::Double>()->isComplex())
+        if (in[0]->isDouble() == false || in[0]->getAs<types::Double>()->isScalar() == false || in[0]->getAs<types::Double>()->isComplex())
         {
             Scierror(999, _("%s: Wrong type for input argument #%d: A real expected.\n"), "mclearerr", 1);
             return types::Function::Error;
@@ -53,7 +53,7 @@ Function::ReturnValue sci_mclearerr(types::typed_list &in, int _iRetCount, types
     }
 
     File* pF = FileManager::getFile(iFile);
-    if(pF != NULL)
+    if (pF != NULL)
     {
         clearerr(pF->getFiledesc());
         iRet = 1;
index f5b2ed5..81e8100 100644 (file)
@@ -22,7 +22,7 @@ extern "C"
 {
 #include <stdio.h>
 #include "expandPathVariable.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 #include "Scierror.h"
 #include "localization.h"
@@ -34,14 +34,14 @@ types::Function::ReturnValue sci_meof(types::typed_list &in, int _iRetCount, typ
     int iRet  = 0;
     int iFile = -1; //default file : last opened file
 
-    if(in.size() > 1)
+    if (in.size() > 1)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d to %d expected.\n"), "meof", 0, 1);
         return types::Function::Error;
     }
-    if(in.size() == 1)
+    if (in.size() == 1)
     {
-        if(in[0]->isDouble() == false || in[0]->getAs<types::Double>()->isScalar() == false || in[0]->getAs<types::Double>()->isComplex())
+        if (in[0]->isDouble() == false || in[0]->getAs<types::Double>()->isScalar() == false || in[0]->getAs<types::Double>()->isComplex())
         {
             Scierror(999, _("%s: Wrong type for input argument #%d: A real expected.\n"), "meof", 1);
             return types::Function::Error;
@@ -49,17 +49,17 @@ types::Function::ReturnValue sci_meof(types::typed_list &in, int _iRetCount, typ
 
         iFile = (int)in[0]->getAs<types::Double>()->get(0);
         switch (iFile)
-           {
-        case 0: // stderr
-        case 5: // stdin
-        case 6: // stdout
-            Scierror(999, _("%s: Wrong file descriptor: %d.\n"), "meof", iFile);
-            return types::Function::Error;
+        {
+            case 0: // stderr
+            case 5: // stdin
+            case 6: // stdout
+                Scierror(999, _("%s: Wrong file descriptor: %d.\n"), "meof", iFile);
+                return types::Function::Error;
         }
     }
 
     File* pF = FileManager::getFile(iFile);
-    if(pF != NULL)
+    if (pF != NULL)
     {
         iRet = feof(pF->getFiledesc());
     }
index cb8bad2..7923368 100644 (file)
@@ -22,7 +22,7 @@ extern "C"
 {
 #include <stdio.h>
 #include <string.h>
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 #include "Scierror.h"
 #include "localization.h"
@@ -34,16 +34,16 @@ Function::ReturnValue sci_merror(types::typed_list &in, int _iRetCount, types::t
 {
     int iRet  = 0;
     int iFile = -1; //default file : last opened file
-    int dimsArray[2] = {1,1};
+    int dimsArray[2] = {1, 1};
 
-    if(in.size() > 1)
+    if (in.size() > 1)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d to %d expected.\n"), "merror", 0, 1);
         return types::Function::Error;
     }
-    if(in.size() == 1)
+    if (in.size() == 1)
     {
-        if(in[0]->isDouble() == false || in[0]->getAs<types::Double>()->isScalar() == false || in[0]->getAs<types::Double>()->isComplex())
+        if (in[0]->isDouble() == false || in[0]->getAs<types::Double>()->isScalar() == false || in[0]->getAs<types::Double>()->isComplex())
         {
             Scierror(999, _("%s: Wrong type for input argument #%d: A real expected.\n"), "merror", 1);
             return types::Function::Error;
@@ -53,7 +53,7 @@ Function::ReturnValue sci_merror(types::typed_list &in, int _iRetCount, types::t
     }
 
     File* pF = FileManager::getFile(iFile);
-    if(pF != NULL)
+    if (pF != NULL)
     {
         iRet = ferror(pF->getFiledesc());
     }
@@ -73,7 +73,7 @@ Function::ReturnValue sci_merror(types::typed_list &in, int _iRetCount, types::t
     pDoubleOut->set(0, iRet);
     out.push_back(pDoubleOut);
 
-    if(_iRetCount == 2)
+    if (_iRetCount == 2)
     {
         types::String* pStringOut = new types::String(2, dimsArray);
         pStringOut->set(0, to_wide_string(strerror(iRet)));
index c16a876..65e1773 100644 (file)
@@ -23,7 +23,7 @@ extern "C"
 #include "removedir.h"
 #include "isdir.h"
 #include "expandPathVariable.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 #include "Scierror.h"
 #include "localization.h"
@@ -35,13 +35,13 @@ using namespace types;
 
 Function::ReturnValue sci_removedir(typed_list &in, int _iRetCount, typed_list &out)
 {
-    if(in.size() != 1)
+    if (in.size() != 1)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "removedir", 1);
         return Function::Error;
     }
 
-    if(in[0]->isString() == false || in[0]->getAs<types::String>()->getSize() != 1)
+    if (in[0]->isString() == false || in[0]->getAs<types::String>()->getSize() != 1)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d: A String expected.\n"), "removedir", 1);
         return Function::Error;
@@ -49,9 +49,9 @@ Function::ReturnValue sci_removedir(typed_list &in, int _iRetCount, typed_list &
 
     wchar_t* pwstPath = expandPathVariableW(in[0]->getAs<types::String>()->get(0));
     int iRet = 0;
-    if(!isdirW(pwstPath))
+    if (!isdirW(pwstPath))
     {
-        if(getWarningMode())
+        if (getWarningMode())
         {
             sciprint(_("%s: Warning: Directory '%ls' doesn't exists.\n"), "removedir", pwstPath);
         }
index 4c907f6..fb94666 100644 (file)
 #include <direct.h>
 #include <errno.h>
 #else
-       #include <errno.h>
-       #include <unistd.h>
-       #define GETCWD(x,y) getcwd(x,y)
+#include <errno.h>
+#include <unistd.h>
+#define GETCWD(x,y) getcwd(x,y)
 #endif
 #include "sciprint.h"
 #include "scicurdir.h"
 #include "MALLOC.h"
 #include "localization.h"
 #include "charEncoding.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "PATH_MAX.h"
 /*--------------------------------------------------------------------------*/
 int scichdirW(wchar_t *wcpath)
@@ -44,14 +44,25 @@ int scichdirW(wchar_t *wcpath)
         return 1;
     }
 
-       if (chdir(path) == -1)
-       {
-               if ( getWarningMode() ) sciprint(_("Can't go to directory %s: %s\n"), path, strerror(errno));
-               if (path) {FREE(path); path = NULL;}
-               return 1;
-       }
+    if (chdir(path) == -1)
+    {
+        if ( getWarningMode() )
+        {
+            sciprint(_("Can't go to directory %s: %s\n"), path, strerror(errno));
+        }
+        if (path)
+        {
+            FREE(path);
+            path = NULL;
+        }
+        return 1;
+    }
 
-    if (path) {FREE(path); path = NULL;}
+    if (path)
+    {
+        FREE(path);
+        path = NULL;
+    }
 
 #else
     if (wcpath == NULL)
@@ -63,9 +74,9 @@ int scichdirW(wchar_t *wcpath)
     {
         switch (errno)
         {
-        case ENOENT:
+            case ENOENT:
             {
-                if ( getWarningMode() ) 
+                if ( getWarningMode() )
                 {
                     char *path = wide_string_to_UTF8(wcpath);
                     if (path)
@@ -77,14 +88,20 @@ int scichdirW(wchar_t *wcpath)
                 }
             }
             break;
-        case EINVAL:
+            case EINVAL:
             {
-                if ( getWarningMode() ) sciprint(_("Invalid buffer.\n"));
+                if ( getWarningMode() )
+                {
+                    sciprint(_("Invalid buffer.\n"));
+                }
             }
             break;
-        default:
+            default:
             {
-                if ( getWarningMode() ) sciprint(_("Unknown error.\n"));
+                if ( getWarningMode() )
+                {
+                    sciprint(_("Unknown error.\n"));
+                }
             }
         }
         return 1;
@@ -97,9 +114,15 @@ int scichdir(char *path)
 {
     int ierr = 1;
     wchar_t *wcpath = NULL;
-    if (path == NULL) return ierr;
+    if (path == NULL)
+    {
+        return ierr;
+    }
     wcpath = to_wide_string(path);
-    if (wcpath == NULL) return ierr;
+    if (wcpath == NULL)
+    {
+        return ierr;
+    }
     ierr = scichdirW(wcpath);
     FREE(wcpath);
     wcpath = NULL;
@@ -114,7 +137,10 @@ wchar_t * scigetcwdW(int *err)
     char currentDir[PATH_MAX + 1];
     if (GETCWD(currentDir, PATH_MAX) == NULL)
     {
-        if ( getWarningMode() ) sciprint(_("Can't get current directory.\n"));
+        if ( getWarningMode() )
+        {
+            sciprint(_("Can't get current directory.\n"));
+        }
         *err = 1;
     }
     else
@@ -126,7 +152,10 @@ wchar_t * scigetcwdW(int *err)
     wchar_t wcdir[PATH_MAX + 1];
     if ( _wgetcwd(wcdir, PATH_MAX) == NULL )
     {
-        if ( getWarningMode() ) sciprint(_("Can't get current directory.\n"));
+        if ( getWarningMode() )
+        {
+            sciprint(_("Can't get current directory.\n"));
+        }
         *err = 1;
     }
     else
index 691b82b..e0f7eb0 100644 (file)
@@ -2,11 +2,11 @@
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2007 - INRIA
  * Copyright (C) 2009 - DIGITEO - Allan CORNET
- * 
+ *
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
- * are also available at    
+ * are also available at
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  */
@@ -21,7 +21,7 @@ extern "C"
 #include "core_math.h" /* Min Max */
 #include "sciprint.h"
 #include "localization.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "charEncoding.h"
 }
 /*--------------------------------------------------------------------------*/
@@ -33,24 +33,25 @@ int mcloseCurrentFile()
 int mcloseAll()
 {
     int iFileCount = FileManager::getFileMaxID();
-    for(int i = iFileCount - 1 ; i >= 0 ; i--)
+    for (int i = iFileCount - 1 ; i >= 0 ; i--)
     {
         switch (i)
         {
-        case 0: // stderr
-        case 5: // stdin
-        case 6: // stdout
-            continue;
-            break;
-        default :
-            if(FileManager::getFile(i) != NULL)
-            {//call mclose only for existing opened files.
-                int iRet = mclose(i);
-                if(iRet)
+            case 0: // stderr
+            case 5: // stdin
+            case 6: // stdout
+                continue;
+                break;
+            default :
+                if (FileManager::getFile(i) != NULL)
                 {
-                    return iRet;
+                    //call mclose only for existing opened files.
+                    int iRet = mclose(i);
+                    if (iRet)
+                    {
+                        return iRet;
+                    }
                 }
-            }
         }
     }
 
@@ -60,12 +61,12 @@ int mcloseAll()
 int mclose(int _iID)
 {
     File* pF = FileManager::getFile(_iID);
-    if(pF != NULL)
+    if (pF != NULL)
     {
         int iRet = fclose(pF->getFiledesc());
 
         // this function previously called ferror on a just before fclosed FILE* that could lead to crash at exit, depending on libc implementation.
-        if(iRet != 0)
+        if (iRet != 0)
         {
             return 1;
         }
@@ -74,7 +75,7 @@ int mclose(int _iID)
     }
     else
     {
-        if (getWarningMode()) 
+        if (getWarningMode())
         {
             sciprint(_("%s: Cannot close file whose descriptor is %d: File is not active.\n"), "mclose", _iID);
         }
@@ -83,73 +84,76 @@ int mclose(int _iID)
 }
 
 void C2F(mclose) (int *fd, double *res)
-{   
-       int fd1 = -1;
-       *res = 0.0;
-       
-       switch ( *fd )
-       {
-               case ALL_FILES_DESCRIPTOR :
-               /* closing all opened files */
-               for ( fd1=0; fd1< GetMaximumFileOpenedInScilab(); fd1++) 
-               {
-                       FILE* stream=GetFileOpenedInScilab(fd1) ;
-                       if ( stream )
-                       {
-                               int res1 = 1;
-                               res1=fclose( stream );
-                               // this function previously called ferror on a just before fclosed FILE* that could lead to crash at exit, depending on libc implementation.
-                               if (res1 != 0) *res =1;
-                               C2F(delfile)(&fd1);
-                               /* bug 3897 */
-                               /* initialize file ID */
-                               SetCurrentFileId(-1);
-                       }
-               }
-               break;
+{
+    int fd1 = -1;
+    *res = 0.0;
 
-               default :
-               {       
-                       fd1 = (*fd == -1 ) ? GetCurrentFileId() : Min(Max(*fd,0),GetMaximumFileOpenedInScilab()-1);
-                       if ( fd1 != -1 ) 
-                       {
-                               if ( GetFileOpenedInScilab(fd1) )
-                               {
-                                       int prevId = -1;
+    switch ( *fd )
+    {
+        case ALL_FILES_DESCRIPTOR :
+            /* closing all opened files */
+            for ( fd1 = 0; fd1 < GetMaximumFileOpenedInScilab(); fd1++)
+            {
+                FILE* stream = GetFileOpenedInScilab(fd1) ;
+                if ( stream )
+                {
+                    int res1 = 1;
+                    res1 = fclose( stream );
+                    // this function previously called ferror on a just before fclosed FILE* that could lead to crash at exit, depending on libc implementation.
+                    if (res1 != 0)
+                    {
+                        *res = 1;
+                    }
+                    C2F(delfile)(&fd1);
+                    /* bug 3897 */
+                    /* initialize file ID */
+                    SetCurrentFileId(-1);
+                }
+            }
+            break;
 
-                                       if (fclose(GetFileOpenedInScilab(fd1)))
-                                       {
-                                               *res = (double)ferror(GetFileOpenedInScilab(fd1));
-                                       }
-                                       C2F(delfile)(&fd1);
+        default :
+        {
+            fd1 = (*fd == -1 ) ? GetCurrentFileId() : Min(Max(*fd, 0), GetMaximumFileOpenedInScilab() - 1);
+            if ( fd1 != -1 )
+            {
+                if ( GetFileOpenedInScilab(fd1) )
+                {
+                    int prevId = -1;
+
+                    if (fclose(GetFileOpenedInScilab(fd1)))
+                    {
+                        *res = (double)ferror(GetFileOpenedInScilab(fd1));
+                    }
+                    C2F(delfile)(&fd1);
 
-                                       /* bug 3897 */
-                                       /* set as current file previous opened file if exists */
-                                       prevId = GetPreviousFileId();
+                    /* bug 3897 */
+                    /* set as current file previous opened file if exists */
+                    prevId = GetPreviousFileId();
 
-                                       if ( GetFileOpenedInScilab(prevId) )
-                                       {
-                                               SetCurrentFileId(prevId);
-                                       }
-                               }
-                               else
-                               {
-                                       *res = 0.0;
-                                       if (getWarningMode()) 
-                                       {
-                                               sciprint(_("%s: Cannot close file whose descriptor is %d: File is not active.\n"),"mclose",fd1);
-                                       }
-                               }
-                       }
-                       else 
-                       {
-                               *res = -1.0;
-                               if (getWarningMode()) 
-                               {
-                                       sciprint(_("%s: Cannot close file whose descriptor is %d: No file to close.\n"),"mclose",fd1);
-                               }
-                       }
-               }
-       }
+                    if ( GetFileOpenedInScilab(prevId) )
+                    {
+                        SetCurrentFileId(prevId);
+                    }
+                }
+                else
+                {
+                    *res = 0.0;
+                    if (getWarningMode())
+                    {
+                        sciprint(_("%s: Cannot close file whose descriptor is %d: File is not active.\n"), "mclose", fd1);
+                    }
+                }
+            }
+            else
+            {
+                *res = -1.0;
+                if (getWarningMode())
+                {
+                    sciprint(_("%s: Cannot close file whose descriptor is %d: No file to close.\n"), "mclose", fd1);
+                }
+            }
+        }
+    }
 }
 /*--------------------------------------------------------------------------*/
index 2c7789c..ce07679 100644 (file)
@@ -22,7 +22,7 @@ extern "C"
 #include "mopen.h"
 #include "sciprint.h"
 #include "charEncoding.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "isdir.h"
 #include "localization.h"
 #include "os_wfopen.h"
index c387da2..6a83d6f 100644 (file)
@@ -27,7 +27,7 @@ extern "C"
 #include "islittleendian.h"
 #include "convert_tools.h"
 #include "localization.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "charEncoding.h"
 }
 /*--------------------------------------------------------------------------*/
index 2ab8c9d..4ac9748 100644 (file)
@@ -40,7 +40,7 @@
 #include "getGraphicObjectProperty.h"
 #include "deleteGraphicObject.h"
 //#include "warningmode.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 
 /*--------------------------------------------------------------------------*/
index e9bbffe..b0c5762 100644 (file)
@@ -26,7 +26,7 @@
 #include "localization.h"
 #include "SetPropertyStatus.h"
 #include "sciprint.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 
 /*------------------------------------------------------------------------*/
 int set_line_style_property(void* _pvCtx, char* pobjUID, void* _pvData, int valueType, int nbRow, int nbCol)
index 311a3c5..4cfaca6 100644 (file)
@@ -24,7 +24,7 @@
 #include "createGraphicObject.h"
 #include "graphicObjectProperties.h"
 #include "setGraphicObjectProperty.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 /*--------------------------------------------------------------------------*/
 int sci_mpopup(char *fname, void* pvApiCtx)
index ff3c717..127bd76 100644 (file)
@@ -29,7 +29,7 @@ extern "C"
 #include "getScilabJavaVM.h"
 #include "getFullFilename.h"
 #include "loadOnUseClassPath.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "FigureList.h"
 }
 /*--------------------------------------------------------------------------*/
@@ -287,7 +287,7 @@ static int sci_toprint_two_rhs(void* _pvCtx, const char *fname)
                     FREE(lenStVarOne);
                     lenStVarOne = NULL;
                 }
-                if(sciErr.iErr)
+                if (sciErr.iErr)
                 {
                     freeArrayOfString(pStVarOne, mnOne);
                     printError(&sciErr, 0);
index 08dca19..b75a48c 100644 (file)
@@ -20,7 +20,7 @@ extern "C"
 #include "localization.h"
 #include "Scierror.h"
 #include "sciprint.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "interpolation_functions.h"
 #include "interpolation.h"
 #include "basic_functions.h" // vDset
index 6d9d2bc..eae9f29 100644 (file)
@@ -24,7 +24,7 @@ extern "C"
 #include "Scierror.h"
 #include "sciprint.h"
 #include "invert_matrix.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 }
 /*--------------------------------------------------------------------------*/
 
@@ -34,13 +34,13 @@ types::Function::ReturnValue sci_inv(types::typed_list &in, int _iRetCount, type
     double* pData       = NULL;
     int ret             = 0;
 
-    if(in.size() != 1)
+    if (in.size() != 1)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "inv", 1);
         return types::Function::Error;
     }
 
-    if((in[0]->isDouble() == false))
+    if ((in[0]->isDouble() == false))
     {
         std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_inv";
         return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
@@ -48,19 +48,19 @@ types::Function::ReturnValue sci_inv(types::typed_list &in, int _iRetCount, type
 
     pDbl = in[0]->getAs<types::Double>()->clone()->getAs<types::Double>(); // input data will be modified
 
-    if(pDbl->getRows() != pDbl->getCols())
+    if (pDbl->getRows() != pDbl->getCols())
     {
         Scierror(20, _("%s: Wrong type for argument %d: Square matrix expected.\n"), "inv", 1);
-        return types::Function::Error;      
+        return types::Function::Error;
     }
 
-    if(pDbl->getRows() == 0)
+    if (pDbl->getRows() == 0)
     {
         out.push_back(types::Double::Empty());
         return types::Function::OK;
     }
 
-    if(pDbl->isComplex())
+    if (pDbl->isComplex())
     {
         /* c -> z */
         pData = (double*)oGetDoubleComplexFromPointer( pDbl->getReal(), pDbl->getImg(), pDbl->getSize());
@@ -70,33 +70,33 @@ types::Function::ReturnValue sci_inv(types::typed_list &in, int _iRetCount, type
         pData = pDbl->getReal();
     }
 
-    if(pDbl->getCols() == -1)
+    if (pDbl->getCols() == -1)
     {
-        pData[0] = 1./pData[0];
+        pData[0] = 1. / pData[0];
     }
     else
     {
         double dblRcond;
         ret = iInvertMatrixM(pDbl->getRows(), pDbl->getCols(), pData, pDbl->isComplex(), &dblRcond);
-        if(pDbl->isComplex())
+        if (pDbl->isComplex())
         {
             /* z -> c */
             vGetPointerFromDoubleComplex((doublecomplex*)pData, pDbl->getSize(), pDbl->getReal(), pDbl->getImg());
             vFreeDoubleComplexFromPointer((doublecomplex*)pData);
         }
 
-        if(ret == -1)
+        if (ret == -1)
         {
-            if(getWarningMode())
+            if (getWarningMode())
             {
                 sciprint(_("Warning :\n"));
                 sciprint(_("matrix is close to singular or badly scaled. rcond = %1.4E\n"), dblRcond);
                 sciprint(_("computing least squares solution. (see lsq).\n"));
             }
-           }
+        }
     }
 
-    if(ret == 19)
+    if (ret == 19)
     {
         Scierror(19, _("%s: Problem is singular.\n"), "inv");
         return types::Function::Error;
index 4202471..a877ca4 100644 (file)
@@ -25,7 +25,7 @@ extern "C"
 #include "charEncoding.h"
 #include "setgetlanguage.h"
 #include "os_wcsdup.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #ifdef _MSC_VER
 #include "LanguagePreferences_Windows.h"
 #endif
@@ -63,13 +63,13 @@ static wchar_t *getLanguageFromAlias(wchar_t *alias)
 
 Function::ReturnValue sci_setdefaultlanguage(typed_list &in, int _piRetCount, typed_list &out)
 {
-    if(in.size() != 1)
+    if (in.size() != 1)
     {
         Scierror(999, _("%s: Wrong number of input arguments: %d expected.\n"), "setdefaultlanguage", 1);
         return Function::Error;
     }
 
-    if(_piRetCount != 1)
+    if (_piRetCount != 1)
     {
         Scierror(999, _("%s: Wrong number of output arguments: %d expected.\n"), "setdefaultlanguage", 1);
         return Function::Error;
@@ -90,9 +90,9 @@ Function::ReturnValue sci_setdefaultlanguage(typed_list &in, int _piRetCount, ty
 
     return Function::OK;
 #else
-    if(in[0]->isString() == false || in[0]->getAs<types::String>()->getSize() != 1)
+    if (in[0]->isString() == false || in[0]->getAs<types::String>()->getSize() != 1)
     {
-        Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), "setdefaultlanguage" ,1);
+        Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), "setdefaultlanguage" , 1);
         return Function::Error;
     }
     wchar_t *newlang = getLanguageFromAlias(in[0]->getAs<types::String>()->get(0));
@@ -101,7 +101,7 @@ Function::ReturnValue sci_setdefaultlanguage(typed_list &in, int _piRetCount, ty
     {
         if ( getWarningMode() )
         {
-            sciprint(_("Unsupported language '%ls'.\n"),newlang);
+            sciprint(_("Unsupported language '%ls'.\n"), newlang);
         }
         out.push_back(new Bool(FALSE));
 
index f95801e..e49d6f8 100644 (file)
@@ -22,7 +22,7 @@ extern "C"
 #include "localization.h"
 #include "charEncoding.h"
 #include "defaultlanguage.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "setgetlanguage.h"
 }
 
@@ -30,19 +30,19 @@ using namespace types;
 
 Function::ReturnValue sci_setlanguage(typed_list &in, int _piRetCount, typed_list &out)
 {
-    if(in.size() != 1)
+    if (in.size() != 1)
     {
         Scierror(999, _("%s: Wrong number of input arguments: %d expected.\n"), "setlanguage", 1);
         return Function::Error;
     }
 
-    if(_piRetCount != 1)
+    if (_piRetCount != 1)
     {
         Scierror(999, _("%s: Wrong number of output arguments: %d expected.\n"), "setlanguage", 1);
         return Function::Error;
     }
 
-    if(in[0]->isString() == false || in[0]->getAs<types::String>()->getSize() != 1)
+    if (in[0]->isString() == false || in[0]->getAs<types::String>()->getSize() != 1)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d: A String expected.\n"), "setlanguage", 1);
         return Function::Error;
index b5314cd..fa336d4 100644 (file)
@@ -21,7 +21,7 @@ extern "C"
 #include "sciprint.h"
 #include "localization.h"
 #include "charEncoding.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 }
 
 using namespace types;
index 9d2bfa7..03cb98d 100644 (file)
@@ -17,7 +17,7 @@
 #include "spd.h"
 #include "sciprint.h"
 #include "localization.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 /*--------------------------------------------------------------------------*/
 /* BLAS 1 */
 extern double F2C(dnrm2)( );
@@ -57,49 +57,49 @@ extern double F2C(dlamch)( );
  * @param temp:  n-array, workspace
  */
 /*--------------------------------------------------------------------------*/
-static void cngrncb(int itype,int n,double *AP,double *B,double *CP,double *temp)
+static void cngrncb(int itype, int n, double *AP, double *B, double *CP, double *temp)
 {
 
- int j, pos, lngth = n*(n+1)/2;
- int int1=1;
- double dbl0=0.0, dbl1=1.0;
+    int j, pos, lngth = n * (n + 1) / 2;
+    int int1 = 1;
+    double dbl0 = 0.0, dbl1 = 1.0;
 
- /* C := 0 */
- F2C(dscal)(&lngth, &dbl0, CP, &int1);
+    /* C := 0 */
+    F2C(dscal)(&lngth, &dbl0, CP, &int1);
 
- if (itype == 1)
- {
+    if (itype == 1)
+    {
 
-   for (j=0, pos=0;  j<n;  pos+=n-j, j++)
-   {
+        for (j = 0, pos = 0;  j < n;  pos += n - j, j++)
+        {
 
-      /* temp = A*B(j,:)' */
-      F2C(dspmv)("L", &n, &dbl1, AP, B+j, &n, &dbl0, temp, &int1);
+            /* temp = A*B(j,:)' */
+            F2C(dspmv)("L", &n, &dbl1, AP, B + j, &n, &dbl0, temp, &int1);
 
-      /* C(j:n,j) = B(j:n,:)*temp */
-      lngth = n-j;
-      F2C(dgemv)("N", &lngth, &n, &dbl1, B+j, &n, temp, &int1, &dbl0,
-             CP+pos, &int1);
+            /* C(j:n,j) = B(j:n,:)*temp */
+            lngth = n - j;
+            F2C(dgemv)("N", &lngth, &n, &dbl1, B + j, &n, temp, &int1, &dbl0,
+                       CP + pos, &int1);
 
-   }
+        }
 
- } 
- else 
- {
+    }
+    else
+    {
 
-   for (j=0, pos=0;  j<n;  pos+=n-j, j++)
-   {
+        for (j = 0, pos = 0;  j < n;  pos += n - j, j++)
+        {
 
-      /* temp = A*B(:,j) */
-      F2C(dspmv)("L", &n, &dbl1, AP, B+j*n, &int1, &dbl0, temp, &int1);
+            /* temp = A*B(:,j) */
+            F2C(dspmv)("L", &n, &dbl1, AP, B + j * n, &int1, &dbl0, temp, &int1);
 
-      /* C(j:n,j) = B(:,j:n)'*temp */
-      lngth = n-j;
-      F2C(dgemv)("T", &n, &lngth, &dbl1, B+j*n, &n, temp, &int1, &dbl0,
-             CP+pos, &int1);
+            /* C(j:n,j) = B(:,j:n)'*temp */
+            lngth = n - j;
+            F2C(dgemv)("T", &n, &lngth, &dbl1, B + j * n, &n, temp, &int1, &dbl0,
+                       CP + pos, &int1);
 
-   }
- }
+        }
+    }
 
 }
 /*--------------------------------------------------------------------------*/
@@ -119,76 +119,81 @@ static double inprd(double *X, double *Z, int L, int *blck_szs)
  */
 
 {
- double result;
- int i, j, k, lngth, pos, sz, int1=1;
+    double result;
+    int i, j, k, lngth, pos, sz, int1 = 1;
 
- /* sz = length of Z and X */
- for (i=0, sz=0;  i<L;  i++)  sz += (blck_szs[i]*(blck_szs[i]+1))/2;
+    /* sz = length of Z and X */
+    for (i = 0, sz = 0;  i < L;  i++)
+    {
+        sz += (blck_szs[i] * (blck_szs[i] + 1)) / 2;
+    }
 
- /* result = Tr X Z + contributions of diagonal elements */
- result = 2.0*F2C(ddot)(&sz, X, &int1, Z, &int1);
+    /* result = Tr X Z + contributions of diagonal elements */
+    result = 2.0 * F2C(ddot)(&sz, X, &int1, Z, &int1);
 
- /* correct for diagonal elements
-  * loop over blocks, j=0,...,L-1  */
- for (j=0, pos=0;  j<L;  j++)
+    /* correct for diagonal elements
+     * loop over blocks, j=0,...,L-1  */
+    for (j = 0, pos = 0;  j < L;  j++)
 
-    /* loop over columns, k=0,...,blck_szs[j]-1
-     * pos is position of (k,k) element of block j
-     * lngth is length of column k */
-    for (k=0, lngth=blck_szs[j];  k<blck_szs[j];  pos+=lngth,
-         lngth-=1, k++)
+        /* loop over columns, k=0,...,blck_szs[j]-1
+         * pos is position of (k,k) element of block j
+         * lngth is length of column k */
+        for (k = 0, lngth = blck_szs[j];  k < blck_szs[j];  pos += lngth,
+                lngth -= 1, k++)
 
-       /* subtract Z^j_{kk}*X^j_{kk} from result */
-       result -= Z[pos]*X[pos];
+            /* subtract Z^j_{kk}*X^j_{kk} from result */
+        {
+            result -= Z[pos] * X[pos];
+        }
 
- return result;
+    return result;
 }
 /*--------------------------------------------------------------------------*/
 int C2F(spf)(
-            int *m,                /* no of variables */
-            int *L,                /* no of blocks in F */
-            double *F,            /* F_i's in packed storage */
-            int *blck_szs,        /* L-vector, dimensions of diagonal blocks */
-            double *c,            /* m-vector */
-            double *x,            /* m-vector */
-            double *Z,            /* block diagonal matrix in packed storage */
-            double *ul,           /* ul[0] = pr. obj, ul[1] = du. obj */
-            double *nu,            /* >= 1.0 */
-            double *abstol,        /* absolute accuracy */
-            double *reltol,        /* relative accuracy */
-            double *tv,            /* target value */
-            int *iters,           /* on entry: the maximum number of iterations,
+    int *m,                /* no of variables */
+    int *L,                /* no of blocks in F */
+    double *F,            /* F_i's in packed storage */
+    int *blck_szs,        /* L-vector, dimensions of diagonal blocks */
+    double *c,            /* m-vector */
+    double *x,            /* m-vector */
+    double *Z,            /* block diagonal matrix in packed storage */
+    double *ul,           /* ul[0] = pr. obj, ul[1] = du. obj */
+    double *nu,            /* >= 1.0 */
+    double *abstol,        /* absolute accuracy */
+    double *reltol,        /* relative accuracy */
+    double *tv,            /* target value */
+    int *iters,           /* on entry: the maximum number of iterations,
                                    * on exit: the number of iterations taken */
-            double *work,         /* work array */
-            int *lwork,            /* size of work */
-            int *iwork,           /* work array of m integers */
-            int *info            /* status on termination */
-            )
+    double *work,         /* work array */
+    int *lwork,            /* size of work */
+    int *iwork,           /* work array of m integers */
+    int *info            /* status on termination */
+)
 {
- return(sp(*m,*L,F,blck_szs,c,x,Z,ul,*nu,*abstol,*reltol,*tv,iters, work,
-          *lwork,iwork,info));
+    return(sp(*m, *L, F, blck_szs, c, x, Z, ul, *nu, *abstol, *reltol, *tv, iters, work,
+              *lwork, iwork, info));
 }
 /*--------------------------------------------------------------------------*/
 int sp(
-       int m,                /* no of variables */
-       int L,                /* no of blocks in F */
-       double *F,            /* F_i's in packed storage */
-       int *blck_szs,        /* L-vector, dimensions of diagonal blocks */
-       double *c,            /* m-vector */
-       double *x,            /* m-vector */
-       double *Z,            /* block diagonal matrix in packed storage */
-       double *ul,           /* ul[0] = pr. obj, ul[1] = du. obj */
-       double nu,            /* >= 1.0 */
-       double abstol,        /* absolute accuracy */
-       double reltol,        /* relative accuracy */
-       double tv,            /* target value */
-       int *iters,           /* on entry: the maximum number of iterations,
+    int m,                /* no of variables */
+    int L,                /* no of blocks in F */
+    double *F,            /* F_i's in packed storage */
+    int *blck_szs,        /* L-vector, dimensions of diagonal blocks */
+    double *c,            /* m-vector */
+    double *x,            /* m-vector */
+    double *Z,            /* block diagonal matrix in packed storage */
+    double *ul,           /* ul[0] = pr. obj, ul[1] = du. obj */
+    double nu,            /* >= 1.0 */
+    double abstol,        /* absolute accuracy */
+    double reltol,        /* relative accuracy */
+    double tv,            /* target value */
+    int *iters,           /* on entry: the maximum number of iterations,
                              * on exit: the number of iterations taken */
-       double *work,         /* work array */
-       int lwork,            /* size of work */
-       int *iwork,           /* work array of m integers */
-       int *info             /* status on termination */
-       )
+    double *work,         /* work array */
+    int lwork,            /* size of work */
+    int *iwork,           /* work array of m integers */
+    int *info             /* status on termination */
+)
 /*
  * Solves semidefinite program
  *
@@ -273,493 +278,672 @@ int sp(
 
 
 {
- int i, j, k, n, sz, up_sz, max_n, lngth, pos, pos2, pos3, pos4, ltemp,
-     maxiters, info2, minlwork;
- double q, *rhs, *Fsc, *R, *X, rho, *dx, *sigx, *sigz, *dZ, *temp, scal,
-        scal2, XdZ, ZdX, alphax, alphaz, lambda_ls, gradx, hessx,
-        gradz, hessz, dalphax, dalphaz, gap, newgap=0.0, newu=0.0,
-        newl=0.0, maxpossigx, minnegsigx, maxpossigz, minnegsigz, nrmc,
-        nrmx, nrmz, nrmmax, rcond;
- int int2=2, int1=1;
- double dbl1=1.0, dbl0=0.0, sqrt2=sqrt(2.0);
- double dbl_epsilon;
-
- if (m < 1){
-        if ( getWarningMode() ) sciprint(_("m must be at least one.\n"));
-    *info = -1;
-    return 1;
- }
- if (L < 1){
-    if ( getWarningMode() ) sciprint(_("L must be at least one.\n"));
-    *info = -2;
-    return 1;
- }
- for (i=0; i<L; i++) if (blck_szs[i] < 1){
-    if ( getWarningMode() ) sciprint(_("blck_szs[%d] must be at least one.\n"), i);
-    *info = -4;
-    return 1;
- }
- if (nu < 1.0){
-    if ( getWarningMode() ) sciprint(_("nu must be at least 1.0.\n"));
-    *info = -9;
-    return 1;
- }
-
-
- /*
-  * calculate dimensions:
-  * n:      total size of semidefinite program
-  * sz:     length of one block-diagonal matrix in packed storage
-  * up_sz:  length of one block-diagonal matrix in unpacked storage
-  * max_n:  size of biggest block
-  */
-
- for (i=0, n=0, sz=0, up_sz=0, max_n=0;  i<L;  i++){
-    n     += blck_szs[i];
-    sz    += blck_szs[i]*(blck_szs[i]+1)/2;
-    up_sz += blck_szs[i]*blck_szs[i];
-    max_n  = Max(max_n, blck_szs[i]);
- }
- if (m > sz){
-     sciprint(_("Matrices Fi, i=1,...,m are linearly dependent.\n"));
-    *info = -3;  return 1;
- }
-
- q = (double)n + nu*sqrt((double)n);
-
-
- /*
-  * check if Tr Fi*Z = c_i, i=1,...,m
-  */
-
- nrmc = F2C(dnrm2)(&m, c, &int1);
- for (i=0; i<m; i++)
- if (fabs(inprd(F+(i+1)*sz, Z, L, blck_szs) - c[i]) > nrmc*TOLC){
-     if ( getWarningMode() ) sciprint(_("Z0 does not satisfy equality conditions for dual feasibility.\n"));
-
-    *info = -7;
-    return 1;
- }
-
-
- /*
-  * organize workspace
-  *
-  * work:  (m+2)*sz + up_sz + 2*n + ltemp
-  * minimum ltemp: the maximum of
-  *         m+sz*nb, 3*max_n + max_n*(max_n+1), and 3*m
-  *         (nb is at least one)
-  *
-  * for dgels:        m + sz*nb, nb at least 1
-  * for dspev("N"):   3*max_n + max_n*(max_n+1)
-  * for dspgv("N"):   3*max_n + max_n*(max_n+1)
-  * for dspgv("V"):   3*max_n + max_n*(max_n+1)/2
-  * for cngrncb:      max_n
-  * for dtrcon:       3*m
-  *
-  * rhs  (sz):        work[0 ... sz-1]
-  * Fsc  (m*sz):      work[sz ... (m+1)*sz-1]
-  * R    (up_sz):     work[(m+1)*sz ... (m+1)*sz+up_sz-1]
-  * X    (sz):        work[(m+1)*sz+up_sz ... (m+2)*sz+up_sz-1]
-  * sigx (n):         work[(m+2)*sz+up_sz ... (m+2)*sz+up_sz+n-1]
-  * sigz (n):         work[(m+2)*sz+up_sz+n ... (m+2)*sz+up_sz+2*n-1]
-  * temp (remainder): work[(m+2)*sz+up_sz+2*n ... lwork-1]
-  */
-
- /* check lwork */
- minlwork = (m+2)*sz + up_sz + 2*n +
-            Max( Max( m+sz, 3*max_n + max_n*(max_n+1) ), 3*m );
- if (lwork < minlwork){
-    if ( getWarningMode() ) sciprint(_("Work space is too small.  Need at least %d*sizeof(double).\n"), minlwork);
-    *info = -15;
-    return 1;
- }
-
- rhs   = work;        /* rhs for ls problem */
- dx    = work;        /* solution of ls system; overlaps with rhs  */
- Fsc   = rhs + sz;    /* scaled matrices */
- dZ    = rhs + sz;    /* overlaps with first column of Fsc */
- R     = Fsc + m*sz;  /* eigenvectors of Z*F */
- X     = R + up_sz;   /* F(x) */
- sigx  = X + sz;      /* generalized eigenvalues of (dX,X) */
- sigz  = sigx + n;    /* generalized eigenvalues of (dZ,Z) */
- temp  = sigz + n;
- ltemp = lwork - (m+2)*sz - up_sz - 2*n;
-
-
- maxiters = (*iters >= 0) ? *iters : MAXITERS;
- for (*iters=0; *iters <= maxiters; (*iters)++){
-
-
-    /* compute F(x) = F_0 + x_1*F_1 + ... + x_m*F_m, store in X */
-    F2C(dcopy)(&sz, F, &int1, X, &int1);
-    F2C(dgemv)("N", &sz, &m, &dbl1, F+sz, &sz, x, &int1, &dbl1, X, &int1);
-
-
-    /*
-     * compute generalized eigendecomp  Z*F*x = lambda*x
-     * loop over blocks, i=0,...,L-1
-     * pos:  position of (0,0) element of block i in packed storage
-     * pos2: position of (0,0) element of block i in unpacked
-     *       storage
-     * pos3: position of first eigenvalue of block i in sigx
-     */
-
-    for (i=0, pos=0, pos2=0, pos3=0, gap=0.0;  i<L;
-         pos += blck_szs[i]*(blck_szs[i]+1)/2,
-         pos2 += blck_szs[i]*blck_szs[i],
-         pos3 += blck_szs[i], i++){
-
-       lngth = blck_szs[i]*(blck_szs[i]+1)/2;
-
-       /* copy block i of Z in temp (need max_n*(max_n+1)/2) */
-       F2C(dcopy)(&lngth, Z+pos, &int1, temp, &int1);
-
-       /* generalized eigenvalue decomposition Z*F*x = lambda*x
-        * - eigenvectors V are normalized s.t. V^T*F*V = I
-        * - store block i of V in R+pos2
-        * - store eigenvalues of block i in sigx+pos3
-        * - dspgv replaces X+pos by cholesky factor L of ith
-        *   block of F (F = L*L^T)
-        * use temp+lngth as workspace (need at least 3*max_n) */
-       F2C(dspgv)(&int2, "V", "L", blck_szs+i, temp, X+pos, sigx+pos3,
-              R+pos2, blck_szs+i, temp+lngth, &info2);
-       if (info2){
-          if ( getWarningMode() ) sciprint(_("Error in dspgv, info = %d.\n"), info2);
-          if (*iters == 0 && info2 > blck_szs[i]){
-             if ( getWarningMode() ) sciprint( _("x0 is not strictly primal feasible.\n"));
-                *info = -6;
-          } else *info = -18;
-          return 1;
-       }
-
-       /* - replace sigx+pos3 by lambda^(1/2)
-        * - normalize block i of V (stored in R+pos2) s.t.
-        *   V^T*F*V = Lambda^(1/2) */
-       for (k=0; k<blck_szs[i]; k++){
-          scal = sigx[pos3+k];
-          if (scal < 0.0){
-             if (*iters == 0){
-                if ( getWarningMode() ) sciprint(_("Z0 is not positive definite.\n"));
-                *info = 7;
-             } else {
-                if ( getWarningMode() ) sciprint(_("F(x)*Z has a negative eigenvalue.\n"));
-                *info = -18;
-             }
-             return 1;
-          }
-          gap += scal;    /* duality gap is sum of eigenvalues of ZF */
-          scal2 = sqrt(scal);
-          scal = sqrt(scal2);
-          sigx[pos3+k] = scal2;
-          F2C(dscal)(blck_szs+i, &scal, R+pos2+k*blck_szs[i], &int1);
-       }
-
+    int i, j, k, n, sz, up_sz, max_n, lngth, pos, pos2, pos3, pos4, ltemp,
+        maxiters, info2, minlwork;
+    double q, *rhs, *Fsc, *R, *X, rho, *dx, *sigx, *sigz, *dZ, *temp, scal,
+           scal2, XdZ, ZdX, alphax, alphaz, lambda_ls, gradx, hessx,
+           gradz, hessz, dalphax, dalphaz, gap, newgap = 0.0, newu = 0.0,
+                                                newl = 0.0, maxpossigx, minnegsigx, maxpossigz, minnegsigz, nrmc,
+                                                nrmx, nrmz, nrmmax, rcond;
+    int int2 = 2, int1 = 1;
+    double dbl1 = 1.0, dbl0 = 0.0, sqrt2 = sqrt(2.0);
+    double dbl_epsilon;
+
+    if (m < 1)
+    {
+        if ( getWarningMode() )
+        {
+            sciprint(_("m must be at least one.\n"));
+        }
+        *info = -1;
+        return 1;
     }
-
-
-    /*
-     * check convergence
-     */
-
-    ul[1] = -inprd(F,Z,L,blck_szs);         /* -Tr F_0 Z */
-    ul[0] = F2C(ddot)(&m, c, &int1, x, &int1);  /* c^T x */
-    if (*iters == 0){
-       if ( getWarningMode() ) sciprint(_("\n    primal obj.  dual obj.  dual. gap \n"));
-
+    if (L < 1)
+    {
+        if ( getWarningMode() )
+        {
+            sciprint(_("L must be at least one.\n"));
+        }
+        *info = -2;
+        return 1;
     }
-    if ( getWarningMode() ) sciprint("% 13.2e % 12.2e %10.2e\n", ul[0], ul[1], gap);
-    if (gap <= Max(abstol, MINABSTOL))  *info = 2;
-    else if ( (ul[1] > 0.0 && gap <= reltol*ul[1]) ||
-              (ul[0] < 0.0 && gap <= reltol*(-ul[0])) ) *info = 3;
-    else if ( reltol < 0.0 && ul[0] <= tv ) *info = 4;
-    else if ( reltol < 0.0 && ul[1] >= tv ) *info = 5;
-    else if ( *iters == maxiters ) *info = 1;
-    else *info = 0;
-    if (*info) return 0;
-
-
-
-    /*
-     * compute scaled matrices F
-     */
-
-    for (j=0, pos=0;  j<m;  j++) for (i=0, pos2=0;  i<L;
-         pos += blck_szs[i]*(blck_szs[i]+1)/2,
-         pos2 += blck_szs[i]*blck_szs[i], i++) {
-
-       /* compute R' * Fj(i) * R, store in Fsc+pos */
-       cngrncb(2, blck_szs[i], F+sz+pos, R+pos2, Fsc+pos, temp);
-
-       /* correct diagonal elements */
-       for (k=0, pos4=pos;  k<blck_szs[i];  pos4 += blck_szs[i]-k, k++)
-          Fsc[pos4] /= sqrt2;
-
+    for (i = 0; i < L; i++) if (blck_szs[i] < 1)
+        {
+            if ( getWarningMode() )
+            {
+                sciprint(_("blck_szs[%d] must be at least one.\n"), i);
+            }
+            *info = -4;
+            return 1;
+        }
+    if (nu < 1.0)
+    {
+        if ( getWarningMode() )
+        {
+            sciprint(_("nu must be at least 1.0.\n"));
+        }
+        *info = -9;
+        return 1;
     }
 
 
     /*
-     * form rhs = Lambda^(-1/2) - (q/gap) * Lambda^(1/2)
+     * calculate dimensions:
+     * n:      total size of semidefinite program
+     * sz:     length of one block-diagonal matrix in packed storage
+     * up_sz:  length of one block-diagonal matrix in unpacked storage
+     * max_n:  size of biggest block
      */
 
-    F2C(dscal)(&sz, &dbl0, rhs, &int1);    /* rhs := 0 */
-    rho = -q/gap;
-    for (i=0, pos=0, pos3=0;  i<L;
-         pos += blck_szs[i]*(blck_szs[i]+1)/2,
-         pos3 += blck_szs[i], i++)
-       for (k=0, pos4=pos;  k<blck_szs[i];  pos4+=blck_szs[i]-k, k++){
-          scal = sigx[pos3+k];
-          rhs[pos4] = (1.0/scal + rho*scal)/sqrt2;
+    for (i = 0, n = 0, sz = 0, up_sz = 0, max_n = 0;  i < L;  i++)
+    {
+        n     += blck_szs[i];
+        sz    += blck_szs[i] * (blck_szs[i] + 1) / 2;
+        up_sz += blck_szs[i] * blck_szs[i];
+        max_n  = Max(max_n, blck_szs[i]);
+    }
+    if (m > sz)
+    {
+        sciprint(_("Matrices Fi, i=1,...,m are linearly dependent.\n"));
+        *info = -3;
+        return 1;
     }
 
+    q = (double)n + nu * sqrt((double)n);
+
 
     /*
-     * solve least-squares problem; need workspace of size m + nb*sz
-     * - rhs is overwritten by dx
-     * - in first iteration, estimate condition number of Fsc
+     * check if Tr Fi*Z = c_i, i=1,...,m
      */
 
-    F2C(dgels)("N", &sz, &m, &int1, Fsc, &sz, rhs, &sz, temp, &ltemp,
-           &info2);
-    if (info2)
-       {
-       if ( getWarningMode() ) sciprint(_("Error in dgels, info = %d.\n"), info2);
-       *info = -18; return 1;
-    }
-
-    if (*iters == 0){
-
-       /* estimate the condition number in 1-norm of the R-factor of
-        * the qr-decomposition of Fsc (is stored in Fsc)
-        * need work space of size 3*m */
-       F2C(dtrcon)("1", "U", "N", &m, Fsc, &sz, &rcond, temp, iwork,
-                &info2);
-       if (info2 < 0){
-          if ( getWarningMode() ) sciprint(_("Error in dtrcon, info = %d.\n"), info2);
-          *info = -18; return 1;
-       }
-       if (rcond < MINRCOND) {
-          if ( getWarningMode() ) sciprint(_("The matrices F_i, i=1,...,m are linearly dependent (or the initial points are very badly conditioned).\n"));
-          *info = -3; return 1;
-       }
-
-    }
-
+    nrmc = F2C(dnrm2)(&m, c, &int1);
+    for (i = 0; i < m; i++)
+        if (fabs(inprd(F + (i + 1)*sz, Z, L, blck_szs) - c[i]) > nrmc * TOLC)
+        {
+            if ( getWarningMode() )
+            {
+                sciprint(_("Z0 does not satisfy equality conditions for dual feasibility.\n"));
+            }
+
+            *info = -7;
+            return 1;
+        }
 
 
     /*
-     * - compute dZ =
-     *   R*((q/gap)*Lambda^(1/2) - Lambda^(-1/2) + R^T*dF*R )*R^T
-     * - compute generalized eigenvalues of (dF, F), store in sigx
-     * - compute generalized eigenvalues of (dZ, Z), store in sigz
+     * organize workspace
      *
-     * loop over blocks i=0,...,L-1
-     * pos:  position of (0,0) element of block i in packed storage
-     * pos2: position of (0,0) element of block i in unpacked storage
-     * pos3: position of first eigenvalue of in sigx and sigz
+     * work:  (m+2)*sz + up_sz + 2*n + ltemp
+     * minimum ltemp: the maximum of
+     *         m+sz*nb, 3*max_n + max_n*(max_n+1), and 3*m
+     *         (nb is at least one)
+     *
+     * for dgels:        m + sz*nb, nb at least 1
+     * for dspev("N"):   3*max_n + max_n*(max_n+1)
+     * for dspgv("N"):   3*max_n + max_n*(max_n+1)
+     * for dspgv("V"):   3*max_n + max_n*(max_n+1)/2
+     * for cngrncb:      max_n
+     * for dtrcon:       3*m
+     *
+     * rhs  (sz):        work[0 ... sz-1]
+     * Fsc  (m*sz):      work[sz ... (m+1)*sz-1]
+     * R    (up_sz):     work[(m+1)*sz ... (m+1)*sz+up_sz-1]
+     * X    (sz):        work[(m+1)*sz+up_sz ... (m+2)*sz+up_sz-1]
+     * sigx (n):         work[(m+2)*sz+up_sz ... (m+2)*sz+up_sz+n-1]
+     * sigz (n):         work[(m+2)*sz+up_sz+n ... (m+2)*sz+up_sz+2*n-1]
+     * temp (remainder): work[(m+2)*sz+up_sz+2*n ... lwork-1]
      */
 
-    for (i=0, pos=0, pos2=0, pos3=0;  i<L;
-         pos  += blck_szs[i]*(blck_szs[i]+1)/2,
-         pos2 += blck_szs[i]*blck_szs[i],
-         pos3 += blck_szs[i], i++){
-
-       lngth = blck_szs[i]*(blck_szs[i]+1)/2;
-
-       /* compute ith block of dF = \sum \delta x_i F_i,
-        * store in temp */
-       F2C(dgemv)("N", &lngth, &m, &dbl1, F+sz+pos, &sz, dx, &int1,
-              &dbl0, temp, &int1);
-
-       /* scale dF as R'*dF*R, store in temp + lngth */
-       cngrncb(2, blck_szs[i], temp, R+pos2, temp+lngth, temp+2*lngth);
-
-       /* add (q/gap)*Lambda^(1/2) - Lambda^(-1/2) */
-       for (k=0, pos4=lngth;  k<blck_szs[i];  pos4+=blck_szs[i]-k, k++)
-          temp[pos4] -= rho*sigx[pos3+k] + 1.0/sigx[pos3+k];
-
-       /* replace dF in temp by L^{-1}*dF*L^{-T},
-        * (L: cholesky factor of F, stored in X)
-        * and compute eigenvalues of L^{-1}*dF*L^{-T}  */
-       F2C(dspgst)(&int1, "L", blck_szs+i, temp, X+pos, &info2);
-       if (info2){
-                  if ( getWarningMode() ) sciprint(_("Error in dspst, info = %d.\n"), info2);
-
-          *info = -18;  return 1;
-       }
-       /* temp has to be of size max_n*(max_n+1)+3*max_n */
-       F2C(dspev)("N", "L", blck_szs+i, temp, sigx+pos3, NULL, &int1,
-              temp+2*lngth, &info2);
-       if (info2){
-          if ( getWarningMode() ) sciprint(_("Error in dspev, info = %d.\n"), info2);
-          *info = -18;  return 1;
-       }
-
-       /* dZ := R*((q/gap)*Lambda^(1/2) - Lambda^(-1/2) + R'*dF*R)*R' */
-       cngrncb(1, blck_szs[i], temp+lngth, R+pos2, dZ+pos,
-               temp+2*lngth);
-
-       /* copy ith block of dZ to temp */
-       F2C(dcopy)(&lngth, dZ+pos, &int1, temp, &int1);
-
-       /* copy ith block of Z to temp + lngth */
-       F2C(dcopy)(&lngth, Z+pos, &int1, temp+lngth, &int1);
-
-       /* sigz: generalized eigenvalues of (dZ,Z)
-        * required size of temp: 3*max_n + max_n*(max_n+1) */
-       F2C(dspgv)(&int1, "N", "L", blck_szs+i, temp, temp+lngth, sigz+pos3,
-              NULL, &int1, temp+2*lngth, &info2);
-       if (info2){
-          if ( getWarningMode() ) sciprint(_("Error in dspgv, info = %d.\n"), info2);
-          *info = -18;  return 1;
-       }
-
+    /* check lwork */
+    minlwork = (m + 2) * sz + up_sz + 2 * n +
+               Max( Max( m + sz, 3 * max_n + max_n * (max_n + 1) ), 3 * m );
+    if (lwork < minlwork)
+    {
+        if ( getWarningMode() )
+        {
+            sciprint(_("Work space is too small.  Need at least %d*sizeof(double).\n"), minlwork);
+        }
+        *info = -15;
+        return 1;
     }
 
+    rhs   = work;        /* rhs for ls problem */
+    dx    = work;        /* solution of ls system; overlaps with rhs  */
+    Fsc   = rhs + sz;    /* scaled matrices */
+    dZ    = rhs + sz;    /* overlaps with first column of Fsc */
+    R     = Fsc + m * sz; /* eigenvectors of Z*F */
+    X     = R + up_sz;   /* F(x) */
+    sigx  = X + sz;      /* generalized eigenvalues of (dX,X) */
+    sigz  = sigx + n;    /* generalized eigenvalues of (dZ,Z) */
+    temp  = sigz + n;
+    ltemp = lwork - (m + 2) * sz - up_sz - 2 * n;
+
+
+    maxiters = (*iters >= 0) ? *iters : MAXITERS;
+    for (*iters = 0; *iters <= maxiters; (*iters)++)
+    {
+
+
+        /* compute F(x) = F_0 + x_1*F_1 + ... + x_m*F_m, store in X */
+        F2C(dcopy)(&sz, F, &int1, X, &int1);
+        F2C(dgemv)("N", &sz, &m, &dbl1, F + sz, &sz, x, &int1, &dbl1, X, &int1);
+
+
+        /*
+         * compute generalized eigendecomp  Z*F*x = lambda*x
+         * loop over blocks, i=0,...,L-1
+         * pos:  position of (0,0) element of block i in packed storage
+         * pos2: position of (0,0) element of block i in unpacked
+         *       storage
+         * pos3: position of first eigenvalue of block i in sigx
+         */
+
+        for (i = 0, pos = 0, pos2 = 0, pos3 = 0, gap = 0.0;  i < L;
+                pos += blck_szs[i] * (blck_szs[i] + 1) / 2,
+                pos2 += blck_szs[i] * blck_szs[i],
+                pos3 += blck_szs[i], i++)
+        {
+
+            lngth = blck_szs[i] * (blck_szs[i] + 1) / 2;
+
+            /* copy block i of Z in temp (need max_n*(max_n+1)/2) */
+            F2C(dcopy)(&lngth, Z + pos, &int1, temp, &int1);
+
+            /* generalized eigenvalue decomposition Z*F*x = lambda*x
+             * - eigenvectors V are normalized s.t. V^T*F*V = I
+             * - store block i of V in R+pos2
+             * - store eigenvalues of block i in sigx+pos3
+             * - dspgv replaces X+pos by cholesky factor L of ith
+             *   block of F (F = L*L^T)
+             * use temp+lngth as workspace (need at least 3*max_n) */
+            F2C(dspgv)(&int2, "V", "L", blck_szs + i, temp, X + pos, sigx + pos3,
+                       R + pos2, blck_szs + i, temp + lngth, &info2);
+            if (info2)
+            {
+                if ( getWarningMode() )
+                {
+                    sciprint(_("Error in dspgv, info = %d.\n"), info2);
+                }
+                if (*iters == 0 && info2 > blck_szs[i])
+                {
+                    if ( getWarningMode() )
+                    {
+                        sciprint( _("x0 is not strictly primal feasible.\n"));
+                    }
+                    *info = -6;
+                }
+                else
+                {
+                    *info = -18;
+                }
+                return 1;
+            }
+
+            /* - replace sigx+pos3 by lambda^(1/2)
+             * - normalize block i of V (stored in R+pos2) s.t.
+             *   V^T*F*V = Lambda^(1/2) */
+            for (k = 0; k < blck_szs[i]; k++)
+            {
+                scal = sigx[pos3 + k];
+                if (scal < 0.0)
+                {
+                    if (*iters == 0)
+                    {
+                        if ( getWarningMode() )
+                        {
+                            sciprint(_("Z0 is not positive definite.\n"));
+                        }
+                        *info = 7;
+                    }
+                    else
+                    {
+                        if ( getWarningMode() )
+                        {
+                            sciprint(_("F(x)*Z has a negative eigenvalue.\n"));
+                        }
+                        *info = -18;
+                    }
+                    return 1;
+                }
+                gap += scal;    /* duality gap is sum of eigenvalues of ZF */
+                scal2 = sqrt(scal);
+                scal = sqrt(scal2);
+                sigx[pos3 + k] = scal2;
+                F2C(dscal)(blck_szs + i, &scal, R + pos2 + k * blck_szs[i], &int1);
+            }
 
-    /*
-     * compute feasible rectangle for plane search
-     */
+        }
 
-    maxpossigx = 0.0;  minnegsigx = 0.0;
-    maxpossigz = 0.0;  minnegsigz = 0.0;
-    for (i=0; i<n; i++) {
-       if ( sigx[i] > maxpossigx )
-          maxpossigx = sigx[i];  /* max pos eigenvalue in sigx */
-       else if ( sigx[i] < minnegsigx )
-          minnegsigx = sigx[i];  /* min neg eigenvalue in sigx */
-       if ( sigz[i] > maxpossigz )
-          maxpossigz = sigz[i];  /* max pos eigenvalue in sigz */
-       else if ( sigz[i] < minnegsigz )
-          minnegsigz = sigz[i];  /* min neg eigenvalue in sigz */
-    }
-    nrmx = F2C(dnrm2)(&n, sigx, &int1);        /* norm of scaled dx */
-    nrmz = F2C(dnrm2)(&n, sigz, &int1);        /* norm of scaled dZ */
-    nrmmax = Max( nrmx, nrmz);
 
-    XdZ = inprd(F,dZ,L,blck_szs);          /* Tr F0*dZ */
-    ZdX = F2C(ddot)(&m, c, &int1, dx, &int1);  /* c^T*dx */
+        /*
+         * check convergence
+         */
 
+        ul[1] = -inprd(F, Z, L, blck_szs);      /* -Tr F_0 Z */
+        ul[0] = F2C(ddot)(&m, c, &int1, x, &int1);  /* c^T x */
+        if (*iters == 0)
+        {
+            if ( getWarningMode() )
+            {
+                sciprint(_("\n    primal obj.  dual obj.  dual. gap \n"));
+            }
 
-    /*
-     * check corners of feasible rectangle
-     */
+        }
+        if ( getWarningMode() )
+        {
+            sciprint("% 13.2e % 12.2e %10.2e\n", ul[0], ul[1], gap);
+        }
+        if (gap <= Max(abstol, MINABSTOL))
+        {
+            *info = 2;
+        }
+        else if ( (ul[1] > 0.0 && gap <= reltol * ul[1]) ||
+                  (ul[0] < 0.0 && gap <= reltol * (-ul[0])) )
+        {
+            *info = 3;
+        }
+        else if ( reltol < 0.0 && ul[0] <= tv )
+        {
+            *info = 4;
+        }
+        else if ( reltol < 0.0 && ul[1] >= tv )
+        {
+            *info = 5;
+        }
+        else if ( *iters == maxiters )
+        {
+            *info = 1;
+        }
+        else
+        {
+            *info = 0;
+        }
+        if (*info)
+        {
+            return 0;
+        }
 
-   dbl_epsilon = F2C(dlamch)("e");
-   if (nrmx > SIGTOL*nrmmax)
-      if (ZdX < 0.0)
-          alphax = (minnegsigx < -dbl_epsilon) ? -1.0/minnegsigx : 0.0;
-      else
-          alphax = (maxpossigx >  dbl_epsilon) ? -1.0/maxpossigx : 0.0;
-    else alphax = 0.0;
-
-    if (nrmz > SIGTOL*nrmmax)
-       if (XdZ < 0.0)
-          alphaz = (minnegsigz < -dbl_epsilon) ? -1.0/minnegsigz : 0.0;
-       else
-          alphaz = (maxpossigz >  dbl_epsilon) ? -1.0/maxpossigz : 0.0;
-    else alphaz = 0.0;
-
-    newgap = gap + alphax*ZdX + alphaz*XdZ;
-    newu = ul[0] + alphax*ZdX;
-    newl = ul[1] - alphaz*XdZ;
-
-    if (newgap <= Max(abstol, MINABSTOL))  *info = 2;
-    else if ( (newl > 0.0 && newgap <= reltol*newl) ||
-              (newu < 0.0 && newgap <= -reltol*newu) ) *info = 3;
-    else if ( reltol < 0.0 && newu <= tv ) *info = 4;
-    else if ( reltol < 0.0 && newl >= tv ) *info = 5;
-    else if ( *iters == maxiters ) *info = 1;
-    else *info = 0;
-
-    if (*info) {
-       F2C(daxpy)(&m, &alphax, dx, &int1, x, &int1);
-       F2C(daxpy)(&sz, &alphaz, dZ, &int1, Z, &int1);
-       gap = newgap;  ul[0] = newu;   ul[1] = newl;
-       if ( getWarningMode() ) sciprint("% 13.2e % 12.2e %10.2e\n", ul[0], ul[1], gap);
-       (*iters)++;
-       return 0;
-    }
 
 
-    /*
-     * plane search
-     *  minimize   phi(alphax,alphaz) =
-     *    q*log(dual_gap + alphax*c^T*dx + alphaz* Tr F_0 dZ)
-     *  - sum log (1+alphax*sigx_i) - sum log (1+alphaz*sigz)
-     */
+        /*
+         * compute scaled matrices F
+         */
+
+        for (j = 0, pos = 0;  j < m;  j++) for (i = 0, pos2 = 0;  i < L;
+                                                    pos += blck_szs[i] * (blck_szs[i] + 1) / 2,
+                                                    pos2 += blck_szs[i] * blck_szs[i], i++)
+            {
+
+                /* compute R' * Fj(i) * R, store in Fsc+pos */
+                cngrncb(2, blck_szs[i], F + sz + pos, R + pos2, Fsc + pos, temp);
+
+                /* correct diagonal elements */
+                for (k = 0, pos4 = pos;  k < blck_szs[i];  pos4 += blck_szs[i] - k, k++)
+                {
+                    Fsc[pos4] /= sqrt2;
+                }
+
+            }
+
+
+        /*
+         * form rhs = Lambda^(-1/2) - (q/gap) * Lambda^(1/2)
+         */
+
+        F2C(dscal)(&sz, &dbl0, rhs, &int1);    /* rhs := 0 */
+        rho = -q / gap;
+        for (i = 0, pos = 0, pos3 = 0;  i < L;
+                pos += blck_szs[i] * (blck_szs[i] + 1) / 2,
+                pos3 += blck_szs[i], i++)
+            for (k = 0, pos4 = pos;  k < blck_szs[i];  pos4 += blck_szs[i] - k, k++)
+            {
+                scal = sigx[pos3 + k];
+                rhs[pos4] = (1.0 / scal + rho * scal) / sqrt2;
+            }
+
+
+        /*
+         * solve least-squares problem; need workspace of size m + nb*sz
+         * - rhs is overwritten by dx
+         * - in first iteration, estimate condition number of Fsc
+         */
+
+        F2C(dgels)("N", &sz, &m, &int1, Fsc, &sz, rhs, &sz, temp, &ltemp,
+                   &info2);
+        if (info2)
+        {
+            if ( getWarningMode() )
+            {
+                sciprint(_("Error in dgels, info = %d.\n"), info2);
+            }
+            *info = -18;
+            return 1;
+        }
 
-    alphax = 0.0;  alphaz = 0.0;  lambda_ls = 1.0;
+        if (*iters == 0)
+        {
+
+            /* estimate the condition number in 1-norm of the R-factor of
+             * the qr-decomposition of Fsc (is stored in Fsc)
+             * need work space of size 3*m */
+            F2C(dtrcon)("1", "U", "N", &m, Fsc, &sz, &rcond, temp, iwork,
+                        &info2);
+            if (info2 < 0)
+            {
+                if ( getWarningMode() )
+                {
+                    sciprint(_("Error in dtrcon, info = %d.\n"), info2);
+                }
+                *info = -18;
+                return 1;
+            }
+            if (rcond < MINRCOND)
+            {
+                if ( getWarningMode() )
+                {
+                    sciprint(_("The matrices F_i, i=1,...,m are linearly dependent (or the initial points are very badly conditioned).\n"));
+                }
+                *info = -3;
+                return 1;
+            }
 
-    if (nrmx > SIGTOL*nrmmax)
-       if (nrmz > SIGTOL*nrmmax)    /* compute primal and dual steps */
-          while ( lambda_ls > 1e-4 ) {
+        }
 
-             /* compute 1st and 2nd derivatives of phi */
-             rho = q/(gap + alphax*ZdX + alphaz*XdZ);
-             gradx = rho*ZdX;  hessx = 0.0;
-             gradz = rho*XdZ;  hessz = 0.0;
-             for (i=0; i<n; i++){
-                gradx -= sigx[i] / (1.0+alphax*sigx[i]);
-                hessx += SQR( sigx[i] / (1.0+alphax*sigx[i]) );
-                gradz -= sigz[i] / (1.0+alphaz*sigz[i]);
-                hessz += SQR( sigz[i] / (1.0+alphaz*sigz[i]) );
-             }
 
-             /* newton step */
-             dalphax = -gradx/hessx;  dalphaz = -gradz/hessz;
-             lambda_ls = sqrt( SQR(gradx)/hessx + SQR(gradz)/hessz );
-             alphax += (lambda_ls > 0.25) ?
-                       dalphax/(1.0+lambda_ls) : dalphax;
-             alphaz += (lambda_ls > 0.25) ?
-                       dalphaz/(1.0+lambda_ls) : dalphaz;
 
-         }
+        /*
+         * - compute dZ =
+         *   R*((q/gap)*Lambda^(1/2) - Lambda^(-1/2) + R^T*dF*R )*R^T
+         * - compute generalized eigenvalues of (dF, F), store in sigx
+         * - compute generalized eigenvalues of (dZ, Z), store in sigz
+         *
+         * loop over blocks i=0,...,L-1
+         * pos:  position of (0,0) element of block i in packed storage
+         * pos2: position of (0,0) element of block i in unpacked storage
+         * pos3: position of first eigenvalue of in sigx and sigz
+         */
+
+        for (i = 0, pos = 0, pos2 = 0, pos3 = 0;  i < L;
+                pos  += blck_szs[i] * (blck_szs[i] + 1) / 2,
+                pos2 += blck_szs[i] * blck_szs[i],
+                pos3 += blck_szs[i], i++)
+        {
+
+            lngth = blck_szs[i] * (blck_szs[i] + 1) / 2;
+
+            /* compute ith block of dF = \sum \delta x_i F_i,
+             * store in temp */
+            F2C(dgemv)("N", &lngth, &m, &dbl1, F + sz + pos, &sz, dx, &int1,
+                       &dbl0, temp, &int1);
+
+            /* scale dF as R'*dF*R, store in temp + lngth */
+            cngrncb(2, blck_szs[i], temp, R + pos2, temp + lngth, temp + 2 * lngth);
+
+            /* add (q/gap)*Lambda^(1/2) - Lambda^(-1/2) */
+            for (k = 0, pos4 = lngth;  k < blck_szs[i];  pos4 += blck_szs[i] - k, k++)
+            {
+                temp[pos4] -= rho * sigx[pos3 + k] + 1.0 / sigx[pos3 + k];
+            }
+
+            /* replace dF in temp by L^{-1}*dF*L^{-T},
+             * (L: cholesky factor of F, stored in X)
+             * and compute eigenvalues of L^{-1}*dF*L^{-T}  */
+            F2C(dspgst)(&int1, "L", blck_szs + i, temp, X + pos, &info2);
+            if (info2)
+            {
+                if ( getWarningMode() )
+                {
+                    sciprint(_("Error in dspst, info = %d.\n"), info2);
+                }
 
-       else while ( lambda_ls > 1e-4 ) {  /* primal step only */
+                *info = -18;
+                return 1;
+            }
+            /* temp has to be of size max_n*(max_n+1)+3*max_n */
+            F2C(dspev)("N", "L", blck_szs + i, temp, sigx + pos3, NULL, &int1,
+                       temp + 2 * lngth, &info2);
+            if (info2)
+            {
+                if ( getWarningMode() )
+                {
+                    sciprint(_("Error in dspev, info = %d.\n"), info2);
+                }
+                *info = -18;
+                return 1;
+            }
+
+            /* dZ := R*((q/gap)*Lambda^(1/2) - Lambda^(-1/2) + R'*dF*R)*R' */
+            cngrncb(1, blck_szs[i], temp + lngth, R + pos2, dZ + pos,
+                    temp + 2 * lngth);
+
+            /* copy ith block of dZ to temp */
+            F2C(dcopy)(&lngth, dZ + pos, &int1, temp, &int1);
+
+            /* copy ith block of Z to temp + lngth */
+            F2C(dcopy)(&lngth, Z + pos, &int1, temp + lngth, &int1);
+
+            /* sigz: generalized eigenvalues of (dZ,Z)
+             * required size of temp: 3*max_n + max_n*(max_n+1) */
+            F2C(dspgv)(&int1, "N", "L", blck_szs + i, temp, temp + lngth, sigz + pos3,
+                       NULL, &int1, temp + 2 * lngth, &info2);
+            if (info2)
+            {
+                if ( getWarningMode() )
+                {
+                    sciprint(_("Error in dspgv, info = %d.\n"), info2);
+                }
+                *info = -18;
+                return 1;
+            }
 
-             /* compute 1st and 2nd derivatives of phi */
-             rho = q/(gap + alphax*ZdX);
-             gradx = rho*ZdX;  hessx = 0.0;
-             for (i=0; i<n; i++){
-                gradx -= sigx[i] / (1.0+alphax*sigx[i]);
-                hessx += SQR( sigx[i] / (1.0+alphax*sigx[i]) );
-             }
+        }
 
-             /* newton step */
-             dalphax = -gradx/hessx;
-             lambda_ls = fabs(gradx)/sqrt(hessx);
-             alphax += (lambda_ls > 0.25) ?
-                       dalphax/(1.0+lambda_ls) : dalphax;
 
-       }
+        /*
+         * compute feasible rectangle for plane search
+         */
+
+        maxpossigx = 0.0;
+        minnegsigx = 0.0;
+        maxpossigz = 0.0;
+        minnegsigz = 0.0;
+        for (i = 0; i < n; i++)
+        {
+            if ( sigx[i] > maxpossigx )
+            {
+                maxpossigx = sigx[i];    /* max pos eigenvalue in sigx */
+            }
+            else if ( sigx[i] < minnegsigx )
+            {
+                minnegsigx = sigx[i];    /* min neg eigenvalue in sigx */
+            }
+            if ( sigz[i] > maxpossigz )
+            {
+                maxpossigz = sigz[i];    /* max pos eigenvalue in sigz */
+            }
+            else if ( sigz[i] < minnegsigz )
+            {
+                minnegsigz = sigz[i];    /* min neg eigenvalue in sigz */
+            }
+        }
+        nrmx = F2C(dnrm2)(&n, sigx, &int1);        /* norm of scaled dx */
+        nrmz = F2C(dnrm2)(&n, sigz, &int1);        /* norm of scaled dZ */
+        nrmmax = Max( nrmx, nrmz);
+
+        XdZ = inprd(F, dZ, L, blck_szs);       /* Tr F0*dZ */
+        ZdX = F2C(ddot)(&m, c, &int1, dx, &int1);  /* c^T*dx */
+
+
+        /*
+         * check corners of feasible rectangle
+         */
+
+        dbl_epsilon = F2C(dlamch)("e");
+        if (nrmx > SIGTOL * nrmmax)
+            if (ZdX < 0.0)
+            {
+                alphax = (minnegsigx < -dbl_epsilon) ? -1.0 / minnegsigx : 0.0;
+            }
+            else
+            {
+                alphax = (maxpossigx >  dbl_epsilon) ? -1.0 / maxpossigx : 0.0;
+            }
+        else
+        {
+            alphax = 0.0;
+        }
 
-       else if (nrmz > SIGTOL*nrmmax)        /* dual step only */
-          while ( lambda_ls > 1e-4 ) {
+        if (nrmz > SIGTOL * nrmmax)
+            if (XdZ < 0.0)
+            {
+                alphaz = (minnegsigz < -dbl_epsilon) ? -1.0 / minnegsigz : 0.0;
+            }
+            else
+            {
+                alphaz = (maxpossigz >  dbl_epsilon) ? -1.0 / maxpossigz : 0.0;
+            }
+        else
+        {
+            alphaz = 0.0;
+        }
 
-             /* compute 1st and 2nd derivatives of phi */
-             rho = q/(gap + alphaz*XdZ);
-             gradz = rho*XdZ;  hessz = 0.0;
-             for (i=0; i<n; i++){
-                gradz -= sigz[i] / (1.0+alphaz*sigz[i]);
-                hessz += SQR( sigz[i] / (1.0+alphaz*sigz[i]) );
-             }
+        newgap = gap + alphax * ZdX + alphaz * XdZ;
+        newu = ul[0] + alphax * ZdX;
+        newl = ul[1] - alphaz * XdZ;
 
-             /* newton step */
-             dalphaz = -gradz/hessz;
-             lambda_ls = fabs(gradz)/sqrt(hessz);
-             alphaz += (lambda_ls > 0.25) ?
-                       dalphaz/(1.0+lambda_ls) : dalphaz;
+        if (newgap <= Max(abstol, MINABSTOL))
+        {
+            *info = 2;
+        }
+        else if ( (newl > 0.0 && newgap <= reltol * newl) ||
+                  (newu < 0.0 && newgap <= -reltol * newu) )
+        {
+            *info = 3;
+        }
+        else if ( reltol < 0.0 && newu <= tv )
+        {
+            *info = 4;
+        }
+        else if ( reltol < 0.0 && newl >= tv )
+        {
+            *info = 5;
+        }
+        else if ( *iters == maxiters )
+        {
+            *info = 1;
+        }
+        else
+        {
+            *info = 0;
         }
 
+        if (*info)
+        {
+            F2C(daxpy)(&m, &alphax, dx, &int1, x, &int1);
+            F2C(daxpy)(&sz, &alphaz, dZ, &int1, Z, &int1);
+            gap = newgap;
+            ul[0] = newu;
+            ul[1] = newl;
+            if ( getWarningMode() )
+            {
+                sciprint("% 13.2e % 12.2e %10.2e\n", ul[0], ul[1], gap);
+            }
+            (*iters)++;
+            return 0;
+        }
 
 
-    /* update x and Z */
-    F2C(daxpy)(&m, &alphax, dx, &int1, x, &int1);
-    F2C(daxpy)(&sz, &alphaz, dZ, &int1, Z, &int1);
+        /*
+         * plane search
+         *  minimize   phi(alphax,alphaz) =
+         *    q*log(dual_gap + alphax*c^T*dx + alphaz* Tr F_0 dZ)
+         *  - sum log (1+alphax*sigx_i) - sum log (1+alphaz*sigz)
+         */
+
+        alphax = 0.0;
+        alphaz = 0.0;
+        lambda_ls = 1.0;
+
+        if (nrmx > SIGTOL * nrmmax)
+            if (nrmz > SIGTOL * nrmmax)  /* compute primal and dual steps */
+                while ( lambda_ls > 1e-4 )
+                {
+
+                    /* compute 1st and 2nd derivatives of phi */
+                    rho = q / (gap + alphax * ZdX + alphaz * XdZ);
+                    gradx = rho * ZdX;
+                    hessx = 0.0;
+                    gradz = rho * XdZ;
+                    hessz = 0.0;
+                    for (i = 0; i < n; i++)
+                    {
+                        gradx -= sigx[i] / (1.0 + alphax * sigx[i]);
+                        hessx += SQR( sigx[i] / (1.0 + alphax * sigx[i]) );
+                        gradz -= sigz[i] / (1.0 + alphaz * sigz[i]);
+                        hessz += SQR( sigz[i] / (1.0 + alphaz * sigz[i]) );
+                    }
+
+                    /* newton step */
+                    dalphax = -gradx / hessx;
+                    dalphaz = -gradz / hessz;
+                    lambda_ls = sqrt( SQR(gradx) / hessx + SQR(gradz) / hessz );
+                    alphax += (lambda_ls > 0.25) ?
+                              dalphax / (1.0 + lambda_ls) : dalphax;
+                    alphaz += (lambda_ls > 0.25) ?
+                              dalphaz / (1.0 + lambda_ls) : dalphaz;
+
+                }
+
+            else while ( lambda_ls > 1e-4 )    /* primal step only */
+                {
+
+                    /* compute 1st and 2nd derivatives of phi */
+                    rho = q / (gap + alphax * ZdX);
+                    gradx = rho * ZdX;
+                    hessx = 0.0;
+                    for (i = 0; i < n; i++)
+                    {
+                        gradx -= sigx[i] / (1.0 + alphax * sigx[i]);
+                        hessx += SQR( sigx[i] / (1.0 + alphax * sigx[i]) );
+                    }
+
+                    /* newton step */
+                    dalphax = -gradx / hessx;
+                    lambda_ls = fabs(gradx) / sqrt(hessx);
+                    alphax += (lambda_ls > 0.25) ?
+                              dalphax / (1.0 + lambda_ls) : dalphax;
+
+                }
+
+        else if (nrmz > SIGTOL * nrmmax)      /* dual step only */
+            while ( lambda_ls > 1e-4 )
+            {
+
+                /* compute 1st and 2nd derivatives of phi */
+                rho = q / (gap + alphaz * XdZ);
+                gradz = rho * XdZ;
+                hessz = 0.0;
+                for (i = 0; i < n; i++)
+                {
+                    gradz -= sigz[i] / (1.0 + alphaz * sigz[i]);
+                    hessz += SQR( sigz[i] / (1.0 + alphaz * sigz[i]) );
+                }
+
+                /* newton step */
+                dalphaz = -gradz / hessz;
+                lambda_ls = fabs(gradz) / sqrt(hessz);
+                alphaz += (lambda_ls > 0.25) ?
+                          dalphaz / (1.0 + lambda_ls) : dalphaz;
+            }
+
+
+
+        /* update x and Z */
+        F2C(daxpy)(&m, &alphax, dx, &int1, x, &int1);
+        F2C(daxpy)(&sz, &alphaz, dZ, &int1, Z, &int1);
 
- }
+    }
 
- return -1;   /* should never happen */
+    return -1;   /* should never happen */
 }
 
index 4fac7b0..f7df2c4 100644 (file)
@@ -11,7 +11,7 @@
  */
 
 #include <string.h>
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 #include "stack-def.h" /* C2F(cha1) */
 #include "stack-c.h" /* Fin */
index 5da14ff..016c02e 100644 (file)
@@ -61,7 +61,7 @@
 #include "sciprint.h"
 #include "others_generators.h"
 #include "localization.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 
 /***********************************************************************/
 /* Private part.                                                       */
index 7e7386d..6ec2613 100644 (file)
@@ -20,7 +20,7 @@
 #include "expandPathVariable.h"
 #include "FileExist.h"
 #include "mclose.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "pcre_private.h"
 #include "sciprint.h"
 #include "splitLine.h"
index cb9fc30..5e6d99f 100644 (file)
@@ -30,7 +30,7 @@ extern "C"
 #include "Scierror.h"
 #include "localization.h"
 #include "sciprint.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 }
 
 /* Benchmark
index 8c30550..b91f85a 100644 (file)
@@ -25,7 +25,7 @@
 #include "pcre_private.h"
 #include "os_strdup.h"
 #include "strsubst.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 #include "sciprint.h"
 #include "charEncoding.h"
 #include "freeArrayOfString.h"
index fb43720..5fc294b 100644 (file)
@@ -16,7 +16,7 @@ SYSTEM_ENV_CPP_SOURCES = \
        src/cpp/sci_home.cpp \
        src/cpp/home.cpp \
        src/cpp/sci_tmpdir.cpp \
-       src/cpp/sci_warning.cpp \
+       src/cpp/warningmode.cpp \
        src/cpp/sci_mode.cpp \
        src/cpp/configvariable.cpp \
        src/cpp/lasterror.cpp \
@@ -53,4 +53,4 @@ libscisystem_env_la_CPPFLAGS = \
 libscisystem_env_la_includedir=$(pkgincludedir)/system_env
 
 libscisystem_env_la_include_HEADERS = includes/setenvvar.hxx \
-includes/sci_warning.h
+includes/warningmode.h
index 4e84c04..a61680d 100644 (file)
@@ -114,7 +114,7 @@ am__objects_1 = libscisystem_env_la-setenvvar.lo \
        libscisystem_env_la-sci_path.lo \
        libscisystem_env_la-sci_home.lo libscisystem_env_la-home.lo \
        libscisystem_env_la-sci_tmpdir.lo \
-       libscisystem_env_la-sci_warning.lo \
+       libscisystem_env_la-warningmode.lo \
        libscisystem_env_la-sci_mode.lo \
        libscisystem_env_la-configvariable.lo \
        libscisystem_env_la-lasterror.lo \
@@ -419,7 +419,7 @@ SYSTEM_ENV_CPP_SOURCES = \
        src/cpp/sci_home.cpp \
        src/cpp/home.cpp \
        src/cpp/sci_tmpdir.cpp \
-       src/cpp/sci_warning.cpp \
+       src/cpp/warningmode.cpp \
        src/cpp/sci_mode.cpp \
        src/cpp/configvariable.cpp \
        src/cpp/lasterror.cpp \
@@ -452,7 +452,7 @@ libscisystem_env_la_CPPFLAGS = \
 
 libscisystem_env_la_includedir = $(pkgincludedir)/system_env
 libscisystem_env_la_include_HEADERS = includes/setenvvar.hxx \
-includes/sci_warning.h
+includes/warningmode.h
 
 all: all-am
 
@@ -540,8 +540,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-sci_path.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-sci_simpMode.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-sci_tmpdir.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-sci_warning.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-setenvvar.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-warningmode.Plo@am__quote@
 
 .cpp.o:
 @am__fastdepCXX_TRUE@  $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -599,12 +599,12 @@ libscisystem_env_la-sci_tmpdir.lo: src/cpp/sci_tmpdir.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-sci_tmpdir.lo `test -f 'src/cpp/sci_tmpdir.cpp' || echo '$(srcdir)/'`src/cpp/sci_tmpdir.cpp
 
-libscisystem_env_la-sci_warning.lo: src/cpp/sci_warning.cpp
-@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-sci_warning.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-sci_warning.Tpo -c -o libscisystem_env_la-sci_warning.lo `test -f 'src/cpp/sci_warning.cpp' || echo '$(srcdir)/'`src/cpp/sci_warning.cpp
-@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscisystem_env_la-sci_warning.Tpo $(DEPDIR)/libscisystem_env_la-sci_warning.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/sci_warning.cpp' object='libscisystem_env_la-sci_warning.lo' libtool=yes @AMDEPBACKSLASH@
+libscisystem_env_la-warningmode.lo: src/cpp/warningmode.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-warningmode.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-warningmode.Tpo -c -o libscisystem_env_la-warningmode.lo `test -f 'src/cpp/warningmode.cpp' || echo '$(srcdir)/'`src/cpp/warningmode.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscisystem_env_la-warningmode.Tpo $(DEPDIR)/libscisystem_env_la-warningmode.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/warningmode.cpp' object='libscisystem_env_la-warningmode.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-sci_warning.lo `test -f 'src/cpp/sci_warning.cpp' || echo '$(srcdir)/'`src/cpp/sci_warning.cpp
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-warningmode.lo `test -f 'src/cpp/warningmode.cpp' || echo '$(srcdir)/'`src/cpp/warningmode.cpp
 
 libscisystem_env_la-sci_mode.lo: src/cpp/sci_mode.cpp
 @am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-sci_mode.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-sci_mode.Tpo -c -o libscisystem_env_la-sci_mode.lo `test -f 'src/cpp/sci_mode.cpp' || echo '$(srcdir)/'`src/cpp/sci_mode.cpp
@@ -21,8 +21,8 @@ extern "C"
 {
 #endif
 
-EXTERN_SYSTEM_ENV int getWarningMode(void);
-EXTERN_SYSTEM_ENV void setWarningMode(int _iMode);
+    EXTERN_SYSTEM_ENV int getWarningMode(void);
+    EXTERN_SYSTEM_ENV void setWarningMode(int _iMode);
 
 #ifdef __cplusplus
 }
 
 extern "C"
 {
-#include "sci_warning.h"
+#include "warningmode.h"
 }
 
 int getWarningMode(void)
 {
-    if(ConfigVariable::getWarningMode())
+    if (ConfigVariable::getWarningMode())
     {
         return 1;
     }
@@ -33,7 +33,7 @@ int getWarningMode(void)
 
 void setWarningMode(int _iMode)
 {
-    if(_iMode == 0)
+    if (_iMode == 0)
     {
         ConfigVariable::setWarningMode(false);
     }
index 87d9eb4..d1bcb31 100644 (file)
@@ -20,5 +20,5 @@
 Source: bin\{#SYSTEM_ENV}.dll; DestDir: {app}\bin; Components: {#COMPN_SCILAB}
 Source: bin\{#SYSTEM_ENV}.lib; DestDir: {app}\bin; Components: {#COMPN_SCILAB}
 ;
-Source: modules\{#SYSTEM_ENV}\includes\sci_warning.h; DestDir: {app}\modules\{#SYSTEM_ENV}\includes; Components: {#COMPN_SCILAB}
+Source: modules\{#SYSTEM_ENV}\includes\warningmode.h; DestDir: {app}\modules\{#SYSTEM_ENV}\includes; Components: {#COMPN_SCILAB}
 ;--------------------------------------------------------------------------------------------------------------
index a385bd5..2fe5d19 100644 (file)
     <ClCompile Include="src\cpp\sci_mode.cpp" />
     <ClCompile Include="src\cpp\sci_path.cpp" />
     <ClCompile Include="src\cpp\sci_tmpdir.cpp" />
-    <ClCompile Include="src\cpp\sci_warning.cpp" />
+    <ClCompile Include="src\cpp\warningmode.cpp" />
     <ClCompile Include="src\cpp\setenvvar.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="includes\sci_mode.h" />
     <ClInclude Include="includes\sci_path.h" />
     <ClInclude Include="includes\sci_tmpdir.h" />
-    <ClInclude Include="includes\sci_warning.h" />
+    <ClInclude Include="includes\warningmode.h" />
     <ClInclude Include="includes\setenvvar.hxx" />
   </ItemGroup>
   <ItemGroup>
index 1a2b113..4511e44 100644 (file)
@@ -42,9 +42,6 @@
     <ClCompile Include="src\cpp\sci_tmpdir.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\sci_warning.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="src\cpp\setenvvar.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -57,6 +54,9 @@
     <ClCompile Include="src\cpp\context_get.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="src\cpp\warningmode.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="includes\configvariable.hxx">
@@ -86,9 +86,6 @@
     <ClInclude Include="includes\sci_tmpdir.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\sci_warning.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="includes\setenvvar.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="includes\context_get.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="includes\warningmode.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <Library Include="..\..\bin\blasplus.lib" />
index 95c49d5..5060d0e 100644 (file)
@@ -64,7 +64,7 @@
 #include "taucs_scilab.h"
 #include "common_umfpack.h"
 #include "localization.h"
-#include "sci_warning.h"
+#include "warningmode.h"
 
 CellAdr *ListNumeric = NULL;
 CellAdr *ListCholFactors = NULL;