Remove dead code in core module + references to these files in other modules
[scilab.git] / scilab / modules / elementary_functions / sci_gateway / c / sci_log1p.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2006 - INRIA - 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  */
12 /*--------------------------------------------------------------------------*/
13 #include "gw_elementary_functions.h"
14 #include "stack-c.h"
15 #include "basic_functions.h"
16 #include "api_scilab.h"
17 #include "Scierror.h"
18 #include "msgs.h"
19
20 /*--------------------------------------------------------------------------*/
21 int sci_log1p(char *fname, void* pvApiCtx)
22 {
23     SciErr sciErr;
24     int i;
25     int iRows                                           = 0;
26     int iCols                                           = 0;
27     int iType                                           = 0;
28     int* piAddr                                 = NULL;
29
30     double *pdblReal            = NULL;
31     double *pdblImg                     = NULL;
32     double* pdblRealRet = NULL;
33     double* pdblImgRet  = NULL;
34
35     CheckRhs(1, 1);
36     CheckLhs(1, 1);
37
38     sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
39     if (sciErr.iErr)
40     {
41         printError(&sciErr, 0);
42         return 0;
43     }
44
45     sciErr = getVarType(pvApiCtx, piAddr, &iType);
46     if (sciErr.iErr)
47     {
48         printError(&sciErr, 0);
49         return 0;
50     }
51
52     if (iType != sci_matrix)
53     {
54         OverLoad(1);
55         return 0;
56     }
57
58     if (isVarComplex(pvApiCtx, piAddr))
59     {
60         SciError(43);
61         return 0;
62     }
63     else
64     {
65         sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &iRows, &iCols, &pdblReal);
66         if (sciErr.iErr)
67         {
68             printError(&sciErr, 0);
69             return 0;
70         }
71
72         for (i = 0; i < iRows * iCols ; i++)
73         {
74             if (pdblReal[i] <= -1)
75             {
76                 if (C2F(errgst).ieee == 0)
77                 {
78                     SciError(32);
79                     return 0;
80                 }
81                 else if (C2F(errgst).ieee == 1)
82                 {
83                     Msgs(64, 0);
84                 }
85             }
86         }
87
88         sciErr = allocMatrixOfDouble(pvApiCtx, Rhs + 1, iRows, iCols, &pdblRealRet);
89         if (sciErr.iErr)
90         {
91             printError(&sciErr, 0);
92             return 0;
93         }
94
95         for (i = 0; i < iRows * iCols ; i++)
96         {
97             pdblRealRet[i] = dlog1ps(pdblReal[i]);
98         }
99     }
100
101     LhsVar(1) = Rhs + 1;
102     PutLhsVar();
103     return 0;
104 }
105 /*--------------------------------------------------------------------------*/