summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/matrixOperations/includes/matrixTrace.h8
-rw-r--r--src/matrixOperations/trace/ctracea.c5
-rw-r--r--src/matrixOperations/trace/dtracea.c8
-rw-r--r--src/matrixOperations/trace/stracea.c8
-rw-r--r--src/matrixOperations/trace/testMatrixTrace.c8
-rw-r--r--src/matrixOperations/trace/ztracea.c4
6 files changed, 21 insertions, 20 deletions
diff --git a/src/matrixOperations/includes/matrixTrace.h b/src/matrixOperations/includes/matrixTrace.h
index b63ae180..cdab74d1 100644
--- a/src/matrixOperations/includes/matrixTrace.h
+++ b/src/matrixOperations/includes/matrixTrace.h
@@ -31,7 +31,7 @@
** \param out : float scalar containing the trace.
*/
-void stracea ( float* in ,int lines, float* out ) ;
+float stracea ( float* in ,int lines ) ;
/*
@@ -40,7 +40,7 @@ void stracea ( float* in ,int lines, float* out ) ;
** \param lines : number of lines
** \param out : double scalar containing the trace.
*/
-void dtracea ( double* in ,int lines, double* out ) ;
+double dtracea ( double* in ,int lines ) ;
/*
** \brief Compute the trace of a float complex matrix.
@@ -48,7 +48,7 @@ void dtracea ( double* in ,int lines, double* out ) ;
** \param lines : number of lines
** \param out : float complex containing the trace.
*/
-void ctracea ( floatComplex* in ,int lines, floatComplex* out ) ;
+floatComplex ctracea ( floatComplex* in ,int lines ) ;
/*
@@ -57,6 +57,6 @@ void ctracea ( floatComplex* in ,int lines, floatComplex* out ) ;
** \param lines : number of lines
** \param out : double complex containing the trace.
*/
-void ztracea ( doubleComplex* in ,int lines, doubleComplex* out ) ;
+doubleComplex ztracea ( doubleComplex* in ,int lines ) ;
#endif /* !__MATRICXTRACE_H__ */
diff --git a/src/matrixOperations/trace/ctracea.c b/src/matrixOperations/trace/ctracea.c
index 28829cb5..75b0921e 100644
--- a/src/matrixOperations/trace/ctracea.c
+++ b/src/matrixOperations/trace/ctracea.c
@@ -12,7 +12,7 @@
#include "matrixTrace.h"
-void ctracea ( floatComplex* in ,int lines, floatComplex* out ){
+floatComplex ctracea ( floatComplex* in ,int lines ){
int i = 0 ;
@@ -25,7 +25,8 @@ void ctracea ( floatComplex* in ,int lines, floatComplex* out ){
iout += cimags (in[i*lines + i] ) ;
}
- *out = FloatComplex ( rout , iout ) ;
+ return FloatComplex ( rout , iout ) ;
+
}
diff --git a/src/matrixOperations/trace/dtracea.c b/src/matrixOperations/trace/dtracea.c
index 330064b1..4938776b 100644
--- a/src/matrixOperations/trace/dtracea.c
+++ b/src/matrixOperations/trace/dtracea.c
@@ -12,16 +12,16 @@
#include "matrixTrace.h"
-void dtracea ( double* in ,int lines, double* out ){
+double dtracea ( double* in ,int lines){
int i = 0 ;
- *out = 0 ;
+ double out = 0 ;
for ( i = 0 ; i < lines ; ++i)
- *out += in[i*lines + i] ;
-
+ out += in[i*lines + i] ;
+ return out;
}
diff --git a/src/matrixOperations/trace/stracea.c b/src/matrixOperations/trace/stracea.c
index b35a82c9..06c4a8be 100644
--- a/src/matrixOperations/trace/stracea.c
+++ b/src/matrixOperations/trace/stracea.c
@@ -12,16 +12,16 @@
#include "matrixTrace.h"
-void stracea ( float* in ,int lines, float* out ){
+float stracea ( float* in ,int lines ){
int i = 0 ;
- *out = 0 ;
+ float out = 0 ;
for ( i = 0 ; i < lines ; ++i)
- *out += in[i*lines + i] ;
-
+ out += in[i*lines + i] ;
+ return out;
}
diff --git a/src/matrixOperations/trace/testMatrixTrace.c b/src/matrixOperations/trace/testMatrixTrace.c
index 1cc25c7d..0cbea97b 100644
--- a/src/matrixOperations/trace/testMatrixTrace.c
+++ b/src/matrixOperations/trace/testMatrixTrace.c
@@ -56,7 +56,7 @@ static void straceaTest ( void ) {
float out = 0.0f ;
- stracea ( in , LINES , &out ) ;
+ out = stracea ( in , LINES ) ;
assert(fabsf(out - Result) / fabsf( out )< 1e-07);
@@ -101,7 +101,7 @@ static void dtraceaTest ( void ) {
double out = 0 ;
- dtracea ( in , LINES , &out ) ;
+ out = dtracea ( in , LINES ) ;
assert(fabs(out - Result) / fabs( out )< 1e-16);
}
@@ -152,7 +152,7 @@ static void ctraceaTest ( void ) {
for ( i = 0 ; i < LINES*LINES ; i++ )
in[i] = FloatComplex ( tin[i] , tin[i] ) ;
- ctracea ( in , LINES , &out ) ;
+ out = ctracea ( in , LINES ) ;
assert ( fabs( creals(out) - creals (Result) )/ fabs (creals (out)) < 1e-07 );
assert ( fabs( cimags(out) - cimags (Result) )/ fabs (cimags (out)) < 1e-07 );
@@ -210,7 +210,7 @@ static void ztraceaTest ( void ) {
for ( i = 0 ; i < LINES*LINES ; i++ )
in[i] = DoubleComplex ( tin[i] , tin[i] ) ;
- ztracea ( in , LINES , &out ) ;
+ out = ztracea ( in , LINES ) ;
assert ( fabs( zreals(out) - zreals (Result) )/ fabs (zreals (out)) < 1e-16 );
assert ( fabs( zimags(out) - zimags (Result) )/ fabs (zimags (out)) < 1e-16 );
diff --git a/src/matrixOperations/trace/ztracea.c b/src/matrixOperations/trace/ztracea.c
index 57f136ca..12154f40 100644
--- a/src/matrixOperations/trace/ztracea.c
+++ b/src/matrixOperations/trace/ztracea.c
@@ -12,7 +12,7 @@
#include "matrixTrace.h"
-void ztracea ( doubleComplex* in ,int lines, doubleComplex* out ){
+doubleComplex ztracea ( doubleComplex* in ,int lines ){
int i = 0 ;
@@ -25,7 +25,7 @@ void ztracea ( doubleComplex* in ,int lines, doubleComplex* out ){
iout += zimags (in[i*lines + i] ) ;
}
- *out = DoubleComplex ( rout , iout ) ;
+ return DoubleComplex ( rout , iout ) ;
}