diff options
Diffstat (limited to 'src')
30 files changed, 852 insertions, 0 deletions
diff --git a/src/c/elementaryFunctions/includes/isinf.h b/src/c/elementaryFunctions/includes/isinf.h new file mode 100644 index 00000000..6752c377 --- /dev/null +++ b/src/c/elementaryFunctions/includes/isinf.h @@ -0,0 +1,35 @@ + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ + +#ifndef __ISINF_H__ +#define __ISINF_H__ + +#include "dynlib_elementaryfunctions.h" +#include "floatComplex.h" +#include "doubleComplex.h" +#include "types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +char disinfs(double x); +char sisinfs(float x); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + + +#endif /* !__ISINF_H__ */ + diff --git a/src/c/elementaryFunctions/interfaces/int_isinf.h b/src/c/elementaryFunctions/interfaces/int_isinf.h new file mode 100644 index 00000000..9eefa658 --- /dev/null +++ b/src/c/elementaryFunctions/interfaces/int_isinf.h @@ -0,0 +1,20 @@ + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ + +#ifndef __INT_ISINF_H__ +#define __INT_ISINF_H__ + +#define d0isinfg0(in) disinfs(in) +#define s0isinfg0(in) sisinfs(in) + + +#endif /* !__INT_ISINF_H__ */ diff --git a/src/c/elementaryFunctions/isinf/disinfs.c b/src/c/elementaryFunctions/isinf/disinfs.c new file mode 100644 index 00000000..1d940051 --- /dev/null +++ b/src/c/elementaryFunctions/isinf/disinfs.c @@ -0,0 +1,24 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "isinf.h" + +char disinfs(double x) +{ + char o = 'F'; + if (x == INFINITY || x == - INFINITY) + o = 'T'; + return o; +} diff --git a/src/c/elementaryFunctions/isinf/sisinfs.c b/src/c/elementaryFunctions/isinf/sisinfs.c new file mode 100644 index 00000000..c36c0a5b --- /dev/null +++ b/src/c/elementaryFunctions/isinf/sisinfs.c @@ -0,0 +1,24 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "isinf.h" + +char sisinfs(float x) +{ + char o = 'F'; + if (x == INFINITY || x == - INFINITY) + o = 'T'; + return o; +} diff --git a/src/c/linearAlgebra/includes/range.h b/src/c/linearAlgebra/includes/range.h new file mode 100644 index 00000000..cb1d3a3e --- /dev/null +++ b/src/c/linearAlgebra/includes/range.h @@ -0,0 +1,34 @@ + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ + +#ifndef __RANGE_H__ +#define __RANGE_H__ +#include "types.h" +#include "eye.h" +#include "rowcomp.h" +#include "doubleComplex.h" +#include "floatComplex.h" +#include "matrixTranspose.h" +#include "matrixMultiplication.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double drangea(double* inp1, int row, int col, double inp2, double* out1); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__RANGE_H__*/ diff --git a/src/c/linearAlgebra/interfaces/int_range.h b/src/c/linearAlgebra/interfaces/int_range.h new file mode 100644 index 00000000..d0c529d8 --- /dev/null +++ b/src/c/linearAlgebra/interfaces/int_range.h @@ -0,0 +1,27 @@ + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __INT_RANGE_H__ +#define __INT_RANGE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define d2d0ranged2d0(in1,size1,in2,out1) drangea(in1,size1[0],size1[1],in2,out1) +#define d2ranged2d0(in1,size1,out1) drangea(in1,size1[0],size1[1], 1,out1) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_RANGE_H__*/ diff --git a/src/c/linearAlgebra/range/drangea.c b/src/c/linearAlgebra/range/drangea.c new file mode 100644 index 00000000..7627f24a --- /dev/null +++ b/src/c/linearAlgebra/range/drangea.c @@ -0,0 +1,78 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "range.h" + +double drangea(double* inp1, int row, int col, double inp2, double* out1) +{ + double a[row*col], aprod[row*col], dim = 0, u[row*row], utrans[row*row], o[row*row], unew[row*col], otemp[row*col]; + if (inp2 == 0) + { + deyea(out1, row, col); + return row; + + } + + dim = drowcompa(1,inp1,row,col,NULL,0,u); + + + for(int i = 0; i < row*row; i++) + o[i] = u[i]; + + for(int i = 0; i < row*col; i++) + a[i] = inp1[i]; + + dtransposea(u,row,row, utrans); + + + for(int i = 2; i <= inp2; i++) + { + + dmulma(a, row, col, utrans, row, row, aprod); + + for(int i = 0; i < row*col; i++) + a[i] = aprod[i]; + + + double acut[row*(int)dim]; + + for(int i = 0; i < row*dim; i++) + acut[i] = a[i]; + + + + dim = drowcompa(1,acut,row,(int)dim,NULL,0,unew); + + for(int i = 0; i < row*col; i++) + u[i] = unew[i]; + + + + dmulma(u, row, row, o, row, col, otemp); + + for(int i = 0; i < row*col; i++) + o[i] = otemp[i]; + + + } + + + + for(int i = 0; i < row*col; i++) + out1[i] = o[i]; + + return dim; + +} diff --git a/src/c/matrixOperations/includes/ndgrid.h b/src/c/matrixOperations/includes/ndgrid.h new file mode 100644 index 00000000..2c6f9cfb --- /dev/null +++ b/src/c/matrixOperations/includes/ndgrid.h @@ -0,0 +1,31 @@ + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ + +#ifndef __NDGRID_H__ +#define __NDGRID_H__ +#include "types.h" +#include "doubleComplex.h" +#include "floatComplex.h" +#include "ndgrid.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void dndgrida(double* inp1, int size1, double* inp2, int size2, double* out1, double* out2); +void sndgrida(float* inp1, int size1, float* inp2, int size2, float* out1, float* out2); +void zndgrida(doubleComplex* inp1, int size1, doubleComplex* inp2, int size2, doubleComplex* out1, doubleComplex* out2); +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__NDGRID_H__*/ diff --git a/src/c/matrixOperations/interfaces/int_ndgrid.h b/src/c/matrixOperations/interfaces/int_ndgrid.h new file mode 100644 index 00000000..b7fd0a65 --- /dev/null +++ b/src/c/matrixOperations/interfaces/int_ndgrid.h @@ -0,0 +1,28 @@ + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __INT_NDGRID_H__ +#define __INT_NDGRID_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define d2d2ndgridd2d2(in1,size1,in2,size2,out1,out2) dndgrida(in1,size1[0]*size1[1],in2,size2[0]*size2[1],out1,out2) +#define s2s2ndgrids2s2(in1,size1,in2,size2,out1,out2) sndgrida(in1,size1[0]*size1[1],in2,size2[0]*size2[1],out1,out2) +#define z2z2ndgridz2z2(in1,size1,in2,size2,out1,out2) zndgrida(in1,size1[0]*size1[1],in2,size2[0]*size2[1],out1,out2) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_NDGRID_H__*/ diff --git a/src/c/matrixOperations/ndgrid/dndgrida.c b/src/c/matrixOperations/ndgrid/dndgrida.c new file mode 100644 index 00000000..d0c1ee0a --- /dev/null +++ b/src/c/matrixOperations/ndgrid/dndgrida.c @@ -0,0 +1,31 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "ndgrid.h" + +void dndgrida(double* inp1, int size1, double* inp2, int size2, double* out1, double* out2) +{ + for(int i = 0; i < size2; i++) + { + for(int j = 0; j < size1; j++) + out1[j + i*size1] = inp1[j]; + } + + for(int i = 0; i < size2; i++) + { + for(int j = 0; j < size1; j++) + out2[j + i*size1] = inp2[i]; + } +} diff --git a/src/c/matrixOperations/ndgrid/sndgrida.c b/src/c/matrixOperations/ndgrid/sndgrida.c new file mode 100644 index 00000000..355d85e9 --- /dev/null +++ b/src/c/matrixOperations/ndgrid/sndgrida.c @@ -0,0 +1,32 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "ndgrid.h" + +void sndgrida(float* inp1, int size1, float* inp2, int size2, float* out1, float* out2) +{ + for(int i = 0; i < size2; i++) + { + for(int j = 0; j < size1; j++) + out1[j + i*size1] = inp1[j]; + } + + for(int i = 0; i < size2; i++) + { + for(int j = 0; j < size1; j++) + out2[j + i*size1] = inp2[i]; + } + +} diff --git a/src/c/matrixOperations/ndgrid/zndgrida.c b/src/c/matrixOperations/ndgrid/zndgrida.c new file mode 100644 index 00000000..28360e20 --- /dev/null +++ b/src/c/matrixOperations/ndgrid/zndgrida.c @@ -0,0 +1,39 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "ndgrid.h" +#include "doubleComplex.h" + +void zndgrida(doubleComplex* inp1, int size1, doubleComplex* inp2, int size2, doubleComplex* out1, doubleComplex* out2) +{ + for(int i = 0; i < size2; i++) + { + for(int j = 0; j < size1; j++) + { + (out1[j + i*size1]) = (inp1[j]); + (out1[j + i*size1]) = (inp1[j]); + } + } + + for(int i = 0; i < size2; i++) + { + for(int j = 0; j < size1; j++) + { + (out2[j + i*size1]) = (inp2[i]); + (out2[j + i*size1]) = (inp2[i]); + } + } + +} diff --git a/src/c/specialFunctions/beta/dbetaa.c b/src/c/specialFunctions/beta/dbetaa.c new file mode 100644 index 00000000..cba98be3 --- /dev/null +++ b/src/c/specialFunctions/beta/dbetaa.c @@ -0,0 +1,22 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gamma.h" +#include "beta.h" + +void dbetaa(double* inp1,int size1, double* inp2,int size2, double* out) +{ + for(int i = 0; i<size1; i++) + out[i] = dbetas(inp1[i],inp2[i]); +} diff --git a/src/c/specialFunctions/beta/dbetas.c b/src/c/specialFunctions/beta/dbetas.c new file mode 100644 index 00000000..5ef02578 --- /dev/null +++ b/src/c/specialFunctions/beta/dbetas.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gamma.h" +#include "beta.h" + +double dbetas(double inp1, double inp2) +{ + return dgammas(inp1)*dgammas(inp2)/dgammas(inp1+inp2); +} diff --git a/src/c/specialFunctions/beta/sbetaa.c b/src/c/specialFunctions/beta/sbetaa.c new file mode 100644 index 00000000..f3fc380e --- /dev/null +++ b/src/c/specialFunctions/beta/sbetaa.c @@ -0,0 +1,22 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gamma.h" +#include "beta.h" + +void sbetaa(float* inp1,int size1, float* inp2,int size2, float* out) +{ + for(int i = 0; i<size1; i++) + out[i] = sbetas(inp1[i],inp2[i]); +} diff --git a/src/c/specialFunctions/beta/sbetas.c b/src/c/specialFunctions/beta/sbetas.c new file mode 100644 index 00000000..cbe3368b --- /dev/null +++ b/src/c/specialFunctions/beta/sbetas.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gamma.h" +#include "beta.h" + +float sbetas(float inp1, float inp2) +{ + return dgammas(inp1)*dgammas(inp2)/dgammas(inp1+inp2); +} diff --git a/src/c/specialFunctions/gamma/dgammaa.c b/src/c/specialFunctions/gamma/dgammaa.c new file mode 100644 index 00000000..e2bfadf9 --- /dev/null +++ b/src/c/specialFunctions/gamma/dgammaa.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gamma.h" + +void dgammaa(double* inp,int size,double* out) +{ + for(int i = 0; i<size; i++) + out[i] = dgammas(inp[i]); +} diff --git a/src/c/specialFunctions/gamma/dgammas.c b/src/c/specialFunctions/gamma/dgammas.c new file mode 100644 index 00000000..2dae08ce --- /dev/null +++ b/src/c/specialFunctions/gamma/dgammas.c @@ -0,0 +1,20 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gamma.h" + +double dgammas(double inp) +{ + return dfactorials(inp-1); +} diff --git a/src/c/specialFunctions/gamma/sgammaa.c b/src/c/specialFunctions/gamma/sgammaa.c new file mode 100644 index 00000000..4636e344 --- /dev/null +++ b/src/c/specialFunctions/gamma/sgammaa.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gamma.h" + +void sgammaa(float* inp,int size,float* out) +{ + for(int i = 0; i<size; i++) + out[i] = sgammas(inp[i]); +} diff --git a/src/c/specialFunctions/gamma/sgammas.c b/src/c/specialFunctions/gamma/sgammas.c new file mode 100644 index 00000000..9f2f705a --- /dev/null +++ b/src/c/specialFunctions/gamma/sgammas.c @@ -0,0 +1,20 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gamma.h" + +float sgammas(float inp) +{ + return dfactorials(inp-1); +} diff --git a/src/c/specialFunctions/gammaln/dgammalna.c b/src/c/specialFunctions/gammaln/dgammalna.c new file mode 100644 index 00000000..8a2dd54b --- /dev/null +++ b/src/c/specialFunctions/gammaln/dgammalna.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gammaln.h" + +void dgammalna(double* inp,int size,double* out) +{ + for(int i = 0; i<size; i++) + out[i] = dgammalns(inp[i]); +} diff --git a/src/c/specialFunctions/gammaln/dgammalns.c b/src/c/specialFunctions/gammaln/dgammalns.c new file mode 100644 index 00000000..1c6c2918 --- /dev/null +++ b/src/c/specialFunctions/gammaln/dgammalns.c @@ -0,0 +1,20 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gammaln.h" + +double dgammalns(double inp) +{ + return log(dgammas(inp)); +} diff --git a/src/c/specialFunctions/gammaln/sgammalna.c b/src/c/specialFunctions/gammaln/sgammalna.c new file mode 100644 index 00000000..1760ca92 --- /dev/null +++ b/src/c/specialFunctions/gammaln/sgammalna.c @@ -0,0 +1,21 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gammaln.h" + +void sgammalna(float* inp,int size,float* out) +{ + for(int i = 0; i<size; i++) + out[i] = sgammalns(inp[i]); +} diff --git a/src/c/specialFunctions/gammaln/sgammalns.c b/src/c/specialFunctions/gammaln/sgammalns.c new file mode 100644 index 00000000..af4c27fe --- /dev/null +++ b/src/c/specialFunctions/gammaln/sgammalns.c @@ -0,0 +1,20 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "factorial.h" +#include "gammaln.h" + +float sgammalns(float inp) +{ + return log(sgammas(inp)); +} diff --git a/src/c/specialFunctions/includes/beta.h b/src/c/specialFunctions/includes/beta.h new file mode 100644 index 00000000..be0caf69 --- /dev/null +++ b/src/c/specialFunctions/includes/beta.h @@ -0,0 +1,36 @@ + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __BETA_H__ +#define __BETA_H__ +#include "types.h" +#include "floatComplex.h" +#include "doubleComplex.h" +#include "uint8.h" +#include "uint16.h" +#include "int16.h" +#include "factorial.h" +#include "gamma.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dbetas(double inp1, double inp2); +float sbetas(float inp1, float inp2); +void dbetaa(double* inp1,int size1, double* inp2,int size2, double* out); +void sbetaa(float* inp1,int size1, float* inp2,int size2, float* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__BETA_H__*/ diff --git a/src/c/specialFunctions/includes/gamma.h b/src/c/specialFunctions/includes/gamma.h new file mode 100644 index 00000000..bd438b6d --- /dev/null +++ b/src/c/specialFunctions/includes/gamma.h @@ -0,0 +1,35 @@ + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __GAMMA_H__ +#define __GAMMA_H__ +#include "types.h" +#include "floatComplex.h" +#include "doubleComplex.h" +#include "uint8.h" +#include "uint16.h" +#include "int16.h" +#include "factorial.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dgammas(double inp); +float sgammas(float inp); +void dgammaa(double* inp,int size,double* out); +void sgammaa(float* inp,int size,float* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__GAMMA_H__*/ diff --git a/src/c/specialFunctions/includes/gammaln.h b/src/c/specialFunctions/includes/gammaln.h new file mode 100644 index 00000000..f3af242b --- /dev/null +++ b/src/c/specialFunctions/includes/gammaln.h @@ -0,0 +1,36 @@ + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __GAMMALN_H__ +#define __GAMMALN_H__ +#include "types.h" +#include "floatComplex.h" +#include "doubleComplex.h" +#include "uint8.h" +#include "uint16.h" +#include "int16.h" +#include "factorial.h" +#include "gamma.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dgammalns(double inp); +float sgammalns(float inp); +void dgammalna(double* inp,int size,double* out); +void sgammalna(float* inp,int size,float* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__GAMMALN_H__*/ diff --git a/src/c/specialFunctions/interfaces/int_beta.h b/src/c/specialFunctions/interfaces/int_beta.h new file mode 100644 index 00000000..4f3981ee --- /dev/null +++ b/src/c/specialFunctions/interfaces/int_beta.h @@ -0,0 +1,30 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __INT_BETA_H__ +#define __INT_BETA_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define d0d0betad0(in1, in2) dbetas(in1, in2) +#define d2d2betad2(in1, size1, in2, size2, out) dbetaa(in1,size1[0]*size1[1], in2, size2[0]*size2[1], out) +#define s0s0betas0(in1, in2) sbetas(in1, in2) +#define s2s2betas2(in1, size1, in2, size2, out) sbetaa(in1,size1[0]*size1[1], in2, size2[0]*size2[1], out) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_BETA_H__*/ diff --git a/src/c/specialFunctions/interfaces/int_gamma.h b/src/c/specialFunctions/interfaces/int_gamma.h new file mode 100644 index 00000000..b527fddc --- /dev/null +++ b/src/c/specialFunctions/interfaces/int_gamma.h @@ -0,0 +1,31 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __INT_GAMMA_H__ +#define __INT_GAMMA_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define d0gammad0(in1) dgammas(in1) +#define s0gammas0(in1) sgammas(in1) +#define d2gammad2(in1,size,out) dgammaa(in1,size[0]*size[1],out) +#define s2gammas2(in1,size,out) sgammaa(in1,size[0]*size[1],out) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_GAMMA_H__*/ diff --git a/src/c/specialFunctions/interfaces/int_gammaln.h b/src/c/specialFunctions/interfaces/int_gammaln.h new file mode 100644 index 00000000..5be29f1e --- /dev/null +++ b/src/c/specialFunctions/interfaces/int_gammaln.h @@ -0,0 +1,31 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __INT_GAMMALN_H__ +#define __INT_GAMMALN_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define d0gammalnd0(in1) dgammalns(in1) +#define s0gammalns0(in1) sgammalns(in1) +#define d2gammalnd2(in1,size,out) dgammalna(in1,size[0]*size[1],out) +#define s2gammalns2(in1,size,out) sgammalna(in1,size[0]*size[1],out) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_GAMMALN_H__*/ |