summaryrefslogtreecommitdiff
path: root/src/c/matrixOperations/determ
diff options
context:
space:
mode:
authorAnkit Raj2017-06-21 10:26:59 +0530
committerAnkit Raj2017-06-21 10:26:59 +0530
commit958577cac90a99124cd673fde1926781d966d91f (patch)
tree134d9fe7f5b97a647cb055bb7b4c21820a749f49 /src/c/matrixOperations/determ
downloadScilab2C_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')
-rw-r--r--src/c/matrixOperations/determ/Makefile.am64
-rw-r--r--src/c/matrixOperations/determ/Makefile.in750
-rw-r--r--src/c/matrixOperations/determ/cdeterma.c150
-rw-r--r--src/c/matrixOperations/determ/ddeterma.c92
-rw-r--r--src/c/matrixOperations/determ/i16determa.c92
-rw-r--r--src/c/matrixOperations/determ/i8determa.c92
-rw-r--r--src/c/matrixOperations/determ/sdeterma.c97
-rw-r--r--src/c/matrixOperations/determ/testDoubleDeterm.c451
-rw-r--r--src/c/matrixOperations/determ/testFloatDeterm.c453
-rw-r--r--src/c/matrixOperations/determ/test_DoubleDeterm/testDoubleDeterm.vcxproj186
-rw-r--r--src/c/matrixOperations/determ/test_DoubleDeterm/testDoubleDeterm.vcxproj.filters22
-rw-r--r--src/c/matrixOperations/determ/test_DoubleDist/testDoubleDist.vcxproj178
-rw-r--r--src/c/matrixOperations/determ/test_DoubleDist/testDoubleDist.vcxproj.filters22
-rw-r--r--src/c/matrixOperations/determ/test_FloatDeterm/testFloatDeterm.vcxproj178
-rw-r--r--src/c/matrixOperations/determ/test_FloatDeterm/testFloatDeterm.vcxproj.filters22
-rw-r--r--src/c/matrixOperations/determ/u16determa.c92
-rw-r--r--src/c/matrixOperations/determ/u8determa.c92
-rw-r--r--src/c/matrixOperations/determ/zdeterma.c138
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;
+
+}
+
+