diff options
-rw-r--r-- | src/includes/lapack.h | 3 | ||||
-rw-r--r-- | src/matrixOperations/division/Makefile.am | 15 | ||||
-rw-r--r-- | src/matrixOperations/division/Makefile.in | 94 | ||||
-rw-r--r-- | src/matrixOperations/division/crdiva.c (renamed from src/matrixOperations/division/cdiva.c) | 0 | ||||
-rw-r--r-- | src/matrixOperations/division/dldiva.c | 141 | ||||
-rw-r--r-- | src/matrixOperations/division/drdiva.c (renamed from src/matrixOperations/division/ddiva.c) | 6 | ||||
-rw-r--r-- | src/matrixOperations/division/srdiva.c (renamed from src/matrixOperations/division/sdiva.c) | 0 | ||||
-rw-r--r-- | src/matrixOperations/division/testMatrixLDivision.c | 270 | ||||
-rw-r--r-- | src/matrixOperations/division/testMatrixRDivision.c | 257 | ||||
-rw-r--r-- | src/matrixOperations/division/zrdiva.c (renamed from src/matrixOperations/division/zdiva.c) | 0 | ||||
-rw-r--r-- | src/matrixOperations/includes/matrixDivision.h | 8 |
11 files changed, 738 insertions, 56 deletions
diff --git a/src/includes/lapack.h b/src/includes/lapack.h index 8bc4744e..020b435f 100644 --- a/src/includes/lapack.h +++ b/src/includes/lapack.h @@ -83,5 +83,8 @@ extern double dgelsy_ (int* M, int* N, int* NRHS, double* A, int* LDA, double* B, int* LDB, int* JPVT, double* RCOND, int* RANK, double* WORK, int* LWORK, int* INFO) ; +extern double dlacpy_ (char* NORM, int* M, int* N, double* A, int* LDA, + double* B, int* LDB ); + #endif /* !__LAPACK_H__ */ diff --git a/src/matrixOperations/division/Makefile.am b/src/matrixOperations/division/Makefile.am index b5b50637..d17c95ec 100644 --- a/src/matrixOperations/division/Makefile.am +++ b/src/matrixOperations/division/Makefile.am @@ -20,10 +20,11 @@ pkglib_LTLIBRARIES = libMatrixDivision.la HEAD = ../includes/matrixDivision.h libMatrixDivision_la_SOURCES = $(HEAD) \ - sdiva.c \ - ddiva.c + srdiva.c \ + drdiva.c \ + dldiva.c -check_PROGRAMS = testMatrixDivision +check_PROGRAMS = testMatrixLDivision check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ $(top_builddir)/type/libFloatComplex.la \ @@ -35,8 +36,8 @@ check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ check_INCLUDES = -I $(top_builddir)/type \ -I $(top_builddir)/matrixOperations/includes -testMatrixDivision_SOURCES = testMatrixDivision.c -testMatrixDivision_LDADD = $(check_LDADD) -testMatrixDivision_CFLAGS = $(check_INCLUDES) +testMatrixLDivision_SOURCES = testMatrixLDivision.c +testMatrixLDivision_LDADD = $(check_LDADD) +testMatrixLDivision_CFLAGS = $(check_INCLUDES) -TESTS = testMatrixDivision +TESTS = testMatrixLDivision diff --git a/src/matrixOperations/division/Makefile.in b/src/matrixOperations/division/Makefile.in index 6d4a4d23..f3d456a9 100644 --- a/src/matrixOperations/division/Makefile.in +++ b/src/matrixOperations/division/Makefile.in @@ -32,8 +32,8 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -check_PROGRAMS = testMatrixDivision$(EXEEXT) -TESTS = testMatrixDivision$(EXEEXT) +check_PROGRAMS = testMatrixLDivision$(EXEEXT) +TESTS = testMatrixLDivision$(EXEEXT) subdir = matrixOperations/division DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -55,19 +55,20 @@ LTLIBRARIES = $(pkglib_LTLIBRARIES) libMatrixDivision_la_LIBADD = am__objects_1 = am_libMatrixDivision_la_OBJECTS = $(am__objects_1) \ - libMatrixDivision_la-sdiva.lo libMatrixDivision_la-ddiva.lo + libMatrixDivision_la-srdiva.lo libMatrixDivision_la-drdiva.lo \ + libMatrixDivision_la-dldiva.lo libMatrixDivision_la_OBJECTS = $(am_libMatrixDivision_la_OBJECTS) libMatrixDivision_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libMatrixDivision_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ -am_testMatrixDivision_OBJECTS = \ - testMatrixDivision-testMatrixDivision.$(OBJEXT) -testMatrixDivision_OBJECTS = $(am_testMatrixDivision_OBJECTS) -testMatrixDivision_DEPENDENCIES = $(check_LDADD) -testMatrixDivision_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +am_testMatrixLDivision_OBJECTS = \ + testMatrixLDivision-testMatrixLDivision.$(OBJEXT) +testMatrixLDivision_OBJECTS = $(am_testMatrixLDivision_OBJECTS) +testMatrixLDivision_DEPENDENCIES = $(check_LDADD) +testMatrixLDivision_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(testMatrixDivision_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(testMatrixLDivision_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes depcomp = $(SHELL) $(top_srcdir)/config/depcomp @@ -82,9 +83,9 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libMatrixDivision_la_SOURCES) \ - $(testMatrixDivision_SOURCES) + $(testMatrixLDivision_SOURCES) DIST_SOURCES = $(libMatrixDivision_la_SOURCES) \ - $(testMatrixDivision_SOURCES) + $(testMatrixLDivision_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -205,8 +206,9 @@ instdir = $(top_builddir)/lib pkglib_LTLIBRARIES = libMatrixDivision.la HEAD = ../includes/matrixDivision.h libMatrixDivision_la_SOURCES = $(HEAD) \ - sdiva.c \ - ddiva.c + srdiva.c \ + drdiva.c \ + dldiva.c check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ $(top_builddir)/type/libFloatComplex.la \ @@ -218,9 +220,9 @@ check_LDADD = $(top_builddir)/type/libDoubleComplex.la \ check_INCLUDES = -I $(top_builddir)/type \ -I $(top_builddir)/matrixOperations/includes -testMatrixDivision_SOURCES = testMatrixDivision.c -testMatrixDivision_LDADD = $(check_LDADD) -testMatrixDivision_CFLAGS = $(check_INCLUDES) +testMatrixLDivision_SOURCES = testMatrixLDivision.c +testMatrixLDivision_LDADD = $(check_LDADD) +testMatrixLDivision_CFLAGS = $(check_INCLUDES) all: all-am .SUFFIXES: @@ -290,9 +292,9 @@ clean-checkPROGRAMS: echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done -testMatrixDivision$(EXEEXT): $(testMatrixDivision_OBJECTS) $(testMatrixDivision_DEPENDENCIES) - @rm -f testMatrixDivision$(EXEEXT) - $(testMatrixDivision_LINK) $(testMatrixDivision_OBJECTS) $(testMatrixDivision_LDADD) $(LIBS) +testMatrixLDivision$(EXEEXT): $(testMatrixLDivision_OBJECTS) $(testMatrixLDivision_DEPENDENCIES) + @rm -f testMatrixLDivision$(EXEEXT) + $(testMatrixLDivision_LINK) $(testMatrixLDivision_OBJECTS) $(testMatrixLDivision_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -300,9 +302,10 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMatrixDivision_la-ddiva.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMatrixDivision_la-sdiva.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testMatrixDivision-testMatrixDivision.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMatrixDivision_la-dldiva.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMatrixDivision_la-drdiva.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMatrixDivision_la-srdiva.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testMatrixLDivision-testMatrixLDivision.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -325,33 +328,40 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -libMatrixDivision_la-sdiva.lo: sdiva.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDivision_la_CFLAGS) $(CFLAGS) -MT libMatrixDivision_la-sdiva.lo -MD -MP -MF $(DEPDIR)/libMatrixDivision_la-sdiva.Tpo -c -o libMatrixDivision_la-sdiva.lo `test -f 'sdiva.c' || echo '$(srcdir)/'`sdiva.c -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMatrixDivision_la-sdiva.Tpo $(DEPDIR)/libMatrixDivision_la-sdiva.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdiva.c' object='libMatrixDivision_la-sdiva.lo' libtool=yes @AMDEPBACKSLASH@ +libMatrixDivision_la-srdiva.lo: srdiva.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDivision_la_CFLAGS) $(CFLAGS) -MT libMatrixDivision_la-srdiva.lo -MD -MP -MF $(DEPDIR)/libMatrixDivision_la-srdiva.Tpo -c -o libMatrixDivision_la-srdiva.lo `test -f 'srdiva.c' || echo '$(srcdir)/'`srdiva.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMatrixDivision_la-srdiva.Tpo $(DEPDIR)/libMatrixDivision_la-srdiva.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='srdiva.c' object='libMatrixDivision_la-srdiva.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) $(libMatrixDivision_la_CFLAGS) $(CFLAGS) -c -o libMatrixDivision_la-sdiva.lo `test -f 'sdiva.c' || echo '$(srcdir)/'`sdiva.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDivision_la_CFLAGS) $(CFLAGS) -c -o libMatrixDivision_la-srdiva.lo `test -f 'srdiva.c' || echo '$(srcdir)/'`srdiva.c -libMatrixDivision_la-ddiva.lo: ddiva.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDivision_la_CFLAGS) $(CFLAGS) -MT libMatrixDivision_la-ddiva.lo -MD -MP -MF $(DEPDIR)/libMatrixDivision_la-ddiva.Tpo -c -o libMatrixDivision_la-ddiva.lo `test -f 'ddiva.c' || echo '$(srcdir)/'`ddiva.c -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMatrixDivision_la-ddiva.Tpo $(DEPDIR)/libMatrixDivision_la-ddiva.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ddiva.c' object='libMatrixDivision_la-ddiva.lo' libtool=yes @AMDEPBACKSLASH@ +libMatrixDivision_la-drdiva.lo: drdiva.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDivision_la_CFLAGS) $(CFLAGS) -MT libMatrixDivision_la-drdiva.lo -MD -MP -MF $(DEPDIR)/libMatrixDivision_la-drdiva.Tpo -c -o libMatrixDivision_la-drdiva.lo `test -f 'drdiva.c' || echo '$(srcdir)/'`drdiva.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMatrixDivision_la-drdiva.Tpo $(DEPDIR)/libMatrixDivision_la-drdiva.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='drdiva.c' object='libMatrixDivision_la-drdiva.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) $(libMatrixDivision_la_CFLAGS) $(CFLAGS) -c -o libMatrixDivision_la-ddiva.lo `test -f 'ddiva.c' || echo '$(srcdir)/'`ddiva.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDivision_la_CFLAGS) $(CFLAGS) -c -o libMatrixDivision_la-drdiva.lo `test -f 'drdiva.c' || echo '$(srcdir)/'`drdiva.c -testMatrixDivision-testMatrixDivision.o: testMatrixDivision.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatrixDivision_CFLAGS) $(CFLAGS) -MT testMatrixDivision-testMatrixDivision.o -MD -MP -MF $(DEPDIR)/testMatrixDivision-testMatrixDivision.Tpo -c -o testMatrixDivision-testMatrixDivision.o `test -f 'testMatrixDivision.c' || echo '$(srcdir)/'`testMatrixDivision.c -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/testMatrixDivision-testMatrixDivision.Tpo $(DEPDIR)/testMatrixDivision-testMatrixDivision.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testMatrixDivision.c' object='testMatrixDivision-testMatrixDivision.o' libtool=no @AMDEPBACKSLASH@ +libMatrixDivision_la-dldiva.lo: dldiva.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDivision_la_CFLAGS) $(CFLAGS) -MT libMatrixDivision_la-dldiva.lo -MD -MP -MF $(DEPDIR)/libMatrixDivision_la-dldiva.Tpo -c -o libMatrixDivision_la-dldiva.lo `test -f 'dldiva.c' || echo '$(srcdir)/'`dldiva.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libMatrixDivision_la-dldiva.Tpo $(DEPDIR)/libMatrixDivision_la-dldiva.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dldiva.c' object='libMatrixDivision_la-dldiva.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatrixDivision_CFLAGS) $(CFLAGS) -c -o testMatrixDivision-testMatrixDivision.o `test -f 'testMatrixDivision.c' || echo '$(srcdir)/'`testMatrixDivision.c +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDivision_la_CFLAGS) $(CFLAGS) -c -o libMatrixDivision_la-dldiva.lo `test -f 'dldiva.c' || echo '$(srcdir)/'`dldiva.c -testMatrixDivision-testMatrixDivision.obj: testMatrixDivision.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatrixDivision_CFLAGS) $(CFLAGS) -MT testMatrixDivision-testMatrixDivision.obj -MD -MP -MF $(DEPDIR)/testMatrixDivision-testMatrixDivision.Tpo -c -o testMatrixDivision-testMatrixDivision.obj `if test -f 'testMatrixDivision.c'; then $(CYGPATH_W) 'testMatrixDivision.c'; else $(CYGPATH_W) '$(srcdir)/testMatrixDivision.c'; fi` -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/testMatrixDivision-testMatrixDivision.Tpo $(DEPDIR)/testMatrixDivision-testMatrixDivision.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testMatrixDivision.c' object='testMatrixDivision-testMatrixDivision.obj' libtool=no @AMDEPBACKSLASH@ +testMatrixLDivision-testMatrixLDivision.o: testMatrixLDivision.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatrixLDivision_CFLAGS) $(CFLAGS) -MT testMatrixLDivision-testMatrixLDivision.o -MD -MP -MF $(DEPDIR)/testMatrixLDivision-testMatrixLDivision.Tpo -c -o testMatrixLDivision-testMatrixLDivision.o `test -f 'testMatrixLDivision.c' || echo '$(srcdir)/'`testMatrixLDivision.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/testMatrixLDivision-testMatrixLDivision.Tpo $(DEPDIR)/testMatrixLDivision-testMatrixLDivision.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testMatrixLDivision.c' object='testMatrixLDivision-testMatrixLDivision.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatrixDivision_CFLAGS) $(CFLAGS) -c -o testMatrixDivision-testMatrixDivision.obj `if test -f 'testMatrixDivision.c'; then $(CYGPATH_W) 'testMatrixDivision.c'; else $(CYGPATH_W) '$(srcdir)/testMatrixDivision.c'; fi` +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatrixLDivision_CFLAGS) $(CFLAGS) -c -o testMatrixLDivision-testMatrixLDivision.o `test -f 'testMatrixLDivision.c' || echo '$(srcdir)/'`testMatrixLDivision.c + +testMatrixLDivision-testMatrixLDivision.obj: testMatrixLDivision.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatrixLDivision_CFLAGS) $(CFLAGS) -MT testMatrixLDivision-testMatrixLDivision.obj -MD -MP -MF $(DEPDIR)/testMatrixLDivision-testMatrixLDivision.Tpo -c -o testMatrixLDivision-testMatrixLDivision.obj `if test -f 'testMatrixLDivision.c'; then $(CYGPATH_W) 'testMatrixLDivision.c'; else $(CYGPATH_W) '$(srcdir)/testMatrixLDivision.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/testMatrixLDivision-testMatrixLDivision.Tpo $(DEPDIR)/testMatrixLDivision-testMatrixLDivision.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testMatrixLDivision.c' object='testMatrixLDivision-testMatrixLDivision.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testMatrixLDivision_CFLAGS) $(CFLAGS) -c -o testMatrixLDivision-testMatrixLDivision.obj `if test -f 'testMatrixLDivision.c'; then $(CYGPATH_W) 'testMatrixLDivision.c'; else $(CYGPATH_W) '$(srcdir)/testMatrixLDivision.c'; fi` mostlyclean-libtool: -rm -f *.lo diff --git a/src/matrixOperations/division/cdiva.c b/src/matrixOperations/division/crdiva.c index 02f8dc49..02f8dc49 100644 --- a/src/matrixOperations/division/cdiva.c +++ b/src/matrixOperations/division/crdiva.c diff --git a/src/matrixOperations/division/dldiva.c b/src/matrixOperations/division/dldiva.c new file mode 100644 index 00000000..09374d44 --- /dev/null +++ b/src/matrixOperations/division/dldiva.c @@ -0,0 +1,141 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - 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 "matrixDivision.h" +#include "lapack.h" +#include <stdio.h> +#include <string.h> + +void dldiva ( double* in1, int lines1, int columns1 ,double* in2, int lines2, int columns2 ,double* out ){ + + int iExit = 0 ; + int info = 0 ; + int iWork = 0 ; + int tMinLinCol1 = 0 ; + int tMaxLinCol1 = 0 ; + int temp = 0 ; + int rank = 0 ; + + + int* pIpiv = NULL ; + int* pIwork = NULL; + int *pJpvt = NULL; + + char cNorm = 0; + + double rcond = 0; + double anorm = 0; + double epsilon = 0; + + double* cpyOfIn1 = NULL ; + double* modifyIn2 = NULL ; + double* pDwork = NULL ; + + +/* adaptation of the original code in scilab + iWorkMin = Max(4 * _iCols1, Max(Min(_iRows1, _iCols1) + 3 * _iRows1 + 1, + 2 * Min(_iRows1, _iCols1) + _iRows2)); +*/ + if (lines1 > columns1) + { + tMinLinCol1 = columns1 ; + tMaxLinCol1 = lines1 ; + } + else + { + tMinLinCol1 = lines1; + tMaxLinCol1 = columns1; + } + + if ( (tMinLinCol1 + 3 * lines1 + 1) > (2*tMinLinCol1 + lines2)) + temp = tMinLinCol1 + 3 * lines1 + 1; + else + temp = 2*tMinLinCol1 + lines2; + + if ( 4* columns1 > temp ) + iWork = 4* columns1 ; + else + iWork = temp ; + + pDwork = (double*)malloc(sizeof(double) * (unsigned int) iWork); + + cpyOfIn1 = (double*)malloc(sizeof(double) * (unsigned int) lines1 + * (unsigned int) columns1); + modifyIn2 = (double*)malloc(sizeof(double) * (unsigned int) tMaxLinCol1 + * (unsigned int) columns1); + + pIpiv = (int*)malloc(sizeof(int) * (unsigned int) columns1); + pIwork = (int*)malloc(sizeof(int) * (unsigned int) columns1); + pJpvt = (int*)malloc(sizeof(int) * (unsigned int) columns1); + + epsilon = getRelativeMachinePrecision() ; + + cNorm = '1'; + anorm = dlange_ (&cNorm , &lines1, &columns1, in1, &lines1, pDwork); + + if ( lines1 == columns1 ) + { + cNorm = 'F' ; + dlacpy_ ( &cNorm , &columns1 , &columns1, in1, &columns1, cpyOfIn1, + &columns1 ); + dgetrf_ (&columns1, &columns1, cpyOfIn1, &columns1, pIpiv, &info); + + if ( info == 0 ) + { + cNorm = '1' ; + dgecon_ ( &cNorm, &columns1, cpyOfIn1, &columns1, &anorm, + &rcond, pDwork, pIwork, &info); + + if ( rcond > sqrt (epsilon )) + { + cNorm = 'N' ; + dgetrs_ ( &cNorm, &columns1, &columns2, cpyOfIn1, &columns1, + pIpiv, in2, &columns1, &info); + cNorm = 'F' ; + dlacpy_ ( &cNorm, &columns1, &columns2, in2, &columns1, + out, &columns1 ); + iExit = 1 ; + + } + } + } + + + + if ( iExit == 0 ) + { + rcond = sqrt ( epsilon ) ; + cNorm = 'F' ; + dlacpy_ ( &cNorm , &lines1, &columns2, in2, &lines1, modifyIn2, &tMaxLinCol1); + memset ( pJpvt , 0x00, sizeof(int) * (unsigned int) columns1) ; + dgelsy_ ( &lines1, &columns1, &columns2, in1, &lines1 , + modifyIn2 , &tMaxLinCol1, pJpvt, &rcond, &rank, + pDwork, &iWork, &info ); + + if (info ==0 ) + { + cNorm = 'F' ; + dlacpy_ ( &cNorm, &columns1, &columns2, modifyIn2, &tMaxLinCol1, + out , &columns1 ); + + } + } + + free (pIpiv) ; + free (pIwork); + free (pJpvt); + free (cpyOfIn1 ) ; + free (modifyIn2 ) ; + free ( pDwork ) ; +} diff --git a/src/matrixOperations/division/ddiva.c b/src/matrixOperations/division/drdiva.c index e25b3524..ab2318aa 100644 --- a/src/matrixOperations/division/ddiva.c +++ b/src/matrixOperations/division/drdiva.c @@ -95,13 +95,13 @@ void drdiva ( double* in1, int lines1, int columns1 , /* case of a square matrix */ if ( lines1 == columns1 ) { - drowcata ( in1, lines1, columns1, NULL, 0 , 0 , copyOfTransIn1 ) ; + drowcata ( transpOfIn1, lines1, columns1, NULL, 0 , 0 , copyOfTransIn1 ) ; /*/ put here algo of LU fact of in1 dgetrf ( &columns1 , &columns1 , in1 , &columns1 , pIpiv , &info ) //return value in pIpiv*/ - dgetrf_ ( &columns1 , &columns1 , in1 , &columns1 , pIpiv , &info ); + dgetrf_ ( &columns1 , &columns1 ,copyOfTransIn1 , &columns1 , pIpiv , &info ); if ( info == 0 ) { @@ -115,7 +115,7 @@ void drdiva ( double* in1, int lines1, int columns1 , // put here algo to copy in2 in out */ resolveSystemLinear (&columns1, &lines2, copyOfTransIn1, pIpiv, transpOfIn2, &info) ; - dtransposea ( transpOfIn2 , columns2 , lines2 , out) ; + dtransposea ( transpOfIn2 , columns1 , lines2 , out) ; iexit = 1; } diff --git a/src/matrixOperations/division/sdiva.c b/src/matrixOperations/division/srdiva.c index f5b21eaa..f5b21eaa 100644 --- a/src/matrixOperations/division/sdiva.c +++ b/src/matrixOperations/division/srdiva.c diff --git a/src/matrixOperations/division/testMatrixLDivision.c b/src/matrixOperations/division/testMatrixLDivision.c new file mode 100644 index 00000000..ac5d57bf --- /dev/null +++ b/src/matrixOperations/division/testMatrixLDivision.c @@ -0,0 +1,270 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - 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 "matrixDivision.h" +#include <assert.h> +#include <stdio.h> + +#define LINES 20 +#define COLUMNS1 17 +#define COLUMNS2 12 +static void dldivaTest ( void ) +{ + int i = 0 ; + + double in1[] = +{0.84155184263363481,0.26385784195736051,0.52570608118548989,0.54653349192813039, + 0.62128817522898316,0.98085420625284314,0.74896081397309899,0.01432593585923314, + 0.23678414756432176,0.70614896761253476,0.27255953708663583,0.06706167431548238, + 0.43117330456152558,0.7741842647083104,0.57694048294797540,0.26086253346875310, + 0.14094856614246964, +0.40620247554033995,0.52535630855709314,0.99312098976224661,0.98854076582938433, + 0.34549844544380903,0.81870661024004221,0.94149570073932409,0.81914897728711367, + 0.70153435599058867,0.67878311965614557,0.34376550372689962,0.76511315722018480, + 0.61453847866505384,0.79220082703977823,0.39386960770934820,0.36363423336297274, + 0.67591095995157957, +0.40948254754766822,0.53762298030778766,0.64885628735646605,0.73956565884873271, + 0.70648676296696067,0.42568723810836673,0.21240556007251143,0.13049928424879909, + 0.12025266280397773,0.41329363686963916,0.20337020372971892,0.04173615900799632, + 0.92589621385559440,0.55046048713847995,0.68885837262496352,0.17466178117319942, + 0.45126775791868567, +0.87841258011758327,0.11999255046248436,0.99231909401714802,0.00371731072664261, + 0.52114724926650524,0.24615605548024178,0.57950199581682682,0.96820035576820374, + 0.82874121330678463,0.14022908732295036,0.30119446106255054,0.34382718056440353, + 0.09938172809779644,0.40850437059998512,0.97023218311369419,0.92341394722461700, + 0.75430292449891567, +0.11383596854284406,0.2256303490139544,0.05004197778180242,0.59005728596821427, + 0.28704008506610990,0.92295324662700295,0.26281475694850087,0.6561381467618048, + 0.31610729591920972,0.49523561308160424,0.27625959040597081,0.1970167332328856, + 0.42805786477401853,0.72174380579963326,0.85157642932608724,0.76051409030333161, + 0.13702143030241132, +0.19983377400785685,0.62740930821746588,0.74855065811425447,0.3096467358991504, + 0.65027950797230005,0.10007458087056875,0.43609866220504045,0.24455389659851789, + 0.53051907662302256,0.41948772873729467,0.29445307422429323,0.21228986512869596, + 0.94318309519439936,0.47685358580201864,0.33933044690638781,0.56402041297405958, + 0.66082405392080545, +0.56186607433483005,0.76084325974807143,0.41040589986369014,0.25522057106718421, + 0.08813347620889544,0.46782181179150939,0.91105451015755534,0.52831235667690635, + 0.57151748193427920,0.86262222891673446,0.57180739520117640,0.31403985014185309, + 0.03273952705785632,0.63930579042062163,0.87725317804142833,0.37970651825889945, + 0.38900542212650180, +0.58961773291230202,0.04855662025511265,0.60845263302326202,0.62518793903291225, + 0.44987633451819420,0.39504976756870747,0.80826673656702042,0.84689256362617016, + 0.04780154302716255,0.28575096465647221,0.21417701244354248,0.78216253779828548, + 0.92132670804858208,0.99638652987778187,0.11314024776220322,0.87762261740863323, + 0.70018205419182777, +0.68539796629920602,0.67239497276023030,0.85442108893766999,0.11574173765257001, + 0.72272530803456903,0.03661171020939946,0.81026530498638749,0.78766220854595304, + 0.82486197212710977,0.25121363671496511,0.68954616272822022,0.05409323470667005, + 0.94490244099870324,0.15747882844880223,0.5264128320850432,0.82174257980659604, + 0.91680057207122445, +0.89062247332185507,0.20171726960688829,0.06426467280834913,0.61170040909200907, + 0.89767962601035833,0.51753685344010592,0.25904283951967955,0.12620826158672571, + 0.5798843121156096,0.33891015965491533,0.58555728476494551,0.91902069095522165, + 0.900706990621984,0.53506936598569155,0.52973940502852201,0.67870581243187189, + 0.21228999551385641, +0.50422128057107329,0.39115739194676280,0.82790829380974174,0.67839562846347690, + 0.24278218811377883,0.83254515705630183,0.41390872886404395,0.78838609857484698, + 0.27918082987889647,0.39219759730622172,0.42041230341419578,0.46035157097503543, + 0.80943161016330123,0.21290646074339747,0.92917560925707221,0.08220098121091723, + 0.26978330826386809, +0.34936154074966908,0.83003165572881699,0.92623437754809856,0.33200952783226967, + 0.43377211131155491,0.61048321425914764,0.35999277792870998,0.34530424699187279, + 0.95451109297573566,0.46815521270036697,0.42775720171630383,0.29926850274205208, + 0.02519542910158634,0.55914506316184998,0.97654302977025509,0.25527314469218254, + 0.31998893804848194, +0.38737787725403905,0.58787201577797532,0.56672112690284848,0.02587099233642220, + 0.96770532103255391,0.18711117887869477,0.69127879338338971,0.26598573336377740, + 0.90711546363309026,0.33616027468815446,0.31845858739688993,0.00291663268581033, + 0.00196450622752309,0.43049659812822938,0.62254639761522412,0.74444567272439599, + 0.02321802498772740, +0.92228986788541079,0.48291792999953032,0.57116389367729425,0.51744682248681784, + 0.50685344357043505,0.01895748358219862,0.76568587962538004,0.97098186518996954, + 0.33601493109017611,0.53368766140192747,0.57618944440037012,0.89934705849736929, + 0.50752213317900896,0.02280548494309187,0.98225832823663950,0.22695036139339209, + 0.72654472757130861, +0.94881842611357570,0.22328650346025825,0.81601104838773608,0.39168732380494475, + 0.52329764096066356,0.84335647663101554,0.35726496530696750,0.88752476638182998, + 0.11756130633875728,0.20390639593824744,0.42549022240564227,0.83879271661862731, + 0.40760429529473186,0.57614597817882895,0.75429888023063540,0.68369307881221175, + 0.15340585587546229, +0.34353372454643250,0.84008856676518917,0.05689279362559319,0.24135384149849415, + 0.5596947595477104,0.07485948316752911,0.76933998242020607,0.20667528547346592, + 0.92537237703800201,0.15899897180497646,0.97619816288352013,0.43437494523823261, + 0.84080461412668228,0.71491303853690624,0.54547880962491035,0.93650726415216923, + 0.23552638292312622, +0.37601187312975526,0.12059959070757031,0.55959366867318749,0.50644348980858922, + 0.56173070007935166,0.85328151332214475,0.54776339093223214,0.85251609655097127, + 0.72636712575331330,0.01818151073530316,0.25189600000157952,0.77678761305287480, + 0.5017265700735152,0.93216359661892056,0.72860160330310464,0.50530174048617482, + 0.08797382796183228, +0.73409405630081892,0.28553641680628061,0.12493403162807226,0.42361020017415285, + 0.46817600261420012,0.01245901081711054,0.09622887428849936,0.67446978110820055, + 0.90094979386776686,0.40983706060796976,0.43911290075629950,0.13953176606446505, + 0.91287807654589415,0.12326993141323328,0.02525969501584768,0.25248145777732134, + 0.71059537213295698, +0.26157614728435874,0.86075146449729800,0.72792222863063216,0.28937275288626552, + 0.77945467224344611,0.18675393564626575,0.95611717319115996,0.91528743831440806, + 0.39489932497963309,0.01058345986530185,0.07593036955222487,0.11506372271105647, + 0.44357294728979468,0.28655522270128131,0.40251684701070189,0.68188397912308574, + 0.68887275597080588, +0.49934938363730907,0.84941016510128975,0.26777664758265018,0.08879321813583374, + 0.79010718129575253,0.49205840751528740,0.22074085660278797,0.02848597615957260, + 0.56551797501742840,0.19653097167611122,0.25593801774084568,0.53554199635982513, + 0.59837839566171169,0.01247995719313622,0.09831319935619831,0.28363681584596634, + 0.65953194908797741}; + + + double in2[] = +{0.18151161121204495,0.77340125897899270,0.25145971449092031,0.37096222722902894, + 0.46179189579561353,0.47909884760156274,0.66919379355385900,0.06942595774307847, + 0.56079538213089108,0.69204960623756051,0.99401472182944417,0.00291080260649323, +0.3904965976253152,0.4244190966710448,0.38433500844985247,0.30322382133454084, + 0.62512917164713144,0.28169692959636450,0.20426016021519899,0.11522095929831266, + 0.94247916433960199,0.70065794046968222,0.18287624139338732,0.30681814532727003, +0.15869047446176410,0.72621259605512023,0.43964602379128337,0.95195201179012656, + 0.70597065938636661,0.23800977831706405,0.8310431349091232,0.48626806726679206, + 0.68177247745916247,0.88706119870766997,0.30219173757359385,0.79026939114555717, +0.62407150492072105,0.70999773032963276,0.65407369285821915,0.71278580836951733, + 0.70181696489453316,0.32942054606974125,0.01221632957458496,0.76715826056897640, + 0.27342410013079643,0.69797694869339466,0.37854864448308945,0.95779503695666790, +0.63760355720296502,0.47457459988072515,0.58781063789501786,0.11923700617626309, + 0.40879997471347451,0.23067280324175954,0.48844617092981935,0.08805298106744885, + 0.20717754075303674,0.67989911558106542,0.71531985932961106,0.66892711864784360, +0.42704886104911566,0.9438692079856992,0.60208318661898375,0.50091631803661585, + 0.06362213846296072,0.21362966019660234,0.95498770754784346,0.70085612777620554, + 0.19379387702792883,0.36159398127347231,0.95241537224501371,0.29296159837394953, +0.10716815060004592,0.14596485672518611,0.04535020282492042,0.32900535268709064, + 0.06573933875188231,0.40549980429932475,0.05874312063679099,0.18791387928649783, + 0.67978375917300582,0.26739976881071925,0.47039186349138618,0.82238993747159839, +0.23822965659201145,0.07141010463237762,0.20294443331658840,0.48089468106627464, + 0.53310041315853596,0.30953712016344070,0.82584649138152599,0.20178856328129768, + 0.58836574293673038,0.07736870646476746,0.18709417246282101,0.01798455044627190, +0.94629473658278584,0.67337385797873139,0.78442738251760602,0.33036959776654840, + 0.03315818728879094,0.67629716033115983,0.29807415651157498,0.40628212550655007, + 0.93317538173869252,0.14941003406420350,0.25571879046037793,0.87107013771310449, +0.45766852516680956,0.65369247179478407,0.26375361625105143,0.63044753577560186, + 0.31578356493264437,0.97069163154810667,0.07757596764713526,0.40966569539159536, + 0.55091228801757097,0.32018390577286482,0.44350660685449839,0.31810243334621191, +0.89644787041470408,0.19968961318954825,0.43832763982936740,0.21171907847747207, + 0.37858232436701655,0.54417965700849891,0.58460923237726092,0.17695645010098815, + 0.80405469564720988,0.20260545751079917,0.72340781940147281,0.57244732743129134, +0.44384705275297165,0.60141251794993877,0.86648589745163918,0.44860231317579746, + 0.46195234358310699,0.02047479711472988,0.75287136062979698,0.33129312284290791, + 0.10744897276163101,0.44988587312400341,0.87619100883603096,0.57386581040918827, +0.80895681912079453,0.18993748771026731,0.37921421090140939,0.59145097108557820, + 0.62873698258772492,0.89413649635389447,0.05172297963872552,0.05184767069295049, + 0.74039250845089555,0.77075743721798062,0.03733208635821939,0.34920182498171926, +0.68317985069006681,0.25839814636856318,0.76687160786241293,0.68067426700145006, + 0.28785153012722731,0.34903638903051615,0.59586250688880682,0.41492417920380831, + 0.56103316973894835,0.24352242145687342,0.42934664245694876,0.7067297669127584, +0.03401931514963508,0.09878737432882190,0.60066213225945830,0.07392961112782359, + 0.3292048736475408,0.11053651524707675,0.38337053125724196,0.72212355909869075, + 0.76611549546942115,0.21261148853227496,0.31572330510243773,0.35992007283493876, +0.23805456422269344,0.06199027225375175,0.78567356057465076,0.94336947053670883, + 0.47192330472171307,0.20233777537941933,0.49002202786505222,0.07746253907680511, + 0.78306589089334011,0.10992341861128807,0.36824773438274860,0.40523112565279007, +0.94920115964487195,0.04034968325868249,0.73871155502274632,0.12863306934013963, + 0.33537696348503232,0.13046909729018807,0.52727950783446431,0.58558783913031220, + 0.14388314681127667,0.69814807781949639,0.14587742509320378,0.61408105725422502, +0.21827886346727610,0.74001471605151892,0.55442603398114443,0.20190807711333036, + 0.55530697200447321,0.85739529784768820,0.06889454741030931,0.37079446297138929, + 0.16471924725919962,0.41509064938873053,0.67683792579919100,0.65240467619150877, +0.61546878470107913,0.61626600986346602,0.99291495559737086,0.19693034281954169, + 0.11960808141157031,0.63780163740739226,0.88430777518078685,0.21161167463287711, + 0.31774142337962985,0.50298188393935561,0.52619793592020869,0.02951709320768714, +0.83135433867573738,0.6583583448082209,0.97574284672737122,0.89286901615560055, + 0.76139996573328972,0.40711227245628834,0.71912937611341476,0.19032685272395611, + 0.50265956297516823,0.75116067565977573,0.400362566113472,0.56688958965241909} +; + + double result[] = +{-1.35304848520861487,0.45754085729476712,-0.6736280871889024,0.33207797896852592, + 0.43686665386108053,1.19699150804728482,-0.53382978138054371,0.29027772826683890, + -0.00827371705993142,-0.14056593966637726,0.97528495242825564,-0.50640321961329704, +-1.02292396789679763,0.14683824772822532,0.07187827219700703,0.26493234152584039, + 0.19039952557132572,0.55480813680166574,0.39823783903528059,0.10487653718583664, + -0.01169765032881238,-0.12935543309398898,0.91373948525086457,-0.42095065668914605, +-0.19349758378824730,-0.02882981029864774,-0.22391869192699457,-0.15720068678475169, + -0.07066729236062046,-0.22778476192919797,-0.07232798550562215,0.25736303036550690, + 0.46282933263406362,-0.30812642599955187,-0.13899968979779151,-0.29110054036689564, +-1.03603776312515605,0.41831226411022665,-0.26815455630947649,0.32749202801394556, + 0.71958381253175108,0.50743495139986494,-0.77843454048260496,-0.65128619093814355, + 0.45389989732032809,0.25340453725266349,-0.22487431273588654,-0.69327413947497007, +1.23257217178938916,-0.20500752874670841,1.17935058240805546,-0.07005924340124725, + 0.02202972751083646,-0.74349480264981749,0.78826180830363013,0.00378475165255014, + 0.20312102001296634,0.76317680003707100,-1.2444586343524908,0.61835799875331021, +0.82435969088956451,0.14161838805165022,0.54413699368884894,-0.35024810526933553, + 0.10736628125177422,-0.30342706713796774,0.16551618468279145,-0.33044241080800685, + 0.26090949768379634,0.36311977822561886,-0.02216943459020578,0.28290526888357609, +0.60758986375566237,-0.17769508155988095,-0.37428738263361294,0.06973138803028064, + -0.26917609149376737,0.57488494776039478,-0.16182837448139925,-0.54589681560051329, + 0.35855708857331126,-0.06225155630035748,-0.01420478239284544,-0.51044946988565809, +0.30247332250465692,-0.58709398545244817,0.52755056373610110,-0.87395680874726944, + -0.25878588799924235,-0.14016351767195534,0.26932123245105705,0.18741971186875042, + -0.10443218008098379,-0.04666556894424437,-0.28998246181099013,0.39888953797173432, +0.29894996645459254,0.44648385188893014,-0.2747623990687768,0.12767005544410789, + 0.31187612680253268,0.93787911555703019,-0.69506239058785912,0.05675543905552551, + -0.38364317006532606,0.3015716880761152,0.60874303825197718,-0.02132168933396992, +0.28919354677500908,0.08791044194229901,-0.66719204004654808,-0.38892391716572344, + -0.35074795512020418,0.52079480741130679,-0.12341534994946383,0.10603293453188402, + 0.13292792440340936,-0.03924161719101939,0.50135087079896590,0.13741552942080246, +0.38584460158392103,-1.05581700070645756,1.33305654920496308,-0.4661197871120432, + -0.29411616444505956,-2.27258047015748854,0.15783833704105082,-0.52713266629484568, + 1.16440529465468257,-0.45001368365485012,-2.15999736051125257,1.01319717905315843, +0.29660053528020919,-0.30427398541498984,-0.12504282968902436,0.25589579382097077, + -0.08693274594974670,-0.03498727188829748,0.07574429063044799,0.24558509581470137, + -0.11120224069858284,-0.21580250756805028,-0.02724340730221109,-0.16362172134690667, +0.39424507332817937,0.26915663350224511,-0.48616892178714571,0.06722217755862435, + -0.30789732141190385,0.93830157987553686,0.36043785223845126,0.42644383761017990, + -0.13641385018671429,-0.30094945006660034,1.13850388440322159,-0.12250602188987858, +-0.66991170773376507,-0.33568935537136302,0.34616388717968199,0.16394571168478128, + 0.11497788571365419,-1.12355992799920523,0.90321218371657097,0.51843407168999134, + -0.5333460102169536,0.19508185891564755,-0.24491167665302710,0.43625522780082732, +0.52362419925864290,0.35626701996484733,0.07409894473807596,0.6687300563276672, + 0.02130172947699538,0.07525160898747016,0.33548314852403621,0.36350170853544833, + -0.43456386741360986,0.30564069254711729,0.60413672598431878,0.62344267157598554, +-0.55671778762503188,0.51384740986051547,-0.66364280764764905,0.20946393028509858, + 0.21734134196942456,1.01080770232414596,-0.81218225821401002,-0.14076620249135630, + 0.32963958497594853,-0.23647842638263297,0.58596014599473090,-0.68150457913031526, +0.52872556238983059,0.57098625620273025,1.06212082783082407,0.59423966432136910, + 0.34731906030365728,-1.35636228486699051,0.60027136476023302,-0.01921912593105047, + -0.26023872041264290,0.60546432820947238,-0.64774098495099597,1.07329929083653908} +; + + double out [(COLUMNS2)*(LINES)] ; + + dldiva ( in1 , LINES , COLUMNS1 , in2 , LINES , COLUMNS2 , out ) ; + for ( i = 0 ; i < LINES *COLUMNS2 ; i++ ) + { + printf ( "\n %d out : %e result : %e assert : %e \n" , i , out[i] , result[i] , fabs ( out[i] - result[i] ) / fabs( out[i]) ) ; + + assert ( fabs ( out[i] - result[i] ) / fabs( out[i]) < 1e-15 ) ; + } + +} + + +static int testLDiva (void) { + + printf("\n>>>> Float real Tests\n"); + /*sdivaTest();*/ + printf("\n>>>> Double real Tests\n"); + dldivaTest(); + return 0; +} + + +int main(void) { + assert(testLDiva() == 0); + return 0; +} diff --git a/src/matrixOperations/division/testMatrixRDivision.c b/src/matrixOperations/division/testMatrixRDivision.c new file mode 100644 index 00000000..3be29088 --- /dev/null +++ b/src/matrixOperations/division/testMatrixRDivision.c @@ -0,0 +1,257 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - 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 "matrixDivision.h" +#include <assert.h> +#include <stdio.h> + +#define LINES1 2 +#define LINES2 2 +#define COLUMNS 2 +/* +static void sdivaTest ( void ) +{ + int i = 0 ; + + float in1[] = + {0.51323400903493166f,0.6807207581587136f,0.54669387824833393f,0.24904179340228438f, + 0.95017496403306723f,0.91187966475263238f,0.78931419923901558f,0.30985609395429492f, + 0.71984737459570169f,0.9819172923453152f,0.76060794852674007f,0.504620002117008f, + 0.06844846438616514f,0.1693508871831f,0.76318027824163437f,0.30514528928324580f, + 0.92679917532950640f,0.04813073994591832f,0.93056132830679417f,0.31760499393567443f, +0.20109100220724940f,0.75775502342730761f,0.15586951794102788f,0.59756303764879704f, + 0.93055095290765166f,0.94091763999313116f,0.42790159443393350f,0.01439402624964714f, + 0.85971397114917636f,0.11901073250919580f,0.59864782588556409f,0.15444914810359478f, + 0.44080717256292701f,0.09636751096695662f,0.47461007768288255f,0.42803008854389191f, + 0.92924218205735087f,0.47864412236958742f,0.44434435339644551f,0.52509398944675922f, +0.78608208894729614f,0.46497652260586619f,0.06789979804307222f,0.24485790403559804f, + 0.71605867333710194f,0.99458031123504043f,0.84305586572736502f,0.45727639505639672f, + 0.29075053706765175f,0.55482550663873553f,0.28596154693514109f,0.07587631093338132f, + 0.66903266869485378f,0.32733985921368f,0.90166416298598051f,0.83553476119413972f, + 0.80835641175508499f,0.73590047238394618f,0.83198319096118212f,0.93355408729985356f, +0.78650354826822877f,0.74095427244901657f,0.95994638977572322f,0.51785656530410051f, + 0.78444739105179906f,0.13383972086012363f,0.43243235861882567f,0.74689115490764380f, + 0.96420694747939706f,0.22162469848990440f,0.41627834690734744f,0.81930211279541254f, + 0.21618453459814191f,0.08386900834739208f,0.48852836480364203f,0.20842899661511183f, + 0.22902313107624650f,0.78962677717208862f,0.25109061924740672f,0.57858273852616549f, +0.69515300076454878f,0.48902340466156602f,0.47249071300029755f,0.59868981270119548f, + 0.75798543263226748f,0.80475882859900594f,0.61186199076473713f,0.6943939602933824f, + 0.10014689620584249f,0.01250550756230950f,0.47080435231328011f,0.58039451343938708f, + 0.95630660001188517f,0.32801365898922086f,0.27026554010808468f,0.52016736706718802f, + 0.16067446302622557f,0.04408275568857789f,0.88035558909177780f,0.92851745663210750f, +0.42481321236118674f,0.73924016486853361f,0.16896168375387788f,0.39154956489801407f, + 0.97163037536665797f,0.88981838244944811f,0.90427244128659368f,0.31537816859781742f, + 0.06473635649308562f,0.58296835329383612f,0.14059370616450906f,0.63762421533465385f, + 0.67373040271922946f,0.44792105350643396f,0.60066422121599317f,0.06632651202380657f, + 0.66453591873869300f,0.19733488839119673f,0.45683057839050889f,0.08710412681102753f, +0.34466254524886608f,0.09304937114939094f,0.06055234652012587f,0.10790407890453935f, + 0.15703585743904114f,0.72192603675648570f,0.34105927217751741f,0.62482782872393727f, + 0.68893781490623951f,0.03671516245231032f,0.98292266484349966f,0.73650254914537072f, + 0.13196587935090065f,0.18807678623124957f,0.43376339320093393f,0.47929613338783383f, + 0.15195304714143276f,0.18539744755253196f,0.92726647388190031f,0.80549291754141450f, +0.64977857517078519f,0.70831089280545712f,0.90016864379867911f,0.51403949689120054f, + 0.49954565847292542f,0.55090149492025375f,0.92046913085505366f,0.74058383423835039f, + 0.82662396552041173f,0.3313873652368784f,0.68757036840543151f,0.06999884452670813f, + 0.41287241736426950f,0.04925781115889549f,0.85545881045982242f,0.31712341401726007f, + 0.03992868261411786f,0.92384314350783825f,0.74299975624307990f,0.00424729567021132f, +0.01225362811237574f,0.3223448325879872f,0.93296645395457745f,0.08063758304342628f, + 0.74957344215363264f,0.82469086581841111f,0.35314525663852692f,0.44088636664673686f, + 0.79343967605382204f,0.06321920128539205f,0.87087013013660908f,0.05352633958682418f, + 0.47160778101533651f,0.38195306668058038f,0.04547535255551338f,0.02313599688932300f, + 0.63996278587728739f,0.36444053100422025f,0.37049167416989803f,0.76907502254471183f, +0.89965870184823871f,0.89933154825121164f,0.64569224463775754f,0.34696785174310207f, + 0.39040711661800742f,0.08694788347929716f,0.22625351930037141f,0.21681279689073563f, + 0.33453882811591029f,0.15584628004580736f,0.95653126062825322f,0.83982629515230656f, + 0.50479181623086333f,0.54758223798125982f,0.83060362795367837f,0.21214072033762932f, + 0.02860224200412631f,0.95791505370289087f,0.91556971566751599f,0.94719038717448711f, +0.30791273340582848f,0.81771020544692874f,0.74679336044937372f,0.87552759842947125f, + 0.49545058421790600f,0.48191254725679755f,0.39087839704006910f,0.88425681227818131f, + 0.54299664497375488f,0.20552197424694896f,0.31019500363618135f,0.57183724315837026f, + 0.54999292083084583f,0.12055991357192397f,0.26517685409635305f,0.29529260704293847f, + 0.95132300630211830f,0.57458581728860736f,0.71528563741594553f,0.91191364871338010f, +0.18359116325154901f,0.45608301833271980f,0.17441136343404651f,0.18253823462873697f, + 0.77341705607250333f,0.01534702442586422f,0.27907355269417167f,0.94600243400782347f, + 0.39083331311121583f,0.35583620518445969f,0.58566563902422786f,0.44004907924681902f, + 0.79277362348511815f,0.96740394271910191f,0.06400812184438109f,0.07406814303249121f, + 0.03709788480773568f,0.85063817724585533f,0.10404936922714114f,0.12005183193832636f, +0.52963322307914495f,0.42104291776195168f,0.92252827808260918f,0.17444357229396701f, + 0.34813721571117640f,0.98178615467622876f,0.51038642041385174f,0.35229418566450477f, + 0.33187932055443525f,0.12522496515884995f,0.17751775681972504f,0.30953403143212199f, + 0.30514361429959536f,0.69633625121787190f,0.58739017136394978f,0.95729830628260970f, + 0.78135449346154928f,0.41670671710744500f,0.55824907496571541f,0.17518991930410266f, +0.11329598492011428f,0.87877958174794912f,0.81112976977601647f,0.1327551044523716f, + 0.88772260351106524f,0.77383322361856699f,0.39891980635002255f,0.42609489522874355f, + 0.29346287390217185f,0.29799025785177946f,0.62878308678045869f,0.90327445417642593f, + 0.88942573545500636f,0.11638559121638536f,0.92788035096600652f,0.30957929231226444f, + 0.2565767071209848f,0.42655616905540228f,0.26941573480144143f,0.65786541625857353f, +0.98608913458883762f,0.04273471748456359f,0.26294819917529821f,0.66961710015311837f, + 0.19781696423888206f,0.62439860356971622f,0.25354105327278376f,0.55396229820325971f, + 0.92479544691741467f,0.09095242014154792f,0.63873832207173109f,0.97996837133541703f, + 0.67638632655143738f,0.89037371007725596f,0.41085386741906404f,0.07612052233889699f, + 0.31289586611092091f,0.62697393959388137f,0.15661530848592520f,0.28013094374909997f}; + +float in2[] = + {0.56034345272928476f,0.89566554129123688f,0.53930272068828344f,0.3547350224107504f, + 0.80800013709813356f,0.62323769554495811f,0.58200186025351286f,0.56180121190845966f, + 0.23549679014831781f,0.28873602300882339f,0.43252215441316366f,0.7673156540840864f, + 0.06873596925288439f,0.18797885254025459f,0.86748637538403273f,0.73920361138880253f, + 0.97392784897238016f,0.86080306768417358f,0.39093428757041693f,0.57339327596127987f, +0.16198171628639102f,0.66783405328169465f,0.1454864419065416f,0.32747871475294232f, + 0.51621831534430385f,0.79978153714910150f,0.09275748720392585f,0.14153907122090459f, + 0.06119967205449939f,0.32070356840267777f,0.73968251561746001f,0.37837028549984097f, + 0.56752133695408702f,0.11224916437640786f,0.28770424565300345f,0.00037088664248586f, + 0.79149663401767612f,0.58377730334177613f,0.59390504425391555f,0.02694623963907361f, +0.76592414453625679f,0.02564378362149000f,0.74512455798685551f,0.02366107050329447f, + 0.06156063079833984f,0.04258572962135077f,0.63941287063062191f,0.38405111897736788f, + 0.14321060106158257f,0.42103306483477354f,0.05339348502457142f,0.93415357265621424f, + 0.59929492324590683f,0.66478141304105520f,0.14329732768237591f,0.42867958266288042f, + 0.10990926995873451f,0.63394964020699263f,0.05351450480520725f,0.54702291730791330f, +0.69746216991916299f,0.03159578284248710f,0.25769635709002614f,0.59392183972522616f, + 0.01609914982691407f,0.86753786867484450f,0.32879876391962171f,0.22861831961199641f, + 0.33929981896653771f,0.75886590173467994f,0.61312689306214452f,0.48855357570573688f, + 0.10645245248451829f,0.14542592084035277f,0.18745915638282895f,0.87820987729355693f, + 0.92918653646484017f,0.92348486324772239f,0.39261205168440938f,0.68466226710006595f, +0.08946218248456717f,0.42732305638492107f,0.77090662438422441f,0.924068246036768f, + 0.50982708018273115f,0.34508761204779148f,0.10317245963960886f,0.63696919381618500f, + 0.88041578140109777f,0.65034613572061062f,0.80938913393765688f,0.9986613355576992f, + 0.38141551148146391f,0.43060396797955036f,0.61948752496391535f,0.80996788293123245f, + 0.05324298795312643f,0.29668187908828259f,0.00448737759143114f,0.82276185229420662f, +0.19805425917729735f,0.10866974340751767f,0.99788628844544291f,0.6723356381990016f, + 0.46966064115986228f,0.79823006363585591f,0.67132972134277225f,0.35570297623053193f, + 0.52579802041873336f,0.25843874411657453f,0.19287035940214992f,0.59324032673612237f, + 0.25955950608476996f,0.61404782952740788f,0.21750316722318530f,0.81994143361225724f, + 0.19624035572633147f,0.8358787004835904f,0.42109713284298778f,0.31491625169292092f, +0.25988535769283772f,0.76794129703193903f,0.84549946337938309f,0.48446214850991964f, + 0.52822500281035900f,0.37241784948855639f,0.85067357495427132f,0.16846220474690199f, + 0.71482414938509464f,0.78300847951322794f,0.54156896471977234f,0.89239248540252447f, + 0.00643130205571651f,0.21658254135400057f,0.44520513340830803f,0.32618630956858397f, + 0.52326664514839649f,0.32250450644642115f,0.26230763643980026f,0.23438148852437735f, +0.50999558391049504f,0.37397424085065722f,0.64668390387669206f,0.64172910666093230f, + 0.03306737588718534f,0.18668571440503001f,0.83025926211848855f,0.99121205648407340f, + 0.38945918949320912f,0.27384403301402926f,0.41589357936754823f,0.99599931901320815f, + 0.81049045221880078f,0.96830060658976436f,0.40803860733285546f,0.52525822212919593f, + 0.33058117749169469f,0.23706211848184466f,0.17479355866089463f,0.62723324215039611f, +0.16741782892495394f,0.15187738463282585f,0.72003478836268187f,0.59474316425621510f, + 0.71126131806522608f,0.50548844784498215f,0.43874060269445181f,0.84671537391841412f, + 0.46396317798644304f,0.84823036566376686f,0.28646126668900251f,0.48104315437376499f, + 0.26604998949915171f,0.66378767788410187f,0.63686545100063086f,0.79531485401093960f, + 0.95694970060139894f,0.70720722898840904f,0.83713256847113371f,0.62996550090610981f, +0.34009417472407222f,0.72199993440881371f,0.67456434061750770f,0.10675506712868810f, + 0.79017778439447284f,0.34282173449173570f,0.58765271818265319f,0.07389529095962644f, + 0.16408033994957805f,0.12704358855262399f,0.51104495069012046f,0.07703803153708577f, + 0.12485344661399722f,0.51966900611296296f,0.49762418633326888f,0.77279568510130048f, + 0.95798523304983974f,0.22388020763173699f,0.83013197174295783f,0.04275623383000493f}; + + +float result[] = +{-0.13425098694507090f,0.24735018618193444f,-0.13997367470679392f,0.11987585715392905f, + -0.07023550140255914f,-0.32818483956327921f,0.82293845909628660f,-0.04825208923032670f, + 0.41107043821212774f,0.28834120500378574f, +0.26097631689267364f,0.41112922481604613f,-0.48704150701173060f,0.16756167892414930f, + 0.18525816194433214f,0.24194769618197037f,0.04516579999951376f,0.08210988946198612f, + -0.17724539433971653f,0.21570365259908197f, +0.46476238563747729f,0.12929328091152756f,0.03791742144738922f,0.33232469296313982f, + -0.14531956716307623f,-0.04355937726216118f,-0.32871318476723438f,0.16208735115250936f, + 0.27759742819012267f,0.20883772519304408f, +0.60589399320385928f,0.06028369176400562f,0.33610957414517950f,-0.32741653379843827f, + 0.32006732568590329f,0.12357809346654614f,0.26645037101516444f,-0.15778041923768410f, + -0.02281069075548223f,-0.21831876232917027f, +0.11316162639341981f,0.44869069077875356f,0.05087241573803265f,-0.07310286041500898f, + 0.24172631454502305f,0.20582249789901347f,-0.49030030296647070f,0.49725834464740676f, + -0.15098926456955386f,0.29845287904710704f, +0.26126025652717821f,0.61602266860724408f,-0.04395376298763495f,-0.31468851985942192f, + -0.42610430769336133f,0.07619666627024707f,0.42141080474076514f,0.34732212135875368f, + 0.21966932936729675f,-0.16465486570712187f, +0.01801836442044520f,0.13867951307716378f,-0.22823955222461578f,0.35528257041935002f, + 0.3416886047495104f,-0.05324845913867078f,-0.18334602929956423f,0.34486570917896908f, + -0.09850219178062529f,0.15717539967151753f, +0.26027320955453370f,0.24744146889140337f,-0.164185466873868f,-0.18897859269730288f, + -0.10286928200189474f,0.54800666111794050f,0.32097861553203794f,0.16617893447929227f, + -0.03433269255504845f,-0.01421332288783149f, +-0.24887241840873561f,0.52303584234440914f,0.02976416459895397f,-0.12264750867737524f, + 0.30087087321455463f,0.28120264259279731f,-0.02981261204955734f,-0.05832040687613257f, + 0.09480786369785668f,0.26640553810556677f, +0.28112837735944118f,0.53844297257991636f,0.87478164836631844f,-0.1409682347398108f, + 0.66145942836153393f,-0.26119505204825816f,-0.34297154024663806f,-0.24798246038042729f, + -0.30432340939641339f,0.37887301625026215f, +0.38327878821721156f,0.28922881585078497f,-0.34742629642806333f,-0.03677194909448467f, + -0.04829379940842784f,0.06878313210496664f,0.04495930782786764f,0.47892284040726463f, + 0.32833980213443120f,-0.23534654463679133f, +-0.02763634740677747f,0.72078725530634646f,0.48763002329592203f,-0.57876872035917137f, + 0.23063708055466298f,0.04745273757978258f,-0.28751023415434818f,0.138229588096174f, + 0.36392895348902060f,-0.15741181362164816f, +0.13480297497174423f,-0.06082319210597478f,-0.03346206227374363f,0.157369564795072f, + -0.09939329142432089f,0.50801256096451919f,-0.21552055455365590f,0.18726599728475304f, + -0.09981549922929681f,0.56837678961938298f, +0.51101691288362061f,0.72117205689181529f,0.47311124338037619f,-0.59816447223287172f, + 0.56148184747810326f,0.06803537921378118f,-0.12236345370998958f,-0.2366952577209536f, + -0.10560524465448745f,-0.03700000431544657f, +-0.07318875604760167f,0.49681103126620946f,0.16658812117729807f,0.19247716660649325f, + 0.17479922937365650f,0.20305642078183334f,-0.11893261285117168f,0.52167729786941019f, + -0.26590601210923126f,-0.17052720242327102f}; + +float out[(COLUMNS)*(LINES2)] ; + + printf("\n>rentre dans fonction \n"); + srdiva ( in1 , LINES1 , COLUMNS , in2 , LINES2 , COLUMNS , out ) ; + printf("\n\n\t>>>>>debut assert\n"); + for ( i = 0 ; i < LINES2 *COLUMNS ; i++ ) + { + printf ( "\n %d out : %e result : %e\n" , i , out[i] , result[i] ) ; + assert ( fabs ( out[i] - result[i] ) / fabs( out[i]) < 1e-6 ) ; + } + +} + + + + +*/ + + +/* +static void ddivaTest ( void ) +{ + int i = 0 ; + + double in1[] = { 4 , 8 , 3 , 9 } ; + double in2[] = { 1 , 2 , 3 , 4 } ; + double result[] = { 4 , 0 , 7.5 ,-1.5 }; + double out [(COLUMNS)*(LINES2)] ; + + drdiva ( in1 , LINES1 , COLUMNS , in2 , LINES2 , COLUMNS , out ) ; + printf("\n\n\t>>>>>debut assert\n"); + for ( i = 0 ; i < LINES2 *COLUMNS ; i++ ) + { + printf ( "\n %d out : %e result : %e assert : %e \n" , i , out[i] , result[i] , fabs ( out[i] - result[i] ) / fabs( out[i]) ) ; + + assert ( fabs ( out[i] - result[i] ) / fabs( out[i]) < 100000000 ) ; + } + +} +*/ + + +static int testDiva (void) { + + printf("\n>>>> Float real Tests\n"); + /*sdivaTest();*/ + printf("\n>>>> Double real Tests\n"); + ddivaTest(); + return 0; +} + + +int main(void) { + assert(testDiva() == 0); + return 0; +} diff --git a/src/matrixOperations/division/zdiva.c b/src/matrixOperations/division/zrdiva.c index c1b56179..c1b56179 100644 --- a/src/matrixOperations/division/zdiva.c +++ b/src/matrixOperations/division/zrdiva.c diff --git a/src/matrixOperations/includes/matrixDivision.h b/src/matrixOperations/includes/matrixDivision.h index 6fcddb90..199863c7 100644 --- a/src/matrixOperations/includes/matrixDivision.h +++ b/src/matrixOperations/includes/matrixDivision.h @@ -33,12 +33,12 @@ void drdiva ( double* in1, int lines1, int columns1 , double* in2, int lines2, int columns2 , double* out ); -/* -void dldiva ( double * in1, int it1, - double * in2, int it2, - double * out, int itOut, int size) ; +void dldiva ( double* in1, int lines1, int columns1 , + double* in2, int lines2, int columns2 , + double* out ); +/* void crdiva ( floatComplex * in1, int it1, |