summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsimon2009-08-24 10:01:41 +0000
committersimon2009-08-24 10:01:41 +0000
commitc3c4d2540b7fd98af420da94dc9979d5c522cd02 (patch)
tree39c57d84b5f65f8fcd54c382229ed1eb9b6de361 /src
parenta2c6ed14519f019b157eac1aac66d9528dd9208a (diff)
downloadscilab2c-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.h10
-rw-r--r--src/c/operations/multiplication/Makefile.am3
-rw-r--r--src/c/operations/multiplication/Makefile.in2
-rw-r--r--src/c/operations/multiplication/cmulcsv.c25
-rw-r--r--src/c/operations/multiplication/cmulscv.c25
-rw-r--r--src/c/operations/multiplication/zmuldzv.c25
-rw-r--r--src/c/operations/multiplication/zmulzdv.c25
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 );
+ }