summaryrefslogtreecommitdiff
path: root/src/operations/multiplication
diff options
context:
space:
mode:
authortorset2008-11-14 09:57:38 +0000
committertorset2008-11-14 09:57:38 +0000
commitb3243ed109386db9353265e5b6252a318f631ac1 (patch)
tree9f0fa5b241f42e5d4abb21472f796438b9901eab /src/operations/multiplication
parent9daca3350c8869dbfca27d00e47ba7904afca142 (diff)
downloadscilab2c-b3243ed109386db9353265e5b6252a318f631ac1.tar.gz
scilab2c-b3243ed109386db9353265e5b6252a318f631ac1.tar.bz2
scilab2c-b3243ed109386db9353265e5b6252a318f631ac1.zip
added multiplication element by element (2nd send)
Diffstat (limited to 'src/operations/multiplication')
-rw-r--r--src/operations/multiplication/Makefile.am8
-rw-r--r--src/operations/multiplication/Makefile.in76
-rw-r--r--src/operations/multiplication/testMultiplication.c160
3 files changed, 229 insertions, 15 deletions
diff --git a/src/operations/multiplication/Makefile.am b/src/operations/multiplication/Makefile.am
index f1b36d76..30ceba9d 100644
--- a/src/operations/multiplication/Makefile.am
+++ b/src/operations/multiplication/Makefile.am
@@ -20,6 +20,14 @@ pkglib_LTLIBRARIES = libMultiplication.la
HEAD = ../includes/multiplication.h
libMultiplication_la_SOURCES = $(HEAD) \
+ smuls.c \
+ dmuls.c \
+ cmuls.c \
+ zmuls.c \
+ smula.c \
+ dmula.c \
+ cmula.c \
+ zmula.c \
ctimess.c \
ztimess.c
diff --git a/src/operations/multiplication/Makefile.in b/src/operations/multiplication/Makefile.in
index 8113d659..30ac9341 100644
--- a/src/operations/multiplication/Makefile.in
+++ b/src/operations/multiplication/Makefile.in
@@ -55,6 +55,10 @@ LTLIBRARIES = $(pkglib_LTLIBRARIES)
libMultiplication_la_LIBADD =
am__objects_1 =
am_libMultiplication_la_OBJECTS = $(am__objects_1) \
+ libMultiplication_la-smuls.lo libMultiplication_la-dmuls.lo \
+ libMultiplication_la-cmuls.lo libMultiplication_la-zmuls.lo \
+ libMultiplication_la-smula.lo libMultiplication_la-dmula.lo \
+ libMultiplication_la-cmula.lo libMultiplication_la-zmula.lo \
libMultiplication_la-ctimess.lo \
libMultiplication_la-ztimess.lo
libMultiplication_la_OBJECTS = $(am_libMultiplication_la_OBJECTS)
@@ -206,6 +210,14 @@ instdir = $(top_builddir)/lib
pkglib_LTLIBRARIES = libMultiplication.la
HEAD = ../includes/multiplication.h
libMultiplication_la_SOURCES = $(HEAD) \
+ smuls.c \
+ dmuls.c \
+ cmuls.c \
+ zmuls.c \
+ smula.c \
+ dmula.c \
+ cmula.c \
+ zmula.c \
ctimess.c \
ztimess.c
@@ -298,7 +310,15 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMultiplication_la-cmula.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMultiplication_la-cmuls.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMultiplication_la-ctimess.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMultiplication_la-dmula.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMultiplication_la-dmuls.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMultiplication_la-smula.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMultiplication_la-smuls.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMultiplication_la-zmula.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMultiplication_la-zmuls.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMultiplication_la-ztimess.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testMultiplication-testMultiplication.Po@am__quote@
@@ -323,6 +343,62 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+libMultiplication_la-smuls.lo: smuls.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -MT libMultiplication_la-smuls.lo -MD -MP -MF $(DEPDIR)/libMultiplication_la-smuls.Tpo -c -o libMultiplication_la-smuls.lo `test -f 'smuls.c' || echo '$(srcdir)/'`smuls.c
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMultiplication_la-smuls.Tpo $(DEPDIR)/libMultiplication_la-smuls.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smuls.c' object='libMultiplication_la-smuls.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -c -o libMultiplication_la-smuls.lo `test -f 'smuls.c' || echo '$(srcdir)/'`smuls.c
+
+libMultiplication_la-dmuls.lo: dmuls.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -MT libMultiplication_la-dmuls.lo -MD -MP -MF $(DEPDIR)/libMultiplication_la-dmuls.Tpo -c -o libMultiplication_la-dmuls.lo `test -f 'dmuls.c' || echo '$(srcdir)/'`dmuls.c
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMultiplication_la-dmuls.Tpo $(DEPDIR)/libMultiplication_la-dmuls.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dmuls.c' object='libMultiplication_la-dmuls.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -c -o libMultiplication_la-dmuls.lo `test -f 'dmuls.c' || echo '$(srcdir)/'`dmuls.c
+
+libMultiplication_la-cmuls.lo: cmuls.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -MT libMultiplication_la-cmuls.lo -MD -MP -MF $(DEPDIR)/libMultiplication_la-cmuls.Tpo -c -o libMultiplication_la-cmuls.lo `test -f 'cmuls.c' || echo '$(srcdir)/'`cmuls.c
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMultiplication_la-cmuls.Tpo $(DEPDIR)/libMultiplication_la-cmuls.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmuls.c' object='libMultiplication_la-cmuls.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -c -o libMultiplication_la-cmuls.lo `test -f 'cmuls.c' || echo '$(srcdir)/'`cmuls.c
+
+libMultiplication_la-zmuls.lo: zmuls.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -MT libMultiplication_la-zmuls.lo -MD -MP -MF $(DEPDIR)/libMultiplication_la-zmuls.Tpo -c -o libMultiplication_la-zmuls.lo `test -f 'zmuls.c' || echo '$(srcdir)/'`zmuls.c
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMultiplication_la-zmuls.Tpo $(DEPDIR)/libMultiplication_la-zmuls.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zmuls.c' object='libMultiplication_la-zmuls.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -c -o libMultiplication_la-zmuls.lo `test -f 'zmuls.c' || echo '$(srcdir)/'`zmuls.c
+
+libMultiplication_la-smula.lo: smula.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -MT libMultiplication_la-smula.lo -MD -MP -MF $(DEPDIR)/libMultiplication_la-smula.Tpo -c -o libMultiplication_la-smula.lo `test -f 'smula.c' || echo '$(srcdir)/'`smula.c
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMultiplication_la-smula.Tpo $(DEPDIR)/libMultiplication_la-smula.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smula.c' object='libMultiplication_la-smula.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -c -o libMultiplication_la-smula.lo `test -f 'smula.c' || echo '$(srcdir)/'`smula.c
+
+libMultiplication_la-dmula.lo: dmula.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -MT libMultiplication_la-dmula.lo -MD -MP -MF $(DEPDIR)/libMultiplication_la-dmula.Tpo -c -o libMultiplication_la-dmula.lo `test -f 'dmula.c' || echo '$(srcdir)/'`dmula.c
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMultiplication_la-dmula.Tpo $(DEPDIR)/libMultiplication_la-dmula.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dmula.c' object='libMultiplication_la-dmula.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -c -o libMultiplication_la-dmula.lo `test -f 'dmula.c' || echo '$(srcdir)/'`dmula.c
+
+libMultiplication_la-cmula.lo: cmula.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -MT libMultiplication_la-cmula.lo -MD -MP -MF $(DEPDIR)/libMultiplication_la-cmula.Tpo -c -o libMultiplication_la-cmula.lo `test -f 'cmula.c' || echo '$(srcdir)/'`cmula.c
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMultiplication_la-cmula.Tpo $(DEPDIR)/libMultiplication_la-cmula.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmula.c' object='libMultiplication_la-cmula.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -c -o libMultiplication_la-cmula.lo `test -f 'cmula.c' || echo '$(srcdir)/'`cmula.c
+
+libMultiplication_la-zmula.lo: zmula.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -MT libMultiplication_la-zmula.lo -MD -MP -MF $(DEPDIR)/libMultiplication_la-zmula.Tpo -c -o libMultiplication_la-zmula.lo `test -f 'zmula.c' || echo '$(srcdir)/'`zmula.c
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMultiplication_la-zmula.Tpo $(DEPDIR)/libMultiplication_la-zmula.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zmula.c' object='libMultiplication_la-zmula.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -c -o libMultiplication_la-zmula.lo `test -f 'zmula.c' || echo '$(srcdir)/'`zmula.c
+
libMultiplication_la-ctimess.lo: ctimess.c
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMultiplication_la_CFLAGS) $(CFLAGS) -MT libMultiplication_la-ctimess.lo -MD -MP -MF $(DEPDIR)/libMultiplication_la-ctimess.Tpo -c -o libMultiplication_la-ctimess.lo `test -f 'ctimess.c' || echo '$(srcdir)/'`ctimess.c
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMultiplication_la-ctimess.Tpo $(DEPDIR)/libMultiplication_la-ctimess.Plo
diff --git a/src/operations/multiplication/testMultiplication.c b/src/operations/multiplication/testMultiplication.c
index 38c43438..63417fbc 100644
--- a/src/operations/multiplication/testMultiplication.c
+++ b/src/operations/multiplication/testMultiplication.c
@@ -15,10 +15,8 @@
#include <math.h>
#include "multiplication.h"
-#define SIZE 10000000
-/*
-#define LOCAL_DEBUG
-*/
+#define SIZE 1
+
static void ztimessTest(void) {
doubleComplex M1;
doubleComplex M2;
@@ -32,11 +30,7 @@ static void ztimessTest(void) {
M2 = DoubleComplex((double) rand(), (double) rand());
M1_by_M2 = ztimess(M1, M2);
-#ifdef LOCAL_DEBUG
- /*ATTENTION à modifier (c'est du copier coller de testDivision)
- printf("erreurR = %e\n", fabs(zreals(M1_by_M2) - zreals(num)/zreals(den) )/fabs(zreals(M1_by_M2)));
- printf("erreurI = %e\n", fabs(zimags(M1_by_M2) - zimags(num)/zreals(den) )/fabs(zimags(M1_by_M2)));*/
-#endif
+
if (zreals(M1_by_M2)<1e-14 && (zreals(M1)*zreals(M2) - zimags(M1)*zimags(M2)) < 1e-18 )
assert(1);
else
@@ -62,11 +56,7 @@ static void ctimessTest(void) {
M2 = FloatComplex((float) rand(), (float) rand());
M1_by_M2 = ctimess(M1, M2);
-#ifdef LOCAL_DEBUG
- /*ATTENTION à modifier (c'est du copier coller de testDivision)
- printf("erreurR = %e\n", creals(M1_by_M2) - (creals(num)/creals(den))/creals(M1_by_M2));
- printf("erreurI = %e\n", cimags(M1_by_M2) - (cimags(num)/creals(den))/cimags(M1_by_M2));*/
-#endif
+
if (creals(M1_by_M2)<1e-14 && (creals(M1)*creals(M2) - cimags(M1)*cimags(M2)) < 1e-18 )
assert(1);
else
@@ -80,10 +70,150 @@ static void ctimessTest(void) {
}
-static int testMult(void) {
+static void smulsTest(void){
+ float M1=0;
+ float M2=0;
+ int i=0;
+ srand(1);
+ for (i=0;i<20;i++){
+ M1=(float)rand();
+ M2=(float)rand();
+ printf(" %f * %f = %f\n",M1,M2,smuls(M1,M2));
+ }
+}
+
+
+static void dmulsTest(void){
+ double M1=0;
+ double M2=0;
+ int i=0;
+ srand(1);
+ for (i=0;i<20;i++){
+ M1=(double)rand();
+ M2=(double)rand();
+ printf(" %f * %f = %f\n",M1,M2,dmuls(M1,M2));
+ }
+}
+
+
+static void cmulsTest(void){
+ floatComplex M1;
+ floatComplex M2;
+
+
+ int i=0;
+ srand(1);
+ for (i=0;i<20;i++){
+ M1=FloatComplex((float)rand(),(float)rand());
+ M2=FloatComplex((float)rand(),(float)rand());
+ printf(" (%f + %f * %%i ) * (%f + %f * %%i) = %f +%f * %%i\n",creals(M1),cimags(M1),creals(M2),cimags(M2),creals(cmuls(M1,M2)),cimags(cmuls(M1,M2)));
+ }
+}
+
+
+static void zmulsTest(void){
+ doubleComplex M1;
+ doubleComplex M2;
+
+ int i=0;
+ srand(1);
+ for (i=0;i<20;i++){
+ M1=DoubleComplex((double)rand(),(double)rand());
+ M2=DoubleComplex((double)rand(),(double)rand());
+ printf(" (%f + %f * %%i ) * (%f + %f * %%i) = %f +%f * %%i\n",zreals(M1),zimags(M1),zreals(M2),zimags(M2),zreals(zmuls(M1,M2)),zimags(zmuls(M1,M2)));
+ }
+}
+
+
+static void smulaTest(void){
+ float M1[20]={0};
+ float M2[20]={0};
+ float MRes[20]={0};
+ int i=0;
+ srand(1);
+ for (i=0;i<20;i++){
+ M1[i]=(float)rand();
+ M2[i]=(float)rand();
+ }
+ smula(M1,20,M2,20,MRes);
+ for (i=0;i<20;i++){
+ printf(" %f * %f = %f\n",M1[i],M2[i],MRes[i]);
+ }
+}
+
+
+static void dmulaTest(void){
+ double M1[20]={0};
+ double M2[20]={0};
+ double MRes[20]={0};
+ int i=0;
+ srand(1);
+ for (i=0;i<20;i++){
+ M1[i]=(double)rand();
+ M2[i]=(double)rand();
+ }
+ dmula(M1,20,M2,20,MRes);
+ for (i=0;i<20;i++){
+ printf(" %f * %f = %f\n",M1[i],M2[i],MRes[i]);
+ }
+}
+
+
+static void cmulaTest(void){
+ floatComplex M1[20];
+ floatComplex M2[20];
+ floatComplex MRes[20];
+ int i=0;
+
+ srand(1);
+ for (i=0;i<20;i++){
+ M1[i] = FloatComplex((float)rand(),(float)rand());
+ M2[i] = FloatComplex((float)rand(),(float)rand());
+ }
+ cmula(M1,20,M2,20,MRes);
+ for (i=0;i<20;i++){
+ printf(" (%f + %f * %%i ) * (%f + %f * %%i) = %f +%f * %%i\n",creals(M1[i]),cimags(M1[i]),creals(M2[i]),cimags(M2[i]),creals(MRes[i]),cimags(MRes[i]));
+ }
+}
+
+
+static void zmulaTest(void){
+ doubleComplex M1[20];
+ doubleComplex M2[20];
+ doubleComplex MRes[20];
+ int i=0;
+
+ srand(1);
+ for (i=0;i<20;i++){
+ M1[i] = DoubleComplex((double)rand(),(double)rand());
+ M2[i] = DoubleComplex((double)rand(),(double)rand());
+ }
+ zmula(M1,20,M2,20,MRes);
+ for (i=0;i<20;i++){
+ printf(" (%f + %f * %%i ) * (%f + %f * %%i) = %f +%f * %%i\n",zreals(M1[i]),zimags(M1[i]),zreals(M2[i]),zimags(M2[i]),zreals(MRes[i]),zimags(MRes[i]));
+ }
+}
+static int testMult(void) {
ztimessTest();
ctimessTest();
+ printf(">>> Tests SMulS <<<\n");
+ smulsTest();
+ printf(">>> Tests DMulS <<<\n");
+ dmulsTest();
+ printf(">>> Tests CMulS <<<\n");
+ cmulsTest();
+ printf(">>> Tests ZMulS <<<\n");
+ zmulsTest();
+ printf(">>> Tests SMulA <<<\n");
+ smulaTest();
+ printf(">>> Tests DMulA <<<\n");
+ dmulaTest();
+ printf(">>> Tests CMulA <<<\n");
+ cmulaTest();
+ printf(">>> Tests ZMulA <<<\n");
+ zmulaTest();
+
return 0;
}