summaryrefslogtreecommitdiff
path: root/src/matrixOperations/chol/schola.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/matrixOperations/chol/schola.c')
-rw-r--r--src/matrixOperations/chol/schola.c83
1 files changed, 0 insertions, 83 deletions
diff --git a/src/matrixOperations/chol/schola.c b/src/matrixOperations/chol/schola.c
deleted file mode 100644
index 138a41cd..00000000
--- a/src/matrixOperations/chol/schola.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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
- *
- */
-
-
-#ifndef WITHOUT_LAPACK
-#include "lapack.h"
-#else
-#include "sqrt.h"
-#endif
-#include "chol.h"
-#include <malloc.h>
-#include <stdio.h>
-
-void schola(float * in, int size, float *out){
- /* param in : input matrix (square matrix)
- param size : number of rows or columns
- param U : output upper triangular matrix
- */
-
-#ifndef WITHOUT_LAPACK
-
- /*We have to use a double, copy of in,
- cause dpotrf works only with double, not with float*/
- double* tmp;
- int i=0,j=0,info=0;
-
- tmp=(double*)malloc((unsigned int)(size*size)*sizeof(double));
- for (i=0;i<size*size;i++) tmp[i]=(double)in[i];
-
- C2F(dpotrf)("U", &size, tmp, &size, &info);
-
- for (i=0;i<size*size;i++) out[i]=(float)tmp[i];
-
- free(tmp);
-
-
- /*Zeros in the lower triangular part*/
- for (i=0;i<size;i++){
- for (j=i+1;j<size;j++){
- out[j+i*size]=0;
- }
- }
-
-#else
- /* Do not use Lapack functions*/
- int i=0, j=0, k=0;
- float tmp=0, accu=0;
- printf("passe\n");
- for (i=0;i<size;i++){
- accu=0;
- for (j=0;j<i;j++){
- tmp=in[i*size+j];
- for (k=0;k<j;k++){
- tmp-=out[i*size+k]*out[j*size+k];
- }
- out[i*size+j]=tmp/out[j*size+j];
- accu+=out[i*size+j]*out[i*size+j];
- }
- out[i*size+i]=ssqrts(in[i*size+i]-accu);
- }
-
- /*Zeros in the lower triangular part*/
- for (i=0;i<size;i++){
- for (j=i+1;j<size;j++){
- out[j+i*size]=0;
- }
- }
-
-#endif
-
-}
-
-
-