diff options
author | simon | 2009-08-24 10:01:41 +0000 |
---|---|---|
committer | simon | 2009-08-24 10:01:41 +0000 |
commit | c3c4d2540b7fd98af420da94dc9979d5c522cd02 (patch) | |
tree | 39c57d84b5f65f8fcd54c382229ed1eb9b6de361 /src | |
parent | a2c6ed14519f019b157eac1aac66d9528dd9208a (diff) | |
download | scilab2c-c3c4d2540b7fd98af420da94dc9979d5c522cd02.tar.gz scilab2c-c3c4d2540b7fd98af420da94dc9979d5c522cd02.tar.bz2 scilab2c-c3c4d2540b7fd98af420da94dc9979d5c522cd02.zip |
added mixed type function for matrix multiplication
updated the header
Diffstat (limited to 'src')
-rw-r--r-- | src/c/operations/includes/multiplication.h | 10 | ||||
-rw-r--r-- | src/c/operations/multiplication/Makefile.am | 3 | ||||
-rw-r--r-- | src/c/operations/multiplication/Makefile.in | 2 | ||||
-rw-r--r-- | src/c/operations/multiplication/cmulcsv.c | 25 | ||||
-rw-r--r-- | src/c/operations/multiplication/cmulscv.c | 25 | ||||
-rw-r--r-- | src/c/operations/multiplication/zmuldzv.c | 25 | ||||
-rw-r--r-- | src/c/operations/multiplication/zmulzdv.c | 25 |
7 files changed, 114 insertions, 1 deletions
diff --git a/src/c/operations/includes/multiplication.h b/src/c/operations/includes/multiplication.h index 7eb32231..3f664c79 100644 --- a/src/c/operations/includes/multiplication.h +++ b/src/c/operations/includes/multiplication.h @@ -105,6 +105,11 @@ EXTERN_OPERATIONS void cmula(floatComplex *in1, floatComplex *in2, int size, flo */ EXTERN_OPERATIONS floatComplex cmulv(floatComplex *in1, floatComplex *in2, int size2); +EXTERN_OPERATIONS floatComplex cmulcsv(floatComplex *in1, float *in2, int size2); + +EXTERN_OPERATIONS floatComplex cmulscv(float *in1, floatComplex *in2, int size2); + + /* ** \brief Compute a multiplication with double complex. ** \param in1 : input double complex. @@ -123,7 +128,7 @@ EXTERN_OPERATIONS doubleComplex zmuls(doubleComplex in1, doubleComplex in2); EXTERN_OPERATIONS void zmula(doubleComplex *in1, doubleComplex *in2, int size, doubleComplex *out); /* -** \brief Compute a multiplication for floats. +** \brief Compute a multiplication for double. ** \param in1 : input array. ** \param in2 : input array. ** \param size : size of in2 array. @@ -131,6 +136,9 @@ EXTERN_OPERATIONS void zmula(doubleComplex *in1, doubleComplex *in2, int size, d */ EXTERN_OPERATIONS doubleComplex zmulv(doubleComplex *in1, doubleComplex *in2, int size2); +EXTERN_OPERATIONS doubleComplex zmulzdv(doubleComplex *in1, double *in2, int size2); + +EXTERN_OPERATIONS doubleComplex zmuldzv(double *in1, doubleComplex *in2, int size2); /* ** \function ctimess ** \brief Multiply 2 Complex numbers. diff --git a/src/c/operations/multiplication/Makefile.am b/src/c/operations/multiplication/Makefile.am index 764663c5..5030ccad 100644 --- a/src/c/operations/multiplication/Makefile.am +++ b/src/c/operations/multiplication/Makefile.am @@ -11,6 +11,7 @@ ## libMultiplication_la_CFLAGS = -I $(top_builddir)/src/c/type \ + -I $(top_builddir)/src/c/matrixOperations/includes \ -I $(top_builddir)/src/c/operations/includes instdir = $(top_builddir)/lib @@ -33,10 +34,12 @@ libMultiplication_la_SOURCES = $(HEAD) \ cmulv.c \ zmulv.c + check_PROGRAMS = testMultiplication check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \ $(top_builddir)/src/c/type/libFloatComplex.la \ + $(top_builddir)/src/c/matrixOperations/libZeros.la \ $(top_builddir)/src/c/operations/addition/libAddition.la \ libMultiplication.la diff --git a/src/c/operations/multiplication/Makefile.in b/src/c/operations/multiplication/Makefile.in index 13987ad1..f2175e9e 100644 --- a/src/c/operations/multiplication/Makefile.in +++ b/src/c/operations/multiplication/Makefile.in @@ -214,6 +214,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ libMultiplication_la_CFLAGS = -I $(top_builddir)/src/c/type \ + -I $(top_builddir)/src/c/matrixOperations/includes \ -I $(top_builddir)/src/c/operations/includes instdir = $(top_builddir)/lib @@ -235,6 +236,7 @@ libMultiplication_la_SOURCES = $(HEAD) \ check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \ $(top_builddir)/src/c/type/libFloatComplex.la \ + $(top_builddir)/src/c/matrixOperations/libZeros.la \ $(top_builddir)/src/c/operations/addition/libAddition.la \ libMultiplication.la diff --git a/src/c/operations/multiplication/cmulcsv.c b/src/c/operations/multiplication/cmulcsv.c new file mode 100644 index 00000000..1d17bb95 --- /dev/null +++ b/src/c/operations/multiplication/cmulcsv.c @@ -0,0 +1,25 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2009 - INRIA - Allan SIMON + * + * 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 + * + */ + + +#include <malloc.h> +#include "zeros.h" +#include "multiplication.h" + +floatComplex cmulcsv (floatComplex* in1, float* in2, int size) + { + float* ZEROS; + ZEROS=malloc((unsigned int)(size)*sizeof(float)); + szerosa(ZEROS,size , 1); + + return cmulv(in1, FloatComplexMatrix(in2,ZEROS,size), size ); + } diff --git a/src/c/operations/multiplication/cmulscv.c b/src/c/operations/multiplication/cmulscv.c new file mode 100644 index 00000000..0c739afd --- /dev/null +++ b/src/c/operations/multiplication/cmulscv.c @@ -0,0 +1,25 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2009 - INRIA - Allan SIMON + * + * 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 + * + */ + + +#include <malloc.h> +#include "zeros.h" +#include "multiplication.h" + +floatComplex cmulscv (float* in1, floatComplex* in2, int size) + { + float* ZEROS; + ZEROS=malloc((unsigned int)(size*sizeof(float))); + szerosa(ZEROS,size , 1); + + return cmulv(FloatComplexMatrix(in1,ZEROS,size), in2 , size ); + } diff --git a/src/c/operations/multiplication/zmuldzv.c b/src/c/operations/multiplication/zmuldzv.c new file mode 100644 index 00000000..f25d3b9b --- /dev/null +++ b/src/c/operations/multiplication/zmuldzv.c @@ -0,0 +1,25 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2009 - INRIA - Allan SIMON + * + * 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 + * + */ + + +#include <malloc.h> +#include "zeros.h" +#include "multiplication.h" + +doubleComplex zmuldzv (double* in1, doubleComplex* in2, int size) + { + double* ZEROS; + ZEROS=malloc((unsigned int)(size*sizeof(double))); + dzerosa(ZEROS,size , 1); + + return zmulv(DoubleComplexMatrix(in1,ZEROS,size), in2 , size ); + } diff --git a/src/c/operations/multiplication/zmulzdv.c b/src/c/operations/multiplication/zmulzdv.c new file mode 100644 index 00000000..3e498ca7 --- /dev/null +++ b/src/c/operations/multiplication/zmulzdv.c @@ -0,0 +1,25 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2009 - INRIA - Allan SIMON + * + * 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 + * + */ + + +#include <malloc.h> +#include "zeros.h" +#include "multiplication.h" + +doubleComplex zmulzdv (doubleComplex* in1, double* in2, int size) + { + double* ZEROS; + ZEROS=malloc((unsigned int)(size*sizeof(double))); + dzerosa(ZEROS,size , 1); + + return zmulv(in1, DoubleComplexMatrix(in2,ZEROS,size), size ); + } |