diff options
Diffstat (limited to '2.3-1/src/c/linearAlgebra')
-rw-r--r-- | 2.3-1/src/c/linearAlgebra/includes/lu.h | 33 | ||||
-rw-r--r-- | 2.3-1/src/c/linearAlgebra/interfaces/int_lu.h | 26 | ||||
-rw-r--r-- | 2.3-1/src/c/linearAlgebra/lu/dlua.c | 55 |
3 files changed, 114 insertions, 0 deletions
diff --git a/2.3-1/src/c/linearAlgebra/includes/lu.h b/2.3-1/src/c/linearAlgebra/includes/lu.h new file mode 100644 index 00000000..08f46637 --- /dev/null +++ b/2.3-1/src/c/linearAlgebra/includes/lu.h @@ -0,0 +1,33 @@ + /* 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 __LU_H__ +#define __LU_H__ +#include "types.h" +#include "doubleComplex.h" +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "lapack.h" +#include "string.h" +#include "matrixTranspose.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void dlua(double*inp1, int size, double* out1, double* out2); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__LU_H__*/ diff --git a/2.3-1/src/c/linearAlgebra/interfaces/int_lu.h b/2.3-1/src/c/linearAlgebra/interfaces/int_lu.h new file mode 100644 index 00000000..44c258a7 --- /dev/null +++ b/2.3-1/src/c/linearAlgebra/interfaces/int_lu.h @@ -0,0 +1,26 @@ + /* 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_LU_H__ +#define __INT_LU_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define d2lud2d2(in1,size1, out1,out2) dlua(in1,size1[0]*size1[1],out1,out2) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_LU_H__*/ diff --git a/2.3-1/src/c/linearAlgebra/lu/dlua.c b/2.3-1/src/c/linearAlgebra/lu/dlua.c new file mode 100644 index 00000000..d3cf6d11 --- /dev/null +++ b/2.3-1/src/c/linearAlgebra/lu/dlua.c @@ -0,0 +1,55 @@ +/* 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 <stdlib.h> +#include <math.h> +#include "lu.h" +#include "lapack.h" +#include "string.h" +#include "matrixTranspose.h" + +extern double dgetrf_ (int* , int* , double* , int* , int* , int* ); + +void dlua(double*inp1, int size, double* out1, double* out2) +{ + char TRANS = 'N'; + int INFO=3; + int LDA = 3; + int LDB = 3; + int N = 3; + int NRHS = 1; + int IPIV[2] ; + + /*double A[9] = + { + 1, 2, 3, + 2, 3, 4, + 3, 4, 1 + };*/ + + //void LAPACK_dgetrf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda, lapack_int* ipiv, lapack_int *info ); +// dgetrf_(&N,&N,inp1,&LDA,IPIV,&INFO); + + dgetrf_(6,2,inp1,6,IPIV,&INFO); + + // checks INFO, if INFO != 0 something goes wrong, for more information see the MAN page of dgetrf. + for(int i = 0; i < 3*3; i++) + printf("%lf \n ", inp1[i]); + + printf("PIVOTTTTTT \n "); + + for(int i = 0; i < 2; i++) + printf("%d \n ", IPIV[i]); + + +} + |