* isnum has been redesigned in native code. Up to 130x performance
[scilab.git] / scilab / modules / string / src / c / isnum.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12 #include "isnum.h"
13 #include "stringToComplex.h"
14 #include "MALLOC.h"
15 // =============================================================================
16 BOOL isNum(const char *pStr)
17 {
18     if (pStr)
19     {
20         stringToComplexError ierr = STRINGTOCOMPLEX_NO_ERROR;
21         stringToComplex(pStr, ".", FALSE, &ierr);
22         return (BOOL)(ierr == STRINGTOCOMPLEX_NO_ERROR);
23     }
24     return FALSE;
25 }
26 // =============================================================================
27 BOOL *isNumMatrix(const char **pStrs, int nbRows, int nbCols)
28 {
29     BOOL *pResults = NULL;
30     if (pStrs)
31     {
32         pResults = (BOOL*)MALLOC(sizeof(BOOL) * (nbCols * nbRows));
33         if (pResults)
34         {
35             int i = 0;
36             for (i = 0; i < nbRows * nbCols; i++)
37             {
38                 pResults[i] = isNum(pStrs[i]);
39             }
40         }
41     }
42     return pResults;
43 }
44 // =============================================================================
45
46