From a210606cd1e59d66c621b0444d6c14927c71b381 Mon Sep 17 00:00:00 2001
From: Brijeshcr
Date: Fri, 18 Aug 2017 16:29:50 +0530
Subject: Scaling and Log2 added

---
 src/c/linearAlgebra/includes/lu.h       | 33 ++++++++++++++++++++
 src/c/linearAlgebra/interfaces/int_lu.h | 26 ++++++++++++++++
 src/c/linearAlgebra/lu/dlua.c           | 55 +++++++++++++++++++++++++++++++++
 3 files changed, 114 insertions(+)
 create mode 100644 src/c/linearAlgebra/includes/lu.h
 create mode 100644 src/c/linearAlgebra/interfaces/int_lu.h
 create mode 100644 src/c/linearAlgebra/lu/dlua.c

(limited to 'src/c/linearAlgebra')

diff --git a/src/c/linearAlgebra/includes/lu.h b/src/c/linearAlgebra/includes/lu.h
new file mode 100644
index 00000000..08f46637
--- /dev/null
+++ b/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/src/c/linearAlgebra/interfaces/int_lu.h b/src/c/linearAlgebra/interfaces/int_lu.h
new file mode 100644
index 00000000..44c258a7
--- /dev/null
+++ b/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/src/c/linearAlgebra/lu/dlua.c b/src/c/linearAlgebra/lu/dlua.c
new file mode 100644
index 00000000..d3cf6d11
--- /dev/null
+++ b/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]);
+
+
+}
+
-- 
cgit