diff options
author | Ankit Raj | 2017-06-21 10:26:59 +0530 |
---|---|---|
committer | Ankit Raj | 2017-06-21 10:26:59 +0530 |
commit | 958577cac90a99124cd673fde1926781d966d91f (patch) | |
tree | 134d9fe7f5b97a647cb055bb7b4c21820a749f49 /src/c/matrixOperations/determ | |
download | Scilab2C_fossee_old-958577cac90a99124cd673fde1926781d966d91f.tar.gz Scilab2C_fossee_old-958577cac90a99124cd673fde1926781d966d91f.tar.bz2 Scilab2C_fossee_old-958577cac90a99124cd673fde1926781d966d91f.zip |
Updated Scilab2C
Diffstat (limited to 'src/c/matrixOperations/determ')
18 files changed, 3171 insertions, 0 deletions
diff --git a/src/c/matrixOperations/determ/Makefile.am b/src/c/matrixOperations/determ/Makefile.am new file mode 100644 index 0000000..5cef228 --- /dev/null +++ b/src/c/matrixOperations/determ/Makefile.am @@ -0,0 +1,64 @@ +## +## Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +## Copyright (C) 2006-2008 - INRIA - Bruno JOFRET +## +## 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 +## +## + +libMatrixDeterm_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 + +pkglib_LTLIBRARIES = libMatrixDeterm.la + +HEAD = ../includes/determ.h + +libMatrixDeterm_la_SOURCES = $(HEAD) \ + sdeterma.c \ + ddeterma.c \ + cdeterma.c \ + zdeterma.c + + +############ +## CHECK +############ + + +check_PROGRAMS = testDoubleDeterm testFloatDeterm + +check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \ + $(top_builddir)/src/c/type/libFloatComplex.la \ + $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \ + $(top_builddir)/src/c/operations/addition/libAddition.la \ + $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \ + $(top_builddir)/src/c/operations/division/libDivision.la \ + $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \ + $(top_builddir)/src/fortran/lapack/libscilapack.la \ + libMatrixDeterm.la + +check_INCLUDES = -I $(top_builddir)/src/c/type \ + -I $(top_builddir)/src/c/matrixOperations/includes \ + -I $(top_builddir)/src/c/elementaryFunctions/includes + +testDoubleDeterm_SOURCES = testDoubleDeterm.c +testDoubleDeterm_LDADD = $(check_LDADD) +testDoubleDeterm_CFLAGS = $(check_INCLUDES) + +testFloatDeterm_SOURCES = testFloatDeterm.c +testFloatDeterm_LDADD = $(check_LDADD) +testFloatDeterm_CFLAGS = $(check_INCLUDES) + +TESTS = testDoubleDeterm testFloatDeterm + + + + diff --git a/src/c/matrixOperations/determ/Makefile.in b/src/c/matrixOperations/determ/Makefile.in new file mode 100644 index 0000000..d3d6f51 --- /dev/null +++ b/src/c/matrixOperations/determ/Makefile.in @@ -0,0 +1,750 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +check_PROGRAMS = testDoubleDeterm$(EXEEXT) testFloatDeterm$(EXEEXT) +TESTS = testDoubleDeterm$(EXEEXT) testFloatDeterm$(EXEEXT) +subdir = src/c/matrixOperations/determ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/includes/machine.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(pkglibdir)" +LTLIBRARIES = $(pkglib_LTLIBRARIES) +libMatrixDeterm_la_LIBADD = +am__objects_1 = +am_libMatrixDeterm_la_OBJECTS = $(am__objects_1) \ + libMatrixDeterm_la-sdeterma.lo libMatrixDeterm_la-ddeterma.lo \ + libMatrixDeterm_la-cdeterma.lo libMatrixDeterm_la-zdeterma.lo +libMatrixDeterm_la_OBJECTS = $(am_libMatrixDeterm_la_OBJECTS) +libMatrixDeterm_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libMatrixDeterm_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +am_testDoubleDeterm_OBJECTS = \ + testDoubleDeterm-testDoubleDeterm.$(OBJEXT) +testDoubleDeterm_OBJECTS = $(am_testDoubleDeterm_OBJECTS) +testDoubleDeterm_DEPENDENCIES = $(check_LDADD) +testDoubleDeterm_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testDoubleDeterm_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +am_testFloatDeterm_OBJECTS = \ + testFloatDeterm-testFloatDeterm.$(OBJEXT) +testFloatDeterm_OBJECTS = $(am_testFloatDeterm_OBJECTS) +testFloatDeterm_DEPENDENCIES = $(check_LDADD) +testFloatDeterm_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testFloatDeterm_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libMatrixDeterm_la_SOURCES) $(testDoubleDeterm_SOURCES) \ + $(testFloatDeterm_SOURCES) +DIST_SOURCES = $(libMatrixDeterm_la_SOURCES) \ + $(testDoubleDeterm_SOURCES) $(testFloatDeterm_SOURCES) +ETAGS = etags +CTAGS = ctags +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBMATH = @LIBMATH@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +libMatrixDeterm_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 +pkglib_LTLIBRARIES = libMatrixDeterm.la +HEAD = ../includes/determ.h +libMatrixDeterm_la_SOURCES = $(HEAD) \ + sdeterma.c \ + ddeterma.c \ + cdeterma.c \ + zdeterma.c + +check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \ + $(top_builddir)/src/c/type/libFloatComplex.la \ + $(top_builddir)/src/c/operations/subtraction/libSubtraction.la \ + $(top_builddir)/src/c/operations/addition/libAddition.la \ + $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \ + $(top_builddir)/src/c/operations/division/libDivision.la \ + $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \ + $(top_builddir)/src/fortran/lapack/libscilapack.la \ + libMatrixDeterm.la + +check_INCLUDES = -I $(top_builddir)/src/c/type \ + -I $(top_builddir)/src/c/matrixOperations/includes \ + -I $(top_builddir)/src/c/elementaryFunctions/includes + +testDoubleDeterm_SOURCES = testDoubleDeterm.c +testDoubleDeterm_LDADD = $(check_LDADD) +testDoubleDeterm_CFLAGS = $(check_INCLUDES) +testFloatDeterm_SOURCES = testFloatDeterm.c +testFloatDeterm_LDADD = $(check_LDADD) +testFloatDeterm_CFLAGS = $(check_INCLUDES) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/matrixOperations/determ/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/c/matrixOperations/determ/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" + @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \ + } + +uninstall-pkglibLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ + done + +clean-pkglibLTLIBRARIES: + -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES) + @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libMatrixDeterm.la: $(libMatrixDeterm_la_OBJECTS) $(libMatrixDeterm_la_DEPENDENCIES) + $(libMatrixDeterm_la_LINK) -rpath $(pkglibdir) $(libMatrixDeterm_la_OBJECTS) $(libMatrixDeterm_la_LIBADD) $(LIBS) + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +testDoubleDeterm$(EXEEXT): $(testDoubleDeterm_OBJECTS) $(testDoubleDeterm_DEPENDENCIES) + @rm -f testDoubleDeterm$(EXEEXT) + $(testDoubleDeterm_LINK) $(testDoubleDeterm_OBJECTS) $(testDoubleDeterm_LDADD) $(LIBS) +testFloatDeterm$(EXEEXT): $(testFloatDeterm_OBJECTS) $(testFloatDeterm_DEPENDENCIES) + @rm -f testFloatDeterm$(EXEEXT) + $(testFloatDeterm_LINK) $(testFloatDeterm_OBJECTS) $(testFloatDeterm_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMatrixDeterm_la-cdeterma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMatrixDeterm_la-ddeterma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMatrixDeterm_la-sdeterma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libMatrixDeterm_la-zdeterma.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleDeterm-testDoubleDeterm.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatDeterm-testFloatDeterm.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libMatrixDeterm_la-sdeterma.lo: sdeterma.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDeterm_la_CFLAGS) $(CFLAGS) -MT libMatrixDeterm_la-sdeterma.lo -MD -MP -MF $(DEPDIR)/libMatrixDeterm_la-sdeterma.Tpo -c -o libMatrixDeterm_la-sdeterma.lo `test -f 'sdeterma.c' || echo '$(srcdir)/'`sdeterma.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libMatrixDeterm_la-sdeterma.Tpo $(DEPDIR)/libMatrixDeterm_la-sdeterma.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sdeterma.c' object='libMatrixDeterm_la-sdeterma.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) $(libMatrixDeterm_la_CFLAGS) $(CFLAGS) -c -o libMatrixDeterm_la-sdeterma.lo `test -f 'sdeterma.c' || echo '$(srcdir)/'`sdeterma.c + +libMatrixDeterm_la-ddeterma.lo: ddeterma.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDeterm_la_CFLAGS) $(CFLAGS) -MT libMatrixDeterm_la-ddeterma.lo -MD -MP -MF $(DEPDIR)/libMatrixDeterm_la-ddeterma.Tpo -c -o libMatrixDeterm_la-ddeterma.lo `test -f 'ddeterma.c' || echo '$(srcdir)/'`ddeterma.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libMatrixDeterm_la-ddeterma.Tpo $(DEPDIR)/libMatrixDeterm_la-ddeterma.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ddeterma.c' object='libMatrixDeterm_la-ddeterma.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) $(libMatrixDeterm_la_CFLAGS) $(CFLAGS) -c -o libMatrixDeterm_la-ddeterma.lo `test -f 'ddeterma.c' || echo '$(srcdir)/'`ddeterma.c + +libMatrixDeterm_la-cdeterma.lo: cdeterma.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDeterm_la_CFLAGS) $(CFLAGS) -MT libMatrixDeterm_la-cdeterma.lo -MD -MP -MF $(DEPDIR)/libMatrixDeterm_la-cdeterma.Tpo -c -o libMatrixDeterm_la-cdeterma.lo `test -f 'cdeterma.c' || echo '$(srcdir)/'`cdeterma.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libMatrixDeterm_la-cdeterma.Tpo $(DEPDIR)/libMatrixDeterm_la-cdeterma.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdeterma.c' object='libMatrixDeterm_la-cdeterma.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) $(libMatrixDeterm_la_CFLAGS) $(CFLAGS) -c -o libMatrixDeterm_la-cdeterma.lo `test -f 'cdeterma.c' || echo '$(srcdir)/'`cdeterma.c + +libMatrixDeterm_la-zdeterma.lo: zdeterma.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libMatrixDeterm_la_CFLAGS) $(CFLAGS) -MT libMatrixDeterm_la-zdeterma.lo -MD -MP -MF $(DEPDIR)/libMatrixDeterm_la-zdeterma.Tpo -c -o libMatrixDeterm_la-zdeterma.lo `test -f 'zdeterma.c' || echo '$(srcdir)/'`zdeterma.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libMatrixDeterm_la-zdeterma.Tpo $(DEPDIR)/libMatrixDeterm_la-zdeterma.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zdeterma.c' object='libMatrixDeterm_la-zdeterma.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) $(libMatrixDeterm_la_CFLAGS) $(CFLAGS) -c -o libMatrixDeterm_la-zdeterma.lo `test -f 'zdeterma.c' || echo '$(srcdir)/'`zdeterma.c + +testDoubleDeterm-testDoubleDeterm.o: testDoubleDeterm.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleDeterm_CFLAGS) $(CFLAGS) -MT testDoubleDeterm-testDoubleDeterm.o -MD -MP -MF $(DEPDIR)/testDoubleDeterm-testDoubleDeterm.Tpo -c -o testDoubleDeterm-testDoubleDeterm.o `test -f 'testDoubleDeterm.c' || echo '$(srcdir)/'`testDoubleDeterm.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleDeterm-testDoubleDeterm.Tpo $(DEPDIR)/testDoubleDeterm-testDoubleDeterm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleDeterm.c' object='testDoubleDeterm-testDoubleDeterm.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) $(testDoubleDeterm_CFLAGS) $(CFLAGS) -c -o testDoubleDeterm-testDoubleDeterm.o `test -f 'testDoubleDeterm.c' || echo '$(srcdir)/'`testDoubleDeterm.c + +testDoubleDeterm-testDoubleDeterm.obj: testDoubleDeterm.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleDeterm_CFLAGS) $(CFLAGS) -MT testDoubleDeterm-testDoubleDeterm.obj -MD -MP -MF $(DEPDIR)/testDoubleDeterm-testDoubleDeterm.Tpo -c -o testDoubleDeterm-testDoubleDeterm.obj `if test -f 'testDoubleDeterm.c'; then $(CYGPATH_W) 'testDoubleDeterm.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleDeterm.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleDeterm-testDoubleDeterm.Tpo $(DEPDIR)/testDoubleDeterm-testDoubleDeterm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleDeterm.c' object='testDoubleDeterm-testDoubleDeterm.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) $(testDoubleDeterm_CFLAGS) $(CFLAGS) -c -o testDoubleDeterm-testDoubleDeterm.obj `if test -f 'testDoubleDeterm.c'; then $(CYGPATH_W) 'testDoubleDeterm.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleDeterm.c'; fi` + +testFloatDeterm-testFloatDeterm.o: testFloatDeterm.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatDeterm_CFLAGS) $(CFLAGS) -MT testFloatDeterm-testFloatDeterm.o -MD -MP -MF $(DEPDIR)/testFloatDeterm-testFloatDeterm.Tpo -c -o testFloatDeterm-testFloatDeterm.o `test -f 'testFloatDeterm.c' || echo '$(srcdir)/'`testFloatDeterm.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatDeterm-testFloatDeterm.Tpo $(DEPDIR)/testFloatDeterm-testFloatDeterm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatDeterm.c' object='testFloatDeterm-testFloatDeterm.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) $(testFloatDeterm_CFLAGS) $(CFLAGS) -c -o testFloatDeterm-testFloatDeterm.o `test -f 'testFloatDeterm.c' || echo '$(srcdir)/'`testFloatDeterm.c + +testFloatDeterm-testFloatDeterm.obj: testFloatDeterm.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatDeterm_CFLAGS) $(CFLAGS) -MT testFloatDeterm-testFloatDeterm.obj -MD -MP -MF $(DEPDIR)/testFloatDeterm-testFloatDeterm.Tpo -c -o testFloatDeterm-testFloatDeterm.obj `if test -f 'testFloatDeterm.c'; then $(CYGPATH_W) 'testFloatDeterm.c'; else $(CYGPATH_W) '$(srcdir)/testFloatDeterm.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatDeterm-testFloatDeterm.Tpo $(DEPDIR)/testFloatDeterm-testFloatDeterm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatDeterm.c' object='testFloatDeterm-testFloatDeterm.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) $(testFloatDeterm_CFLAGS) $(CFLAGS) -c -o testFloatDeterm-testFloatDeterm.obj `if test -f 'testFloatDeterm.c'; then $(CYGPATH_W) 'testFloatDeterm.c'; else $(CYGPATH_W) '$(srcdir)/testFloatDeterm.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + echo "$$grn$$dashes"; \ + else \ + echo "$$red$$dashes"; \ + fi; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes$$std"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(pkglibdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ + clean-pkglibLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-pkglibLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pkglibLTLIBRARIES + +.MAKE: check-am install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool \ + clean-pkglibLTLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkglibLTLIBRARIES install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-pkglibLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/c/matrixOperations/determ/cdeterma.c b/src/c/matrixOperations/determ/cdeterma.c new file mode 100644 index 0000000..6f2d1e8 --- /dev/null +++ b/src/c/matrixOperations/determ/cdeterma.c @@ -0,0 +1,150 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * 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 <stdlib.h> +#ifndef WITHOUT_LAPACK +#include "lapack.h" +#else +#include "division.h" +#endif + +#include "determ.h" +#include "multiplication.h" +#include "subtraction.h" +#include "addition.h" + + + +floatComplex cdeterma(floatComplex *in, int size){ +#ifndef WITHOUT_LAPACK + int i=0,info=0; + doubleComplex *inCopy,out_tmp; + int *vectPivot; + floatComplex out, tmp1,tmp2; + + + /*Calculation of the determinant*/ + switch(size){ + case 2 : out = cdiffs(cmuls(in[0],in[3]),cmuls(in[1],in[2])); + break; + case 3 : /*regle de Sarrus*/ + out=FloatComplex(0,0); + /*Addition part*/ + tmp1 = cmuls(in[0],in[4]); + tmp2 = cmuls(tmp1,in[8]); + out = cadds(out,tmp2); + tmp1 = cmuls(in[1],in[5]); + tmp2 = cmuls(tmp1,in[6]); + out = cadds(out,tmp2); + tmp1 = cmuls(in[2],in[3]); + tmp2 = cmuls(tmp1,in[7]); + out = cadds(out,tmp2); + /*Subtraction part*/ + tmp1 = cmuls(in[0],in[5]); + tmp2 = cmuls(tmp1,in[7]); + out = cdiffs(out,tmp2); + tmp1 = cmuls(in[1],in[3]); + tmp2 = cmuls(tmp1,in[8]); + out = cdiffs(out,tmp2); + tmp1 = cmuls(in[2],in[4]); + tmp2 = cmuls(tmp1,in[6]); + out = cdiffs(out,tmp2); + break; + + default : + + + /*We must have a doubleComplex matrix cause + zgetrf accept only double parameters*/ + + /*Copy the input matrix*/ + inCopy=(doubleComplex*)malloc((unsigned int)(size*size)*sizeof(doubleComplex)); + for (i=0;i<size*size;i++){ + inCopy[i]=DoubleComplex((double)creals(in[i]),(double)cimags(in[i])); + } + + + + vectPivot=(int*)malloc((unsigned int)size*sizeof(int)); + zgetrf_ ( &size, &size, inCopy, &size, vectPivot, &info); + + out_tmp=DoubleComplex(1,0); + for (i=0;i<size;i++){ + if (vectPivot[i]!=i+1) out_tmp=DoubleComplex(-zreals(out_tmp),-zimags(out_tmp)); + out_tmp=zmuls(inCopy[i*(size+1)],out_tmp); + } + out=FloatComplex((float)zreals(out_tmp),(float)zimags(out_tmp)); + + free(vectPivot); + free(inCopy); + } +#else + int i=0,j=0,k=0; + floatComplex *inCopy; + floatComplex tmp1,tmp2; + floatComplex pivot; + floatComplex out; + + + switch(size){ + case 2 : out = cdiffs(cmuls(in[0],in[3]),cmuls(in[1],in[2])); + break; + case 3 : /*regle de Sarrus*/ + out=FloatComplex(0,0); + /*Addition part*/ + tmp1 = cmuls(in[0],in[4]); + tmp2 = cmuls(tmp1,in[8]); + out = cadds(out,tmp2); + tmp1 = cmuls(in[1],in[5]); + tmp2 = cmuls(tmp1,in[6]); + out = cadds(out,tmp2); + tmp1 = cmuls(in[2],in[3]); + tmp2 = cmuls(tmp1,in[7]); + out = cadds(out,tmp2); + /*Subtraction part*/ + tmp1 = cmuls(in[0],in[5]); + tmp2 = cmuls(tmp1,in[7]); + out = cdiffs(out,tmp2); + tmp1 = cmuls(in[1],in[3]); + tmp2 = cmuls(tmp1,in[8]); + out = cdiffs(out,tmp2); + tmp1 = cmuls(in[2],in[4]); + tmp2 = cmuls(tmp1,in[6]); + out = cdiffs(out,tmp2); + break; + + default : + /*Copy the input matrix*/ + inCopy=malloc((unsigned int)(size*size)*sizeof(floatComplex)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + for (i=0;i<size;i++){ + for (j=i+1;j<size;j++){ + pivot = crdivs(inCopy[i*size+j],inCopy[i*size+i]); + for (k=0;k<size-i;k++){ + inCopy[i*size+j+k*size]=cdiffs(inCopy[i*size+j+k*size],cmuls(pivot,inCopy[i*size+i+k*size])); + } + } + } + out=FloatComplex(1,0); + for (i=0;i<size;i++){ + out = cmuls(out,inCopy[i*size+i]); + } + free(inCopy); + break; + } +#endif + + return out; +} + + diff --git a/src/c/matrixOperations/determ/ddeterma.c b/src/c/matrixOperations/determ/ddeterma.c new file mode 100644 index 0000000..6894a36 --- /dev/null +++ b/src/c/matrixOperations/determ/ddeterma.c @@ -0,0 +1,92 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * 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 <stdlib.h> +#ifndef WITHOUT_LAPACK +#include "lapack.h" +#endif +#include "determ.h" +#include "lapack.h" + +double ddeterma(double * in, int size){ +#ifndef WITHOUT_LAPACK + int i=0, info=0; + double out=0; + double *inCopy=NULL; + int* tmp=NULL; + + /*Calculation of the determinant*/ + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=(double*)malloc((unsigned int)(size*size)*sizeof(double)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + tmp=(int*)malloc((unsigned int)size*sizeof(int)); + dgetrf_(&size, &size, inCopy, &size, tmp, &info); + out=1; + for (i=0;i<size;i++){ + if (tmp[i]!=i+1) out=-out; + out=inCopy[i*(size+1)]*out; + } + free(tmp); + free(inCopy); + break; + } + +#else + int i=0, j=0, k=0; + double out=0, pivot=0; + double *inCopy=NULL; + + /*Calculation of the determinant*/ + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=malloc((unsigned int)(size*size)*sizeof(double)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + for (i=0;i<size;i++){ + for (j=i+1;j<size;j++){ + pivot = inCopy[i*size+j]/inCopy[i*size+i]; + for (k=0;k<size-i;k++){ + inCopy[i*size+j+k*size]-=pivot*inCopy[i*size+i+k*size]; + } + } + } + out=1; + for (i=0;i<size;i++){ + out *= inCopy[i*size+i]; + } + free(inCopy); + break; + + } +#endif + + + return out; +} diff --git a/src/c/matrixOperations/determ/i16determa.c b/src/c/matrixOperations/determ/i16determa.c new file mode 100644 index 0000000..97ec948 --- /dev/null +++ b/src/c/matrixOperations/determ/i16determa.c @@ -0,0 +1,92 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdlib.h> +#ifndef WITHOUT_LAPACK +#include "lapack.h" +#endif +#include "determ.h" +#include "lapack.h" + +int16 i16determa(int16 * in, int size){ +#ifndef WITHOUT_LAPACK + int i=0, info=0; + int16 out=0; + int16 *inCopy=NULL; + int* tmp=NULL; + + /*Calculation of the determinant*/ + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=(int16*)malloc((unsigned int)(size*size)*sizeof(int16)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + tmp=(int*)malloc((unsigned int)size*sizeof(int)); + dgetrf_(&size, &size, inCopy, &size, tmp, &info); + out=1; + for (i=0;i<size;i++){ + if (tmp[i]!=i+1) out=-out; + out=inCopy[i*(size+1)]*out; + } + free(tmp); + free(inCopy); + break; + } + +#else + int i=0, j=0, k=0; + int16 out=0, pivot=0; + int16 *inCopy=NULL; + + /*Calculation of the determinant*/ + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=malloc((unsigned int)(size*size)*sizeof(int16)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + for (i=0;i<size;i++){ + for (j=i+1;j<size;j++){ + pivot = inCopy[i*size+j]/inCopy[i*size+i]; + for (k=0;k<size-i;k++){ + inCopy[i*size+j+k*size]-=pivot*inCopy[i*size+i+k*size]; + } + } + } + out=1; + for (i=0;i<size;i++){ + out *= inCopy[i*size+i]; + } + free(inCopy); + break; + + } +#endif + + + return out; +} diff --git a/src/c/matrixOperations/determ/i8determa.c b/src/c/matrixOperations/determ/i8determa.c new file mode 100644 index 0000000..cf436a0 --- /dev/null +++ b/src/c/matrixOperations/determ/i8determa.c @@ -0,0 +1,92 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdlib.h> +#ifndef WITHOUT_LAPACK +#include "lapack.h" +#endif +#include "determ.h" +#include "lapack.h" + +int8 i8determa(int8 * in, int size){ +#ifndef WITHOUT_LAPACK + int i=0, info=0; + int8 out=0; + int8 *inCopy=NULL; + int* tmp=NULL; + + /*Calculation of the determinant*/ + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=(int8*)malloc((unsigned int)(size*size)*sizeof(int8)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + tmp=(int*)malloc((unsigned int)size*sizeof(int)); + dgetrf_(&size, &size, inCopy, &size, tmp, &info); + out=1; + for (i=0;i<size;i++){ + if (tmp[i]!=i+1) out=-out; + out=inCopy[i*(size+1)]*out; + } + free(tmp); + free(inCopy); + break; + } + +#else + int i=0, j=0, k=0; + int8 out=0, pivot=0; + int8 *inCopy=NULL; + + /*Calculation of the determinant*/ + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=malloc((unsigned int)(size*size)*sizeof(int8)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + for (i=0;i<size;i++){ + for (j=i+1;j<size;j++){ + pivot = inCopy[i*size+j]/inCopy[i*size+i]; + for (k=0;k<size-i;k++){ + inCopy[i*size+j+k*size]-=pivot*inCopy[i*size+i+k*size]; + } + } + } + out=1; + for (i=0;i<size;i++){ + out *= inCopy[i*size+i]; + } + free(inCopy); + break; + + } +#endif + + + return out; +} diff --git a/src/c/matrixOperations/determ/sdeterma.c b/src/c/matrixOperations/determ/sdeterma.c new file mode 100644 index 0000000..dbe36c9 --- /dev/null +++ b/src/c/matrixOperations/determ/sdeterma.c @@ -0,0 +1,97 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * 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 <stdlib.h> +#ifndef WITHOUT_LAPACK +#include "lapack.h" +#endif +#include "determ.h" + +float sdeterma(float * in, int size){ +#ifndef WITHOUT_LAPACK + float out; + double *inCopy; + int* tmp; + int info=0,i=0; + + + + /*Calculation of the determinant*/ + + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=(double*)malloc((unsigned int)(size*size)*sizeof(double)); + tmp=(int*)malloc((unsigned int)size*sizeof(int)); + for (i=0;i<size*size;i++) inCopy[i]=(double)in[i]; + + dgetrf_(&size, &size, inCopy, &size, tmp, &info); + out=1; + for (i=0;i<size;i++){ + if (tmp[i]!=i+1) out=-out; + out=(float)inCopy[i*(size+1)]*out; + } + free(tmp); + free(inCopy); + break; + } +#else + int i=0, j=0, k=0; + float out=0, pivot=0; + float *inCopy=NULL; + + /*Calculation of the determinant*/ + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=malloc((unsigned int)(size*size)*sizeof(float)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + for (i=0;i<size;i++){ + for (j=i+1;j<size;j++){ + pivot = inCopy[i*size+j]/inCopy[i*size+i]; + for (k=0;k<size-i;k++){ + inCopy[i*size+j+k*size]-=pivot*inCopy[i*size+i+k*size]; + } + } + } + out=1; + for (i=0;i<size;i++){ + out *= inCopy[i*size+i]; + } + free(inCopy); + break; + + } + + +#endif + + return out; +} + + + diff --git a/src/c/matrixOperations/determ/testDoubleDeterm.c b/src/c/matrixOperations/determ/testDoubleDeterm.c new file mode 100644 index 0000000..c3e1d50 --- /dev/null +++ b/src/c/matrixOperations/determ/testDoubleDeterm.c @@ -0,0 +1,451 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * 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 <assert.h> +#include <stdio.h> +#include <math.h> +#include "determ.h" + + + +#define IN2 {0.1998337740078568458557,0.5618660743348300457001,\ +0.5896177329123020172119,0.6853979662992060184479f} + +#define RES2 -0.1943205386467572182152 + +#define IN3 {0.8906224733218550682068,0.5042212805710732936859,0.3493615407496690750122,\ +0.3873778772540390491486,0.9222898678854107856751,0.9488184261135756969452,\ +0.3435337245464324951172,0.3760118731297552585602,0.7340940563008189201355} + +#define RES3 0.2464108526639412488635 + +#define IN4 {0.2615761472843587398529,0.4993493836373090744019,0.2638578419573605060577,\ + 0.5253563085570931434631,\ +0.5376229803077876567841,0.1199925504624843597412,0.2256303490139544010162,\ + 0.6274093082174658775330,\ +0.7608432597480714321137,0.0485566202551126480103,0.6723949727602303028107,\ + 0.2017172696068882942200,\ +0.3911573919467628002167,0.8300316557288169860840,0.5878720157779753208160,\ + 0.4829179299995303153992} + +#define RES4 0.0079215378363537460038 + +#define IN5 {0.2232865034602582454681,0.8400885667651891708374,0.1205995907075703144074,\ + 0.2855364168062806129456,0.8607514644972980022430,\ +0.8494101651012897491455,0.5257060811854898929596,0.9931209897622466087341,\ + 0.6488562873564660549164,0.9923190940171480178833,\ +0.0500419777818024158478,0.7485506581142544746399,0.4104058998636901378632,\ + 0.6084526330232620239258,0.8544210889376699924469,\ +0.0642646728083491325378,0.8279082938097417354584,0.9262343775480985641480,\ + 0.5667211269028484821320,0.5711638936772942543030,\ +0.8160110483877360820770,0.0568927936255931854248,0.5595936686731874942780,\ + 0.1249340316280722618103,0.7279222286306321620941} + +#define RES5 0.0501241717143536200108 + +#define IN6 {0.2677766475826501846314,0.5465334919281303882599,0.9885407658293843269348,\ + 0.7395656588487327098846,0.0037173107266426086426,0.5900572859682142734528,\ +0.3096467358991503715515,0.2552205710671842098236,0.6251879390329122543335,\ + 0.1157417376525700092316,0.6117004090920090675354,0.6783956284634768962860,\ +0.3320095278322696685791,0.0258709923364222049713,0.5174468224868178367615,\ + 0.3916873238049447536469,0.2413538414984941482544,0.5064434898085892200470,\ +0.4236102001741528511047,0.2893727528862655162811,0.0887932181358337402344,\ + 0.6212881752289831638336,0.3454984454438090324402,0.7064867629669606685638,\ +0.5211472492665052413940,0.2870400850661098957062,0.6502795079723000526428,\ + 0.0881334762088954448700,0.4498763345181941986084,0.722725308034569025040,\ +0.8976796260103583335877,0.2427821881137788295746,0.4337721113115549087524,\ + 0.9677053210325539112091,0.5068534435704350471497,0.523297640960663557053} + +#define RES6 -0.0275938917848303037761 + +#define IN8 {0.5596947595477104187012,0.5617307000793516635895,0.468176002614200115204,\ + 0.7794546722434461116791,0.7901071812957525253296,0.9808542062528431415558,\ + 0.8187066102400422096252,0.4256872381083667278290,\ +0.2461560554802417755127,0.922953246627002954483,0.1000745808705687522888,\ + 0.4678218117915093898773,0.3950497675687074661255,0.0366117102093994617462,\ + 0.5175368534401059150696,0.8325451570563018321991,\ +0.6104832142591476440430,0.1871111788786947727203,0.0189574835821986198425,\ + 0.8433564766310155391693,0.0748594831675291061401,0.8532815133221447467804,\ + 0.0124590108171105384827,0.1867539356462657451630,\ +0.4920584075152873992920,0.7489608139730989933014,0.9414957007393240928650,\ + 0.212405560072511434555,0.5795019958168268203735,0.2628147569485008716583,\ + 0.4360986622050404548645,0.9110545101575553417206,\ +0.8082667365670204162598,0.8102653049863874912262,0.2590428395196795463562,\ + 0.4139087288640439510346,0.3599927779287099838257,0.6912787933833897113800,\ + 0.7656858796253800392151,0.3572649653069674968720,\ +0.7693399824202060699463,0.5477633909322321414948,0.0962288742884993553162,\ + 0.9561171731911599636078,0.2207408566027879714966,0.0143259358592331409454,\ + 0.8191489772871136665344,0.1304992842487990856171,\ +0.9682003557682037353516,0.6561381467618048191071,0.2445538965985178947449,\ + 0.5283123566769063472748,0.8468925636261701583862,0.7876622085459530353546,\ + 0.1262082615867257118225,0.7883860985748469829559,\ +0.3453042469918727874756,0.2659857333637773990631,0.9709818651899695396423,\ + 0.8875247663818299770355,0.2066752854734659194946,0.8525160965509712696075,\ + 0.6744697811082005500794,0.9152874383144080638886} + +#define RES8 0.1359018266554544440705 + +#define IN10 {0.0284859761595726013184,0.2367841475643217563629,0.7015343559905886650085,\ + 0.1202526628039777278900,0.8287412133067846298218,0.3161072959192097187042,\ + 0.5305190766230225563049,0.5715174819342792034149,0.0478015430271625518799,\ + 0.8248619721271097660065,\ +0.5798843121156096458435,0.2791808298788964748383,0.9545110929757356643677,\ + 0.9071154636330902576447,0.3360149310901761054993,0.1175613063387572765350,\ + 0.9253723770380020141602,0.7263671257533133029938,0.9009497938677668571472,\ + 0.3948993249796330928803,\ +0.5655179750174283981323,0.7061489676125347614288,0.6787831196561455726624,\ + 0.413293636869639158249,0.1402290873229503631592,0.4952356130816042423248,\ + 0.4194877287372946739197,0.8626222289167344570160,0.2857509646564722061157,\ + 0.2512136367149651050568,\ +0.3389101596549153327942,0.3921975973062217235565,0.4681552127003669738770,\ + 0.3361602746881544589996,0.5336876614019274711609,0.2039063959382474422455,\ + 0.1589989718049764633179,0.0181815107353031635284,0.4098370606079697608948,\ + 0.0105834598653018474579,\ +0.1965309716761112213135,0.2725595370866358280182,0.3437655037268996238709,\ + 0.2033702037297189235687,0.3011944610625505447388,0.2762595904059708118439,\ + 0.2944530742242932319641,0.5718073952011764049530,0.2141770124435424804688,\ + 0.6895461627282202243805,\ +0.5855572847649455070496,0.4204123034141957759857,0.4277572017163038253784,\ + 0.318458587396889925003,0.5761894444003701210022,0.4254902224056422710419,\ + 0.9761981628835201263428,0.2518960000015795230866,0.4391129007562994956970,\ + 0.075930369552224874496,\ +0.2559380177408456802368,0.0670616743154823780060,0.7651131572201848030090,\ + 0.0417361590079963207245,0.3438271805644035339356,0.1970167332328855991364,\ + 0.2122898651286959648132,0.3140398501418530941010,0.7821625377982854843140,\ + 0.0540932347066700458527,\ +0.9190206909552216529846,0.4603515709750354290009,0.2992685027420520782471,\ + 0.0029166326858103275299,0.8993470584973692893982,0.8387927166186273097992,\ + 0.4343749452382326126099,0.7767876130528748035431,0.1395317660644650459290,\ + 0.1150637227110564708710,\ +0.5355419963598251342773,0.4311733045615255832672,0.614538478665053844452,\ + 0.9258962138555943965912,0.0993817280977964401245,0.4280578647740185260773,\ + 0.9431830951943993568420,0.0327395270578563213348,0.9213267080485820770264,\ + 0.9449024409987032413483,\ +0.9007069906219840049744,0.8094316101633012294769,0.0251954291015863418579,\ + 0.0019645062275230884552,0.5075221331790089607239,0.4076042952947318553925,\ + 0.8408046141266822814941,0.501726570073515176773,0.9128780765458941459656,\ + 0.4435729472897946834564} + +#define RES10 -0.0105698586359502730292 + + + + +#define ZINR2 {0.9625065480358898639679,0.9798011491075158119202,\ +0.0785698364488780498505,0.9150031916797161102295} +#define ZINI2 {0.6172610134817659854889,0.9964194735512137413025,\ +0.0468598580919206142426,0.9245926234871149063110} +#define ZRESR2 0.2796908427268796071274 +#define ZRESI2 1.3305203939304277582778 + +#define ZINR3 {0.9689865079708397388458,0.4916289718821644783020,0.2977053108625113964081,\ +0.0603054538369178771973,0.631347181741148233414,0.0241030259057879447937,\ +0.1527438252232968807221,0.9481177683919668197632,0.2744265575893223285675} +#define ZINI3 {0.4794727200642228126526,0.485576837789267301559,0.676400367170572280884,\ +0.8321249918080866336823,0.0125875836238265037537,0.5453779897652566432953,\ +0.8426716942340135574341,0.9029165101237595081329,0.4409482078626751899719} +#define ZRESR3 0.3208274162176448784933 +#define ZRESI3 -0.5045627162227295237074 + +#define ZINR4 {0.8332359003834426403046,0.7233976423740386962891,0.4377150186337530612946,\ + 0.3080607382580637931824,\ +0.8749813153408467769623,0.5355882328003644943237,0.3085998897440731525421,\ + 0.3354632416740059852600,\ +0.2342486302368342876434,0.2589411698281764984131,0.8521509231068193912506,\ + 0.4821739485487341880798,\ +0.6095217890106141567230,0.9872822705656290054321,0.9811426815576851367950,\ + 0.3303113700821995735169} +#define ZINI4 {0.3589145573787391185761,0.2780527696013450622559,0.9583482020534574985504,\ + 0.0156362904235720634460,\ +0.2964351712726056575775,0.4685934986919164657593,0.4262020816095173358917,\ + 0.4217656338587403297424,\ +0.1034853602759540081024,0.4279759414494037628174,0.7860729382373392581940,\ + 0.8568082069978117942810,\ +0.1993437460623681545258,0.7131301630288362503052,0.5208952468819916248322,\ + 0.9311723159626126289368} +#define ZRESR4 0.5916307061533252475982 +#define ZRESI4 -0.104762389048400544889 + +#define ZINR5 {0.4143836158327758312225,0.5980196148157119750977,0.5549105503596365451813,\ + 0.8552952585741877555847,0.3097750707529485225678,\ +0.9446128141134977340698,0.2442680452950298786163,0.8760446915403008460999,\ + 0.4874215493910014629364,0.3844018988311290740967,\ +0.0922345430590212345123,0.0705418726429343223572,0.7338807261548936367035,\ + 0.7792180571705102920532,0.7827638057060539722443,\ +0.2161567779257893562317,0.3420197847299277782440,0.430093832314014434814,\ + 0.6261752569116652011871,0.9554250938817858695984,\ +0.45415506651625037193,0.0029223021119832992554,0.0106920679099857807159,\ + 0.9746370846405625343323,0.7704260940663516521454} +#define ZINI5 {0.6396631337702274322510,0.9535886184312403202057,0.4148483341559767723084,\ + 0.4661539695225656032562,0.2238455135375261306763,\ +0.3456973326392471790314,0.2340623633936047554016,0.6619341480545699596405,\ + 0.2691179513931274414063,0.9830248900689184665680,\ +0.7393351225182414054871,0.2902135862968862056732,0.3995949607342481613159,\ + 0.9792278115637600421906,0.0075513580814003944397,\ +0.7021022657863795757294,0.8907506130635738372803,0.6526974202133715152741,\ + 0.4136228552088141441345,0.8581690913997590541840,\ +0.2396089676767587661743,0.4820041772909462451935,0.9848585547879338264465,\ + 0.4469721647910773754120,0.2329813763499259948731} +#define ZRESR5 -0.2050520846829704535441 +#define ZRESI5 1.3442626005968567604043 + +#define ZINR6 {0.2234513931907713413239,0.8002565456554293632507,0.7750734328292310237885,\ + 0.4825006630271673202515,0.7844883133657276630402,0.1534679317846894264221,\ +0.7722877110354602336884,0.8952021785080432891846,0.9467325792647898197174,\ + 0.6981825744733214378357,0.9559160820208489894867,0.0484017301350831985474,\ +0.5323520642705261707306,0.2946867095306515693665,0.6977136689238250255585,\ + 0.9376203864812850952148,0.1075560846365988254547,0.7763424394652247428894,\ +0.6373417838476598262787,0.0663061570376157760620,0.8169459854252636432648,\ + 0.354739100672304630280,0.5860544512979686260223,0.3461025469005107879639,\ +0.4424751014448702335358,0.8822665056213736534119,0.7643693066202104091644,\ + 0.7764139864593744277954,0.2807680931873619556427,0.6908600600436329841614,\ +0.7174728694371879100800,0.372018136084079742432,0.9325496577657759189606,\ + 0.2256677551195025444031,0.7521101920865476131439,0.3074750658124685287476} +#define ZINI6 {0.5979326148517429828644,0.1923890346661210060120,0.2387088830582797527313,\ + 0.7470833100378513336182,0.9713153676129877567291,0.4370355373248457908630,\ +0.6224875054322183132172,0.3291327971965074539185,0.3296387386508285999298,\ + 0.2768637137487530708313,0.4872983503155410289764,0.7732046544551849365234,\ +0.9077521809376776218414,0.5012293187901377677918,0.5159545852802693843842,\ + 0.5792678873986005783081,0.154639363754540681839,0.7611137786880135536194,\ +0.6907917778007686138153,0.2873229347169399261475,0.9642531336285173892975,\ + 0.5660724332556128501892,0.5782137936912477016449,0.266342097893357276917,\ +0.4747098502703011035919,0.6073546530678868293762,0.0409730705432593822479,\ + 0.501256845891475677490,0.5295930975116789340973,0.6259458316490054130554,\ +0.2219352661632001399994,0.3467419948428869247437,0.3951167692430317401886,\ + 0.5442812526598572731018,0.1430782820098102092743,0.7165467627346515655518} +#define ZRESR6 0.0374364367907719236550 +#define ZRESI6 0.0027318151340892903034 + +#define ZINR8 {0.826897530350834131241,0.0803818320855498313904,0.7634756616316735744476,\ + 0.6771226990967988967896,0.0800866526551544666290,0.5631617354229092597961,\ + 0.8400143641047179698944,0.9142984896898269653320,\ +0.9566112258471548557282,0.1676578698679804801941,0.4345969124697148799896,\ + 0.0417516361922025680542,0.4832747434265911579132,0.2889312515035271644592,\ + 0.4115779171697795391083,0.2200270108878612518311,\ +0.3144670636393129825592,0.2733902474865317344666,0.7691849744878709316254,\ + 0.0548522863537073135376,0.4532337454147636890411,0.2262856932356953620911,\ + 0.1486739399842917919159,0.2435002401471138000488,\ +0.384454759303480386734,0.1141278846189379692078,0.3649685769341886043549,\ + 0.9379479344934225082398,0.2138825734145939350128,0.8807754451408982276917,\ + 0.3025345797650516033173,0.2935827709734439849854,\ +0.9067896143533289432526,0.7959460681304335594177,0.0202379724942147731781,\ + 0.1722054202109575271606,0.2199751031585037708283,0.7548991339281201362610,\ + 0.4089378821663558483124,0.4680796265602111816406,\ +0.420881266240030527115,0.7480402020737528800964,0.2455636872909963130951,\ + 0.0257788877934217453003,0.3875689213164150714874,0.2191973784938454627991,\ + 0.9874265412800014019013,0.6185800097882747650147,\ +0.1833024383522570133209,0.5313195576891303062439,0.1505152708850800991058,\ + 0.9561535362154245376587,0.6994940754957497119904,0.2583465399220585823059,\ + 0.6155266496352851390839,0.1903010532259941101074,\ +0.4607576900161802768707,0.5220010234043002128601,0.7053800462745130062103,\ + 0.8874893691390752792358,0.1858218242414295673370,0.0922524714842438697815,\ + 0.3779664481990039348602,0.9369315691292285919190} +#define ZINI8 {0.1980521664954721927643,0.4702028548344969749451,0.3778818598948419094086,\ + 0.3629649449139833450317,0.2793333870358765125275,0.6721442686393857002258,\ + 0.6908950763754546642304,0.5104757994413375854492,\ +0.0610603489913046360016,0.9335384247824549674988,0.1448998316191136837006,\ + 0.5721211265772581100464,0.5459886942990124225617,0.0516680190339684486389,\ + 0.5011013220064342021942,0.9260971657931804656982,\ +0.8546948046423494815826,0.5857099732384085655212,0.8791871047578752040863,\ + 0.2532048318535089492798,0.790395137388259172440,0.6329805525019764900208,\ + 0.8602323713712394237518,0.9019620195031166076660,\ +0.3158749365247786045075,0.4001023573800921440125,0.1110895960591733455658,\ + 0.4705127831548452377319,0.5362763185985386371613,0.2878431910648941993713,\ + 0.8740125591866672039032,0.0740833915770053863525,\ +0.2814957336522638797760,0.7083768015727400779724,0.1652647457085549831390,\ + 0.2667352575808763504028,0.8819408011622726917267,0.3537154989317059516907,\ + 0.0264621186070144176483,0.0861647427082061767578,\ +0.2313965209759771823883,0.1340646473690867424011,0.6724002673290669918060,\ + 0.1902998369187116622925,0.7307508592493832111359,0.5048490324988961219788,\ + 0.8791159312240779399872,0.5544437132775783538818,\ +0.2063297093845903873444,0.401161103509366512299,0.4559328979812562465668,\ + 0.6977151576429605484009,0.3965912279672920703888,0.498381090350449085236,\ + 0.1452422770671546459198,0.9075358733534812927246,\ +0.1009295457042753696442,0.0177189959213137626648,0.7937671481631696224213,\ + 0.4309146609157323837280,0.584337853360921144485,0.7954284632578492164612,\ + 0.1390615846030414104462,0.1012784726917743682861} +#define ZRESR8 -0.2866880544829432109211 +#define ZRESI8 -0.5082321435837643397449 + +#define ZINR10 {0.3316808626987040042877,0.8344425177201628684998,0.0549940518103539943695,\ + 0.3696003425866365432739,0.7453266424126923084259,0.0571811841800808906555,\ + 0.5999651807360351085663,0.2085741907358169555664,0.8798878290690481662750,\ + 0.4782809792086482048035,\ +0.7116099162958562374115,0.8585865031927824020386,0.8078222130425274372101,\ + 0.5159962782636284828186,0.8917340408079326152802,0.8842348866164684295654,\ + 0.70964269945397973061,0.6610225578770041465759,0.7252350724302232265472,\ + 0.510143497958779335022,\ +0.2824866441078484058380,0.2214915128424763679504,0.5767575385980308055878,\ + 0.7048253491520881652832,0.5607945644296705722809,0.3628880484029650688171,\ + 0.3088326244615018367767,0.9813414867967367172241,0.7428482254035770893097,\ + 0.1616391474381089210510,\ +0.3652521963231265544891,0.3835070468485355377197,0.1169181005097925662994,\ + 0.8911246126517653465271,0.0634272000752389431000,0.6263941843062639236450,\ + 0.6807702076621353626251,0.2588596837595105171204,0.4394804346375167369843,\ + 0.8598818778991699218750,\ +0.5482823201455175876617,0.8135995296761393547058,0.4898237003944814205170,\ + 0.0240026097744703292847,0.7369195525534451007843,0.2411156157031655311585,\ + 0.1529693226329982280731,0.2648359201848506927490,0.4298193217255175113678,\ + 0.7673939457163214683533,\ +0.8753260499797761440277,0.3796988371759653091431,0.3062356826849281787872,\ + 0.3880051793530583381653,0.1047293278388679027557,0.7603831812739372253418,\ + 0.0340930395759642124176,0.1423966242000460624695,0.5554559468291699886322,\ + 0.8031897451728582382202,\ +0.5183992316015064716339,0.1518561029806733131409,0.5884730662219226360321,\ + 0.2545093484222888946533,0.9992679939605295658112,0.6398976957425475120544,\ + 0.5506716123782098293304,0.4607007671147584915161,0.5933007937856018543243,\ + 0.6538193570449948310852,\ +0.4168340521864593029022,0.9910155385732650756836,0.3720780410803854465485,\ + 0.7061824081465601921082,0.5780865414999425411224,0.602319641038775444031,\ + 0.5715096746571362018585,0.0549629041925072669983,0.1205854485742747784,\ + 0.0143620483577251434326,\ +0.0257951230742037296295,0.8411248764023184776306,0.4381882525049149990082,\ + 0.4643401596695184707642,0.4197426405735313892365,0.8023654492571949958801,\ + 0.5228588166646659374237,0.5095121040940284729004,0.4531980180181562900543,\ + 0.7817818326875567436218,\ +0.776557037141174077988,0.0466059204190969467163,0.5113326688297092914581,\ + 0.7502101892605423927307,0.6883628661744296550751,0.0167756117880344390869,\ + 0.9345410899259150028229,0.5609863763675093650818,0.2205847105942666530609,\ + 0.7648540753871202468872} +#define ZINI10 {0.4816976976580917835236,0.1558785634115338325501,0.2476022052578628063202,\ + 0.5216529071331024169922,0.0805230387486517429352,0.4409417239949107170105,\ + 0.8911933614872395992279,0.9780590813606977462769,0.4588093762286007404327,\ + 0.5510440031066536903381,\ +0.0960960905067622661591,0.4196785055100917816162,0.7502556503750383853912,\ + 0.7218149593099951744080,0.2895541018806397914887,0.3907764498144388198853,\ + 0.6686618146486580371857,0.4877656819298863410950,0.4685971769504249095917,\ + 0.3562648519873619079590,\ +0.3442325466312468051910,0.4253307832404971122742,0.5588058172725141048431,\ + 0.3304864969104528427124,0.4157403339631855487824,0.1595822656527161598206,\ + 0.3883102680556476116180,0.9415460713207721710205,0.4722979352809488773346,\ + 0.8533652639016509056091,\ +0.1207739165984094142914,0.8999380934983491897583,0.4384902161546051502228,\ + 0.8976056622341275215149,0.4911110657267272472382,0.3402217179536819458008,\ + 0.9966153600253164768219,0.0215395865961909294128,0.6876890822313725948334,\ + 0.0044924151152372360229,\ +0.6397854541428387165070,0.5416147718206048011780,0.2247649203054606914520,\ + 0.7364005260169506072998,0.4496364505030214786530,0.9678138038143515586853,\ + 0.6489060199819505214691,0.2544666919857263565064,0.1923975017853081226349,\ + 0.6861492367461323738098,\ +0.4231455805711448192596,0.6734441593289375305176,0.8270696722902357578278,\ + 0.9360805852338671684265,0.8326222090981900691986,0.7424779590219259262085,\ + 0.0194640238769352436066,0.8016031915321946144104,0.2554539437405765056610,\ + 0.2688109613955020904541,\ +0.7558490769006311893463,0.4347589677199721336365,0.6425966522656381130219,\ + 0.6957868058234453201294,0.6499576461501419544220,0.2303190128877758979797,\ + 0.5504368054680526256561,0.3038997054100036621094,0.0371030517853796482086,\ + 0.1703881053254008293152,\ +0.5698686256073415279388,0.0036411266773939132690,0.4491547052748501300812,\ + 0.0576810697093605995178,0.4956056098453700542450,0.1888933442533016204834,\ + 0.5641230703331530094147,0.8562210192903876304627,0.0794764286838471889496,\ + 0.6196198705583810806274,\ +0.2241039988584816455841,0.8582094730809330940247,0.7114551994018256664276,\ + 0.8026027604937553405762,0.6153324418701231479645,0.8958183480426669120789,\ + 0.8721761344932019710541,0.8389767911285161972046,0.2040955354459583759308,\ + 0.3166538262739777565002,\ +0.7006825651042163372040,0.2073105163872241973877,0.5222550616599619388580,\ + 0.9416420971974730491638,0.52116033947095274925,0.4509841967374086380005,\ + 0.3961292845197021961212,0.7240869747474789619446,0.6724055963568389415741,\ + 0.2386146038770675659180} +#define ZRESR10 -0.0701164785573487325809 +#define ZRESI10 -0.3697118554850691296565 + +static void ddetermaTest(void){ + double in2[]=IN2; double res2=RES2; + double in3[]=IN3; double res3=RES3; + double in4[]=IN4; double res4=RES4; + double in5[]=IN5; double res5=RES5; + double in6[]=IN6; double res6=RES6; + double in8[]=IN8; double res8=RES8; + double in10[]=IN10; double res10=RES10; + double out2,out3,out4,out5,out6,out8,out10; + printf("\n >>> DDetermA <<<\n"); + out2=ddeterma(in2,2); + out3=ddeterma(in3,3); + out4=ddeterma(in4,4); + out5=ddeterma(in5,5); + out6=ddeterma(in6,6); + out8=ddeterma(in8,8); + out10=ddeterma(in10,10); + + assert((fabs(out2-res2)/fabs(out2))<3e-8); + assert((fabs(out3-res3)/fabs(out3))<3e-15); + assert((fabs(out4-res4)/fabs(out4))<3e-15); + assert((fabs(out5-res5)/fabs(out5))<3e-15); + assert((fabs(out6-res6)/fabs(out6))<3e-15); + assert((fabs(out8-res8)/fabs(out8))<3e-15); + assert((fabs(out10-res10)/fabs(out10))<3e-15); +} + +static void zdetermaTest(void){ + double inR2[]=ZINR2; double inI2[]=ZINI2; double resR2=ZRESR2; double resI2=ZRESI2; + double inR3[]=ZINR3; double inI3[]=ZINI3; double resR3=ZRESR3; double resI3=ZRESI3; + double inR4[]=ZINR4; double inI4[]=ZINI4; double resR4=ZRESR4; double resI4=ZRESI4; + double inR5[]=ZINR5; double inI5[]=ZINI5; double resR5=ZRESR5; double resI5=ZRESI5; + double inR6[]=ZINR6; double inI6[]=ZINI6; double resR6=ZRESR6; double resI6=ZRESI6; + double inR8[]=ZINR8; double inI8[]=ZINI8; double resR8=ZRESR8; double resI8=ZRESI8; + double inR10[]=ZINR10; double inI10[]=ZINI10; double resR10=ZRESR10; double resI10=ZRESI10; + doubleComplex out2,out3,out4,out5,out6,out8,out10; + doubleComplex *in2, *in3, *in4, *in5, *in6, *in8, *in10; + printf("\n >>> ZDetermA <<<\n"); + in2=DoubleComplexMatrix(inR2,inI2,4); + in3=DoubleComplexMatrix(inR3,inI3,9); + in4=DoubleComplexMatrix(inR4,inI4,16); + in5=DoubleComplexMatrix(inR5,inI5,25); + in6=DoubleComplexMatrix(inR6,inI6,36); + in8=DoubleComplexMatrix(inR8,inI8,64); + in10=DoubleComplexMatrix(inR10,inI10,100); + + out2=zdeterma(in2,2); + out3=zdeterma(in3,3); + out4=zdeterma(in4,4); + out5=zdeterma(in5,5); + out6=zdeterma(in6,6); + out8=zdeterma(in8,8); + out10=zdeterma(in10,10); + + + assert((fabs(zreals(out2)-resR2)/fabs(zreals(out2)))<3e-16); + assert((fabs(zimags(out2)-resI2)/fabs(zimags(out2)))<3e-16); + + assert((fabs(zreals(out3)-resR3)/fabs(zreals(out3)))<3e-16); + assert((fabs(zimags(out3)-resI3)/fabs(zimags(out3)))<1e-16); + + assert((fabs(zreals(out4)-resR4)/fabs(zreals(out4)))<3e-16); + assert((fabs(zimags(out4)-resI4)/fabs(zimags(out4)))<3e-15); + + assert((fabs(zreals(out5)-resR5)/fabs(zreals(out5)))<3e-15); + assert((fabs(zimags(out5)-resI5)/fabs(zimags(out5)))<3e-15); + + assert((fabs(zreals(out6)-resR6)/fabs(zreals(out6)))<3e-15); + assert((fabs(zimags(out6)-resI6)/fabs(zimags(out6)))<3e-12); + + assert((fabs(zreals(out8)-resR8)/fabs(zreals(out8)))<3e-15); + assert((fabs(zimags(out8)-resI8)/fabs(zimags(out8)))<3e-15); + + assert((fabs(zreals(out10)-resR10)/fabs(zreals(out10)))<3e-14); + assert((fabs(zimags(out10)-resI10)/fabs(zimags(out10)))<3e-15); +} + +static int determTest(void){ + printf("\n >>> Double Determ <<<\n"); + ddetermaTest(); + zdetermaTest(); + return 0; +} + + +int main (void){ + assert(determTest()==0); + return 0; +} diff --git a/src/c/matrixOperations/determ/testFloatDeterm.c b/src/c/matrixOperations/determ/testFloatDeterm.c new file mode 100644 index 0000000..d429d02 --- /dev/null +++ b/src/c/matrixOperations/determ/testFloatDeterm.c @@ -0,0 +1,453 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * 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 <assert.h> +#include <stdio.h> +#include <math.h> +#include "determ.h" + + + +#define IN2 {0.1998337740078568458557f,0.5618660743348300457001f,\ +0.5896177329123020172119f,0.6853979662992060184479f} + +#define RES2 -0.1943205386467572182152f + +#define IN3 {0.8906224733218550682068f,0.5042212805710732936859f,0.3493615407496690750122f,\ +0.3873778772540390491486f,0.9222898678854107856751f,0.9488184261135756969452f,\ +0.3435337245464324951172f,0.3760118731297552585602f,0.7340940563008189201355f} + +#define RES3 0.2464108526639412488635f + +#define IN4 {0.2615761472843587398529f,0.4993493836373090744019f,0.2638578419573605060577f,\ + 0.5253563085570931434631f,\ +0.5376229803077876567841f,0.1199925504624843597412f,0.2256303490139544010162f,\ + 0.6274093082174658775330f,\ +0.7608432597480714321137f,0.0485566202551126480103f,0.6723949727602303028107f,\ + 0.2017172696068882942200f,\ +0.3911573919467628002167f,0.8300316557288169860840f,0.5878720157779753208160f,\ + 0.4829179299995303153992f} + +#define RES4 0.0079215378363537460038f + +#define IN5 {0.2232865034602582454681f,0.8400885667651891708374f,0.1205995907075703144074f,\ + 0.2855364168062806129456f,0.8607514644972980022430f,\ +0.8494101651012897491455f,0.5257060811854898929596f,0.9931209897622466087341f,\ + 0.6488562873564660549164f,0.9923190940171480178833f,\ +0.0500419777818024158478f,0.7485506581142544746399f,0.4104058998636901378632f,\ + 0.6084526330232620239258f,0.8544210889376699924469f,\ +0.0642646728083491325378f,0.8279082938097417354584f,0.9262343775480985641480f,\ + 0.5667211269028484821320f,0.5711638936772942543030f,\ +0.8160110483877360820770f,0.0568927936255931854248f,0.5595936686731874942780f,\ + 0.1249340316280722618103f,0.7279222286306321620941f} + +#define RES5 0.0501241717143536200108f + +#define IN6 {0.2677766475826501846314f,0.5465334919281303882599f,0.9885407658293843269348f,\ + 0.7395656588487327098846f,0.0037173107266426086426f,0.5900572859682142734528f,\ +0.3096467358991503715515f,0.2552205710671842098236f,0.6251879390329122543335f,\ + 0.1157417376525700092316f,0.6117004090920090675354f,0.6783956284634768962860f,\ +0.3320095278322696685791f,0.0258709923364222049713f,0.5174468224868178367615f,\ + 0.3916873238049447536469f,0.2413538414984941482544f,0.5064434898085892200470f,\ +0.4236102001741528511047f,0.2893727528862655162811f,0.0887932181358337402344f,\ + 0.6212881752289831638336f,0.3454984454438090324402f,0.7064867629669606685638f,\ +0.5211472492665052413940f,0.2870400850661098957062f,0.6502795079723000526428f,\ + 0.0881334762088954448700f,0.4498763345181941986084f,0.722725308034569025040f,\ +0.8976796260103583335877f,0.2427821881137788295746f,0.4337721113115549087524f,\ + 0.9677053210325539112091f,0.5068534435704350471497f,0.523297640960663557053f} + +#define RES6 -0.0275938917848303037761f + +#define IN8 {0.5596947595477104187012f,0.5617307000793516635895f,0.468176002614200115204f,\ + 0.7794546722434461116791f,0.7901071812957525253296f,0.9808542062528431415558f,\ + 0.8187066102400422096252f,0.4256872381083667278290f,\ +0.2461560554802417755127f,0.922953246627002954483f,0.1000745808705687522888f,\ + 0.4678218117915093898773f,0.3950497675687074661255f,0.0366117102093994617462f,\ + 0.5175368534401059150696f,0.8325451570563018321991f,\ +0.6104832142591476440430f,0.1871111788786947727203f,0.0189574835821986198425f,\ + 0.8433564766310155391693f,0.0748594831675291061401f,0.8532815133221447467804f,\ + 0.0124590108171105384827f,0.1867539356462657451630f,\ +0.4920584075152873992920f,0.7489608139730989933014f,0.9414957007393240928650f,\ + 0.212405560072511434555f,0.5795019958168268203735f,0.2628147569485008716583f,\ + 0.4360986622050404548645f,0.9110545101575553417206f,\ +0.8082667365670204162598f,0.8102653049863874912262f,0.2590428395196795463562f,\ + 0.4139087288640439510346f,0.3599927779287099838257f,0.6912787933833897113800f,\ + 0.7656858796253800392151f,0.3572649653069674968720f,\ +0.7693399824202060699463f,0.5477633909322321414948f,0.0962288742884993553162f,\ + 0.9561171731911599636078f,0.2207408566027879714966f,0.0143259358592331409454f,\ + 0.8191489772871136665344f,0.1304992842487990856171f,\ +0.9682003557682037353516f,0.6561381467618048191071f,0.2445538965985178947449f,\ + 0.5283123566769063472748f,0.8468925636261701583862f,0.7876622085459530353546f,\ + 0.1262082615867257118225f,0.7883860985748469829559f,\ +0.3453042469918727874756f,0.2659857333637773990631f,0.9709818651899695396423f,\ + 0.8875247663818299770355f,0.2066752854734659194946f,0.8525160965509712696075f,\ + 0.6744697811082005500794f,0.9152874383144080638886f} + +#define RES8 0.1359018266554544440705f + +#define IN10 {0.0284859761595726013184f,0.2367841475643217563629f,0.7015343559905886650085f,\ + 0.1202526628039777278900f,0.8287412133067846298218f,0.3161072959192097187042f,\ + 0.5305190766230225563049f,0.5715174819342792034149f,0.0478015430271625518799f,\ + 0.8248619721271097660065f,\ +0.5798843121156096458435f,0.2791808298788964748383f,0.9545110929757356643677f,\ + 0.9071154636330902576447f,0.3360149310901761054993f,0.1175613063387572765350f,\ + 0.9253723770380020141602f,0.7263671257533133029938f,0.9009497938677668571472f,\ + 0.3948993249796330928803f,\ +0.5655179750174283981323f,0.7061489676125347614288f,0.6787831196561455726624f,\ + 0.413293636869639158249f,0.1402290873229503631592f,0.4952356130816042423248f,\ + 0.4194877287372946739197f,0.8626222289167344570160f,0.2857509646564722061157f,\ + 0.2512136367149651050568f,\ +0.3389101596549153327942f,0.3921975973062217235565f,0.4681552127003669738770f,\ + 0.3361602746881544589996f,0.5336876614019274711609f,0.2039063959382474422455f,\ + 0.1589989718049764633179f,0.0181815107353031635284f,0.4098370606079697608948f,\ + 0.0105834598653018474579f,\ +0.1965309716761112213135f,0.2725595370866358280182f,0.3437655037268996238709f,\ + 0.2033702037297189235687f,0.3011944610625505447388f,0.2762595904059708118439f,\ + 0.2944530742242932319641f,0.5718073952011764049530f,0.2141770124435424804688f,\ + 0.6895461627282202243805f,\ +0.5855572847649455070496f,0.4204123034141957759857f,0.4277572017163038253784f,\ + 0.318458587396889925003f,0.5761894444003701210022f,0.4254902224056422710419f,\ + 0.9761981628835201263428f,0.2518960000015795230866f,0.4391129007562994956970f,\ + 0.075930369552224874496f,\ +0.2559380177408456802368f,0.0670616743154823780060f,0.7651131572201848030090f,\ + 0.0417361590079963207245f,0.3438271805644035339356f,0.1970167332328855991364f,\ + 0.2122898651286959648132f,0.3140398501418530941010f,0.7821625377982854843140f,\ + 0.0540932347066700458527f,\ +0.9190206909552216529846f,0.4603515709750354290009f,0.2992685027420520782471f,\ + 0.0029166326858103275299f,0.8993470584973692893982f,0.8387927166186273097992f,\ + 0.4343749452382326126099f,0.7767876130528748035431f,0.1395317660644650459290f,\ + 0.1150637227110564708710f,\ +0.5355419963598251342773f,0.4311733045615255832672f,0.614538478665053844452f,\ + 0.9258962138555943965912f,0.0993817280977964401245f,0.4280578647740185260773f,\ + 0.9431830951943993568420f,0.0327395270578563213348f,0.9213267080485820770264f,\ + 0.9449024409987032413483f,\ +0.9007069906219840049744f,0.8094316101633012294769f,0.0251954291015863418579f,\ + 0.0019645062275230884552f,0.5075221331790089607239f,0.4076042952947318553925f,\ + 0.8408046141266822814941f,0.501726570073515176773f,0.9128780765458941459656f,\ + 0.4435729472897946834564f} + +#define RES10 -0.0105698586359502730292f + + + + +#define CINR2 {0.9625065480358898639679f,0.9798011491075158119202f,\ +0.0785698364488780498505f,0.9150031916797161102295f} +#define CINI2 {0.6172610134817659854889f,0.9964194735512137413025f,\ +0.0468598580919206142426f,0.9245926234871149063110f} +#define CRESR2 0.2796908427268796071274f +#define CRESI2 1.3305203939304277582778f + +#define CINR3 {0.9689865079708397388458f,0.4916289718821644783020f,0.2977053108625113964081f,\ +0.0603054538369178771973f,0.631347181741148233414f,0.0241030259057879447937f,\ +0.1527438252232968807221f,0.9481177683919668197632f,0.2744265575893223285675f} +#define CINI3 {0.4794727200642228126526f,0.485576837789267301559f,0.676400367170572280884f,\ +0.8321249918080866336823f,0.0125875836238265037537f,0.5453779897652566432953f,\ +0.8426716942340135574341f,0.9029165101237595081329f,0.4409482078626751899719f} +#define CRESR3 0.3208274162176448784933f +#define CRESI3 -0.5045627162227295237074f + +#define CINR4 {0.8332359003834426403046f,0.7233976423740386962891f,0.4377150186337530612946f,\ + 0.3080607382580637931824f,\ +0.8749813153408467769623f,0.5355882328003644943237f,0.3085998897440731525421f,\ + 0.3354632416740059852600f,\ +0.2342486302368342876434f,0.2589411698281764984131f,0.8521509231068193912506f,\ + 0.4821739485487341880798f,\ +0.6095217890106141567230f,0.9872822705656290054321f,0.9811426815576851367950f,\ + 0.3303113700821995735169f} +#define CINI4 {0.3589145573787391185761f,0.2780527696013450622559f,0.9583482020534574985504f,\ + 0.0156362904235720634460f,\ +0.2964351712726056575775f,0.4685934986919164657593f,0.4262020816095173358917f,\ + 0.4217656338587403297424f,\ +0.1034853602759540081024f,0.4279759414494037628174f,0.7860729382373392581940f,\ + 0.8568082069978117942810f,\ +0.1993437460623681545258f,0.7131301630288362503052f,0.5208952468819916248322f,\ + 0.9311723159626126289368f} +#define CRESR4 0.5916307061533252475982f +#define CRESI4 -0.104762389048400544889f + +#define CINR5 {0.4143836158327758312225f,0.5980196148157119750977f,0.5549105503596365451813f,\ + 0.8552952585741877555847f,0.3097750707529485225678f,\ +0.9446128141134977340698f,0.2442680452950298786163f,0.8760446915403008460999f,\ + 0.4874215493910014629364f,0.3844018988311290740967f,\ +0.0922345430590212345123f,0.0705418726429343223572f,0.7338807261548936367035f,\ + 0.7792180571705102920532f,0.7827638057060539722443f,\ +0.2161567779257893562317f,0.3420197847299277782440f,0.430093832314014434814f,\ + 0.6261752569116652011871f,0.9554250938817858695984f,\ +0.45415506651625037193f,0.0029223021119832992554f,0.0106920679099857807159f,\ + 0.9746370846405625343323f,0.7704260940663516521454f} +#define CINI5 {0.6396631337702274322510f,0.9535886184312403202057f,0.4148483341559767723084f,\ + 0.4661539695225656032562f,0.2238455135375261306763f,\ +0.3456973326392471790314f,0.2340623633936047554016f,0.6619341480545699596405f,\ + 0.2691179513931274414063f,0.9830248900689184665680f,\ +0.7393351225182414054871f,0.2902135862968862056732f,0.3995949607342481613159f,\ + 0.9792278115637600421906f,0.0075513580814003944397f,\ +0.7021022657863795757294f,0.8907506130635738372803f,0.6526974202133715152741f,\ + 0.4136228552088141441345f,0.8581690913997590541840f,\ +0.2396089676767587661743f,0.4820041772909462451935f,0.9848585547879338264465f,\ + 0.4469721647910773754120f,0.2329813763499259948731f} +#define CRESR5 -0.2050520846829704535441f +#define CRESI5 1.3442626005968567604043f + +#define CINR6 {0.2234513931907713413239f,0.8002565456554293632507f,0.7750734328292310237885f,\ + 0.4825006630271673202515f,0.7844883133657276630402f,0.1534679317846894264221f,\ +0.7722877110354602336884f,0.8952021785080432891846f,0.9467325792647898197174f,\ + 0.6981825744733214378357f,0.9559160820208489894867f,0.0484017301350831985474f,\ +0.5323520642705261707306f,0.2946867095306515693665f,0.6977136689238250255585f,\ + 0.9376203864812850952148f,0.1075560846365988254547f,0.7763424394652247428894f,\ +0.6373417838476598262787f,0.0663061570376157760620f,0.8169459854252636432648f,\ + 0.354739100672304630280f,0.5860544512979686260223f,0.3461025469005107879639f,\ +0.4424751014448702335358f,0.8822665056213736534119f,0.7643693066202104091644f,\ + 0.7764139864593744277954f,0.2807680931873619556427f,0.6908600600436329841614f,\ +0.7174728694371879100800f,0.372018136084079742432f,0.9325496577657759189606f,\ + 0.2256677551195025444031f,0.7521101920865476131439f,0.3074750658124685287476f} +#define CINI6 {0.5979326148517429828644f,0.1923890346661210060120f,0.2387088830582797527313f,\ + 0.7470833100378513336182f,0.9713153676129877567291f,0.4370355373248457908630f,\ +0.6224875054322183132172f,0.3291327971965074539185f,0.3296387386508285999298f,\ + 0.2768637137487530708313f,0.4872983503155410289764f,0.7732046544551849365234f,\ +0.9077521809376776218414f,0.5012293187901377677918f,0.5159545852802693843842f,\ + 0.5792678873986005783081f,0.154639363754540681839f,0.7611137786880135536194f,\ +0.6907917778007686138153f,0.2873229347169399261475f,0.9642531336285173892975f,\ + 0.5660724332556128501892f,0.5782137936912477016449f,0.266342097893357276917f,\ +0.4747098502703011035919f,0.6073546530678868293762f,0.0409730705432593822479f,\ + 0.501256845891475677490f,0.5295930975116789340973f,0.6259458316490054130554f,\ +0.2219352661632001399994f,0.3467419948428869247437f,0.3951167692430317401886f,\ + 0.5442812526598572731018f,0.1430782820098102092743f,0.7165467627346515655518f} +#define CRESR6 0.0374364367907719236550f +#define CRESI6 0.0027318151340892903034f + +#define CINR8 {0.826897530350834131241f,0.0803818320855498313904f,0.7634756616316735744476f,\ + 0.6771226990967988967896f,0.0800866526551544666290f,0.5631617354229092597961f,\ + 0.8400143641047179698944f,0.9142984896898269653320f,\ +0.9566112258471548557282f,0.1676578698679804801941f,0.4345969124697148799896f,\ + 0.0417516361922025680542f,0.4832747434265911579132f,0.2889312515035271644592f,\ + 0.4115779171697795391083f,0.2200270108878612518311f,\ +0.3144670636393129825592f,0.2733902474865317344666f,0.7691849744878709316254f,\ + 0.0548522863537073135376f,0.4532337454147636890411f,0.2262856932356953620911f,\ + 0.1486739399842917919159f,0.2435002401471138000488f,\ +0.384454759303480386734f,0.1141278846189379692078f,0.3649685769341886043549f,\ + 0.9379479344934225082398f,0.2138825734145939350128f,0.8807754451408982276917f,\ + 0.3025345797650516033173f,0.2935827709734439849854f,\ +0.9067896143533289432526f,0.7959460681304335594177f,0.0202379724942147731781f,\ + 0.1722054202109575271606f,0.2199751031585037708283f,0.7548991339281201362610f,\ + 0.4089378821663558483124f,0.4680796265602111816406f,\ +0.420881266240030527115f,0.7480402020737528800964f,0.2455636872909963130951f,\ + 0.0257788877934217453003f,0.3875689213164150714874f,0.2191973784938454627991f,\ + 0.9874265412800014019013f,0.6185800097882747650147f,\ +0.1833024383522570133209f,0.5313195576891303062439f,0.1505152708850800991058f,\ + 0.9561535362154245376587f,0.6994940754957497119904f,0.2583465399220585823059f,\ + 0.6155266496352851390839f,0.1903010532259941101074f,\ +0.4607576900161802768707f,0.5220010234043002128601f,0.7053800462745130062103f,\ + 0.8874893691390752792358f,0.1858218242414295673370f,0.0922524714842438697815f,\ + 0.3779664481990039348602f,0.9369315691292285919190f} +#define CINI8 {0.1980521664954721927643f,0.4702028548344969749451f,0.3778818598948419094086f,\ + 0.3629649449139833450317f,0.2793333870358765125275f,0.6721442686393857002258f,\ + 0.6908950763754546642304f,0.5104757994413375854492f,\ +0.0610603489913046360016f,0.9335384247824549674988f,0.1448998316191136837006f,\ + 0.5721211265772581100464f,0.5459886942990124225617f,0.0516680190339684486389f,\ + 0.5011013220064342021942f,0.9260971657931804656982f,\ +0.8546948046423494815826f,0.5857099732384085655212f,0.8791871047578752040863f,\ + 0.2532048318535089492798f,0.790395137388259172440f,0.6329805525019764900208f,\ + 0.8602323713712394237518f,0.9019620195031166076660f,\ +0.3158749365247786045075f,0.4001023573800921440125f,0.1110895960591733455658f,\ + 0.4705127831548452377319f,0.5362763185985386371613f,0.2878431910648941993713f,\ + 0.8740125591866672039032f,0.0740833915770053863525f,\ +0.2814957336522638797760f,0.7083768015727400779724f,0.1652647457085549831390f,\ + 0.2667352575808763504028f,0.8819408011622726917267f,0.3537154989317059516907f,\ + 0.0264621186070144176483f,0.0861647427082061767578f,\ +0.2313965209759771823883f,0.1340646473690867424011f,0.6724002673290669918060f,\ + 0.1902998369187116622925f,0.7307508592493832111359f,0.5048490324988961219788f,\ + 0.8791159312240779399872f,0.5544437132775783538818f,\ +0.2063297093845903873444f,0.401161103509366512299f,0.4559328979812562465668f,\ + 0.6977151576429605484009f,0.3965912279672920703888f,0.498381090350449085236f,\ + 0.1452422770671546459198f,0.9075358733534812927246f,\ +0.1009295457042753696442f,0.0177189959213137626648f,0.7937671481631696224213f,\ + 0.4309146609157323837280f,0.584337853360921144485f,0.7954284632578492164612f,\ + 0.1390615846030414104462f,0.1012784726917743682861f} +#define CRESR8 -0.2866880544829432109211f +#define CRESI8 -0.5082321435837643397449f + +#define CINR10 {0.3316808626987040042877f,0.8344425177201628684998f,0.0549940518103539943695f,\ + 0.3696003425866365432739f,0.7453266424126923084259f,0.0571811841800808906555f,\ + 0.5999651807360351085663f,0.2085741907358169555664f,0.8798878290690481662750f,\ + 0.4782809792086482048035f,\ +0.7116099162958562374115f,0.8585865031927824020386f,0.8078222130425274372101f,\ + 0.5159962782636284828186f,0.8917340408079326152802f,0.8842348866164684295654f,\ + 0.70964269945397973061f,0.6610225578770041465759f,0.7252350724302232265472f,\ + 0.510143497958779335022f,\ +0.2824866441078484058380f,0.2214915128424763679504f,0.5767575385980308055878f,\ + 0.7048253491520881652832f,0.5607945644296705722809f,0.3628880484029650688171f,\ + 0.3088326244615018367767f,0.9813414867967367172241f,0.7428482254035770893097f,\ + 0.1616391474381089210510f,\ +0.3652521963231265544891f,0.3835070468485355377197f,0.1169181005097925662994f,\ + 0.8911246126517653465271f,0.0634272000752389431000f,0.6263941843062639236450f,\ + 0.6807702076621353626251f,0.2588596837595105171204f,0.4394804346375167369843f,\ + 0.8598818778991699218750f,\ +0.5482823201455175876617f,0.8135995296761393547058f,0.4898237003944814205170f,\ + 0.0240026097744703292847f,0.7369195525534451007843f,0.2411156157031655311585f,\ + 0.1529693226329982280731f,0.2648359201848506927490f,0.4298193217255175113678f,\ + 0.7673939457163214683533f,\ +0.8753260499797761440277f,0.3796988371759653091431f,0.3062356826849281787872f,\ + 0.3880051793530583381653f,0.1047293278388679027557f,0.7603831812739372253418f,\ + 0.0340930395759642124176f,0.1423966242000460624695f,0.5554559468291699886322f,\ + 0.8031897451728582382202f,\ +0.5183992316015064716339f,0.1518561029806733131409f,0.5884730662219226360321f,\ + 0.2545093484222888946533f,0.9992679939605295658112f,0.6398976957425475120544f,\ + 0.5506716123782098293304f,0.4607007671147584915161f,0.5933007937856018543243f,\ + 0.6538193570449948310852f,\ +0.4168340521864593029022f,0.9910155385732650756836f,0.3720780410803854465485f,\ + 0.7061824081465601921082f,0.5780865414999425411224f,0.602319641038775444031f,\ + 0.5715096746571362018585f,0.0549629041925072669983f,0.1205854485742747784f,\ + 0.0143620483577251434326f,\ +0.0257951230742037296295f,0.8411248764023184776306f,0.4381882525049149990082f,\ + 0.4643401596695184707642f,0.4197426405735313892365f,0.8023654492571949958801f,\ + 0.5228588166646659374237f,0.5095121040940284729004f,0.4531980180181562900543f,\ + 0.7817818326875567436218f,\ +0.776557037141174077988f,0.0466059204190969467163f,0.5113326688297092914581f,\ + 0.7502101892605423927307f,0.6883628661744296550751f,0.0167756117880344390869f,\ + 0.9345410899259150028229f,0.5609863763675093650818f,0.2205847105942666530609f,\ + 0.7648540753871202468872f} +#define CINI10 {0.4816976976580917835236f,0.1558785634115338325501f,0.2476022052578628063202f,\ + 0.5216529071331024169922f,0.0805230387486517429352f,0.4409417239949107170105f,\ + 0.8911933614872395992279f,0.9780590813606977462769f,0.4588093762286007404327f,\ + 0.5510440031066536903381f,\ +0.0960960905067622661591f,0.4196785055100917816162f,0.7502556503750383853912f,\ + 0.7218149593099951744080f,0.2895541018806397914887f,0.3907764498144388198853f,\ + 0.6686618146486580371857f,0.4877656819298863410950f,0.4685971769504249095917f,\ + 0.3562648519873619079590f,\ +0.3442325466312468051910f,0.4253307832404971122742f,0.5588058172725141048431f,\ + 0.3304864969104528427124f,0.4157403339631855487824f,0.1595822656527161598206f,\ + 0.3883102680556476116180f,0.9415460713207721710205f,0.4722979352809488773346f,\ + 0.8533652639016509056091f,\ +0.1207739165984094142914f,0.8999380934983491897583f,0.4384902161546051502228f,\ + 0.8976056622341275215149f,0.4911110657267272472382f,0.3402217179536819458008f,\ + 0.9966153600253164768219f,0.0215395865961909294128f,0.6876890822313725948334f,\ + 0.0044924151152372360229f,\ +0.6397854541428387165070f,0.5416147718206048011780f,0.2247649203054606914520f,\ + 0.7364005260169506072998f,0.4496364505030214786530f,0.9678138038143515586853f,\ + 0.6489060199819505214691f,0.2544666919857263565064f,0.1923975017853081226349f,\ + 0.6861492367461323738098f,\ +0.4231455805711448192596f,0.6734441593289375305176f,0.8270696722902357578278f,\ + 0.9360805852338671684265f,0.8326222090981900691986f,0.7424779590219259262085f,\ + 0.0194640238769352436066f,0.8016031915321946144104f,0.2554539437405765056610f,\ + 0.2688109613955020904541f,\ +0.7558490769006311893463f,0.4347589677199721336365f,0.6425966522656381130219f,\ + 0.6957868058234453201294f,0.6499576461501419544220f,0.2303190128877758979797f,\ + 0.5504368054680526256561f,0.3038997054100036621094f,0.0371030517853796482086f,\ + 0.1703881053254008293152f,\ +0.5698686256073415279388f,0.0036411266773939132690f,0.4491547052748501300812f,\ + 0.0576810697093605995178f,0.4956056098453700542450f,0.1888933442533016204834f,\ + 0.5641230703331530094147f,0.8562210192903876304627f,0.0794764286838471889496f,\ + 0.6196198705583810806274f,\ +0.2241039988584816455841f,0.8582094730809330940247f,0.7114551994018256664276f,\ + 0.8026027604937553405762f,0.6153324418701231479645f,0.8958183480426669120789f,\ + 0.8721761344932019710541f,0.8389767911285161972046f,0.2040955354459583759308f,\ + 0.3166538262739777565002f,\ +0.7006825651042163372040f,0.2073105163872241973877f,0.5222550616599619388580f,\ + 0.9416420971974730491638f,0.52116033947095274925f,0.4509841967374086380005f,\ + 0.3961292845197021961212f,0.7240869747474789619446f,0.6724055963568389415741f,\ + 0.2386146038770675659180f} +#define CRESR10 -0.0701164785573487325809f +#define CRESI10 -0.3697118554850691296565f + + +static void sdetermaTest(void){ + float in2[]=IN2; float res2=RES2; + float in3[]=IN3; float res3=RES3; + float in4[]=IN4; float res4=RES4; + float in5[]=IN5; float res5=RES5; + float in6[]=IN6; float res6=RES6; + float in8[]=IN8; float res8=RES8; + float in10[]=IN10; float res10=RES10; + float out2,out3,out4,out5,out6,out8,out10; + + out2=sdeterma(in2,2); + out3=sdeterma(in3,3); + out4=sdeterma(in4,4); + out5=sdeterma(in5,5); + out6=sdeterma(in6,6); + out8=sdeterma(in8,8); + out10=sdeterma(in10,10); + + assert((fabs(out2-res2)/fabs(out2))<1e-6); + assert((fabs(out3-res3)/fabs(out3))<1e-7); + assert((fabs(out4-res4)/fabs(out4))<3e-6); + assert((fabs(out5-res5)/fabs(out5))<1e-6); + assert((fabs(out6-res6)/fabs(out6))<1e-6); + assert((fabs(out8-res8)/fabs(out8))<1e-6); + assert((fabs(out10-res10)/fabs(out10))<3e-6); + +} + +static void cdetermaTest(void){ + float inR2[]=CINR2; float inI2[]=CINI2; float resR2=CRESR2; float resI2=CRESI2; + float inR3[]=CINR3; float inI3[]=CINI3; float resR3=CRESR3; float resI3=CRESI3; + float inR4[]=CINR4; float inI4[]=CINI4; float resR4=CRESR4; float resI4=CRESI4; + float inR5[]=CINR5; float inI5[]=CINI5; float resR5=CRESR5; float resI5=CRESI5; + float inR6[]=CINR6; float inI6[]=CINI6; float resR6=CRESR6; float resI6=CRESI6; + float inR8[]=CINR8; float inI8[]=CINI8; float resR8=CRESR8; float resI8=CRESI8; + float inR10[]=CINR10; float inI10[]=CINI10; float resR10=CRESR10; float resI10=CRESI10; + floatComplex out2,out3,out4,out5,out6,out8,out10; + floatComplex *in2, *in3, *in4, *in5, *in6, *in8, *in10; + + in2=FloatComplexMatrix(inR2,inI2,4); + in3=FloatComplexMatrix(inR3,inI3,9); + in4=FloatComplexMatrix(inR4,inI4,16); + in5=FloatComplexMatrix(inR5,inI5,25); + in6=FloatComplexMatrix(inR6,inI6,36); + in8=FloatComplexMatrix(inR8,inI8,64); + in10=FloatComplexMatrix(inR10,inI10,100); + + out2=cdeterma(in2,2); + out3=cdeterma(in3,3); + out4=cdeterma(in4,4); + out5=cdeterma(in5,5); + out6=cdeterma(in6,6); + out8=cdeterma(in8,8); + out10=cdeterma(in10,10); + + + assert((fabs(creals(out2)-resR2)/fabs(creals(out2)))<1e-6); + assert((fabs(cimags(out2)-resI2)/fabs(cimags(out2)))<1e-6); + + assert((fabs(creals(out3)-resR3)/fabs(creals(out3)))<1e-6); + assert((fabs(cimags(out3)-resI3)/fabs(cimags(out3)))<1e-6); + + assert((fabs(creals(out4)-resR4)/fabs(creals(out4)))<1e-6); + assert((fabs(cimags(out4)-resI4)/fabs(cimags(out4)))<1e-6); + + assert((fabs(creals(out5)-resR5)/fabs(creals(out5)))<3e-6); + assert((fabs(cimags(out5)-resI5)/fabs(cimags(out5)))<1e-6); + + assert((fabs(creals(out6)-resR6)/fabs(creals(out6)))<1e-6); + assert((fabs(cimags(out6)-resI6)/fabs(cimags(out6)))<3e-6); + + assert((fabs(creals(out8)-resR8)/fabs(creals(out8)))<1e-6); + assert((fabs(cimags(out8)-resI8)/fabs(cimags(out8)))<1e-6); + + assert((fabs(creals(out10)-resR10)/fabs(creals(out10)))<3e-6); + assert((fabs(cimags(out10)-resI10)/fabs(cimags(out10)))<1e-6); +} + +static int determTest(void){ + printf("\n >>> Float Determ <<<\n"); + sdetermaTest(); + cdetermaTest(); + return 0; +} + + +int main (void){ + assert(determTest()==0); + return 0; +} diff --git a/src/c/matrixOperations/determ/test_DoubleDeterm/testDoubleDeterm.vcxproj b/src/c/matrixOperations/determ/test_DoubleDeterm/testDoubleDeterm.vcxproj new file mode 100644 index 0000000..5a221ab --- /dev/null +++ b/src/c/matrixOperations/determ/test_DoubleDeterm/testDoubleDeterm.vcxproj @@ -0,0 +1,186 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{7F13C8AE-27AC-43B4-8C1E-263C5A4C9942}</ProjectGuid>
+ <RootNamespace>testDoubleDeterm</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleDeterm.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\auxiliaryFunctions\auxiliaryFunctions.vcxproj">
+ <Project>{af4a8af2-cc9f-4991-be6e-8aaf9cb5bfc9}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\elementaryFunctions\elementaryFunctions.vcxproj">
+ <Project>{72b46833-b150-432d-b231-3e0ecd91e190}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\matrixOperations.vcxproj">
+ <Project>{fd335544-52bf-4736-a34e-77f591d158d5}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file diff --git a/src/c/matrixOperations/determ/test_DoubleDeterm/testDoubleDeterm.vcxproj.filters b/src/c/matrixOperations/determ/test_DoubleDeterm/testDoubleDeterm.vcxproj.filters new file mode 100644 index 0000000..71bf090 --- /dev/null +++ b/src/c/matrixOperations/determ/test_DoubleDeterm/testDoubleDeterm.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleDeterm.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file diff --git a/src/c/matrixOperations/determ/test_DoubleDist/testDoubleDist.vcxproj b/src/c/matrixOperations/determ/test_DoubleDist/testDoubleDist.vcxproj new file mode 100644 index 0000000..8131ad9 --- /dev/null +++ b/src/c/matrixOperations/determ/test_DoubleDist/testDoubleDist.vcxproj @@ -0,0 +1,178 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{3F1C1C41-424E-4E23-8990-AEB55196376D}</ProjectGuid>
+ <RootNamespace>testDoubleDist</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleDeterm.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\matrixOperations.vcxproj">
+ <Project>{fd335544-52bf-4736-a34e-77f591d158d5}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file diff --git a/src/c/matrixOperations/determ/test_DoubleDist/testDoubleDist.vcxproj.filters b/src/c/matrixOperations/determ/test_DoubleDist/testDoubleDist.vcxproj.filters new file mode 100644 index 0000000..71bf090 --- /dev/null +++ b/src/c/matrixOperations/determ/test_DoubleDist/testDoubleDist.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testDoubleDeterm.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file diff --git a/src/c/matrixOperations/determ/test_FloatDeterm/testFloatDeterm.vcxproj b/src/c/matrixOperations/determ/test_FloatDeterm/testFloatDeterm.vcxproj new file mode 100644 index 0000000..e80f9c1 --- /dev/null +++ b/src/c/matrixOperations/determ/test_FloatDeterm/testFloatDeterm.vcxproj @@ -0,0 +1,178 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{204A5126-03B1-4E9D-8CC1-CCA9F64BD081}</ProjectGuid>
+ <RootNamespace>testFloatDeterm</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatDeterm.c">
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\type\type.vcxproj">
+ <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\matrixOperations.vcxproj">
+ <Project>{fd335544-52bf-4736-a34e-77f591d158d5}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file diff --git a/src/c/matrixOperations/determ/test_FloatDeterm/testFloatDeterm.vcxproj.filters b/src/c/matrixOperations/determ/test_FloatDeterm/testFloatDeterm.vcxproj.filters new file mode 100644 index 0000000..df479e8 --- /dev/null +++ b/src/c/matrixOperations/determ/test_FloatDeterm/testFloatDeterm.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\testFloatDeterm.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file diff --git a/src/c/matrixOperations/determ/u16determa.c b/src/c/matrixOperations/determ/u16determa.c new file mode 100644 index 0000000..5e859d4 --- /dev/null +++ b/src/c/matrixOperations/determ/u16determa.c @@ -0,0 +1,92 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdlib.h> +#ifndef WITHOUT_LAPACK +#include "lapack.h" +#endif +#include "determ.h" +#include "lapack.h" + +uint16 u16determa(uint16 * in, int size){ +#ifndef WITHOUT_LAPACK + int i=0, info=0; + uint16 out=0; + uint16 *inCopy=NULL; + int* tmp=NULL; + + /*Calculation of the determinant*/ + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=(uint16*)malloc((unsigned int)(size*size)*sizeof(uint16)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + tmp=(int*)malloc((unsigned int)size*sizeof(int)); + dgetrf_(&size, &size, inCopy, &size, tmp, &info); + out=1; + for (i=0;i<size;i++){ + if (tmp[i]!=i+1) out=-out; + out=inCopy[i*(size+1)]*out; + } + free(tmp); + free(inCopy); + break; + } + +#else + int i=0, j=0, k=0; + uint16 out=0, pivot=0; + uint16 *inCopy=NULL; + + /*Calculation of the determinant*/ + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=malloc((unsigned int)(size*size)*sizeof(uint16)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + for (i=0;i<size;i++){ + for (j=i+1;j<size;j++){ + pivot = inCopy[i*size+j]/inCopy[i*size+i]; + for (k=0;k<size-i;k++){ + inCopy[i*size+j+k*size]-=pivot*inCopy[i*size+i+k*size]; + } + } + } + out=1; + for (i=0;i<size;i++){ + out *= inCopy[i*size+i]; + } + free(inCopy); + break; + + } +#endif + + + return out; +} diff --git a/src/c/matrixOperations/determ/u8determa.c b/src/c/matrixOperations/determ/u8determa.c new file mode 100644 index 0000000..f226af2 --- /dev/null +++ b/src/c/matrixOperations/determ/u8determa.c @@ -0,0 +1,92 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdlib.h> +#ifndef WITHOUT_LAPACK +#include "lapack.h" +#endif +#include "determ.h" +#include "lapack.h" + +uint8 u8determa(uint8 * in, int size){ +#ifndef WITHOUT_LAPACK + int i=0, info=0; + uint8 out=0; + uint8 *inCopy=NULL; + int* tmp=NULL; + + /*Calculation of the determinant*/ + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=(uint8*)malloc((unsigned int)(size*size)*sizeof(uint8)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + tmp=(int*)malloc((unsigned int)size*sizeof(int)); + dgetrf_(&size, &size, inCopy, &size, tmp, &info); + out=1; + for (i=0;i<size;i++){ + if (tmp[i]!=i+1) out=-out; + out=inCopy[i*(size+1)]*out; + } + free(tmp); + free(inCopy); + break; + } + +#else + int i=0, j=0, k=0; + uint8 out=0, pivot=0; + uint8 *inCopy=NULL; + + /*Calculation of the determinant*/ + switch (size){ + case 2 : out = in[0]*in[3]-in[1]*in[2]; + break; + case 3 : /*regle de Sarrus*/ + out = in[0]*in[4]*in[8]+in[1]*in[5]*in[6]+in[2]*in[3]*in[7] + -in[0]*in[5]*in[7]-in[1]*in[3]*in[8]-in[2]*in[4]*in[6]; + break; + default : + + /*Copy the input matrix*/ + inCopy=malloc((unsigned int)(size*size)*sizeof(uint8)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + for (i=0;i<size;i++){ + for (j=i+1;j<size;j++){ + pivot = inCopy[i*size+j]/inCopy[i*size+i]; + for (k=0;k<size-i;k++){ + inCopy[i*size+j+k*size]-=pivot*inCopy[i*size+i+k*size]; + } + } + } + out=1; + for (i=0;i<size;i++){ + out *= inCopy[i*size+i]; + } + free(inCopy); + break; + + } +#endif + + + return out; +} diff --git a/src/c/matrixOperations/determ/zdeterma.c b/src/c/matrixOperations/determ/zdeterma.c new file mode 100644 index 0000000..ea7e98d --- /dev/null +++ b/src/c/matrixOperations/determ/zdeterma.c @@ -0,0 +1,138 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * 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 <stdlib.h> +#ifndef WITHOUT_LAPACK +#include "lapack.h" +#else +#include "division.h" +#endif +#include "determ.h" +#include "multiplication.h" +#include "subtraction.h" +#include "addition.h" + + +doubleComplex zdeterma(doubleComplex * in, int size){ +#ifndef WITHOUT_LAPACK + doubleComplex tmp1,tmp2,out; + int i=0,info=0; + doubleComplex *inCopy; + int* vectPivot; + + switch(size){ + case 2 : out = zdiffs(zmuls(in[0],in[3]),zmuls(in[1],in[2])); + break; + case 3 : /*regle de Sarrus*/ + out=DoubleComplex(0,0); + /*Addition Part*/ + tmp1 = zmuls(in[0],in[4]); + tmp2 = zmuls(tmp1,in[8]); + out = zadds(out,tmp2); + tmp1 = zmuls(in[1],in[5]); + tmp2 = zmuls(tmp1,in[6]); + out = zadds(out,tmp2); + tmp1 = zmuls(in[2],in[3]); + tmp2 = zmuls(tmp1,in[7]); + out = zadds(out,tmp2); + /*Subtraction Part*/ + tmp1 = zmuls(in[0],in[5]); + tmp2 = zmuls(tmp1,in[7]); + out = zdiffs(out,tmp2); + tmp1 = zmuls(in[1],in[3]); + tmp2 = zmuls(tmp1,in[8]); + out = zdiffs(out,tmp2); + tmp1 = zmuls(in[2],in[4]); + tmp2 = zmuls(tmp1,in[6]); + out = zdiffs(out,tmp2); + break; + + default : + /*Allocate inCopy and Copy in in inCopy*/ + inCopy=(doubleComplex*)malloc((unsigned int)(size*size)*sizeof(doubleComplex)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + /*Calculation of determinant*/ + vectPivot = (int*)malloc((unsigned int)size*sizeof(int)); + zgetrf_ ( &size, &size, inCopy, &size, vectPivot, &info); + + out=DoubleComplex(1,0); + for (i=0;i<size;i++){ + if (vectPivot[i]!=i+1) out=DoubleComplex(-zreals(out),-zimags(out)); + out=zmuls(inCopy[i*(size+1)],out); + } + free(vectPivot); + free(inCopy); + break; + } + +#else + int i=0,j=0,k=0; + doubleComplex *inCopy; + doubleComplex tmp1,tmp2; + doubleComplex pivot; + doubleComplex out; + + + switch(size){ + case 2 : out = zdiffs(zmuls(in[0],in[3]),zmuls(in[1],in[2])); + break; + case 3 : /*regle de Sarrus*/ + out=DoubleComplex(0,0); + /*Addition Part*/ + tmp1 = zmuls(in[0],in[4]); + tmp2 = zmuls(tmp1,in[8]); + out = zadds(out,tmp2); + tmp1 = zmuls(in[1],in[5]); + tmp2 = zmuls(tmp1,in[6]); + out = zadds(out,tmp2); + tmp1 = zmuls(in[2],in[3]); + tmp2 = zmuls(tmp1,in[7]); + out = zadds(out,tmp2); + /*Subtraction Part*/ + tmp1 = zmuls(in[0],in[5]); + tmp2 = zmuls(tmp1,in[7]); + out = zdiffs(out,tmp2); + tmp1 = zmuls(in[1],in[3]); + tmp2 = zmuls(tmp1,in[8]); + out = zdiffs(out,tmp2); + tmp1 = zmuls(in[2],in[4]); + tmp2 = zmuls(tmp1,in[6]); + out = zdiffs(out,tmp2); + break; + + default : + /*Copy the input matrix*/ + inCopy=malloc((unsigned int)(size*size)*sizeof(doubleComplex)); + for (i=0;i<size*size;i++) inCopy[i]=in[i]; + + for (i=0;i<size;i++){ + for (j=i+1;j<size;j++){ + pivot = zrdivs(inCopy[i*size+j],inCopy[i*size+i]); + for (k=0;k<size-i;k++){ + inCopy[i*size+j+k*size]=zdiffs(inCopy[i*size+j+k*size],zmuls(pivot,inCopy[i*size+i+k*size])); + } + } + } + out=DoubleComplex(1,0); + for (i=0;i<size;i++){ + out = zmuls(out,inCopy[i*size+i]); + } + free(inCopy); + break; + } +#endif + return out; + +} + + |