summaryrefslogtreecommitdiff
path: root/src/c/elementaryFunctions/sqrt
diff options
context:
space:
mode:
Diffstat (limited to 'src/c/elementaryFunctions/sqrt')
-rw-r--r--src/c/elementaryFunctions/sqrt/Makefile.am65
-rw-r--r--src/c/elementaryFunctions/sqrt/Makefile.in800
-rw-r--r--src/c/elementaryFunctions/sqrt/csqrta.c20
-rw-r--r--src/c/elementaryFunctions/sqrt/csqrts.c111
-rw-r--r--src/c/elementaryFunctions/sqrt/dsqrta.c20
-rw-r--r--src/c/elementaryFunctions/sqrt/dsqrts.c18
-rw-r--r--src/c/elementaryFunctions/sqrt/ssqrta.c20
-rw-r--r--src/c/elementaryFunctions/sqrt/ssqrts.c18
-rw-r--r--src/c/elementaryFunctions/sqrt/testDoubleSqrt.c497
-rw-r--r--src/c/elementaryFunctions/sqrt/testFloatSqrt.c496
-rw-r--r--src/c/elementaryFunctions/sqrt/testSqrt.h40
-rw-r--r--src/c/elementaryFunctions/sqrt/zsqrta.c20
-rw-r--r--src/c/elementaryFunctions/sqrt/zsqrts.c111
13 files changed, 2236 insertions, 0 deletions
diff --git a/src/c/elementaryFunctions/sqrt/Makefile.am b/src/c/elementaryFunctions/sqrt/Makefile.am
new file mode 100644
index 0000000..6cde141
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/Makefile.am
@@ -0,0 +1,65 @@
+##
+## Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+## Copyright (C) 2007-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
+##
+##
+
+libSqrt_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/operations/includes
+
+instdir = $(top_builddir)/lib
+
+pkglib_LTLIBRARIES = libSqrt.la
+
+libSqrt_la_SOURCES = $(HEAD) $(SRC)
+
+SRC = ssqrts.c \
+ dsqrts.c \
+ csqrts.c \
+ zsqrts.c \
+ ssqrta.c \
+ dsqrta.c \
+ csqrta.c \
+ zsqrta.c
+
+HEAD = ../includes/sqrt.h
+
+####
+# Checking Part
+####
+
+check_INCLUDES = -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/type
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/c/elementaryFunctions/sqrt/libSqrt.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/abs/libAbs.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/pythag/libPythag.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ @LIBMATH@
+
+check_PROGRAMS = testFloatSqrt testDoubleSqrt
+
+TESTS = testFloatSqrt testDoubleSqrt
+
+#
+# -*- Square Root Tests -*-
+#
+testFloatSqrt_SOURCES = testSqrt.h testFloatSqrt.c
+testFloatSqrt_CFLAGS = $(check_INCLUDES)
+testFloatSqrt_LDADD = $(check_LDADD)
+
+testDoubleSqrt_SOURCES = testSqrt.h testDoubleSqrt.c
+testDoubleSqrt_CFLAGS = $(check_INCLUDES)
+testDoubleSqrt_LDADD = $(check_LDADD)
diff --git a/src/c/elementaryFunctions/sqrt/Makefile.in b/src/c/elementaryFunctions/sqrt/Makefile.in
new file mode 100644
index 0000000..574f1e0
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/Makefile.in
@@ -0,0 +1,800 @@
+# 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 = testFloatSqrt$(EXEEXT) testDoubleSqrt$(EXEEXT)
+TESTS = testFloatSqrt$(EXEEXT) testDoubleSqrt$(EXEEXT)
+subdir = src/c/elementaryFunctions/sqrt
+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)
+libSqrt_la_LIBADD =
+am__objects_1 =
+am__objects_2 = libSqrt_la-ssqrts.lo libSqrt_la-dsqrts.lo \
+ libSqrt_la-csqrts.lo libSqrt_la-zsqrts.lo libSqrt_la-ssqrta.lo \
+ libSqrt_la-dsqrta.lo libSqrt_la-csqrta.lo libSqrt_la-zsqrta.lo
+am_libSqrt_la_OBJECTS = $(am__objects_1) $(am__objects_2)
+libSqrt_la_OBJECTS = $(am_libSqrt_la_OBJECTS)
+libSqrt_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libSqrt_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testDoubleSqrt_OBJECTS = testDoubleSqrt-testDoubleSqrt.$(OBJEXT)
+testDoubleSqrt_OBJECTS = $(am_testDoubleSqrt_OBJECTS)
+am__DEPENDENCIES_1 = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/c/elementaryFunctions/sqrt/libSqrt.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/abs/libAbs.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/pythag/libPythag.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la
+testDoubleSqrt_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testDoubleSqrt_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testDoubleSqrt_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testFloatSqrt_OBJECTS = testFloatSqrt-testFloatSqrt.$(OBJEXT)
+testFloatSqrt_OBJECTS = $(am_testFloatSqrt_OBJECTS)
+testFloatSqrt_DEPENDENCIES = $(am__DEPENDENCIES_1)
+testFloatSqrt_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testFloatSqrt_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 = $(libSqrt_la_SOURCES) $(testDoubleSqrt_SOURCES) \
+ $(testFloatSqrt_SOURCES)
+DIST_SOURCES = $(libSqrt_la_SOURCES) $(testDoubleSqrt_SOURCES) \
+ $(testFloatSqrt_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@
+libSqrt_la_CFLAGS = -I $(top_builddir)/src/c/type \
+ -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/auxiliaryFunctions/includes \
+ -I $(top_builddir)/src/c/operations/includes
+
+instdir = $(top_builddir)/lib
+pkglib_LTLIBRARIES = libSqrt.la
+libSqrt_la_SOURCES = $(HEAD) $(SRC)
+SRC = ssqrts.c \
+ dsqrts.c \
+ csqrts.c \
+ zsqrts.c \
+ ssqrta.c \
+ dsqrta.c \
+ csqrta.c \
+ zsqrta.c
+
+HEAD = ../includes/sqrt.h
+
+####
+# Checking Part
+####
+check_INCLUDES = -I $(top_builddir)/src/c/elementaryFunctions/includes \
+ -I $(top_builddir)/src/c/type
+
+check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
+ $(top_builddir)/src/c/type/libFloatComplex.la \
+ $(top_builddir)/src/c/operations/addition/libAddition.la \
+ $(top_builddir)/src/fortran/lapack/libscilapack.la \
+ $(top_builddir)/src/c/elementaryFunctions/sqrt/libSqrt.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/abs/libAbs.la \
+ $(top_builddir)/src/c/auxiliaryFunctions/pythag/libPythag.la \
+ $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
+ @LIBMATH@
+
+
+#
+# -*- Square Root Tests -*-
+#
+testFloatSqrt_SOURCES = testSqrt.h testFloatSqrt.c
+testFloatSqrt_CFLAGS = $(check_INCLUDES)
+testFloatSqrt_LDADD = $(check_LDADD)
+testDoubleSqrt_SOURCES = testSqrt.h testDoubleSqrt.c
+testDoubleSqrt_CFLAGS = $(check_INCLUDES)
+testDoubleSqrt_LDADD = $(check_LDADD)
+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/elementaryFunctions/sqrt/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/c/elementaryFunctions/sqrt/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
+libSqrt.la: $(libSqrt_la_OBJECTS) $(libSqrt_la_DEPENDENCIES)
+ $(libSqrt_la_LINK) -rpath $(pkglibdir) $(libSqrt_la_OBJECTS) $(libSqrt_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
+testDoubleSqrt$(EXEEXT): $(testDoubleSqrt_OBJECTS) $(testDoubleSqrt_DEPENDENCIES)
+ @rm -f testDoubleSqrt$(EXEEXT)
+ $(testDoubleSqrt_LINK) $(testDoubleSqrt_OBJECTS) $(testDoubleSqrt_LDADD) $(LIBS)
+testFloatSqrt$(EXEEXT): $(testFloatSqrt_OBJECTS) $(testFloatSqrt_DEPENDENCIES)
+ @rm -f testFloatSqrt$(EXEEXT)
+ $(testFloatSqrt_LINK) $(testFloatSqrt_OBJECTS) $(testFloatSqrt_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSqrt_la-csqrta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSqrt_la-csqrts.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSqrt_la-dsqrta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSqrt_la-dsqrts.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSqrt_la-ssqrta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSqrt_la-ssqrts.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSqrt_la-zsqrta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSqrt_la-zsqrts.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleSqrt-testDoubleSqrt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatSqrt-testFloatSqrt.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 $@ $<
+
+libSqrt_la-ssqrts.lo: ssqrts.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSqrt_la_CFLAGS) $(CFLAGS) -MT libSqrt_la-ssqrts.lo -MD -MP -MF $(DEPDIR)/libSqrt_la-ssqrts.Tpo -c -o libSqrt_la-ssqrts.lo `test -f 'ssqrts.c' || echo '$(srcdir)/'`ssqrts.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSqrt_la-ssqrts.Tpo $(DEPDIR)/libSqrt_la-ssqrts.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ssqrts.c' object='libSqrt_la-ssqrts.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) $(libSqrt_la_CFLAGS) $(CFLAGS) -c -o libSqrt_la-ssqrts.lo `test -f 'ssqrts.c' || echo '$(srcdir)/'`ssqrts.c
+
+libSqrt_la-dsqrts.lo: dsqrts.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSqrt_la_CFLAGS) $(CFLAGS) -MT libSqrt_la-dsqrts.lo -MD -MP -MF $(DEPDIR)/libSqrt_la-dsqrts.Tpo -c -o libSqrt_la-dsqrts.lo `test -f 'dsqrts.c' || echo '$(srcdir)/'`dsqrts.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSqrt_la-dsqrts.Tpo $(DEPDIR)/libSqrt_la-dsqrts.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dsqrts.c' object='libSqrt_la-dsqrts.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) $(libSqrt_la_CFLAGS) $(CFLAGS) -c -o libSqrt_la-dsqrts.lo `test -f 'dsqrts.c' || echo '$(srcdir)/'`dsqrts.c
+
+libSqrt_la-csqrts.lo: csqrts.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSqrt_la_CFLAGS) $(CFLAGS) -MT libSqrt_la-csqrts.lo -MD -MP -MF $(DEPDIR)/libSqrt_la-csqrts.Tpo -c -o libSqrt_la-csqrts.lo `test -f 'csqrts.c' || echo '$(srcdir)/'`csqrts.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSqrt_la-csqrts.Tpo $(DEPDIR)/libSqrt_la-csqrts.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='csqrts.c' object='libSqrt_la-csqrts.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) $(libSqrt_la_CFLAGS) $(CFLAGS) -c -o libSqrt_la-csqrts.lo `test -f 'csqrts.c' || echo '$(srcdir)/'`csqrts.c
+
+libSqrt_la-zsqrts.lo: zsqrts.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSqrt_la_CFLAGS) $(CFLAGS) -MT libSqrt_la-zsqrts.lo -MD -MP -MF $(DEPDIR)/libSqrt_la-zsqrts.Tpo -c -o libSqrt_la-zsqrts.lo `test -f 'zsqrts.c' || echo '$(srcdir)/'`zsqrts.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSqrt_la-zsqrts.Tpo $(DEPDIR)/libSqrt_la-zsqrts.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zsqrts.c' object='libSqrt_la-zsqrts.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) $(libSqrt_la_CFLAGS) $(CFLAGS) -c -o libSqrt_la-zsqrts.lo `test -f 'zsqrts.c' || echo '$(srcdir)/'`zsqrts.c
+
+libSqrt_la-ssqrta.lo: ssqrta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSqrt_la_CFLAGS) $(CFLAGS) -MT libSqrt_la-ssqrta.lo -MD -MP -MF $(DEPDIR)/libSqrt_la-ssqrta.Tpo -c -o libSqrt_la-ssqrta.lo `test -f 'ssqrta.c' || echo '$(srcdir)/'`ssqrta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSqrt_la-ssqrta.Tpo $(DEPDIR)/libSqrt_la-ssqrta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ssqrta.c' object='libSqrt_la-ssqrta.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) $(libSqrt_la_CFLAGS) $(CFLAGS) -c -o libSqrt_la-ssqrta.lo `test -f 'ssqrta.c' || echo '$(srcdir)/'`ssqrta.c
+
+libSqrt_la-dsqrta.lo: dsqrta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSqrt_la_CFLAGS) $(CFLAGS) -MT libSqrt_la-dsqrta.lo -MD -MP -MF $(DEPDIR)/libSqrt_la-dsqrta.Tpo -c -o libSqrt_la-dsqrta.lo `test -f 'dsqrta.c' || echo '$(srcdir)/'`dsqrta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSqrt_la-dsqrta.Tpo $(DEPDIR)/libSqrt_la-dsqrta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dsqrta.c' object='libSqrt_la-dsqrta.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) $(libSqrt_la_CFLAGS) $(CFLAGS) -c -o libSqrt_la-dsqrta.lo `test -f 'dsqrta.c' || echo '$(srcdir)/'`dsqrta.c
+
+libSqrt_la-csqrta.lo: csqrta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSqrt_la_CFLAGS) $(CFLAGS) -MT libSqrt_la-csqrta.lo -MD -MP -MF $(DEPDIR)/libSqrt_la-csqrta.Tpo -c -o libSqrt_la-csqrta.lo `test -f 'csqrta.c' || echo '$(srcdir)/'`csqrta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSqrt_la-csqrta.Tpo $(DEPDIR)/libSqrt_la-csqrta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='csqrta.c' object='libSqrt_la-csqrta.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) $(libSqrt_la_CFLAGS) $(CFLAGS) -c -o libSqrt_la-csqrta.lo `test -f 'csqrta.c' || echo '$(srcdir)/'`csqrta.c
+
+libSqrt_la-zsqrta.lo: zsqrta.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSqrt_la_CFLAGS) $(CFLAGS) -MT libSqrt_la-zsqrta.lo -MD -MP -MF $(DEPDIR)/libSqrt_la-zsqrta.Tpo -c -o libSqrt_la-zsqrta.lo `test -f 'zsqrta.c' || echo '$(srcdir)/'`zsqrta.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSqrt_la-zsqrta.Tpo $(DEPDIR)/libSqrt_la-zsqrta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zsqrta.c' object='libSqrt_la-zsqrta.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) $(libSqrt_la_CFLAGS) $(CFLAGS) -c -o libSqrt_la-zsqrta.lo `test -f 'zsqrta.c' || echo '$(srcdir)/'`zsqrta.c
+
+testDoubleSqrt-testDoubleSqrt.o: testDoubleSqrt.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleSqrt_CFLAGS) $(CFLAGS) -MT testDoubleSqrt-testDoubleSqrt.o -MD -MP -MF $(DEPDIR)/testDoubleSqrt-testDoubleSqrt.Tpo -c -o testDoubleSqrt-testDoubleSqrt.o `test -f 'testDoubleSqrt.c' || echo '$(srcdir)/'`testDoubleSqrt.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleSqrt-testDoubleSqrt.Tpo $(DEPDIR)/testDoubleSqrt-testDoubleSqrt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleSqrt.c' object='testDoubleSqrt-testDoubleSqrt.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) $(testDoubleSqrt_CFLAGS) $(CFLAGS) -c -o testDoubleSqrt-testDoubleSqrt.o `test -f 'testDoubleSqrt.c' || echo '$(srcdir)/'`testDoubleSqrt.c
+
+testDoubleSqrt-testDoubleSqrt.obj: testDoubleSqrt.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleSqrt_CFLAGS) $(CFLAGS) -MT testDoubleSqrt-testDoubleSqrt.obj -MD -MP -MF $(DEPDIR)/testDoubleSqrt-testDoubleSqrt.Tpo -c -o testDoubleSqrt-testDoubleSqrt.obj `if test -f 'testDoubleSqrt.c'; then $(CYGPATH_W) 'testDoubleSqrt.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleSqrt.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleSqrt-testDoubleSqrt.Tpo $(DEPDIR)/testDoubleSqrt-testDoubleSqrt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleSqrt.c' object='testDoubleSqrt-testDoubleSqrt.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) $(testDoubleSqrt_CFLAGS) $(CFLAGS) -c -o testDoubleSqrt-testDoubleSqrt.obj `if test -f 'testDoubleSqrt.c'; then $(CYGPATH_W) 'testDoubleSqrt.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleSqrt.c'; fi`
+
+testFloatSqrt-testFloatSqrt.o: testFloatSqrt.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatSqrt_CFLAGS) $(CFLAGS) -MT testFloatSqrt-testFloatSqrt.o -MD -MP -MF $(DEPDIR)/testFloatSqrt-testFloatSqrt.Tpo -c -o testFloatSqrt-testFloatSqrt.o `test -f 'testFloatSqrt.c' || echo '$(srcdir)/'`testFloatSqrt.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatSqrt-testFloatSqrt.Tpo $(DEPDIR)/testFloatSqrt-testFloatSqrt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatSqrt.c' object='testFloatSqrt-testFloatSqrt.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) $(testFloatSqrt_CFLAGS) $(CFLAGS) -c -o testFloatSqrt-testFloatSqrt.o `test -f 'testFloatSqrt.c' || echo '$(srcdir)/'`testFloatSqrt.c
+
+testFloatSqrt-testFloatSqrt.obj: testFloatSqrt.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatSqrt_CFLAGS) $(CFLAGS) -MT testFloatSqrt-testFloatSqrt.obj -MD -MP -MF $(DEPDIR)/testFloatSqrt-testFloatSqrt.Tpo -c -o testFloatSqrt-testFloatSqrt.obj `if test -f 'testFloatSqrt.c'; then $(CYGPATH_W) 'testFloatSqrt.c'; else $(CYGPATH_W) '$(srcdir)/testFloatSqrt.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatSqrt-testFloatSqrt.Tpo $(DEPDIR)/testFloatSqrt-testFloatSqrt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatSqrt.c' object='testFloatSqrt-testFloatSqrt.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) $(testFloatSqrt_CFLAGS) $(CFLAGS) -c -o testFloatSqrt-testFloatSqrt.obj `if test -f 'testFloatSqrt.c'; then $(CYGPATH_W) 'testFloatSqrt.c'; else $(CYGPATH_W) '$(srcdir)/testFloatSqrt.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/elementaryFunctions/sqrt/csqrta.c b/src/c/elementaryFunctions/sqrt/csqrta.c
new file mode 100644
index 0000000..fc9d36c
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/csqrta.c
@@ -0,0 +1,20 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-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
+ *
+ */
+
+#include "sqrt.h"
+
+void csqrta(floatComplex* in, int size, floatComplex* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = csqrts(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/sqrt/csqrts.c b/src/c/elementaryFunctions/sqrt/csqrts.c
new file mode 100644
index 0000000..a24f955
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/csqrts.c
@@ -0,0 +1,111 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ * Copyright (C) Bruno Pincon
+ *
+ * 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 <math.h>
+#include "sqrt.h"
+#include "lapack.h"
+#include "abs.h"
+#include "sign.h"
+#include "pythag.h"
+
+#ifdef _MSC_VER
+#include <float.h>
+#define isnan(x) _isnan((double)x)
+#endif
+
+#define _sign(a, b) b >=0 ? a : -a
+
+floatComplex csqrts(floatComplex in) {
+ float RMax = (float) getOverflowThreshold();
+ float BRMin = 2.0f * (float) getUnderflowThreshold();
+
+ float RealIn = creals(in);
+ float ImgIn = cimags(in);
+
+ float RealOut = 0;
+ float ImgOut = 0;
+
+ if(RealIn == 0)
+ {/* pure imaginary case */
+ if(dabss(ImgIn >= BRMin))
+ RealOut = ssqrts(0.5f * sabss(ImgIn));
+ else
+ RealOut = ssqrts(sabss(ImgIn)) * ssqrts(0.5);
+
+ ImgOut = _sign(1, ImgIn) * RealOut;
+ }
+ else if( sabss(RealIn) <= RMax && sabss(ImgIn) <= RMax)
+ {/* standard case : a (not zero) and b are finite */
+ float Temp = ssqrts(2.0f * (sabss(RealIn) + spythags(RealIn, ImgIn)));
+ /* overflow test */
+ if(Temp > RMax)
+ {/* handle (spurious) overflow by scaling a and b */
+ float RealTemp = RealIn / 16.0f;
+ float ImgTemp = ImgIn / 16.0f;
+ Temp = ssqrts(2.0f * (sabss(RealIn) + spythags(RealIn, ImgTemp)));
+ if(RealTemp >= 0)
+ {
+ RealOut = 2 * Temp;
+ ImgOut = 4 * ImgTemp / Temp;
+ }
+ else
+ {
+ RealOut = 4 * sabss(ImgIn) / Temp;
+ ImgOut = _sign(2, ImgIn) * Temp;
+ }
+ }
+ else if(RealIn >= 0) /* classic switch to get the stable formulas */
+ {
+ RealOut = 0.5f * Temp;
+ ImgOut = ImgIn / Temp;
+ }
+ else
+ {
+ RealOut = sabss(ImgIn) / Temp;
+ ImgOut = (_sign(0.5f, ImgIn)) * Temp;
+ }
+ }
+ else
+ {
+ /*
+ //Here we treat the special cases where a and b are +- 00 or NaN.
+ //The following is the treatment recommended by the C99 standard
+ //with the simplification of returning NaN + i NaN if the
+ //the real part or the imaginary part is NaN (C99 recommends
+ //something more complicated)
+ */
+
+ if(isnan(RealIn) == 1 || isnan(ImgIn) == 1)
+ {/* got NaN + i NaN */
+ RealOut = RealIn + ImgIn;
+ ImgOut = RealOut;
+ }
+ else if( dabss(ImgIn) > RMax)
+ {/* case a +- i oo -> result must be +oo +- i oo for all a (finite or not) */
+ RealOut = sabss(ImgIn);
+ ImgOut = ImgIn;
+ }
+ else if(RealIn < -RMax)
+ {/* here a is -Inf and b is finite */
+ RealOut = 0;
+ ImgOut = _sign(1, ImgIn) * sabss(RealIn);
+ }
+ else
+ {/* here a is +Inf and b is finite */
+ RealOut = RealIn;
+ ImgOut = 0;
+ }
+ }
+
+ return FloatComplex(RealOut, ImgOut);
+}
diff --git a/src/c/elementaryFunctions/sqrt/dsqrta.c b/src/c/elementaryFunctions/sqrt/dsqrta.c
new file mode 100644
index 0000000..b87800f
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/dsqrta.c
@@ -0,0 +1,20 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-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
+ *
+ */
+
+#include "sqrt.h"
+
+void dsqrta(double* in, int size, double* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = dsqrts(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/sqrt/dsqrts.c b/src/c/elementaryFunctions/sqrt/dsqrts.c
new file mode 100644
index 0000000..8e66449
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/dsqrts.c
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-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
+ *
+ */
+
+#include <math.h>
+#include "sqrt.h"
+
+double dsqrts(double in){
+ return sqrt(in);
+}
diff --git a/src/c/elementaryFunctions/sqrt/ssqrta.c b/src/c/elementaryFunctions/sqrt/ssqrta.c
new file mode 100644
index 0000000..9c37975
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/ssqrta.c
@@ -0,0 +1,20 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-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
+ *
+ */
+
+#include "sqrt.h"
+
+void ssqrta(float* in, int size, float* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = ssqrts(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/sqrt/ssqrts.c b/src/c/elementaryFunctions/sqrt/ssqrts.c
new file mode 100644
index 0000000..541fea2
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/ssqrts.c
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-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
+ *
+ */
+
+#include <math.h>
+#include "sqrt.h"
+
+float ssqrts(float in) {
+ return (float) sqrt((float) in);
+}
diff --git a/src/c/elementaryFunctions/sqrt/testDoubleSqrt.c b/src/c/elementaryFunctions/sqrt/testDoubleSqrt.c
new file mode 100644
index 0000000..08b7413
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/testDoubleSqrt.c
@@ -0,0 +1,497 @@
+/*
+ * 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 "testSqrt.h"
+
+#define SOURCE {0.7062616096809506416321,0.4090520101599395275116,0.3011248558759689331055,\
+0.1880126395262777805328,0.1796709178015589714050,0.2828889950178563594818,\
+0.7232380937784910202026,0.7360379849560558795929,0.1852612206712365150452,\
+0.7703790138475596904755,0.1914967410266399383545,0.7521587223745882511139,\
+0.6205883463844656944275,0.2807604051195085048676,0.2289868686348199844360,\
+0.5049233403988182544708,0.8354099662974476814270,0.8174716415815055370331,\
+0.0030740275979042053223,0.3677616142667829990387,0.8278525872156023979187,\
+0.72754097869619727135,0.5323124285787343978882,0.9267726917751133441925,\
+0.9542504185810685157776,0.3162104780785739421845,0.5789009965956211090088,\
+0.6881225542165338993073,0.3714061146602034568787,0.1705444059334695339203,\
+0.1954363007098436355591,0.978800852317363023758,0.9300233917310833930969,\
+0.5357720064930617809296,0.3947123587131500244141,0.1344871171750128269196,\
+0.7380615202710032463074,0.588114650454372167587,0.9113173168152570724487,\
+0.5682763461954891681671,0.1127616921439766883850,0.9478473584167659282684,\
+0.5237770043313503265381,0.8140139640308916568756,0.1400952627882361412048,\
+0.2763446993194520473480,0.9059953633695840835571,0.1379901585169136524200,\
+0.5603838684037327766419,0.3008610638789832592011,0.4767417535185813904,\
+0.8127435916103422641754,0.1988414181396365165710,0.1107953130267560482025,\
+0.2159351315349340438843,0.6467244853265583515167,0.6597879612818360328674,\
+0.0691898013465106487274,0.9164751060307025909424,0.8635670826770365238190,\
+0.5032854294404387474060,0.1832137755118310451508,0.8403698671609163284302,\
+0.9247214836068451404572,0.6229452537372708320618,0.2773811477236449718475,\
+0.2479109913110733032227,0.3891948559321463108063,0.0436578569933772087097,\
+0.8132526441477239131928,0.7686451207846403121948,0.4041520212776958942413,\
+0.8579940209165215492249,0.6993723283521831035614,0.0828925184905529022217,\
+0.9201254160143435001373,0.5200281282886862754822,0.9351884997449815273285,\
+0.8825624976307153701782,0.2245844271965324878693,0.2153332801535725593567,\
+0.4327089670114219188690,0.5800157263875007629395,0.8876141034997999668121,\
+0.5258982880041003227234,0.859640696551650762558,0.7337234076112508773804,\
+0.7134532411582767963409,0.1087165409699082374573,0.8477638359181582927704,\
+0.6594733335077762603760,0.7916418449021875858307,0.6067967480048537254334,\
+0.4102901122532784938812,0.1958728153258562088013,0.241527963895350694656,\
+0.5113455550745129585266,0.9119556057266891002655,0.0928984880447387695313,\
+0.7438839026726782321930,0.1938720373436808586121,0.4355978979729115962982,\
+0.9922429900616407394409,0.4533818070776760578156,0.8269640663638710975647,\
+0.8889675955288112163544,0.4682085178792476654053,0.3856786251999437808991,\
+0.4124865522608160972595,0.6955242282710969448090,0.0978972557932138442993,\
+0.8728604433126747608185,0.6359515609219670295715,0.4129665228538215160370,\
+0.0294486805796623229980,0.1809961968101561069489,0.7658103061839938163757,\
+0.1232470511458814144135,0.0170737411826848983765,0.8835507561452686786652,\
+0.3164170170202851295471,0.9378212536685168743134,0.3916359134018421173096,\
+0.0844073877669870853424,0.6934146797284483909607,0.4618808380328118801117,\
+0.9355291295796632766724,0.0842495900578796863556,0.5402926551178097724915,\
+0.5613215523771941661835,0.1306025832891464233398,0.5840523042716085910797,\
+0.0048661706969141960144,0.2761953338049352169037,0.7478824090212583541870,\
+0.0194325004704296588898,0.6444276878610253334045,0.2243968318216502666473,\
+0.2478402368724346160889,0.1196091384626924991608,0.1883201440796256065369,\
+0.3393343067727982997894,0.959958622232079505920,0.2847225037403404712677,\
+0.8766820700839161872864,0.2853349032811820507050,0.5103433504700660705566,\
+0.8752629184164106845856,0.5941145820543169975281,0.3945342986844480037689,\
+0.4661326166242361068726,0.0073588271625339984894,0.5170202488079667091370,\
+0.4690007264725863933563,0.6654530800879001617432,0.9476742581464350223541,\
+0.4933638339862227439880,0.2918433747254312038422,0.2016727942973375320435,\
+0.7016656589694321155548,0.8736049132421612739563,0.191055159550160169601,\
+0.5307010114192962646484,0.8889481076039373874664,0.0115523664280772209167,\
+0.4998398735187947750092,0.6700848620384931564331,0.4995208983309566974640,\
+0.1538907447829842567444,0.2571737091057002544403,0.9586529098451137542725,\
+0.6246025026775896549225,0.9371285131201148033142,0.9923511571250855922699,\
+0.3454555813223123550415,0.7558249053545296192169,0.2107181670144200325012,\
+0.9372652801685035228729,0.6767524704337120056152,0.7465373151935636997223,\
+0.4050982249900698661804,0.5101723610423505306244,0.9497965183109045028687,\
+0.0289692510850727558136,0.1634070957079529762268,0.4146909262053668498993,\
+0.0021650679409503936768,0.1810030029155313968658,0.4556188201531767845154,\
+0.1977851442061364650726,0.6053877938538789749146,0.4363054675050079822540,\
+0.8938506888225674629211,0.6104825991205871105194,0.4316215068101882934570,\
+0.2315693595446646213532,0.4675927339121699333191,0.6150764389894902706146,\
+0.8621218334883451461792,0.3846137975342571735382}
+
+#define RESULT {0.8403937230137732417035,0.6395717396507912821946,0.5487484449872901404177,\
+0.4336042429754092819572,0.4238760641998542411102,0.5318731004834296172135,\
+0.8504340619815806689985,0.8579265615168094605281,0.4304198190967006287799,\
+0.8777123753528599525708,0.4376034060957934568314,0.8672708471836166888025,\
+0.7877742991393319460514,0.5298682903510159025728,0.4785257241098120895018,\
+0.7105795806233234923610,0.9140076401745489409478,0.9041413836239913237591,\
+0.0554439139843518405404,0.6064335200718896645711,0.9098640487543193655640,\
+0.8529601272604701023283,0.7295974428263399813588,0.9626903405431641580492,\
+0.9768574197809363202083,0.5623259535879292503324,0.7608554373832265849131,\
+0.8295315269575556094139,0.6094309761246169410143,0.4129702240276767466476,\
+0.4420817805676271472493,0.9893436472315183527471,0.9643772040706288795064,\
+0.7319644844478875311822,0.6282613777029032453569,0.3667248521371476721598,\
+0.8591050694012946076228,0.7668863347683098075081,0.9546294133407251525370,\
+0.7538410616273759634609,0.3358000776414095667199,0.9735745263803721183393,\
+0.7237243980489743711004,0.9022272241685526106281,0.3742930172849022740778,\
+0.5256849810670379818944,0.9518378871265757990017,0.3714702659930047001780,\
+0.7485879162822044463610,0.5485080344707662369785,0.6904648821761910637562,\
+0.9015229290541324491670,0.4459163802100529760963,0.3328592991441819970433,\
+0.4646882089476060961886,0.8041918212258555298533,0.8122733291705668268179,\
+0.2630395433133783655855,0.9573270632499127907877,0.9292831014696417701870,\
+0.709426126838051174239,0.4280347830630485406189,0.9167168958631211062027,\
+0.9616243984045148573969,0.7892688095555726590646,0.5266698659726460896025,\
+0.4979066090253003729060,0.6238548356245596782088,0.2089446266200143398351,\
+0.9018052140832431007311,0.8767240847522328461849,0.6357295189604584839671,\
+0.9262796666863207795117,0.8362848368541564436640,0.2879106085064475628599,\
+0.9592316800514584240744,0.7211297582881227574703,0.9670514462762472840396,\
+0.9394479749463060525017,0.4739033943711866703197,0.4640401708403837921502,\
+0.6578061773892229791017,0.7615876353956259059430,0.9421327419741869491077,\
+0.7251884499935863370723,0.9271681058749005055475,0.8565765626091171869305,\
+0.8446616134040167978014,0.3297219146036675652134,0.9207409168263124277232,\
+0.8120796349544644465723,0.8897425722658142133170,0.7789715964044220397611,\
+0.6405389232929397103078,0.4425752086661161044390,0.4914549459465747394127,\
+0.7150842992784227636349,0.9549636672285962690765,0.3047925327903207581848,\
+0.8624870449303445596456,0.4403090248265198458633,0.6599984075533149585624,\
+0.9961139443164325202318,0.6733363253810654702747,0.9093756464541323802919,\
+0.9428507811572365282515,0.6842576399860272884368,0.6210302933029465677350,\
+0.6422511597971747310254,0.8339809519833752959883,0.3128853716510470728274,\
+0.9342700055726260721656,0.7974657114396624946195,0.6426247138523553115164,\
+0.1716061787339323019275,0.4254364779966053888849,0.8751058828416100610070,\
+0.351065593793925379007,0.1306665266343484677059,0.939973806095291464224,\
+0.5625095706032787745698,0.9684117170235585492222,0.6258082081611283653544,\
+0.2905294955197958439719,0.8327152452840337337747,0.6796181560500071938691,\
+0.967227547984270019654,0.2902577993058579330921,0.7350460224488054583603,\
+0.7492139563417076209,0.3613897941131520297198,0.7642331478492728757956,\
+0.0697579436115643852778,0.5255428943530063845557,0.8648019478593109710118,\
+0.1394005038385071892915,0.8027625351628122629677,0.4737054272664081300270,\
+0.4978355520374520559734,0.3458455413370143394225,0.4339586893698818559351,\
+0.5825240825689512735863,0.9797747813819661644175,0.5335939502471336304268,\
+0.9363130192857067601864,0.5341674861700046461621,0.7143831958200487219912,\
+0.9355548719430681892106,0.7707882861423861475814,0.628119653158892954359,\
+0.6827390545620164452600,0.0857836066071717417980,0.7190412010503756112811,\
+0.6848362771294949080669,0.8157530754388242488773,0.9734856229788064752029,\
+0.7023986289751872336140,0.5402252999679219014340,0.4490799419895499244859,\
+0.8376548567097501507561,0.9346683439820572258938,0.4370985696043401258493,\
+0.7284922864514739027086,0.9428404465252524513375,0.1074819353569576446672,\
+0.7069935455991057660086,0.8185871132863582477768,0.7067679239545019420632,\
+0.3922891086723976905581,0.5071229723703120084721,0.9791082217227642381374,\
+0.7903179756766194330453,0.9680539825444213208883,0.9961682373600784234924,\
+0.5877546948534841941836,0.8693819099535771144360,0.4590404851583572698459,\
+0.9681246201644205795489,0.8226496644585178374953,0.8640239089247262471716,\
+0.6364732712298842853826,0.7142635095273666134830,0.9745750449867390807768,\
+0.1702035577920530950991,0.4042364354037782381290,0.643965003866954543987,\
+0.0465302905745321321307,0.4254444768892075012801,0.6749954223201641845265,\
+0.444730417450995230144,0.7780667027022033499506,0.6605342288670648098758,\
+0.9454367714567524227931,0.7813338589364902109224,0.6569790763869031158251,\
+0.4812165412209607473493,0.6838075269490457852584,0.7842680912733159814820,\
+0.9285051607225159875370,0.6201723933990106463199}
+
+#define ZSOURCER {0.6045256052166223526001,0.9455216196365654468536,0.4476299257948994636536,\
+0.8624908211641013622284,0.1751048639416694641113,0.2067177616991102695465,\
+0.6848411662504076957703,0.1348653226159512996674,0.0069159921258687973022,\
+0.1496290047653019428253,0.5665438110008835792542,0.4359452719800174236298,\
+0.6547604538500308990479,0.3381605879403650760651,0.4259321158751845359802,\
+0.3060420057736337184906,0.7704779822379350662231,0.7058695447631180286408,\
+0.2373670237138867378235,0.8205849635414779186249,0.6789963841438293457031,\
+0.5250809141434729099274,0.3359806565567851066589,0.8941988362930715084076,\
+0.5461782198399305343628,0.7568633262999355792999,0.0259526828303933143616,\
+0.3250150899402797222138,0.6072143577039241791,0.8756139636971056461334,\
+0.2962085595354437828064,0.4229678637348115444183,0.4243144039064645767212,\
+0.7620028969831764698029,0.3622896494343876838684,0.5658242437057197093964,\
+0.6424440070986747741699,0.7580267959274351596832,0.2531452132388949394226,\
+0.5266989110969007015228,0.2118590380996465682983,0.4779220153577625751495,\
+0.1615962767973542213440,0.9168031658045947551727,0.5461866445839405059815,\
+0.4686870560981333255768,0.7772213732823729515076,0.5871783248148858547211,\
+0.5848031807690858840942,0.3139644009061157703400,0.3204141603782773017883,\
+0.3331634956412017345429,0.2282590121030807495117,0.2750317254103720188141,\
+0.4963629124686121940613,0.7453477247618138790131,0.1155001949518918991089,\
+0.0626524840481579303741,0.0877018878236413002014,0.5507565210573375225067,\
+0.2116370312869548797607,0.8335358710028231143951,0.4045845707878470420837,\
+0.2880227542482316493988,0.1750094983726739883423,0.0051561561413109302521,\
+0.3109287889674305915833,0.6602919283322989940643,0.9722995534539222717285,\
+0.9826813959516584873200,0.0455837054178118705750,0.4096118300221860408783,\
+0.7104403134435415267944,0.3917615194804966449738,0.5571686858311295509338,\
+0.0565565521828830242157,0.1540721096098423004150,0.9109257892705500125885,\
+0.5713340407237410545349,0.3488348922692239284515,0.8972954172641038894653,\
+0.2973396372981369495392,0.1091936426237225532532,0.7626331257633864879608,\
+0.6584706604480743408203,0.6996708759106695652008,0.6756794182583689689636,\
+0.9004421546123921871185,0.6668148916214704513550,0.8518152837641537189484,\
+0.8365677157416939735413,0.1291190306656062602997,0.6095453463494777679443,\
+0.2412315667606890201569,0.4029275467619299888611,0.3019328541122376918793,\
+0.1083198729902505874634,0.8456356939859688282013,0.9417407037690281867981,\
+0.9083450469188392162323,0.1937242373824119567871,0.5318046086467802524567,\
+0.8314437521621584892273,0.4952740012668073177338,0.7465563025325536727905,\
+0.7102393140085041522980,0.5811418974772095680237,0.7035941029898822307587,\
+0.3746570833027362823486,0.3394373343326151371002,0.6322447275742888450623,\
+0.7636191300116479396820,0.6940386760979890823364,0.8735245508141815662384,\
+0.3612738298252224922180,0.7933200257830321788788,0.4830590635538101196289,\
+0.2469964125193655490875,0.5025922833010554313660,0.7430270477198064327240,\
+0.6783937942236661911011,0.4903185223229229450226,0.709806025959551334381,\
+0.3303662906400859355927,0.6815545372664928436279,0.0701365978457033634186,\
+0.4745870968326926231384,0.8091805852018296718597,0.9447045121341943740845,\
+0.5478458073921501636505,0.1216687532141804695129,0.9161847713403403759003,\
+0.3045207932591438293457,0.6502694808878004550934,0.0987624628469347953796,\
+0.8391053467057645320892,0.0328534897416830062866,0.3461971958167850971222,\
+0.2801467711105942726135,0.5500544901005923748016,0.0729318000376224517822,\
+0.0225322381593286991119,0.50267804320901632309,0.3478884599171578884125,\
+0.4298669416457414627075,0.3537984383292496204376,0.0529730813577771186829,\
+0.9533003675751388072968,0.1842019557952880859375,0.958756382111459970474,\
+0.3245136169716715812683,0.0003973259590566158295,0.0972583871334791183472,\
+0.4378789965994656086,0.3634226778522133827210,0.2685119728557765483856,\
+0.2770298384130001068115,0.8854365111328661441803,0.5216628303751349449158,\
+0.4979983693920075893,0.8733724001795053482056,0.4699407932348549365997,\
+0.9364062966778874397278,0.1337622734718024730682,0.2712419554591178894043,\
+0.1766990595497190952301,0.0543269468471407890320,0.8402757882140576839447,\
+0.7507283594459295272827,0.3062269617803394794464,0.9195641661062836647034,\
+0.1318263853900134563446,0.0826364941895008087158,0.8222710476256906986237,\
+0.4441085970029234886169,0.9617503038607537746429,0.0283641982823610305786,\
+0.1431905967183411121368,0.3793597565963864326477,0.6144003230147063732147,\
+0.2128270715475082397461,0.4704488315619528293610,0.2076055286452174186707,\
+0.7435979112051427364349,0.3391801547259092330933,0.2479635034687817096710,\
+0.6721735307946801185608,0.9013197491876780986786,0.2140864841639995574951,\
+0.8460668534971773624420,0.1650043567642569541931,0.4003686285577714443207,\
+0.5522825215011835098267,0.0638249483890831470490,0.6903966935351490974426,\
+0.8547787251882255077362,0.0291904583573341369629,0.5434663915075361728668,\
+0.6236743135377764701843,0.2417052476666867733002}
+#define ZSOURCEI {0.5503273960202932357788,0.6906704087741672992706,0.9835249418392777442932,\
+0.8285484607331454753876,0.2062614001333713531494,0.1944643096067011356354,\
+0.4367609983310103416443,0.8090620837174355983734,0.8818644303828477859497,\
+0.7404803228564560413361,0.7542522149160504341126,0.9921960639767348766327,\
+0.9886121451854705810547,0.0113218077458441257477,0.9367801276966929435730,\
+0.3874237253330647945404,0.2886805813759565353394,0.567788839805871248245,\
+0.7295644441619515419006,0.0303032915107905864716,0.2795897088944911956787,\
+0.7047131718136370182037,0.7442112853750586509705,0.8920237845741212368012,\
+0.1081438604742288589478,0.8751525697298347949982,0.9068333031609654426575,\
+0.2166852983646094799042,0.4824190363287925720215,0.7766945236362516880035,\
+0.4510916722938418388367,0.1300636469386518001556,0.5505470838397741317749,\
+0.6936193336732685565949,0.1749099576845765113831,0.8636093880049884319305,\
+0.2150467522442340850830,0.1886725709773600101471,0.1796098565682768821716,\
+0.4374312213622033596039,0.8514516223222017288208,0.7381969136185944080353,\
+0.8102188156917691230774,0.1460137623362243175507,0.8999849110841751098633,\
+0.4043733575381338596344,0.0156995235010981559753,0.6904196902178227901459,\
+0.2990311514586210250855,0.1383218024857342243195,0.8478512773290276527405,\
+0.3007262717001140117645,0.229154746979475021362,0.8078110129572451114655,\
+0.3176332255825400352478,0.6924462593160569667816,0.1364154014736413955689,\
+0.5433279541321098804474,0.3276594849303364753723,0.2006831648759543895721,\
+0.5037304237484931945801,0.4962565028108656406403,0.8996161324903368949890,\
+0.9357709079049527645111,0.3390339072793722152710,0.6029155333526432514191,\
+0.4153500730171799659729,0.3041478390805423259735,0.8489827848970890045166,\
+0.4482063786126673221588,0.0903797810897231101990,0.7382151386700570583344,\
+0.2669597584754228591919,0.8226196658797562122345,0.3985779182985424995422,\
+0.9789295899681746959686,0.3041231036186218261719,0.0663515278138220310211,\
+0.6667758254334330558777,0.7548807277344167232513,0.1922533493489027023315,\
+0.7942791883833706378937,0.5580398896709084510803,0.2016023616306483745575,\
+0.787146832793951034546,0.0955459238030016422272,0.6623697867617011070252,\
+0.864868474658578634262,0.7013061288744211196899,0.8015053984709084033966,\
+0.9135685982182621955872,0.6317234965972602367401,0.9346773549914360046387,\
+0.9157753759063780307770,0.0510348035022616386414,0.4329969524405896663666,\
+0.9721843507140874862671,0.8001508046872913837433,0.8452261472120881080627,\
+0.0610524858348071575165,0.8168097324669361114502,0.2101262793876230716705,\
+0.3055453812703490257263,0.9465212575159966945648,0.9269728232175111770630,\
+0.7737778765149414539337,0.5893978821113705635071,0.2377697187475860118866,\
+0.5269544571638107299805,0.0077543654479086399078,0.8311711428686976432800,\
+0.0268517597578465938568,0.2591186594218015670776,0.4641277943737804889679,\
+0.6098861405625939369202,0.0656952331773936748505,0.6466812007129192352295,\
+0.1018534512259066104889,0.2742705782875418663025,0.8162728524766862392426,\
+0.3357750270515680313110,0.4765891996212303638458,0.8440040023997426033020,\
+0.1785074654035270214081,0.5855625644326210021973,0.8426241897977888584137,\
+0.7058847947046160697937,0.7396617024205625057221,0.9751448985189199447632,\
+0.7606669445522129535675,0.8236690396443009376526,0.8889620001427829265595,\
+0.7960178293287754058838,0.3052428201772272586823,0.6803312664851546287537,\
+0.6412069997750222682953,0.0988248009234666824341,0.4654508423991501331329,\
+0.6714970665052533149719,0.5131103205494582653046,0.8631567060947418212891,\
+0.8328299173153936862946,0.1687975851818919181824,0.2961277081631124019623,\
+0.2591485660523176193237,0.1700844173319637775421,0.9718958893790841102600,\
+0.0695185582153499126434,0.4696230851113796234131,0.9544191421009600162506,\
+0.3679352095350623130798,0.2973918146453797817230,0.0415310803800821304321,\
+0.4892336544580757617950,0.5171590568497776985169,0.3534862431697547435761,\
+0.2354387864470481872559,0.6779259913600981235504,0.3834532154724001884460,\
+0.3174350797198712825775,0.3418120350688695907593,0.0535557498224079608917,\
+0.9285596096888184547424,0.3862650538794696331024,0.4328473098576068878174,\
+0.1581165478564798831940,0.7887120461091399192810,0.7448797873221337795258,\
+0.5185996759682893753052,0.8651678604073822498322,0.1524438308551907539368,\
+0.2392775672487914562225,0.5761575847864151000977,0.7395762302912771701813,\
+0.0583172617480158805847,0.6962534948252141475678,0.4206145536154508590698,\
+0.0281158541329205036163,0.8313249954953789710999,0.2333360086195170879364,\
+0.8865877203643321990967,0.3746785433031618595123,0.87671328987926244736,\
+0.4027077830396592617035,0.2890332732349634170532,0.8538430598564445972443,\
+0.5499771209433674812317,0.5128610017709434032440,0.6321087554097175598145,\
+0.4165538274683058261871,0.3217771751806139945984,0.9717370062135159969330,\
+0.5348322447389364242554,0.3416590173728764057159,0.9565287167206406593323,\
+0.9951003189198672771454,0.3422884084284305572510,0.7870580093003809452057,\
+0.9234123295173048973084,0.5238970420323312282562}
+
+#define ZRESULTR {0.8432166939003225003546,1.028696846310626300536,0.8741363651656853805960,\
+1.0145139259460289604675,0.4720540083473970804917,0.4952416659876168192334,\
+0.8651884064428800868996,0.6910466586042781633736,0.6666361606264414874090,\
+0.6727093940540614935841,0.8688705649614124615354,0.8716907101266159196840,\
+0.959306172735902795701,0.5815972201878681913101,0.8529353171823288448650,\
+0.6323612148789939935156,0.8925417496893577329331,0.8977079570170535260942,\
+0.7087222819700315090685,0.9060158028150111508836,0.8406257183559593393341,\
+0.8378258601984284181796,0.7591172919619637582400,1.0385687027372507706957,\
+0.7426169311676505957465,0.9782382399865202637912,0.6830656191716251157686,\
+0.5981803109332550771882,0.8314861127635455595453,1.011450539647472002258,\
+0.6464748892519300849102,0.6578303557631125508820,0.7481312014375646191056,\
+0.9466832738110327882808,0.6183009489366241284714,0.8939481166511646925699,\
+0.8123805134131761862548,0.8772630865325246052322,0.5308180535125875953995,\
+0.7782537556049359261934,0.7379946979653042582470,0.8238088030668070382845,\
+0.7027705686531833251252,0.9605105126328297160399,0.8941312697312054913468,\
+0.7374641482216017784879,0.8816465539160547315589,0.8641531635219484863697,\
+0.7879164327234249309839,0.5731702653710250006114,0.7831953532687397911971,\
+0.6252910190572938953224,0.5252142434850843866201,0.7511253936013374543634,\
+0.7367688115224660938551,0.9388049677540464266201,0.3835650562588603929015,\
+0.5520782622396902539208,0.4620041004215187374626,0.753968196415999991622,\
+0.6156379639362553612969,0.9496353272389349564620,0.8339637612267859489990,\
+0.7959636817154828181131,0.5275172507857687209665,0.5514044508846071002139,\
+0.6441142487726253529345,0.8328463321559912424519,1.0637408773050947008443,\
+1.0155667426713801404503,0.2709318224164963262446,0.7917869572241151843173,\
+0.8571412685012261833961,0.8071256937996567071281,0.7881067116954072471202,\
+0.7201105910271731191941,0.4974916923152819525633,0.9550562531126176590846,\
+0.8512952675658871370956,0.7682506551752034118508,0.9526163214553304836585,\
+0.756785792150606484441,0.5821581994240766499971,0.8807562498788572558084,\
+0.9178011959841433364815,0.8384018774833429388238,0.9005192643641398708709,\
+1.0365709563884744071061,0.9040270806600297914812,1.0053433947417824700921,\
+1.0186506185399304413863,0.6220542372412505294221,0.9288207542994831866778,\
+0.7707938959111726440199,0.63603233719709606486,0.6441295538205468185211,\
+0.7370617546735380720691,1.0024537010421461502574,1.0505138587196660715506,\
+0.953608813532313304151,0.7187463572209089601728,0.7428380749761755996730,\
+0.9266208094400342210051,0.8841784551932333480195,0.9840672842877067338918,\
+0.9382321956452510658409,0.8393030146072417707615,0.8503757458476615127552,\
+0.7145712412765103938028,0.5826505086380492359766,0.9155742917376128442442,\
+0.8739880489156448550858,0.8470155698847267045082,0.9650636753683585755681,\
+0.7314820521682621201620,0.8914470068047345430173,0.8031939281911506522960,\
+0.5070351579739499348065,0.7331953647718203459505,0.9609459795569127438242,\
+0.847153172323739211969,0.7661900708888577105071,0.9519994233321562582262,\
+0.5940854373891888418058,0.8888500969738630796968,0.6766367900740852814323,\
+0.8139959478095014633325,0.9760840415848224260742,1.0729430743093604228022,\
+0.8617604247210989276695,0.6907515785500089045002,1.0470820008330794514961,\
+0.7605256422767727730872,0.8272295000550387022997,0.6269868176753693456149,\
+0.9734363297756469801669,0.2617213661737881613689,0.6805441931353264362059,\
+0.709837674958288866733,0.8069322418000910435154,0.6852606023040614946496,\
+0.6540897892889659948068,0.7186585042731442607433,0.6343284289266235553839,\
+0.6825711485307393022737,0.610883282746898181870,0.7163489185444231743816,\
+0.9770189769897136278232,0.5867956626396594321804,1.0750765659376522176416,\
+0.6384005820717564283484,0.3858687639762184984349,0.3186007968636310749844,\
+0.7397471191545493818254,0.7055161810773808994668,0.5968318319385850223569,\
+0.5659466952073320955563,1.0001490762521170196919,0.7645570771657418385203,\
+0.7377545989844320750706,0.9516433749813681952645,0.6866306949128065939547,\
+1.0618728756326238915619,0.5208322311777507929165,0.6253215357738258761700,\
+0.4548702015131091402900,0.6499645432009629741899,0.9907517258725765385563,\
+0.9119111641770327736367,0.7823013339720715775272,0.9622054437069111898495,\
+0.4500082630180006204590,0.5764937377448445809947,0.9818886833563331695274,\
+0.6678434466414240322507,1.0365982590716655842300,0.4743068831608843738401,\
+0.3802074434441635730764,0.8040992937118037753308,0.7973759350671048018455,\
+0.7498672536100723373664,0.7320754444197923316295,0.7445011903920762952325,\
+0.8914147503382092718738,0.6264212402370327170686,0.7540169824914779717062,\
+0.8776882812655947274649,0.9844634271419567816963,0.6638769890354155878143,\
+0.9458113966252766902088,0.5131381594621587938221,0.8518664381177757372043,\
+0.812738510298055549796,0.4535385196962208320670,0.9669683162928227604382,\
+1.040816644093084830658,0.4316950876741513232204,0.8660041994184899394327,\
+0.9321942634710010944232,0.6397933456564963705660}
+
+#define ZRESULTI {0.3263261982366231217512,0.3357016264078308553920,0.5625695149136477057894,\
+0.4083475049199193351868,0.2184722473340149073717,0.1963327431456096394680,\
+0.2524080275917597870894,0.5853888978723345015709,0.6614285891378552939557,\
+0.5503716236174250875379,0.4340417579628489397337,0.5691216233293430182272,\
+0.5152745668080026542057,0.0097333750513688352402,0.5491507438051371758903,\
+0.3063310306018693363050,0.1617182509817773616856,0.3162436265422815528936,\
+0.5147040404416135528365,0.0167233791158154128376,0.1662985694996903240917,\
+0.4205606470816827258119,0.4901820135407665146587,0.4294486162653968763792,\
+0.0728126817040040535955,0.4473105496989639440209,0.6637966234200971538115,\
+0.1811203866159907804878,0.2900944639504645650163,0.3839508177567231839156,\
+0.3488856874362309956617,0.0988580458466166156484,0.36794821735938526563,\
+0.3663418129703439607425,0.1414440314101028384197,0.4830310461641617592044,\
+0.1323559272370566086696,0.1075347714236491863948,0.1691821287725076283781,\
+0.2810338004872128814249,0.5768683871779194394236,0.4480389811753019424501,\
+0.5764461773381487352808,0.0760084144919923321293,0.5032733679892044120763,\
+0.2741647566958217985267,0.0089035245651246392590,0.3994776154055512673580,\
+0.1897607024294587774183,0.1206637982137782894032,0.5412770094909528095784,\
+0.2404690476392074838241,0.2181535914362372208242,0.5377337924125580315149,\
+0.2155582732432577419690,0.3687913267931641758679,0.1778256377212544814270,\
+0.4920751198642726587096,0.3546066849097115891709,0.1330846352869425042176,\
+0.4091125411822805202355,0.2612879326286920989020,0.5393616451432939884469,\
+0.5878226164089255245671,0.3213486447830481429477,0.5467089832022555828672,\
+0.3224195659455129092663,0.1825954124653428600755,0.3990552600779624370375,\
+0.2206681056892876025000,0.1667943253834255346035,0.4661703075143642238665,\
+0.1557268144037805002178,0.5095982399018667008406,0.2528705265313027639174,\
+0.6797078130539779827757,0.3056564645363825660773,0.0347369736586594715644,\
+0.3916242993690946527785,0.4912984601114738780758,0.1009080702371304705256,\
+0.5247714720741629701450,0.4792854332576366727,0.1144484422667324668987,\
+0.4288220783749939757357,0.0569809815370433195292,0.36777102554791152311,\
+0.4171776516254488420543,0.3878789385171945158781,0.3986227007920866149959,\
+0.4484209706404114204048,0.5077720388168175391641,0.5031527077021280547342,\
+0.5940468527088033079409,0.0401196609964555792049,0.3361101426509159328937,\
+0.6594999296529031607150,0.3990961397296745039043,0.4022917642620268408038,\
+0.0320112843801534235899,0.5682183459163515637513,0.1414347799783703119037,\
+0.1648707746240843652341,0.5352546490793753664050,0.470990570471244762718,\
+0.4123594778064457178068,0.3511234154134331153507,0.1398027400878979753518,\
+0.3687207284066310042370,0.0066543882936226537647,0.4539069906010949617681,\
+0.0153616286808277956177,0.1529597971009351853322,0.2404648554390081682808,\
+0.4168838721023755411466,0.0368475258068726510552,0.4025685317176705413367,\
+0.1004402255189763004672,0.1870378561196294198155,0.4247235900050622126045,\
+0.1981784628926891167478,0.3110123830424602608957,0.4432796815388754252396,\
+0.1502372000465193591090,0.3293933175156303350128,0.6226562035634579661547,\
+0.4335923272125510874453,0.3788924267318253269465,0.4544252728163645227433,\
+0.4413447883722416142938,0.5962122022024949341557,0.4244949294494160807467,\
+0.5233339844701030418861,0.1844970592543655196760,0.5425403272492764772395,\
+0.3293523059298621991076,0.1887977324286261304742,0.3419695936679567616068,\
+0.4729933970782203567218,0.3179389135603382654516,0.6298017886863316316948,\
+0.6366327153805051430879,0.1174393569255921254690,0.2334182851178558948391,\
+0.1898326398721546515169,0.1392118774041107009953,0.6783676670817878617825,\
+0.0355768720222523482377,0.4001589607861217867679,0.4438842647772449079291,\
+0.2881695442233370707541,0.3853535740764292283345,0.0651773014834273051177,\
+0.330676282333628224208,0.3665111238554681349910,0.2961355479495680342872,\
+0.2080043831343482141350,0.3389124718789456314205,0.2507682074527933790975,\
+0.2151359545279972751430,0.1795904033249649811577,0.0389989482113152971521,\
+0.4372272948094740319114,0.3708152364207700224519,0.3460997943417740696503,\
+0.1738040295127169787559,0.6067346706520863053314,0.3759164722454063634061,\
+0.2843476954448227456140,0.5529633038042787163136,0.0792158430677229186134,\
+0.2658590818355930918138,0.4997084504683915184842,0.3766089999954101985580,\
+0.0436608774416314404654,0.3358357438535300443228,0.4433991668140928599229,\
+0.0369743604678396259322,0.5169293158173903224295,0.1463149302341813229322,\
+0.5911631132684145306655,0.2559015919459735610708,0.5887924030165481159571,\
+0.2258812650827625445604,0.2307020058304501131108,0.5661961730855942231955,\
+0.3133100513489369687292,0.2604774274143707435414,0.4760737048049700770314,\
+0.2202097738273190163927,0.3135385365979036498274,0.5703576069745146526202,\
+0.3290309478154280209417,0.3766593161719967164380,0.4946018916047810187742,\
+0.4780382426469301782035,0.3964469578199069088598,0.4544192798538850830425,\
+0.4952896438554572622337,0.4094267669310915347403}
+
+
+
+
+void dsqrtsTest(void) {
+ double in[]=SOURCE;
+ double res[]=RESULT;
+ double out;
+ int i;
+
+ for (i=0;i<200;i++){
+ out=dsqrts(in[i]);
+ assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16);
+ }
+}
+
+void zsqrtsTest(void) {
+ double inR[]=ZSOURCER;
+ double inI[]=ZSOURCEI;
+ double resR[]=ZRESULTR;
+ double resI[]=ZRESULTI;
+ doubleComplex in,out;
+ int i;
+
+ for (i=0;i<200;i++){
+ in=DoubleComplex(inR[i],inI[i]);
+ out=zsqrts(in);
+ assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16);
+ assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16);
+ }
+}
+
+void dsqrtaTest(void) {
+ double in[]=SOURCE;
+ double res[]=RESULT;
+ double out[200];
+ int i;
+
+ dsqrta(in,200,out);
+ for (i=0;i<200;i++){
+ assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-16);
+ }
+}
+
+void zsqrtaTest(void) {
+ double inR[]=ZSOURCER;
+ double inI[]=ZSOURCEI;
+ double resR[]=ZRESULTR;
+ double resI[]=ZRESULTI;
+ doubleComplex *in,out[200];
+ int i;
+
+
+ in=DoubleComplexMatrix(inR,inI,200);
+ zsqrta(in,200,out);
+
+ for (i=0;i<200;i++){
+ assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16);
+ assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16);
+ }
+}
+
+
+int testSqrt() {
+ printf("\n>>>> Double Square Root Tests\n");
+ dsqrtsTest();
+ zsqrtsTest();
+ dsqrtaTest();
+ zsqrtaTest();
+
+ return 0;
+}
+
+int main() {
+ assert(testSqrt() == 0);
+ return 0;
+}
diff --git a/src/c/elementaryFunctions/sqrt/testFloatSqrt.c b/src/c/elementaryFunctions/sqrt/testFloatSqrt.c
new file mode 100644
index 0000000..e4c72cb
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/testFloatSqrt.c
@@ -0,0 +1,496 @@
+/*
+ * 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 "testSqrt.h"
+
+#define SOURCE {0.7062616096809506416321f,0.4090520101599395275116f,0.3011248558759689331055f,\
+0.1880126395262777805328f,0.1796709178015589714050f,0.2828889950178563594818f,\
+0.7232380937784910202026f,0.7360379849560558795929f,0.1852612206712365150452f,\
+0.7703790138475596904755f,0.1914967410266399383545f,0.7521587223745882511139f,\
+0.6205883463844656944275f,0.2807604051195085048676f,0.2289868686348199844360f,\
+0.5049233403988182544708f,0.8354099662974476814270f,0.8174716415815055370331f,\
+0.0030740275979042053223f,0.3677616142667829990387f,0.8278525872156023979187f,\
+0.72754097869619727135f,0.5323124285787343978882f,0.9267726917751133441925f,\
+0.9542504185810685157776f,0.3162104780785739421845f,0.5789009965956211090088f,\
+0.6881225542165338993073f,0.3714061146602034568787f,0.1705444059334695339203f,\
+0.1954363007098436355591f,0.978800852317363023758f,0.9300233917310833930969f,\
+0.5357720064930617809296f,0.3947123587131500244141f,0.1344871171750128269196f,\
+0.7380615202710032463074f,0.588114650454372167587f,0.9113173168152570724487f,\
+0.5682763461954891681671f,0.1127616921439766883850f,0.9478473584167659282684f,\
+0.5237770043313503265381f,0.8140139640308916568756f,0.1400952627882361412048f,\
+0.2763446993194520473480f,0.9059953633695840835571f,0.1379901585169136524200f,\
+0.5603838684037327766419f,0.3008610638789832592011f,0.4767417535185813904f,\
+0.8127435916103422641754f,0.1988414181396365165710f,0.1107953130267560482025f,\
+0.2159351315349340438843f,0.6467244853265583515167f,0.6597879612818360328674f,\
+0.0691898013465106487274f,0.9164751060307025909424f,0.8635670826770365238190f,\
+0.5032854294404387474060f,0.1832137755118310451508f,0.8403698671609163284302f,\
+0.9247214836068451404572f,0.6229452537372708320618f,0.2773811477236449718475f,\
+0.2479109913110733032227f,0.3891948559321463108063f,0.0436578569933772087097f,\
+0.8132526441477239131928f,0.7686451207846403121948f,0.4041520212776958942413f,\
+0.8579940209165215492249f,0.6993723283521831035614f,0.0828925184905529022217f,\
+0.9201254160143435001373f,0.5200281282886862754822f,0.9351884997449815273285f,\
+0.8825624976307153701782f,0.2245844271965324878693f,0.2153332801535725593567f,\
+0.4327089670114219188690f,0.5800157263875007629395f,0.8876141034997999668121f,\
+0.5258982880041003227234f,0.859640696551650762558f,0.7337234076112508773804f,\
+0.7134532411582767963409f,0.1087165409699082374573f,0.8477638359181582927704f,\
+0.6594733335077762603760f,0.7916418449021875858307f,0.6067967480048537254334f,\
+0.4102901122532784938812f,0.1958728153258562088013f,0.241527963895350694656f,\
+0.5113455550745129585266f,0.9119556057266891002655f,0.0928984880447387695313f,\
+0.7438839026726782321930f,0.1938720373436808586121f,0.4355978979729115962982f,\
+0.9922429900616407394409f,0.4533818070776760578156f,0.8269640663638710975647f,\
+0.8889675955288112163544f,0.4682085178792476654053f,0.3856786251999437808991f,\
+0.4124865522608160972595f,0.6955242282710969448090f,0.0978972557932138442993f,\
+0.8728604433126747608185f,0.6359515609219670295715f,0.4129665228538215160370f,\
+0.0294486805796623229980f,0.1809961968101561069489f,0.7658103061839938163757f,\
+0.1232470511458814144135f,0.0170737411826848983765f,0.8835507561452686786652f,\
+0.3164170170202851295471f,0.9378212536685168743134f,0.3916359134018421173096f,\
+0.0844073877669870853424f,0.6934146797284483909607f,0.4618808380328118801117f,\
+0.9355291295796632766724f,0.0842495900578796863556f,0.5402926551178097724915f,\
+0.5613215523771941661835f,0.1306025832891464233398f,0.5840523042716085910797f,\
+0.0048661706969141960144f,0.2761953338049352169037f,0.7478824090212583541870f,\
+0.0194325004704296588898f,0.6444276878610253334045f,0.2243968318216502666473f,\
+0.2478402368724346160889f,0.1196091384626924991608f,0.1883201440796256065369f,\
+0.3393343067727982997894f,0.959958622232079505920f,0.2847225037403404712677f,\
+0.8766820700839161872864f,0.2853349032811820507050f,0.5103433504700660705566f,\
+0.8752629184164106845856f,0.5941145820543169975281f,0.3945342986844480037689f,\
+0.4661326166242361068726f,0.0073588271625339984894f,0.5170202488079667091370f,\
+0.4690007264725863933563f,0.6654530800879001617432f,0.9476742581464350223541f,\
+0.4933638339862227439880f,0.2918433747254312038422f,0.2016727942973375320435f,\
+0.7016656589694321155548f,0.8736049132421612739563f,0.191055159550160169601f,\
+0.5307010114192962646484f,0.8889481076039373874664f,0.0115523664280772209167f,\
+0.4998398735187947750092f,0.6700848620384931564331f,0.4995208983309566974640f,\
+0.1538907447829842567444f,0.2571737091057002544403f,0.9586529098451137542725f,\
+0.6246025026775896549225f,0.9371285131201148033142f,0.9923511571250855922699f,\
+0.3454555813223123550415f,0.7558249053545296192169f,0.2107181670144200325012f,\
+0.9372652801685035228729f,0.6767524704337120056152f,0.7465373151935636997223f,\
+0.4050982249900698661804f,0.5101723610423505306244f,0.9497965183109045028687f,\
+0.0289692510850727558136f,0.1634070957079529762268f,0.4146909262053668498993f,\
+0.0021650679409503936768f,0.1810030029155313968658f,0.4556188201531767845154f,\
+0.1977851442061364650726f,0.6053877938538789749146f,0.4363054675050079822540f,\
+0.8938506888225674629211f,0.6104825991205871105194f,0.4316215068101882934570f,\
+0.2315693595446646213532f,0.4675927339121699333191f,0.6150764389894902706146f,\
+0.8621218334883451461792f,0.3846137975342571735382f}
+
+#define RESULT {0.8403937230137732417035f,0.6395717396507912821946f,0.5487484449872901404177f,\
+0.4336042429754092819572f,0.4238760641998542411102f,0.5318731004834296172135f,\
+0.8504340619815806689985f,0.8579265615168094605281f,0.4304198190967006287799f,\
+0.8777123753528599525708f,0.4376034060957934568314f,0.8672708471836166888025f,\
+0.7877742991393319460514f,0.5298682903510159025728f,0.4785257241098120895018f,\
+0.7105795806233234923610f,0.9140076401745489409478f,0.9041413836239913237591f,\
+0.0554439139843518405404f,0.6064335200718896645711f,0.9098640487543193655640f,\
+0.8529601272604701023283f,0.7295974428263399813588f,0.9626903405431641580492f,\
+0.9768574197809363202083f,0.5623259535879292503324f,0.7608554373832265849131f,\
+0.8295315269575556094139f,0.6094309761246169410143f,0.4129702240276767466476f,\
+0.4420817805676271472493f,0.9893436472315183527471f,0.9643772040706288795064f,\
+0.7319644844478875311822f,0.6282613777029032453569f,0.3667248521371476721598f,\
+0.8591050694012946076228f,0.7668863347683098075081f,0.9546294133407251525370f,\
+0.7538410616273759634609f,0.3358000776414095667199f,0.9735745263803721183393f,\
+0.7237243980489743711004f,0.9022272241685526106281f,0.3742930172849022740778f,\
+0.5256849810670379818944f,0.9518378871265757990017f,0.3714702659930047001780f,\
+0.7485879162822044463610f,0.5485080344707662369785f,0.6904648821761910637562f,\
+0.9015229290541324491670f,0.4459163802100529760963f,0.3328592991441819970433f,\
+0.4646882089476060961886f,0.8041918212258555298533f,0.8122733291705668268179f,\
+0.2630395433133783655855f,0.9573270632499127907877f,0.9292831014696417701870f,\
+0.709426126838051174239f,0.4280347830630485406189f,0.9167168958631211062027f,\
+0.9616243984045148573969f,0.7892688095555726590646f,0.5266698659726460896025f,\
+0.4979066090253003729060f,0.6238548356245596782088f,0.2089446266200143398351f,\
+0.9018052140832431007311f,0.8767240847522328461849f,0.6357295189604584839671f,\
+0.9262796666863207795117f,0.8362848368541564436640f,0.2879106085064475628599f,\
+0.9592316800514584240744f,0.7211297582881227574703f,0.9670514462762472840396f,\
+0.9394479749463060525017f,0.4739033943711866703197f,0.4640401708403837921502f,\
+0.6578061773892229791017f,0.7615876353956259059430f,0.9421327419741869491077f,\
+0.7251884499935863370723f,0.9271681058749005055475f,0.8565765626091171869305f,\
+0.8446616134040167978014f,0.3297219146036675652134f,0.9207409168263124277232f,\
+0.8120796349544644465723f,0.8897425722658142133170f,0.7789715964044220397611f,\
+0.6405389232929397103078f,0.4425752086661161044390f,0.4914549459465747394127f,\
+0.7150842992784227636349f,0.9549636672285962690765f,0.3047925327903207581848f,\
+0.8624870449303445596456f,0.4403090248265198458633f,0.6599984075533149585624f,\
+0.9961139443164325202318f,0.6733363253810654702747f,0.9093756464541323802919f,\
+0.9428507811572365282515f,0.6842576399860272884368f,0.6210302933029465677350f,\
+0.6422511597971747310254f,0.8339809519833752959883f,0.3128853716510470728274f,\
+0.9342700055726260721656f,0.7974657114396624946195f,0.6426247138523553115164f,\
+0.1716061787339323019275f,0.4254364779966053888849f,0.8751058828416100610070f,\
+0.351065593793925379007f,0.1306665266343484677059f,0.939973806095291464224f,\
+0.5625095706032787745698f,0.9684117170235585492222f,0.6258082081611283653544f,\
+0.2905294955197958439719f,0.8327152452840337337747f,0.6796181560500071938691f,\
+0.967227547984270019654f,0.2902577993058579330921f,0.7350460224488054583603f,\
+0.7492139563417076209f,0.3613897941131520297198f,0.7642331478492728757956f,\
+0.0697579436115643852778f,0.5255428943530063845557f,0.8648019478593109710118f,\
+0.1394005038385071892915f,0.8027625351628122629677f,0.4737054272664081300270f,\
+0.4978355520374520559734f,0.3458455413370143394225f,0.4339586893698818559351f,\
+0.5825240825689512735863f,0.9797747813819661644175f,0.5335939502471336304268f,\
+0.9363130192857067601864f,0.5341674861700046461621f,0.7143831958200487219912f,\
+0.9355548719430681892106f,0.7707882861423861475814f,0.628119653158892954359f,\
+0.6827390545620164452600f,0.0857836066071717417980f,0.7190412010503756112811f,\
+0.6848362771294949080669f,0.8157530754388242488773f,0.9734856229788064752029f,\
+0.7023986289751872336140f,0.5402252999679219014340f,0.4490799419895499244859f,\
+0.8376548567097501507561f,0.9346683439820572258938f,0.4370985696043401258493f,\
+0.7284922864514739027086f,0.9428404465252524513375f,0.1074819353569576446672f,\
+0.7069935455991057660086f,0.8185871132863582477768f,0.7067679239545019420632f,\
+0.3922891086723976905581f,0.5071229723703120084721f,0.9791082217227642381374f,\
+0.7903179756766194330453f,0.9680539825444213208883f,0.9961682373600784234924f,\
+0.5877546948534841941836f,0.8693819099535771144360f,0.4590404851583572698459f,\
+0.9681246201644205795489f,0.8226496644585178374953f,0.8640239089247262471716f,\
+0.6364732712298842853826f,0.7142635095273666134830f,0.9745750449867390807768f,\
+0.1702035577920530950991f,0.4042364354037782381290f,0.643965003866954543987f,\
+0.0465302905745321321307f,0.4254444768892075012801f,0.6749954223201641845265f,\
+0.444730417450995230144f,0.7780667027022033499506f,0.6605342288670648098758f,\
+0.9454367714567524227931f,0.7813338589364902109224f,0.6569790763869031158251f,\
+0.4812165412209607473493f,0.6838075269490457852584f,0.7842680912733159814820f,\
+0.9285051607225159875370f,0.6201723933990106463199f}
+
+#define CSOURCER {0.6045256052166223526001f,0.9455216196365654468536f,0.4476299257948994636536f,\
+0.8624908211641013622284f,0.1751048639416694641113f,0.2067177616991102695465f,\
+0.6848411662504076957703f,0.1348653226159512996674f,0.0069159921258687973022f,\
+0.1496290047653019428253f,0.5665438110008835792542f,0.4359452719800174236298f,\
+0.6547604538500308990479f,0.3381605879403650760651f,0.4259321158751845359802f,\
+0.3060420057736337184906f,0.7704779822379350662231f,0.7058695447631180286408f,\
+0.2373670237138867378235f,0.8205849635414779186249f,0.6789963841438293457031f,\
+0.5250809141434729099274f,0.3359806565567851066589f,0.8941988362930715084076f,\
+0.5461782198399305343628f,0.7568633262999355792999f,0.0259526828303933143616f,\
+0.3250150899402797222138f,0.6072143577039241791f,0.8756139636971056461334f,\
+0.2962085595354437828064f,0.4229678637348115444183f,0.4243144039064645767212f,\
+0.7620028969831764698029f,0.3622896494343876838684f,0.5658242437057197093964f,\
+0.6424440070986747741699f,0.7580267959274351596832f,0.2531452132388949394226f,\
+0.5266989110969007015228f,0.2118590380996465682983f,0.4779220153577625751495f,\
+0.1615962767973542213440f,0.9168031658045947551727f,0.5461866445839405059815f,\
+0.4686870560981333255768f,0.7772213732823729515076f,0.5871783248148858547211f,\
+0.5848031807690858840942f,0.3139644009061157703400f,0.3204141603782773017883f,\
+0.3331634956412017345429f,0.2282590121030807495117f,0.2750317254103720188141f,\
+0.4963629124686121940613f,0.7453477247618138790131f,0.1155001949518918991089f,\
+0.0626524840481579303741f,0.0877018878236413002014f,0.5507565210573375225067f,\
+0.2116370312869548797607f,0.8335358710028231143951f,0.4045845707878470420837f,\
+0.2880227542482316493988f,0.1750094983726739883423f,0.0051561561413109302521f,\
+0.3109287889674305915833f,0.6602919283322989940643f,0.9722995534539222717285f,\
+0.9826813959516584873200f,0.0455837054178118705750f,0.4096118300221860408783f,\
+0.7104403134435415267944f,0.3917615194804966449738f,0.5571686858311295509338f,\
+0.0565565521828830242157f,0.1540721096098423004150f,0.9109257892705500125885f,\
+0.5713340407237410545349f,0.3488348922692239284515f,0.8972954172641038894653f,\
+0.2973396372981369495392f,0.1091936426237225532532f,0.7626331257633864879608f,\
+0.6584706604480743408203f,0.6996708759106695652008f,0.6756794182583689689636f,\
+0.9004421546123921871185f,0.6668148916214704513550f,0.8518152837641537189484f,\
+0.8365677157416939735413f,0.1291190306656062602997f,0.6095453463494777679443f,\
+0.2412315667606890201569f,0.4029275467619299888611f,0.3019328541122376918793f,\
+0.1083198729902505874634f,0.8456356939859688282013f,0.9417407037690281867981f,\
+0.9083450469188392162323f,0.1937242373824119567871f,0.5318046086467802524567f,\
+0.8314437521621584892273f,0.4952740012668073177338f,0.7465563025325536727905f,\
+0.7102393140085041522980f,0.5811418974772095680237f,0.7035941029898822307587f,\
+0.3746570833027362823486f,0.3394373343326151371002f,0.6322447275742888450623f,\
+0.7636191300116479396820f,0.6940386760979890823364f,0.8735245508141815662384f,\
+0.3612738298252224922180f,0.7933200257830321788788f,0.4830590635538101196289f,\
+0.2469964125193655490875f,0.5025922833010554313660f,0.7430270477198064327240f,\
+0.6783937942236661911011f,0.4903185223229229450226f,0.709806025959551334381f,\
+0.3303662906400859355927f,0.6815545372664928436279f,0.0701365978457033634186f,\
+0.4745870968326926231384f,0.8091805852018296718597f,0.9447045121341943740845f,\
+0.5478458073921501636505f,0.1216687532141804695129f,0.9161847713403403759003f,\
+0.3045207932591438293457f,0.6502694808878004550934f,0.0987624628469347953796f,\
+0.8391053467057645320892f,0.0328534897416830062866f,0.3461971958167850971222f,\
+0.2801467711105942726135f,0.5500544901005923748016f,0.0729318000376224517822f,\
+0.0225322381593286991119f,0.50267804320901632309f,0.3478884599171578884125f,\
+0.4298669416457414627075f,0.3537984383292496204376f,0.0529730813577771186829f,\
+0.9533003675751388072968f,0.1842019557952880859375f,0.958756382111459970474f,\
+0.3245136169716715812683f,0.0003973259590566158295f,0.0972583871334791183472f,\
+0.4378789965994656086f,0.3634226778522133827210f,0.2685119728557765483856f,\
+0.2770298384130001068115f,0.8854365111328661441803f,0.5216628303751349449158f,\
+0.4979983693920075893f,0.8733724001795053482056f,0.4699407932348549365997f,\
+0.9364062966778874397278f,0.1337622734718024730682f,0.2712419554591178894043f,\
+0.1766990595497190952301f,0.0543269468471407890320f,0.8402757882140576839447f,\
+0.7507283594459295272827f,0.3062269617803394794464f,0.9195641661062836647034f,\
+0.1318263853900134563446f,0.0826364941895008087158f,0.8222710476256906986237f,\
+0.4441085970029234886169f,0.9617503038607537746429f,0.0283641982823610305786f,\
+0.1431905967183411121368f,0.3793597565963864326477f,0.6144003230147063732147f,\
+0.2128270715475082397461f,0.4704488315619528293610f,0.2076055286452174186707f,\
+0.7435979112051427364349f,0.3391801547259092330933f,0.2479635034687817096710f,\
+0.6721735307946801185608f,0.9013197491876780986786f,0.2140864841639995574951f,\
+0.8460668534971773624420f,0.1650043567642569541931f,0.4003686285577714443207f,\
+0.5522825215011835098267f,0.0638249483890831470490f,0.6903966935351490974426f,\
+0.8547787251882255077362f,0.0291904583573341369629f,0.5434663915075361728668f,\
+0.6236743135377764701843f,0.2417052476666867733002f}
+
+#define CSOURCEI {0.5503273960202932357788f,0.6906704087741672992706f,0.9835249418392777442932f,\
+0.8285484607331454753876f,0.2062614001333713531494f,0.1944643096067011356354f,\
+0.4367609983310103416443f,0.8090620837174355983734f,0.8818644303828477859497f,\
+0.7404803228564560413361f,0.7542522149160504341126f,0.9921960639767348766327f,\
+0.9886121451854705810547f,0.0113218077458441257477f,0.9367801276966929435730f,\
+0.3874237253330647945404f,0.2886805813759565353394f,0.567788839805871248245f,\
+0.7295644441619515419006f,0.0303032915107905864716f,0.2795897088944911956787f,\
+0.7047131718136370182037f,0.7442112853750586509705f,0.8920237845741212368012f,\
+0.1081438604742288589478f,0.8751525697298347949982f,0.9068333031609654426575f,\
+0.2166852983646094799042f,0.4824190363287925720215f,0.7766945236362516880035f,\
+0.4510916722938418388367f,0.1300636469386518001556f,0.5505470838397741317749f,\
+0.6936193336732685565949f,0.1749099576845765113831f,0.8636093880049884319305f,\
+0.2150467522442340850830f,0.1886725709773600101471f,0.1796098565682768821716f,\
+0.4374312213622033596039f,0.8514516223222017288208f,0.7381969136185944080353f,\
+0.8102188156917691230774f,0.1460137623362243175507f,0.8999849110841751098633f,\
+0.4043733575381338596344f,0.0156995235010981559753f,0.6904196902178227901459f,\
+0.2990311514586210250855f,0.1383218024857342243195f,0.8478512773290276527405f,\
+0.3007262717001140117645f,0.229154746979475021362f,0.8078110129572451114655f,\
+0.3176332255825400352478f,0.6924462593160569667816f,0.1364154014736413955689f,\
+0.5433279541321098804474f,0.3276594849303364753723f,0.2006831648759543895721f,\
+0.5037304237484931945801f,0.4962565028108656406403f,0.8996161324903368949890f,\
+0.9357709079049527645111f,0.3390339072793722152710f,0.6029155333526432514191f,\
+0.4153500730171799659729f,0.3041478390805423259735f,0.8489827848970890045166f,\
+0.4482063786126673221588f,0.0903797810897231101990f,0.7382151386700570583344f,\
+0.2669597584754228591919f,0.8226196658797562122345f,0.3985779182985424995422f,\
+0.9789295899681746959686f,0.3041231036186218261719f,0.0663515278138220310211f,\
+0.6667758254334330558777f,0.7548807277344167232513f,0.1922533493489027023315f,\
+0.7942791883833706378937f,0.5580398896709084510803f,0.2016023616306483745575f,\
+0.787146832793951034546f,0.0955459238030016422272f,0.6623697867617011070252f,\
+0.864868474658578634262f,0.7013061288744211196899f,0.8015053984709084033966f,\
+0.9135685982182621955872f,0.6317234965972602367401f,0.9346773549914360046387f,\
+0.9157753759063780307770f,0.0510348035022616386414f,0.4329969524405896663666f,\
+0.9721843507140874862671f,0.8001508046872913837433f,0.8452261472120881080627f,\
+0.0610524858348071575165f,0.8168097324669361114502f,0.2101262793876230716705f,\
+0.3055453812703490257263f,0.9465212575159966945648f,0.9269728232175111770630f,\
+0.7737778765149414539337f,0.5893978821113705635071f,0.2377697187475860118866f,\
+0.5269544571638107299805f,0.0077543654479086399078f,0.8311711428686976432800f,\
+0.0268517597578465938568f,0.2591186594218015670776f,0.4641277943737804889679f,\
+0.6098861405625939369202f,0.0656952331773936748505f,0.6466812007129192352295f,\
+0.1018534512259066104889f,0.2742705782875418663025f,0.8162728524766862392426f,\
+0.3357750270515680313110f,0.4765891996212303638458f,0.8440040023997426033020f,\
+0.1785074654035270214081f,0.5855625644326210021973f,0.8426241897977888584137f,\
+0.7058847947046160697937f,0.7396617024205625057221f,0.9751448985189199447632f,\
+0.7606669445522129535675f,0.8236690396443009376526f,0.8889620001427829265595f,\
+0.7960178293287754058838f,0.3052428201772272586823f,0.6803312664851546287537f,\
+0.6412069997750222682953f,0.0988248009234666824341f,0.4654508423991501331329f,\
+0.6714970665052533149719f,0.5131103205494582653046f,0.8631567060947418212891f,\
+0.8328299173153936862946f,0.1687975851818919181824f,0.2961277081631124019623f,\
+0.2591485660523176193237f,0.1700844173319637775421f,0.9718958893790841102600f,\
+0.0695185582153499126434f,0.4696230851113796234131f,0.9544191421009600162506f,\
+0.3679352095350623130798f,0.2973918146453797817230f,0.0415310803800821304321f,\
+0.4892336544580757617950f,0.5171590568497776985169f,0.3534862431697547435761f,\
+0.2354387864470481872559f,0.6779259913600981235504f,0.3834532154724001884460f,\
+0.3174350797198712825775f,0.3418120350688695907593f,0.0535557498224079608917f,\
+0.9285596096888184547424f,0.3862650538794696331024f,0.4328473098576068878174f,\
+0.1581165478564798831940f,0.7887120461091399192810f,0.7448797873221337795258f,\
+0.5185996759682893753052f,0.8651678604073822498322f,0.1524438308551907539368f,\
+0.2392775672487914562225f,0.5761575847864151000977f,0.7395762302912771701813f,\
+0.0583172617480158805847f,0.6962534948252141475678f,0.4206145536154508590698f,\
+0.0281158541329205036163f,0.8313249954953789710999f,0.2333360086195170879364f,\
+0.8865877203643321990967f,0.3746785433031618595123f,0.87671328987926244736f,\
+0.4027077830396592617035f,0.2890332732349634170532f,0.8538430598564445972443f,\
+0.5499771209433674812317f,0.5128610017709434032440f,0.6321087554097175598145f,\
+0.4165538274683058261871f,0.3217771751806139945984f,0.9717370062135159969330f,\
+0.5348322447389364242554f,0.3416590173728764057159f,0.9565287167206406593323f,\
+0.9951003189198672771454f,0.3422884084284305572510f,0.7870580093003809452057f,\
+0.9234123295173048973084f,0.5238970420323312282562f}
+
+#define CRESULTR {0.8432166939003225003546f,1.028696846310626300536f,0.8741363651656853805960f,\
+1.0145139259460289604675f,0.4720540083473970804917f,0.4952416659876168192334f,\
+0.8651884064428800868996f,0.6910466586042781633736f,0.6666361606264414874090f,\
+0.6727093940540614935841f,0.8688705649614124615354f,0.8716907101266159196840f,\
+0.959306172735902795701f,0.5815972201878681913101f,0.8529353171823288448650f,\
+0.6323612148789939935156f,0.8925417496893577329331f,0.8977079570170535260942f,\
+0.7087222819700315090685f,0.9060158028150111508836f,0.8406257183559593393341f,\
+0.8378258601984284181796f,0.7591172919619637582400f,1.0385687027372507706957f,\
+0.7426169311676505957465f,0.9782382399865202637912f,0.6830656191716251157686f,\
+0.5981803109332550771882f,0.8314861127635455595453f,1.011450539647472002258f,\
+0.6464748892519300849102f,0.6578303557631125508820f,0.7481312014375646191056f,\
+0.9466832738110327882808f,0.6183009489366241284714f,0.8939481166511646925699f,\
+0.8123805134131761862548f,0.8772630865325246052322f,0.5308180535125875953995f,\
+0.7782537556049359261934f,0.7379946979653042582470f,0.8238088030668070382845f,\
+0.7027705686531833251252f,0.9605105126328297160399f,0.8941312697312054913468f,\
+0.7374641482216017784879f,0.8816465539160547315589f,0.8641531635219484863697f,\
+0.7879164327234249309839f,0.5731702653710250006114f,0.7831953532687397911971f,\
+0.6252910190572938953224f,0.5252142434850843866201f,0.7511253936013374543634f,\
+0.7367688115224660938551f,0.9388049677540464266201f,0.3835650562588603929015f,\
+0.5520782622396902539208f,0.4620041004215187374626f,0.753968196415999991622f,\
+0.6156379639362553612969f,0.9496353272389349564620f,0.8339637612267859489990f,\
+0.7959636817154828181131f,0.5275172507857687209665f,0.5514044508846071002139f,\
+0.6441142487726253529345f,0.8328463321559912424519f,1.0637408773050947008443f,\
+1.0155667426713801404503f,0.2709318224164963262446f,0.7917869572241151843173f,\
+0.8571412685012261833961f,0.8071256937996567071281f,0.7881067116954072471202f,\
+0.7201105910271731191941f,0.4974916923152819525633f,0.9550562531126176590846f,\
+0.8512952675658871370956f,0.7682506551752034118508f,0.9526163214553304836585f,\
+0.756785792150606484441f,0.5821581994240766499971f,0.8807562498788572558084f,\
+0.9178011959841433364815f,0.8384018774833429388238f,0.9005192643641398708709f,\
+1.0365709563884744071061f,0.9040270806600297914812f,1.0053433947417824700921f,\
+1.0186506185399304413863f,0.6220542372412505294221f,0.9288207542994831866778f,\
+0.7707938959111726440199f,0.63603233719709606486f,0.6441295538205468185211f,\
+0.7370617546735380720691f,1.0024537010421461502574f,1.0505138587196660715506f,\
+0.953608813532313304151f,0.7187463572209089601728f,0.7428380749761755996730f,\
+0.9266208094400342210051f,0.8841784551932333480195f,0.9840672842877067338918f,\
+0.9382321956452510658409f,0.8393030146072417707615f,0.8503757458476615127552f,\
+0.7145712412765103938028f,0.5826505086380492359766f,0.9155742917376128442442f,\
+0.8739880489156448550858f,0.8470155698847267045082f,0.9650636753683585755681f,\
+0.7314820521682621201620f,0.8914470068047345430173f,0.8031939281911506522960f,\
+0.5070351579739499348065f,0.7331953647718203459505f,0.9609459795569127438242f,\
+0.847153172323739211969f,0.7661900708888577105071f,0.9519994233321562582262f,\
+0.5940854373891888418058f,0.8888500969738630796968f,0.6766367900740852814323f,\
+0.8139959478095014633325f,0.9760840415848224260742f,1.0729430743093604228022f,\
+0.8617604247210989276695f,0.6907515785500089045002f,1.0470820008330794514961f,\
+0.7605256422767727730872f,0.8272295000550387022997f,0.6269868176753693456149f,\
+0.9734363297756469801669f,0.2617213661737881613689f,0.6805441931353264362059f,\
+0.709837674958288866733f,0.8069322418000910435154f,0.6852606023040614946496f,\
+0.6540897892889659948068f,0.7186585042731442607433f,0.6343284289266235553839f,\
+0.6825711485307393022737f,0.610883282746898181870f,0.7163489185444231743816f,\
+0.9770189769897136278232f,0.5867956626396594321804f,1.0750765659376522176416f,\
+0.6384005820717564283484f,0.3858687639762184984349f,0.3186007968636310749844f,\
+0.7397471191545493818254f,0.7055161810773808994668f,0.5968318319385850223569f,\
+0.5659466952073320955563f,1.0001490762521170196919f,0.7645570771657418385203f,\
+0.7377545989844320750706f,0.9516433749813681952645f,0.6866306949128065939547f,\
+1.0618728756326238915619f,0.5208322311777507929165f,0.6253215357738258761700f,\
+0.4548702015131091402900f,0.6499645432009629741899f,0.9907517258725765385563f,\
+0.9119111641770327736367f,0.7823013339720715775272f,0.9622054437069111898495f,\
+0.4500082630180006204590f,0.5764937377448445809947f,0.9818886833563331695274f,\
+0.6678434466414240322507f,1.0365982590716655842300f,0.4743068831608843738401f,\
+0.3802074434441635730764f,0.8040992937118037753308f,0.7973759350671048018455f,\
+0.7498672536100723373664f,0.7320754444197923316295f,0.7445011903920762952325f,\
+0.8914147503382092718738f,0.6264212402370327170686f,0.7540169824914779717062f,\
+0.8776882812655947274649f,0.9844634271419567816963f,0.6638769890354155878143f,\
+0.9458113966252766902088f,0.5131381594621587938221f,0.8518664381177757372043f,\
+0.812738510298055549796f,0.4535385196962208320670f,0.9669683162928227604382f,\
+1.040816644093084830658f,0.4316950876741513232204f,0.8660041994184899394327f,\
+0.9321942634710010944232f,0.6397933456564963705660f}
+
+#define CRESULTI {0.3263261982366231217512f,0.3357016264078308553920f,0.5625695149136477057894f,\
+0.4083475049199193351868f,0.2184722473340149073717f,0.1963327431456096394680f,\
+0.2524080275917597870894f,0.5853888978723345015709f,0.6614285891378552939557f,\
+0.5503716236174250875379f,0.4340417579628489397337f,0.5691216233293430182272f,\
+0.5152745668080026542057f,0.0097333750513688352402f,0.5491507438051371758903f,\
+0.3063310306018693363050f,0.1617182509817773616856f,0.3162436265422815528936f,\
+0.5147040404416135528365f,0.0167233791158154128376f,0.1662985694996903240917f,\
+0.4205606470816827258119f,0.4901820135407665146587f,0.4294486162653968763792f,\
+0.0728126817040040535955f,0.4473105496989639440209f,0.6637966234200971538115f,\
+0.1811203866159907804878f,0.2900944639504645650163f,0.3839508177567231839156f,\
+0.3488856874362309956617f,0.0988580458466166156484f,0.36794821735938526563f,\
+0.3663418129703439607425f,0.1414440314101028384197f,0.4830310461641617592044f,\
+0.1323559272370566086696f,0.1075347714236491863948f,0.1691821287725076283781f,\
+0.2810338004872128814249f,0.5768683871779194394236f,0.4480389811753019424501f,\
+0.5764461773381487352808f,0.0760084144919923321293f,0.5032733679892044120763f,\
+0.2741647566958217985267f,0.0089035245651246392590f,0.3994776154055512673580f,\
+0.1897607024294587774183f,0.1206637982137782894032f,0.5412770094909528095784f,\
+0.2404690476392074838241f,0.2181535914362372208242f,0.5377337924125580315149f,\
+0.2155582732432577419690f,0.3687913267931641758679f,0.1778256377212544814270f,\
+0.4920751198642726587096f,0.3546066849097115891709f,0.1330846352869425042176f,\
+0.4091125411822805202355f,0.2612879326286920989020f,0.5393616451432939884469f,\
+0.5878226164089255245671f,0.3213486447830481429477f,0.5467089832022555828672f,\
+0.3224195659455129092663f,0.1825954124653428600755f,0.3990552600779624370375f,\
+0.2206681056892876025000f,0.1667943253834255346035f,0.4661703075143642238665f,\
+0.1557268144037805002178f,0.5095982399018667008406f,0.2528705265313027639174f,\
+0.6797078130539779827757f,0.3056564645363825660773f,0.0347369736586594715644f,\
+0.3916242993690946527785f,0.4912984601114738780758f,0.1009080702371304705256f,\
+0.5247714720741629701450f,0.4792854332576366727f,0.1144484422667324668987f,\
+0.4288220783749939757357f,0.0569809815370433195292f,0.36777102554791152311f,\
+0.4171776516254488420543f,0.3878789385171945158781f,0.3986227007920866149959f,\
+0.4484209706404114204048f,0.5077720388168175391641f,0.5031527077021280547342f,\
+0.5940468527088033079409f,0.0401196609964555792049f,0.3361101426509159328937f,\
+0.6594999296529031607150f,0.3990961397296745039043f,0.4022917642620268408038f,\
+0.0320112843801534235899f,0.5682183459163515637513f,0.1414347799783703119037f,\
+0.1648707746240843652341f,0.5352546490793753664050f,0.470990570471244762718f,\
+0.4123594778064457178068f,0.3511234154134331153507f,0.1398027400878979753518f,\
+0.3687207284066310042370f,0.0066543882936226537647f,0.4539069906010949617681f,\
+0.0153616286808277956177f,0.1529597971009351853322f,0.2404648554390081682808f,\
+0.4168838721023755411466f,0.0368475258068726510552f,0.4025685317176705413367f,\
+0.1004402255189763004672f,0.1870378561196294198155f,0.4247235900050622126045f,\
+0.1981784628926891167478f,0.3110123830424602608957f,0.4432796815388754252396f,\
+0.1502372000465193591090f,0.3293933175156303350128f,0.6226562035634579661547f,\
+0.4335923272125510874453f,0.3788924267318253269465f,0.4544252728163645227433f,\
+0.4413447883722416142938f,0.5962122022024949341557f,0.4244949294494160807467f,\
+0.5233339844701030418861f,0.1844970592543655196760f,0.5425403272492764772395f,\
+0.3293523059298621991076f,0.1887977324286261304742f,0.3419695936679567616068f,\
+0.4729933970782203567218f,0.3179389135603382654516f,0.6298017886863316316948f,\
+0.6366327153805051430879f,0.1174393569255921254690f,0.2334182851178558948391f,\
+0.1898326398721546515169f,0.1392118774041107009953f,0.6783676670817878617825f,\
+0.0355768720222523482377f,0.4001589607861217867679f,0.4438842647772449079291f,\
+0.2881695442233370707541f,0.3853535740764292283345f,0.0651773014834273051177f,\
+0.330676282333628224208f,0.3665111238554681349910f,0.2961355479495680342872f,\
+0.2080043831343482141350f,0.3389124718789456314205f,0.2507682074527933790975f,\
+0.2151359545279972751430f,0.1795904033249649811577f,0.0389989482113152971521f,\
+0.4372272948094740319114f,0.3708152364207700224519f,0.3460997943417740696503f,\
+0.1738040295127169787559f,0.6067346706520863053314f,0.3759164722454063634061f,\
+0.2843476954448227456140f,0.5529633038042787163136f,0.0792158430677229186134f,\
+0.2658590818355930918138f,0.4997084504683915184842f,0.3766089999954101985580f,\
+0.0436608774416314404654f,0.3358357438535300443228f,0.4433991668140928599229f,\
+0.0369743604678396259322f,0.5169293158173903224295f,0.1463149302341813229322f,\
+0.5911631132684145306655f,0.2559015919459735610708f,0.5887924030165481159571f,\
+0.2258812650827625445604f,0.2307020058304501131108f,0.5661961730855942231955f,\
+0.3133100513489369687292f,0.2604774274143707435414f,0.4760737048049700770314f,\
+0.2202097738273190163927f,0.3135385365979036498274f,0.5703576069745146526202f,\
+0.3290309478154280209417f,0.3766593161719967164380f,0.4946018916047810187742f,\
+0.4780382426469301782035f,0.3964469578199069088598f,0.4544192798538850830425f,\
+0.4952896438554572622337f,0.4094267669310915347403f}
+
+
+
+
+void ssqrtsTest(void) {
+ float in[]=SOURCE;
+ float res[]=RESULT;
+ float out;
+ int i;
+
+ for (i=0;i<200;i++){
+ out=ssqrts(in[i]);
+ assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-7);
+ }
+}
+
+void csqrtsTest(void) {
+ float inR[]=CSOURCER;
+ float inI[]=CSOURCEI;
+ float resR[]=CRESULTR;
+ float resI[]=CRESULTI;
+ floatComplex in,out;
+ int i;
+
+ for (i=0;i<200;i++){
+ in=FloatComplex(inR[i],inI[i]);
+ out=csqrts(in);
+ assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<1e-6);
+ assert(( (fabs(cimags(out)-resI[i]))/(fabs(cimags(out))) )<1e-6);
+ }
+}
+
+void ssqrtaTest(void) {
+ float in[]=SOURCE;
+ float res[]=RESULT;
+ float out[200];
+ int i,j;
+ j=1;
+ ssqrta(in,200,out);
+ for (i=0;i<200;i++){
+ assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-6);
+ }
+}
+
+void csqrtaTest(void) {
+ float inR[]=CSOURCER;
+ float inI[]=CSOURCEI;
+ float resR[]=CRESULTR;
+ float resI[]=CRESULTI;
+ floatComplex *in,out[200];
+ int i;
+
+ in=FloatComplexMatrix(inR,inI,200);
+ csqrta(in,200,out);
+
+ for (i=0;i<200;i++){
+ assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<1e-6);
+ assert(( (fabs(cimags(out[i])-resI[i]))/(fabs(cimags(out[i]))) )<1e-6);
+ }
+}
+
+int testSqrt() {
+ printf("\n>>>> Float Square Root Tests\n");
+ ssqrtsTest();
+ csqrtsTest();
+ ssqrtaTest();
+ csqrtaTest();
+
+ return 0;
+}
+
+int main() {
+ assert(testSqrt() == 0);
+ return 0;
+}
diff --git a/src/c/elementaryFunctions/sqrt/testSqrt.h b/src/c/elementaryFunctions/sqrt/testSqrt.h
new file mode 100644
index 0000000..8262de7
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/testSqrt.h
@@ -0,0 +1,40 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-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
+ *
+ */
+
+#ifndef _TESTSQRT_H_
+#define _TESTSQRT_H_
+
+#include <stdio.h>
+#include <assert.h>
+#include <math.h>
+#include "sqrt.h"
+#include "constant.h"
+
+void ssqrtsTest(void);
+
+void ssqrtaTest(void);
+
+void dsqrtsTest(void);
+
+void dsqrtaTest(void);
+
+void csqrtsTest(void);
+
+void csqrtaTest(void);
+
+void zsqrtsTest(void);
+
+void zsqrtaTest(void);
+
+int testSqrt(void);
+
+#endif /* !_TESTSQRT_H_ */
diff --git a/src/c/elementaryFunctions/sqrt/zsqrta.c b/src/c/elementaryFunctions/sqrt/zsqrta.c
new file mode 100644
index 0000000..b647295
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/zsqrta.c
@@ -0,0 +1,20 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-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
+ *
+ */
+
+#include "sqrt.h"
+
+void zsqrta(doubleComplex* in, int size, doubleComplex* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = zsqrts(in[i]);
+ }
+}
diff --git a/src/c/elementaryFunctions/sqrt/zsqrts.c b/src/c/elementaryFunctions/sqrt/zsqrts.c
new file mode 100644
index 0000000..3637ddd
--- /dev/null
+++ b/src/c/elementaryFunctions/sqrt/zsqrts.c
@@ -0,0 +1,111 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ * Copyright (C) Bruno Pincon
+ *
+ * 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 <stdio.h>
+#include <math.h>
+#include "sqrt.h"
+#include "lapack.h"
+#include "abs.h"
+#include "sign.h"
+#include "pythag.h"
+
+#ifdef _MSC_VER
+#include <float.h>
+#define isnan(x) _isnan((double)x)
+#endif
+
+#define _sign(a, b) b >=0 ? a : -a
+
+doubleComplex zsqrts(doubleComplex in) {
+ double RMax = getOverflowThreshold();
+ double BRMin = 2 * getUnderflowThreshold();
+
+ double RealIn = zreals(in);
+ double ImgIn = zimags(in);
+
+ double RealOut = 0;
+ double ImgOut = 0;
+
+ if(RealIn == 0)
+ {/* pure imaginary case */
+ if(dabss(ImgIn >= BRMin))
+ RealOut = dsqrts(0.5 * dabss(ImgIn));
+ else
+ RealOut = dsqrts(dabss(ImgIn)) * dsqrts(0.5);
+
+ ImgOut = _sign(1, ImgIn) * RealOut;
+ }
+ else if( dabss(RealIn) <= RMax && dabss(ImgIn) <= RMax)
+ {/* standard case : a (not zero) and b are finite */
+ double Temp = dsqrts(2 * (dabss(RealIn) + dpythags(RealIn, ImgIn)));
+ /* overflow test */
+ if(Temp > RMax)
+ {/* handle (spurious) overflow by scaling a and b */
+ double RealTemp = RealIn / 16;
+ double ImgTemp = ImgIn / 16;
+ Temp = dsqrts(2 * (dabss(RealIn) + dpythags(RealIn, ImgTemp)));
+ if(RealTemp >= 0)
+ {
+ RealOut = 2 * Temp;
+ ImgOut = 4 * ImgTemp / Temp;
+ }
+ else
+ {
+ RealOut = 4 * dabss(ImgIn) / Temp;
+ ImgOut = _sign(2, ImgIn) * Temp;
+ }
+ }
+ else if(RealIn >= 0) /* classic switch to get the stable formulas */
+ {
+ RealOut = 0.5 * Temp;
+ ImgOut = ImgIn / Temp;
+ }
+ else
+ {
+ RealOut = dabss(ImgIn) / Temp;
+ ImgOut = (_sign(0.5, ImgIn)) * Temp;
+ }
+ }
+ else
+ {
+ /*
+ //Here we treat the special cases where a and b are +- 00 or NaN.
+ //The following is the treatment recommended by the C99 standard
+ //with the simplification of returning NaN + i NaN if the
+ //the real part or the imaginary part is NaN (C99 recommends
+ //something more complicated)
+ */
+
+ if(isnan(RealIn) == 1 || isnan(ImgIn) == 1)
+ {/* got NaN + i NaN */
+ RealOut = RealIn + ImgIn;
+ ImgOut = RealOut;
+ }
+ else if( dabss(ImgIn) > RMax)
+ {/* case a +- i oo -> result must be +oo +- i oo for all a (finite or not) */
+ RealOut = dabss(ImgIn);
+ ImgOut = ImgIn;
+ }
+ else if(RealIn < -RMax)
+ {/* here a is -Inf and b is finite */
+ RealOut = 0;
+ ImgOut = _sign(1, ImgIn) * dabss(RealIn);
+ }
+ else
+ {/* here a is +Inf and b is finite */
+ RealOut = RealIn;
+ ImgOut = 0;
+ }
+ }
+
+ return DoubleComplex(RealOut, ImgOut);
+}