1eb6cf72aeb709225745f1b1c5f9b70b0c7bfc5a
[scilab.git] / scilab / modules / string / includes / stringToDouble.h
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.1-en.txt
10  *
11  * This code is also published under the GPL v3 license.
12  *
13  */
14 #ifndef __STRINGTODOUBLE_H__
15 #define __STRINGTODOUBLE_H__
16
17 #include "dynlib_string.h"
18 #include "BOOL.h"
19 #include <wchar.h>
20
21 #define NanString "Nan"
22 #define NanStringW L"Nan"
23 #define InfString "Inf"
24 #define InfStringW L"Inf"
25 #define NegInfString "-Inf"
26 #define NegInfStringW L"-Inf"
27 #define PosInfString "+Inf"
28 #define PosInfStringW L"+Inf"
29 #define NegNanString "-Nan" /* no sense but used by some users */
30 #define NegNanStringW L"-Nan" /* no sense but used by some users */
31 #define PosNanString "+Nan" /* no sense but used by some users */
32 #define PosNanStringW L"+Nan" /* no sense but used by some users */
33 #define ScilabNanString "%nan"
34 #define ScilabNanStringW L"%nan"
35 #define ScilabInfString "%inf"
36 #define ScilabInfStringW L"%inf"
37 #define ScilabNegInfString "-%inf"
38 #define ScilabNegInfStringW L"-%inf"
39 #define ScilabPosInfString "+%inf"
40 #define ScilabPosInfStringW L"+%inf"
41 #define ScilabNegNanString "-%nan" /* no sense but used by some users */
42 #define ScilabNegNanStringW L"-%nan" /* no sense but used by some users */
43 #define ScilabPosNanString "+%nan" /* no sense but used by some users */
44 #define ScilabPosNanStringW L"+%nan" /* no sense but used by some users */
45 #define ScilabPiString "%pi"
46 #define ScilabPiStringW L"%pi"
47 #define ScilabNegPiString "-%pi"
48 #define ScilabNegPiStringW L"-%pi"
49 #define ScilabPosPiString "+%pi"
50 #define ScilabPosPiStringW L"+%pi"
51 #define ScilabEString "%e"
52 #define ScilabEStringW L"%e"
53 #define ScilabPosEString "+%e"
54 #define ScilabPosEStringW L"+%e"
55 #define ScilabNegEString "-%e"
56 #define ScilabNegEStringW L"-%e"
57 #define ScilabEpsString "%eps"
58 #define ScilabEpsStringW L"%eps"
59 #define ScilabPosEpsString "+%eps"
60 #define ScilabPosEpsStringW L"+%eps"
61 #define ScilabNegEpsString "-%eps"
62 #define ScilabNegEpsStringW L"-%eps"
63
64 #ifdef __cplusplus
65 extern "C" {
66 #endif
67
68     typedef enum {
69         STRINGTODOUBLE_NO_ERROR = 0,
70         STRINGTODOUBLE_MEMORY_ALLOCATION = 1,
71         STRINGTODOUBLE_NOT_A_NUMBER = 2,
72         STRINGTODOUBLE_ERROR = 3
73     }
74                            stringToDoubleError;
75
76     /**
77      * @TODO add comment
78      *
79      * @param pSTR
80      * @param bConvertByNAN
81      * @param ierr
82      * @return <ReturnValue>
83      */
84     STRING_IMPEXP double stringToDouble(const char *pSTR, BOOL bConvertByNAN, stringToDoubleError *ierr);
85     STRING_IMPEXP double stringToDoubleW(const wchar_t *pSTR, BOOL bConvertByNAN, stringToDoubleError *ierr);
86
87 #ifdef __cplusplus
88 }
89 #endif
90
91
92 #endif /* __STRINGTODOUBLE_H__ */
93 // =============================================================================