add 'dec2base' function and optimize dec2bin, dec2oct, dec2hex functions.
[scilab.git] / scilab / modules / elementary_functions / src / c / convertbase.h
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 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 /*--------------------------------------------------------------------------*/ 
13 #ifndef __CONVERTBASE_H__
14 #define __CONVERTBASE_H__
15
16 typedef enum
17
18     ERROR_CONVERTBASE_OK = 0,
19     ERROR_CONVERTBASE_NOK = 1,
20     ERROR_CONVERTBASE_NOT_INTEGER_VALUE = 2,
21     ERROR_CONVERTBASE_NOT_IN_INTERVAL = 3,
22     ERROR_CONVERTBASE_ALLOCATION = 4,
23     ERROR_CONVERTBASE_INVALID_REPRESENTATION = 5
24 } error_convertbase;
25
26 /**
27 * convert from base b to decimal
28 * @param string base
29 * @param int base
30 * @param[out] int if 0 no error  
31 * @return converted value (decimal)
32 */
33 double convertBase2Dec(const char *pStr, int numberbase, error_convertbase *err);
34
35 /**
36 * Convert decimal to base N number in string
37 * @param[in] array of integer values
38 * @param[in] number of elements in dValues array
39 * @param[in] number of digits for representation
40 * @param[out] error value
41 * @return a matrix of string of size mn
42 */
43 char **convertMatrixOfDec2Base(const double* dValues, int mn, int numberbase, unsigned int nbDigits, error_convertbase *err);
44
45 #endif /* __CONVERTBASE_H__ */
46 /*--------------------------------------------------------------------------*/