diff options
53 files changed, 0 insertions, 4287 deletions
diff --git a/libstdc++-v3/math/Makefile.am b/libstdc++-v3/math/Makefile.am deleted file mode 100644 index 605f42f..0000000 --- a/libstdc++-v3/math/Makefile.am +++ /dev/null @@ -1,59 +0,0 @@ -## Makefile for the math subdirectory of the GNU C++ Standard library. -## -## Copyright (C) 1997, 1998, 1999, 2000 Cygnus Solutions -## -## This file is part of the libstdc++ version 3 distribution. -## Process this file with automake to produce Makefile.in. - -## This file is part of the GNU ISO C++ Library. This library is free -## software; you can redistribute it and/or modify it under the -## terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) -## any later version. - -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. - -## You should have received a copy of the GNU General Public License along -## with this library; see the file COPYING. If not, write to the Free -## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -## USA. - -AUTOMAKE_OPTIONS = 1.3 cygnus - -noinst_LTLIBRARIES = libmath.la - -EXTRA_LONG_DOUBLE_yes = \ - ccosl.c cexpl.c c_logl.c clog10l.c cpowl.c csinhl.c \ - csqrtl.c ctanhl.c ctanl.c cargl.c hypotl.c \ - signbitl.c cabsl.c - -EXTRA_DIST = \ - ccos.c ccosf.c ccosh.c ccoshf.c ccoshl.c \ - cexp.c cexpf.c c_log.c c_logf.c clog10.c clog10f.c \ - cpow.c cpowf.c csin.c csinf.c csinh.c csinhf.c \ - csinl.c csqrt.c csqrtf.c ctan.c ctanf.c ctanh.c \ - ctanhf.c carg.c cargf.c hypot.c hypotf.c\ - atan2f.c expf.c \ - $(EXTRA_LONG_DOUBLE_yes) - -libmath_la_LIBADD = \ - @LIBMATHOBJS@ \ - $(EXTRA_LONG_DOUBLE_$(USE_COMPLEX_LONG_DOUBLE)) - -libmath_la_DEPENDENCIES = $(libmath_la_LIBADD) - -libmath_la_SOURCES = \ - signbit.c signbitf.c cabs.c cabsf.c - -LINK = $(LIBTOOL) --mode=link "$(CCLD)" $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ - -TOPLEVEL_INCLUDES = -I$(includedir) -INCLUDES = -I../include $(TOPLEVEL_INCLUDES) - - - - - diff --git a/libstdc++-v3/math/Makefile.in b/libstdc++-v3/math/Makefile.in deleted file mode 100644 index 4aab9ff..0000000 --- a/libstdc++-v3/math/Makefile.in +++ /dev/null @@ -1,350 +0,0 @@ -# Makefile.in generated automatically by automake 1.4 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999 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. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CPU_FLAGS = @CPU_FLAGS@ -CSHADOWFLAGS = @CSHADOWFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG_FLAGS = @DEBUG_FLAGS@ -DLLTOOL = @DLLTOOL@ -EXEEXT = @EXEEXT@ -EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ -GCC_OBJDIR = @GCC_OBJDIR@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -GLIBCPP_CFLAGS = @GLIBCPP_CFLAGS@ -GLIBCPP_CXXFLAGS = @GLIBCPP_CXXFLAGS@ -LIBMATHOBJS = @LIBMATHOBJS@ -LIBSTRINGOBJS = @LIBSTRINGOBJS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OPT_LDFLAGS = @OPT_LDFLAGS@ -PACKAGE = @PACKAGE@ -RANLIB = @RANLIB@ -SECTION_FLAGS = @SECTION_FLAGS@ -SECTION_LDFLAGS = @SECTION_LDFLAGS@ -STRIP = @STRIP@ -THREADDEPS = @THREADDEPS@ -THREADINCS = @THREADINCS@ -THREADLIBS = @THREADLIBS@ -THREADOBJS = @THREADOBJS@ -THREADSPEC = @THREADSPEC@ -USE_COMPLEX_LONG_DOUBLE = @USE_COMPLEX_LONG_DOUBLE@ -VERSION = @VERSION@ -WERROR = @WERROR@ -WFMT_FLAGS = @WFMT_FLAGS@ -cpu_include_dir = @cpu_include_dir@ -ctype_include_dir = @ctype_include_dir@ -glibcpp_basedir = @glibcpp_basedir@ -ifGNUmake = @ifGNUmake@ -libinst_wstring_la = @libinst_wstring_la@ - -AUTOMAKE_OPTIONS = 1.3 cygnus - -noinst_LTLIBRARIES = libmath.la - -EXTRA_LONG_DOUBLE_yes = ccosl.c cexpl.c c_logl.c clog10l.c cpowl.c csinhl.c csqrtl.c ctanhl.c ctanl.c cargl.c hypotl.c signbitl.c cabsl.c - - -EXTRA_DIST = ccos.c ccosf.c ccosh.c ccoshf.c ccoshl.c cexp.c cexpf.c c_log.c c_logf.c clog10.c clog10f.c cpow.c cpowf.c csin.c csinf.c csinh.c csinhf.c csinl.c csqrt.c csqrtf.c ctan.c ctanf.c ctanh.c ctanhf.c carg.c cargf.c hypot.c hypotf.c atan2f.c expf.c $(EXTRA_LONG_DOUBLE_yes) - - -libmath_la_LIBADD = @LIBMATHOBJS@ $(EXTRA_LONG_DOUBLE_$(USE_COMPLEX_LONG_DOUBLE)) - - -libmath_la_DEPENDENCIES = $(libmath_la_LIBADD) - -libmath_la_SOURCES = signbit.c signbitf.c cabs.c cabsf.c - - -LINK = $(LIBTOOL) --mode=link "$(CCLD)" $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ - -TOPLEVEL_INCLUDES = -I$(includedir) -INCLUDES = -I../include $(TOPLEVEL_INCLUDES) -mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs -CONFIG_HEADER = ../config.h -CONFIG_CLEAN_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) - - -DEFS = @DEFS@ -I. -I$(srcdir) -I.. -CPPFLAGS = @CPPFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ -libmath_la_LDFLAGS = -libmath_la_OBJECTS = signbit.lo signbitf.lo cabs.lo cabsf.lo -CFLAGS = @CFLAGS@ -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = gtar -GZIP_ENV = --best -SOURCES = $(libmath_la_SOURCES) -OBJECTS = $(libmath_la_OBJECTS) - -all: all-redirect -.SUFFIXES: -.SUFFIXES: .S .c .lo .o .obj .s -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --cygnus math/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -mostlyclean-noinstLTLIBRARIES: - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - -distclean-noinstLTLIBRARIES: - -maintainer-clean-noinstLTLIBRARIES: - -.c.o: - $(COMPILE) -c $< - -# FIXME: We should only use cygpath when building on Windows, -# and only if it is available. -.c.obj: - $(COMPILE) -c `cygpath -w $<` - -.s.o: - $(COMPILE) -c $< - -.S.o: - $(COMPILE) -c $< - -mostlyclean-compile: - -rm -f *.o core *.core - -rm -f *.$(OBJEXT) - -clean-compile: - -distclean-compile: - -rm -f *.tab.c - -maintainer-clean-compile: - -.c.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.s.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.S.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -maintainer-clean-libtool: - -libmath.la: $(libmath_la_OBJECTS) $(libmath_la_DEPENDENCIES) - $(LINK) $(libmath_la_LDFLAGS) $(libmath_la_OBJECTS) $(libmath_la_LIBADD) $(LIBS) - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = math - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: -check: check-am -installcheck-am: -installcheck: installcheck-am -install-info-am: -install-info: install-info-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile $(LTLIBRARIES) -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-noinstLTLIBRARIES mostlyclean-compile \ - mostlyclean-libtool mostlyclean-tags \ - mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-noinstLTLIBRARIES clean-compile clean-libtool \ - clean-tags clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-noinstLTLIBRARIES distclean-compile \ - distclean-libtool distclean-tags distclean-generic \ - clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-noinstLTLIBRARIES \ - maintainer-clean-compile maintainer-clean-libtool \ - maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \ -clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \ -mostlyclean-compile distclean-compile clean-compile \ -maintainer-clean-compile mostlyclean-libtool distclean-libtool \ -clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-info-am \ -install-info install-exec-am install-exec install-data-am install-data \ -install-am install uninstall-am uninstall all-redirect all-am all \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# 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/libstdc++-v3/math/atan2f.c b/libstdc++-v3/math/atan2f.c deleted file mode 100644 index 1c59dae..0000000 --- a/libstdc++-v3/math/atan2f.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Compute arc tangent. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -float -atan2f (float x, float y) -{ - /* We use the double version. */ - return atan2 (x, y); -} diff --git a/libstdc++-v3/math/c_log.c b/libstdc++-v3/math/c_log.c deleted file mode 100644 index c3b8c55..0000000 --- a/libstdc++-v3/math/c_log.c +++ /dev/null @@ -1,63 +0,0 @@ -/* Compute complex natural logarithm. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <math.h> -#include "mathconf.h" - -__complex__ double -c_log (__complex__ double x) -{ - __complex__ double result; - - if (x == 0.0) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PI : 0.0; - __imag__ result = copysign (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabs (__real__ x); - } - else if (__real__ x == __real__ x && __imag__ x == __imag__ x) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = log (hypot (__real__ x, __imag__ x)); - __imag__ result = atan2 (__imag__ x, __real__ x); - } - else - { - __imag__ result = NAN; - if (INFINITE_P (__real__ x) || INFINITE_P (__imag__ x)) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VAL; - else - __real__ result = NAN; - } - - return result; -} diff --git a/libstdc++-v3/math/c_logf.c b/libstdc++-v3/math/c_logf.c deleted file mode 100644 index aff2111..0000000 --- a/libstdc++-v3/math/c_logf.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Compute complex natural logarithm. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <math.h> -#include "mathconf.h" - - -__complex__ float -c_logf (__complex__ float x) -{ - __complex__ float result; - - if (x == 0.0) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PI : 0.0; - __imag__ result = copysignf (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabsf (__real__ x); - } - else if (__real__ x == __real__ x && __imag__ x == __imag__ x) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = logf (hypotf (__real__ x, __imag__ x)); - __imag__ result = atan2f (__imag__ x, __real__ x); - } - else - { - __imag__ result = NAN; - if (INFINITEF_P (__real__ x) || INFINITEF_P (__imag__ x)) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VALF; - else - __real__ result = NAN; - } - - return result; -} diff --git a/libstdc++-v3/math/c_logl.c b/libstdc++-v3/math/c_logl.c deleted file mode 100644 index d4075f7..0000000 --- a/libstdc++-v3/math/c_logl.c +++ /dev/null @@ -1,75 +0,0 @@ -/* Compute complex natural logarithm. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif -#include <math.h> -#include "mathconf.h" -#ifndef M_PIl -#define M_PIl M_PI -#endif - -/* Thanks to SGI we have to trick here. At least Irix 6.2 provides hypotl, - but it has a wrong prototype. Grrr. */ -extern long double local_hypotl (long double, long double) asm ("hypotl"); - - -__complex__ long double -c_logl (__complex__ long double x) -{ - __complex__ long double result; - - if (x == 0.0) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PIl : 0.0; - __imag__ result = copysignl (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabsl (__real__ x); - } - else if (__real__ x == __real__ x && __imag__ x == __imag__ x) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = logl (local_hypotl (__real__ x, __imag__ x)); - __imag__ result = atan2l (__imag__ x, __real__ x); - } - else - { - __imag__ result = NAN; - if (INFINITEL_P (__real__ x) || INFINITEL_P (__imag__ x)) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VALL; - else - __real__ result = NAN; - } - - return result; -} diff --git a/libstdc++-v3/math/cabs.c b/libstdc++-v3/math/cabs.c deleted file mode 100644 index f2f41e2..0000000 --- a/libstdc++-v3/math/cabs.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Return the complex absolute value of double complex value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -double -cabs (__complex__ double z) -{ - return hypot (__real__ z, __imag__ z); -} diff --git a/libstdc++-v3/math/cabsf.c b/libstdc++-v3/math/cabsf.c deleted file mode 100644 index 53358cf..0000000 --- a/libstdc++-v3/math/cabsf.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Return the complex absolute value of double complex value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -float -cabsf (__complex__ float z) -{ - return hypotf (__real__ z, __imag__ z); -} diff --git a/libstdc++-v3/math/cabsl.c b/libstdc++-v3/math/cabsl.c deleted file mode 100644 index 4b36a3a..0000000 --- a/libstdc++-v3/math/cabsl.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Return the complex absolute value of double complex value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <math.h> -#include "mathconf.h" - -/* Thanks to SGI we have to trick here. At least Irix 6.2 provides hypotl, - but it has a wrong prototype. Grrr. */ -extern long double local_hypotl (long double, long double) asm ("hypotl"); - - -long double -__mycabsl (__complex__ long double z) -{ - return local_hypotl (__real__ z, __imag__ z); -} diff --git a/libstdc++-v3/math/carg.c b/libstdc++-v3/math/carg.c deleted file mode 100644 index dff4a19..0000000 --- a/libstdc++-v3/math/carg.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Compute argument of complex double value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <math.h> -#include "mathconf.h" - -double -carg (__complex__ double x) -{ - return atan2 (__imag__ x, __real__ x); -} diff --git a/libstdc++-v3/math/cargf.c b/libstdc++-v3/math/cargf.c deleted file mode 100644 index 90a2f41..0000000 --- a/libstdc++-v3/math/cargf.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Compute argument of complex float value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -float -cargf (__complex__ float x) -{ - return atan2f (__imag__ x, __real__ x); -} diff --git a/libstdc++-v3/math/cargl.c b/libstdc++-v3/math/cargl.c deleted file mode 100644 index ede84a1..0000000 --- a/libstdc++-v3/math/cargl.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Compute argument of complex long double value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -long double -cargl (__complex__ long double x) -{ - return atan2l (__imag__ x, __real__ x); -} diff --git a/libstdc++-v3/math/ccos.c b/libstdc++-v3/math/ccos.c deleted file mode 100644 index 208c6e6..0000000 --- a/libstdc++-v3/math/ccos.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Return cosine of complex double value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -__complex__ double -ccos (__complex__ double x) -{ - __complex__ double res; - - if (!FINITE_P (__real__ x) || __imag__ x != __imag__ x) - { - if (__real__ x == 0.0 || __imag__ x == 0.0) - { - __real__ res = NAN; - __imag__ res = 0.0; - } - else if (INFINITE_P (__imag__ x)) - { - __real__ res = HUGE_VAL; - __imag__ res = NAN; - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - __complex__ double y; - - __real__ y = -__imag__ x; - __imag__ y = __real__ x; - - res = ccosh (y); - } - - return res; -} diff --git a/libstdc++-v3/math/ccosf.c b/libstdc++-v3/math/ccosf.c deleted file mode 100644 index 0cbf4a0..0000000 --- a/libstdc++-v3/math/ccosf.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Return cosine of complex float value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -__complex__ float -ccosf (__complex__ float x) -{ - __complex__ float res; - - if (!FINITEF_P (__real__ x) || __imag__ x != __imag__ x) - { - if (__real__ x == 0.0 || __imag__ x == 0.0) - { - __real__ res = NAN; - __imag__ res = 0.0; - } - else if (INFINITE_P (__imag__ x)) - { - __real__ res = HUGE_VALF; - __imag__ res = NAN; - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - __complex__ float y; - - __real__ y = -__imag__ x; - __imag__ y = __real__ x; - - res = ccoshf (y); - } - - return res; -} diff --git a/libstdc++-v3/math/ccosh.c b/libstdc++-v3/math/ccosh.c deleted file mode 100644 index 79fe94e..0000000 --- a/libstdc++-v3/math/ccosh.c +++ /dev/null @@ -1,93 +0,0 @@ -/* Complex cosine hyperbole function for double. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ double -ccosh (__complex__ double x) -{ - __complex__ double retval; - - if (FINITE_P (__real__ x)) - { - /* Real part is finite. */ - if (FINITE_P (__imag__ x)) - { - /* Imaginary part is finite. */ - double sinh_val = sinh (__real__ x); - double cosh_val = cosh (__real__ x); - double sinix = sin (__imag__ x); - double cosix = cos (__imag__ x); - - __real__ retval = cosh_val * cosix; - __imag__ retval = sinh_val * sinix; - } - else - { - __imag__ retval = __real__ x == 0.0 ? 0.0 : NAN; - __real__ retval = NAN + NAN; - } - } - else if (INFINITE_P (__real__ x)) - { - /* Real part is infinite. */ - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = HUGE_VAL; - __imag__ retval = __imag__ x * copysign (1.0, __real__ x); - } - else if (FINITE_P (__imag__ x)) - { - /* Imaginary part is finite. */ - double sinix = sin (__imag__ x); - double cosix = cos (__imag__ x); - - __real__ retval = copysign (HUGE_VAL, cosix); - __imag__ retval = (copysign (HUGE_VAL, sinix) - * copysign (1.0, __real__ x)); - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VAL; - __imag__ retval = NAN + NAN; - } - } - else - { - __real__ retval = NAN; - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/ccoshf.c b/libstdc++-v3/math/ccoshf.c deleted file mode 100644 index 51c5890..0000000 --- a/libstdc++-v3/math/ccoshf.c +++ /dev/null @@ -1,92 +0,0 @@ -/* Complex cosine hyperbole function for float. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <math.h> -#include "mathconf.h" - - -__complex__ float -ccoshf (__complex__ float x) -{ - __complex__ float retval; - - if (FINITEF_P (__real__ x)) - { - /* Real part is finite. */ - if (FINITEF_P (__imag__ x)) - { - /* Imaginary part is finite. */ - float sinh_val = sinhf (__real__ x); - float cosh_val = coshf (__real__ x); - float sinix = sinf (__imag__ x); - float cosix = cosf (__imag__ x); - - __real__ retval = cosh_val * cosix; - __imag__ retval = sinh_val * sinix; - } - else - { - __imag__ retval = __real__ x == 0.0 ? 0.0 : NAN; - __real__ retval = NAN; - } - } - else if (INFINITEF_P (__real__ x)) - { - /* Real part is infinite. */ - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = HUGE_VALF; - __imag__ retval = __imag__ x * copysignf (1.0, __real__ x); - } - else if (FINITEF_P (__imag__ x)) - { - /* Imaginary part is finite. */ - float sinix = sinf (__imag__ x); - float cosix = cosf (__imag__ x); - - __real__ retval = copysignf (HUGE_VALF, cosix); - __imag__ retval = (copysignf (HUGE_VALF, sinix) - * copysignf (1.0, __real__ x)); - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VALF; - __imag__ retval = NAN + NAN; - } - } - else - { - __real__ retval = NAN; - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/ccoshl.c b/libstdc++-v3/math/ccoshl.c deleted file mode 100644 index 7bb2dac..0000000 --- a/libstdc++-v3/math/ccoshl.c +++ /dev/null @@ -1,92 +0,0 @@ -/* Complex cosine hyperbole function for long double. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <math.h> -#include "mathconf.h" - - -__complex__ long double -ccoshl (__complex__ long double x) -{ - __complex__ long double retval; - - if (FINITEL_P (__real__ x)) - { - /* Real part is finite. */ - if (FINITEL_P (__imag__ x)) - { - /* Imaginary part is finite. */ - long double sinh_val = sinhl (__real__ x); - long double cosh_val = coshl (__real__ x); - long double sinix = sinl (__imag__ x); - long double cosix = cosl (__imag__ x); - - __real__ retval = cosh_val * cosix; - __imag__ retval = sinh_val * sinix; - } - else - { - __imag__ retval = __real__ x == 0.0 ? 0.0 : NAN; - __real__ retval = NAN + NAN; - } - } - else if (INFINITEL_P (__real__ x)) - { - /* Real part is infinite. */ - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = HUGE_VALL; - __imag__ retval = __imag__ x * copysignl (1.0, __real__ x); - } - else if (FINITEL_P (__imag__ x)) - { - /* Imaginary part is finite. */ - long double sinix = sinl (__imag__ x); - long double cosix = cosl (__imag__ x); - - __real__ retval = copysignl (HUGE_VALL, cosix); - __imag__ retval = (copysignl (HUGE_VALL, sinix) - * copysignl (1.0, __real__ x)); - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VALL; - __imag__ retval = NAN + NAN; - } - } - else - { - __real__ retval = NAN; - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/ccosl.c b/libstdc++-v3/math/ccosl.c deleted file mode 100644 index 6531476..0000000 --- a/libstdc++-v3/math/ccosl.c +++ /dev/null @@ -1,69 +0,0 @@ -/* Return cosine of complex long double value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ long double -ccosl (__complex__ long double x) -{ - __complex__ long double res; - - if (!FINITEL_P (__real__ x) || __imag__ x != __imag__ x) - { - if (__real__ x == 0.0 || __imag__ x == 0.0) - { - __real__ res = NAN; - __imag__ res = 0.0; - } - else if (INFINITEL_P (__imag__ x)) - { - __real__ res = HUGE_VALL; - __imag__ res = NAN; - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - __complex__ long double y; - - __real__ y = -__imag__ x; - __imag__ y = __real__ x; - - res = ccoshl (y); - } - - return res; -} diff --git a/libstdc++-v3/math/cexp.c b/libstdc++-v3/math/cexp.c deleted file mode 100644 index 210220b..0000000 --- a/libstdc++-v3/math/cexp.c +++ /dev/null @@ -1,111 +0,0 @@ -/* Return value of complex exponential function for double complex value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ double -cexp (__complex__ double x) -{ - __complex__ double retval; - - if (FINITE_P (__real__ x)) - { - /* Real part is finite. */ - if (FINITE_P (__imag__ x)) - { - /* Imaginary part is finite. */ - double exp_val = exp (__real__ x); - double sinix = sin (__imag__ x); - double cosix = cos (__imag__ x); - - if (FINITE_P (exp_val)) - { - __real__ retval = exp_val * cosix; - __imag__ retval = exp_val * sinix; - } - else - { - __real__ retval = copysign (exp_val, cosix); - __imag__ retval = copysign (exp_val, sinix); - } - } - else - { - /* If the imaginary part is +-inf or NaN and the real part - is not +-inf the result is NaN + iNaN. */ - __real__ retval = NAN; - __imag__ retval = NAN; - } - } - else if (INFINITE_P (__real__ x)) - { - /* Real part is infinite. */ - if (FINITE_P (__imag__ x)) - { - /* Imaginary part is finite. */ - double value = signbit (__real__ x) ? 0.0 : HUGE_VAL; - - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = value; - __imag__ retval = __imag__ x; - } - else - { - double sinix = sin (__imag__ x); - double cosix = cos (__imag__ x); - - __real__ retval = copysign (value, cosix); - __imag__ retval = copysign (value, sinix); - } - } - else if (signbit (__real__ x) == 0) - { - __real__ retval = HUGE_VAL; - __imag__ retval = NAN; - } - else - { - __real__ retval = 0.0; - __imag__ retval = copysign (0.0, __imag__ x); - } - } - else - { - /* If the real part is NaN the result is NaN + iNaN. */ - __real__ retval = NAN; - __imag__ retval = NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/cexpf.c b/libstdc++-v3/math/cexpf.c deleted file mode 100644 index 0888cb7..0000000 --- a/libstdc++-v3/math/cexpf.c +++ /dev/null @@ -1,110 +0,0 @@ -/* Return value of complex exponential function for float complex value. */ -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ float -cexpf (__complex__ float x) -{ - __complex__ float retval; - - if (FINITEF_P (__real__ x)) - { - /* Real part is finite. */ - if (FINITEF_P (__imag__ x)) - { - /* Imaginary part is finite. */ - float exp_val = expf (__real__ x); - float sinix = sinf (__imag__ x); - float cosix = cosf (__imag__ x); - - if (FINITEF_P (exp_val)) - { - __real__ retval = exp_val * cosix; - __imag__ retval = exp_val * sinix; - } - else - { - __real__ retval = copysignf (exp_val, cosix); - __imag__ retval = copysignf (exp_val, sinix); - } - } - else - { - /* If the imaginary part is +-inf or NaN and the real part - is not +-inf the result is NaN + iNaN. */ - __real__ retval = NAN; - __imag__ retval = NAN; - } - } - else if (INFINITEF_P (__real__ x)) - { - /* Real part is infinite. */ - if (FINITEF_P (__imag__ x)) - { - /* Imaginary part is finite. */ - float value = signbit (__real__ x) ? 0.0 : HUGE_VALF; - - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = value; - __imag__ retval = __imag__ x; - } - else - { - float sinix = sinf (__imag__ x); - float cosix = cosf (__imag__ x); - - __real__ retval = copysignf (value, cosix); - __imag__ retval = copysignf (value, sinix); - } - } - else if (signbit (__real__ x) == 0) - { - __real__ retval = HUGE_VALF; - __imag__ retval = NAN; - } - else - { - __real__ retval = 0.0; - __imag__ retval = copysignf (0.0, __imag__ x); - } - } - else - { - /* If the real part is NaN the result is NaN + iNaN. */ - __real__ retval = NAN; - __imag__ retval = NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/cexpl.c b/libstdc++-v3/math/cexpl.c deleted file mode 100644 index 83cb4db..0000000 --- a/libstdc++-v3/math/cexpl.c +++ /dev/null @@ -1,110 +0,0 @@ -/* Return value of complex exp function for long double complex value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <math.h> -#include "mathconf.h" - - -__complex__ long double -cexpl (__complex__ long double x) -{ - __complex__ long double retval; - - if (FINITEL_P (__real__ x)) - { - /* Real part is finite. */ - if (FINITEL_P (__imag__ x)) - { - /* Imaginary part is finite. */ - long double exp_val = expl (__real__ x); - long double sinix = sinl (__imag__ x); - long double cosix = cosl (__imag__ x); - - if (FINITEL_P (exp_val)) - { - __real__ retval = exp_val * cosix; - __imag__ retval = exp_val * sinix; - } - else - { - __real__ retval = copysignl (exp_val, cosix); - __imag__ retval = copysignl (exp_val, sinix); - } - } - else - { - /* If the imaginary part is +-inf or NaN and the real part - is not +-inf the result is NaN + iNaN. */ - __real__ retval = NAN; - __imag__ retval = NAN; - } - } - else if (INFINITEL_P (__real__ x)) - { - /* Real part is infinite. */ - if (FINITEL_P (__imag__ x)) - { - /* Imaginary part is finite. */ - long double value = signbit (__real__ x) ? 0.0 : HUGE_VALL; - - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = value; - __imag__ retval = __imag__ x; - } - else - { - long double sinix = sinl (__imag__ x); - long double cosix = cosl (__imag__ x); - - __real__ retval = copysignl (value, cosix); - __imag__ retval = copysignl (value, sinix); - } - } - else if (signbit (__real__ x) == 0) - { - __real__ retval = HUGE_VALL; - __imag__ retval = NAN; - } - else - { - __real__ retval = 0.0; - __imag__ retval = copysignl (0.0, __imag__ x); - } - } - else - { - /* If the real part is NaN the result is NaN + iNaN. */ - __real__ retval = NAN; - __imag__ retval = NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/clog10.c b/libstdc++-v3/math/clog10.c deleted file mode 100644 index e158a99..0000000 --- a/libstdc++-v3/math/clog10.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Compute complex base 10 logarithm. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ double -clog10 (__complex__ double x) -{ - __complex__ double result; - - if (x == 0.0) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PI : 0.0; - __imag__ result = copysign (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabs (__real__ x); - } - else if (__real__ x != __real__ x && __imag__ x != __imag__ x) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = log10 (hypot (__real__ x, __imag__ x)); - __imag__ result = atan2 (__imag__ x, __real__ x); - } - else - { - __imag__ result = NAN; - if (INFINITE_P (__real__ x) || INFINITE_P (__imag__ x)) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VAL; - else - __real__ result = NAN; - } - - return result; -} diff --git a/libstdc++-v3/math/clog10f.c b/libstdc++-v3/math/clog10f.c deleted file mode 100644 index b241cec..0000000 --- a/libstdc++-v3/math/clog10f.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Compute complex base 10 logarithm. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <math.h> -#include "mathconf.h" - - -__complex__ float -clog10f (__complex__ float x) -{ - __complex__ float result; - - if (x == 0.0) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PI : 0.0; - __imag__ result = copysignf (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabsf (__real__ x); - } - else if (__real__ x == __real__ x && __imag__ x == __imag__ x) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = log10f (hypotf (__real__ x, __imag__ x)); - __imag__ result = atan2f (__imag__ x, __real__ x); - } - else - { - __imag__ result = NAN; - if (INFINITEF_P (__real__ x) || INFINITEF_P (__imag__ x)) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VALF; - else - __real__ result = NAN; - } - - return result; -} diff --git a/libstdc++-v3/math/clog10l.c b/libstdc++-v3/math/clog10l.c deleted file mode 100644 index 9cec8f8..0000000 --- a/libstdc++-v3/math/clog10l.c +++ /dev/null @@ -1,74 +0,0 @@ -/* Compute complex natural logarithm. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif -#include <math.h> -#include "mathconf.h" -#ifndef M_PIl -#define M_PIl M_PI -#endif - -/* Thanks to SGI we have to trick here. At least Irix 6.2 provides hypotl, - but it has a wrong prototype. Grrr. */ -extern long double local_hypotl (long double, long double) asm ("hypotl"); - - -__complex__ long double -clog10l (__complex__ long double x) -{ - __complex__ long double result; - - if (x == 0.0) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PIl : 0.0; - __imag__ result = copysignl (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabsl (__real__ x); - } - else if (__real__ x == __real__ x && __imag__ x == __imag__ x) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = log10l (local_hypotl (__real__ x, __imag__ x)); - __imag__ result = atan2l (__imag__ x, __real__ x); - } - else - { - __imag__ result = NAN; - if (INFINITEL_P (__real__ x) || INFINITEL_P (__imag__ x)) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VALL; - else - __real__ result = NAN; - } - - return result; -} diff --git a/libstdc++-v3/math/complex-stub.h b/libstdc++-v3/math/complex-stub.h deleted file mode 100644 index 5028b2a..0000000 --- a/libstdc++-v3/math/complex-stub.h +++ /dev/null @@ -1,86 +0,0 @@ - -/* Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -/* This is no header meant to be used in general. It's simply here to - get libstdc++ compiled. It should never be installed in an official - directory. */ - -#ifndef _COMPLEX_H -#define _COMPLEX_H 1 - -__complex__ double ccos (__complex__ double x); -__complex__ float ccosf (__complex__ float x); -__complex__ long double ccosl (__complex__ long double x); - -__complex__ double ccosh (__complex__ double x); -__complex__ float ccoshf (__complex__ float x); -__complex__ long double ccoshl (__complex__ long double x); - -__complex__ double cexp (__complex__ double x); -__complex__ float cexpf (__complex__ float x); -__complex__ long double cexpl (__complex__ long double x); - -__complex__ double clog10 (__complex__ double x); -__complex__ float clog10f (__complex__ float x); -__complex__ long double clog10l (__complex__ long double x); - -__complex__ double cpow (__complex__ double x, __complex__ double c); -__complex__ float cpowf (__complex__ float x, __complex__ float c); -__complex__ long double cpowl (__complex__ long double x, __complex__ long double c); - -__complex__ double csin (__complex__ double x); -__complex__ float csinf (__complex__ float x); -__complex__ long double csinl (__complex__ long double x); - -__complex__ double csinh (__complex__ double x); -__complex__ float csinhf (__complex__ float x); -__complex__ long double csinhl (__complex__ long double x); - -__complex__ double csqrt (__complex__ double x); -__complex__ float csqrtf (__complex__ float x); -__complex__ long double csqrtl (__complex__ long double x); - -__complex__ double ctan (__complex__ double x); -__complex__ float ctanf (__complex__ float x); -__complex__ long double ctanl (__complex__ long double x); - -__complex__ double ctanh (__complex__ double x); -__complex__ float ctanhf (__complex__ float x); -__complex__ long double ctanhl (__complex__ long double x); - -double carg (__complex__ double x); -float cargf (__complex__ float x); -long double cargl (__complex__ long double x); - -double cabs (__complex__ double x); -float cabsf (__complex__ float x); -long double cabsl (__complex__ long double x); - -#endif - diff --git a/libstdc++-v3/math/copysignf.c b/libstdc++-v3/math/copysignf.c deleted file mode 100644 index 968c147..0000000 --- a/libstdc++-v3/math/copysignf.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copy sign of one number to another. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -float -copysignf (float x, float y) -{ - /* We use the double version. */ - return copysign (x, y); -} diff --git a/libstdc++-v3/math/cpow.c b/libstdc++-v3/math/cpow.c deleted file mode 100644 index 5d816a1..0000000 --- a/libstdc++-v3/math/cpow.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Complex power of double values. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ double -cpow (__complex__ double x, __complex__ double c) -{ - return cexp (c * c_log (x)); -} diff --git a/libstdc++-v3/math/cpowf.c b/libstdc++-v3/math/cpowf.c deleted file mode 100644 index d4aa590..0000000 --- a/libstdc++-v3/math/cpowf.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Complex power of float values. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <math.h> -#include "mathconf.h" - - -__complex__ float -cpowf (__complex__ float x, __complex__ float c) -{ - return cexpf (c * c_logf (x)); -} diff --git a/libstdc++-v3/math/cpowl.c b/libstdc++-v3/math/cpowl.c deleted file mode 100644 index 65856d4..0000000 --- a/libstdc++-v3/math/cpowl.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Complex power of long double values. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <math.h> -#include "mathconf.h" - -__complex__ long double -cpowl (__complex__ long double x, __complex__ long double c) -{ - return cexpl (c * c_logl (x)); -} - - - diff --git a/libstdc++-v3/math/csin.c b/libstdc++-v3/math/csin.c deleted file mode 100644 index bde6019..0000000 --- a/libstdc++-v3/math/csin.c +++ /dev/null @@ -1,115 +0,0 @@ -/* Complex sine function for double. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ double -csin (__complex__ double x) -{ - __complex__ double retval; - int negate = signbit (__real__ x); - - __real__ x = fabs (__real__ x); - - if (FINITE_P (__imag__ x)) - { - /* Imaginary part is finite. */ - if (FINITE_P (__real__ x)) - { - /* Real part is finite. */ - double sinh_val = sinh (__imag__ x); - double cosh_val = cosh (__imag__ x); - double sinix = sin (__real__ x); - double cosix = cos (__real__ x); - - __real__ retval = cosh_val * sinix; - __imag__ retval = sinh_val * cosix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = NAN; - __imag__ retval = __imag__ x; - } - else - { - __real__ retval = NAN; - __imag__ retval = NAN; - } - } - } - else if (INFINITE_P (__imag__ x)) - { - /* Imaginary part is infinite. */ - if (__real__ x == 0.0) - { - /* Real part is 0.0. */ - __real__ retval = copysign (0.0, negate ? -1.0 : 1.0); - __imag__ retval = __imag__ x; - } - else if (FINITE_P (__real__ x)) - { - /* Real part is finite. */ - double sinix = sin (__real__ x); - double cosix = cos (__real__ x); - - __real__ retval = copysign (HUGE_VAL, sinix); - __imag__ retval = copysign (HUGE_VAL, cosix); - - if (negate) - __real__ retval = -__real__ retval; - if (signbit (__imag__ x)) - __imag__ retval = -__imag__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = NAN; - __imag__ retval = HUGE_VAL; - } - } - else - { - if (__real__ x == 0.0) - __real__ retval = copysign (0.0, negate ? -1.0 : 1.0); - else - __real__ retval = NAN; - __imag__ retval = NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/csinf.c b/libstdc++-v3/math/csinf.c deleted file mode 100644 index 8c66865..0000000 --- a/libstdc++-v3/math/csinf.c +++ /dev/null @@ -1,115 +0,0 @@ -/* Complex sine function for float. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ float -csinf (__complex__ float x) -{ - __complex__ float retval; - int negate = signbit (__real__ x); - - __real__ x = fabsf (__real__ x); - - if (FINITEF_P (__imag__ x)) - { - /* Imaginary part is finite. */ - if (FINITEF_P (__real__ x)) - { - /* Real part is finite. */ - float sinh_val = sinhf (__imag__ x); - float cosh_val = coshf (__imag__ x); - float sinix = sinf (__real__ x); - float cosix = cosf (__real__ x); - - __real__ retval = cosh_val * sinix; - __imag__ retval = sinh_val * cosix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = NAN; - __imag__ retval = __imag__ x; - } - else - { - __real__ retval = NAN; - __imag__ retval = NAN; - } - } - } - else if (INFINITEF_P (__imag__ x)) - { - /* Imaginary part is infinite. */ - if (__real__ x == 0.0) - { - /* Real part is 0.0. */ - __real__ retval = copysignf (0.0, negate ? -1.0 : 1.0); - __imag__ retval = __imag__ x; - } - else if (FINITEF_P (__real__ x)) - { - /* Real part is finite. */ - float sinix = sinf (__real__ x); - float cosix = cosf (__real__ x); - - __real__ retval = copysignf (HUGE_VALF, sinix); - __imag__ retval = copysignf (HUGE_VALF, cosix); - - if (negate) - __real__ retval = -__real__ retval; - if (signbit (__imag__ x)) - __imag__ retval = -__imag__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = NAN; - __imag__ retval = HUGE_VALF; - } - } - else - { - if (__real__ x == 0.0) - __real__ retval = copysignf (0.0, negate ? -1.0 : 1.0); - else - __real__ retval = NAN; - __imag__ retval = NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/csinh.c b/libstdc++-v3/math/csinh.c deleted file mode 100644 index 9da924b..0000000 --- a/libstdc++-v3/math/csinh.c +++ /dev/null @@ -1,110 +0,0 @@ -/* Complex sine hyperbole function for double. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ double -csinh (__complex__ double x) -{ - __complex__ double retval; - int negate = signbit (__real__ x); - - __real__ x = fabs (__real__ x); - - if (FINITE_P (__real__ x)) - { - /* Real part is finite. */ - if (FINITE_P (__imag__ x)) - { - /* Imaginary part is finite. */ - double sinh_val = sinh (__real__ x); - double cosh_val = cosh (__real__ x); - double sinix = sin (__imag__ x); - double cosix = cos (__imag__ x); - - __real__ retval = sinh_val * cosix; - __imag__ retval = cosh_val * sinix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (__real__ x == 0.0) - { - /* Real part is 0.0. */ - __real__ retval = copysign (0.0, negate ? -1.0 : 1.0); - __imag__ retval = NAN + NAN; - } - else - { - __real__ retval = NAN; - __imag__ retval = NAN; - } - } - } - else if (INFINITE_P (__real__ x)) - { - /* Real part is infinite. */ - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = negate ? -HUGE_VAL : HUGE_VAL; - __imag__ retval = __imag__ x; - } - else if (FINITE_P (__imag__ x)) - { - /* Imaginary part is finite. */ - double sinix = sin (__imag__ x); - double cosix = cos (__imag__ x); - - __real__ retval = copysign (HUGE_VAL, cosix); - __imag__ retval = copysign (HUGE_VAL, sinix); - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VAL; - __imag__ retval = NAN + NAN; - } - } - else - { - __real__ retval = NAN; - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/csinhf.c b/libstdc++-v3/math/csinhf.c deleted file mode 100644 index 3aaf49a..0000000 --- a/libstdc++-v3/math/csinhf.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Complex sine hyperbole function for float. - Copyright (C) 1997,1998 Free Software Foundation, Inc. - - This file is part of the libstdc++ version 3 distribution. - - This software is a copyrighted work licensed under the terms of the - Cygnus libstdc++ license. Please consult the file LICENSE.STD for - details. */ - -#include <math.h> -#include "mathconf.h" - - -__complex__ float -csinhf (__complex__ float x) -{ - __complex__ float retval; - int negate = signbit (__real__ x); - - __real__ x = fabsf (__real__ x); - - if (FINITEF_P (__real__ x)) - { - /* Real part is finite. */ - if (FINITEF_P (__imag__ x)) - { - /* Imaginary part is finite. */ - float sinh_val = sinhf (__real__ x); - float cosh_val = coshf (__real__ x); - float sinix = sin (__imag__ x); - float cosix = cos (__imag__ x); - - __real__ retval = sinh_val * cosix; - __imag__ retval = cosh_val * sinix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (__real__ x == 0.0) - { - /* Real part is 0.0. */ - __real__ retval = copysignf (0.0, negate ? -1.0 : 1.0); - __imag__ retval = NAN + NAN; - } - else - { - __real__ retval = NAN; - __imag__ retval = NAN; - } - } - } - else if (INFINITEF_P (__real__ x)) - { - /* Real part is infinite. */ - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = negate ? -HUGE_VALF : HUGE_VALF; - __imag__ retval = __imag__ x; - } - else if (FINITEF_P (__imag__ x)) - { - /* Imaginary part is finite. */ - float sinix = sinf (__imag__ x); - float cosix = cosf (__imag__ x); - - __real__ retval = copysignf (HUGE_VALF, cosix); - __imag__ retval = copysignf (HUGE_VALF, sinix); - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VALF; - __imag__ retval = NAN + NAN; - } - } - else - { - __real__ retval = NAN; - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/csinhl.c b/libstdc++-v3/math/csinhl.c deleted file mode 100644 index efd45a2..0000000 --- a/libstdc++-v3/math/csinhl.c +++ /dev/null @@ -1,110 +0,0 @@ -/* Complex sine hyperbole function for long double. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ long double -csinhl (__complex__ long double x) -{ - __complex__ long double retval; - int negate = signbit (__real__ x); - - __real__ x = fabsl (__real__ x); - - if (FINITEL_P (__real__ x)) - { - /* Real part is finite. */ - if (FINITEL_P (__imag__ x)) - { - /* Imaginary part is finite. */ - long double sinh_val = sinhl (__real__ x); - long double cosh_val = coshl (__real__ x); - long double sinix = sinl (__imag__ x); - long double cosix = cosl (__imag__ x); - - __real__ retval = sinh_val * cosix; - __imag__ retval = cosh_val * sinix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (__real__ x == 0.0) - { - /* Real part is 0.0. */ - __real__ retval = copysignl (0.0, negate ? -1.0 : 1.0); - __imag__ retval = NAN + NAN; - } - else - { - __real__ retval = NAN; - __imag__ retval = NAN; - } - } - } - else if (INFINITEL_P (__real__ x)) - { - /* Real part is infinite. */ - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = negate ? -HUGE_VALL : HUGE_VALL; - __imag__ retval = __imag__ x; - } - else if (FINITEL_P (__imag__ x)) - { - /* Imaginary part is finite. */ - long double sinix = sinl (__imag__ x); - long double cosix = cosl (__imag__ x); - - __real__ retval = copysignl (HUGE_VALL, cosix); - __imag__ retval = copysignl (HUGE_VALL, sinix); - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VALL; - __imag__ retval = NAN + NAN; - } - } - else - { - __real__ retval = NAN; - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/csinl.c b/libstdc++-v3/math/csinl.c deleted file mode 100644 index 423b459..0000000 --- a/libstdc++-v3/math/csinl.c +++ /dev/null @@ -1,115 +0,0 @@ -/* Complex sine function for long double. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ long double -csinl (__complex__ long double x) -{ - __complex__ long double retval; - int negate = signbit (__real__ x); - - __real__ x = fabsl (__real__ x); - - if (FINITEL_P (__imag__ x)) - { - /* Imaginary part is finite. */ - if (FINITEL_P (__real__ x)) - { - /* Real part is finite. */ - long double sinh_val = sinhl (__imag__ x); - long double cosh_val = coshl (__imag__ x); - long double sinix = sinl (__real__ x); - long double cosix = cosl (__real__ x); - - __real__ retval = cosh_val * sinix; - __imag__ retval = sinh_val * cosix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (__imag__ x == 0.0) - { - /* Imaginary part is 0.0. */ - __real__ retval = NAN; - __imag__ retval = __imag__ x; - } - else - { - __real__ retval = NAN; - __imag__ retval = NAN; - } - } - } - else if (INFINITEL_P (__imag__ x)) - { - /* Imaginary part is infinite. */ - if (__real__ x == 0.0) - { - /* Real part is 0.0. */ - __real__ retval = copysignl (0.0, negate ? -1.0 : 1.0); - __imag__ retval = __imag__ x; - } - else if (FINITEL_P (__real__ x)) - { - /* Real part is finite. */ - long double sinix = sinl (__real__ x); - long double cosix = cosl (__real__ x); - - __real__ retval = copysignl (HUGE_VALL, sinix); - __imag__ retval = copysignl (HUGE_VALL, cosix); - - if (negate) - __real__ retval = -__real__ retval; - if (signbit (__imag__ x)) - __imag__ retval = -__imag__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = NAN; - __imag__ retval = HUGE_VALL; - } - } - else - { - if (__real__ x == 0.0) - __real__ retval = copysignl (0.0, negate ? -1.0 : 1.0); - else - __real__ retval = NAN; - __imag__ retval = NAN; - } - - return retval; -} diff --git a/libstdc++-v3/math/csqrt.c b/libstdc++-v3/math/csqrt.c deleted file mode 100644 index 5355165..0000000 --- a/libstdc++-v3/math/csqrt.c +++ /dev/null @@ -1,110 +0,0 @@ -/* Complex square root of double value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ double -csqrt (__complex__ double x) -{ - __complex__ double res; - - if (!FINITE_P (__real__ x) || !FINITE_P (__imag__ x)) - { - if (INFINITE_P (__imag__ x)) - { - __real__ res = HUGE_VAL; - __imag__ res = __imag__ x; - } - else if (INFINITE_P (__real__ x)) - { - if (__real__ x < 0.0) - { - __real__ res = __imag__ x != __imag__ x ? NAN : 0; - __imag__ res = copysign (HUGE_VAL, __imag__ x); - } - else - { - __real__ res = __real__ x; - __imag__ res = (__imag__ x != __imag__ x - ? NAN : copysign (0.0, __imag__ x)); - } - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - if (__imag__ x == 0.0) - { - if (__real__ x < 0.0) - { - __real__ res = 0.0; - __imag__ res = copysign (sqrt (-__real__ x), __imag__ x); - } - else - { - __real__ res = fabs (sqrt (__real__ x)); - __imag__ res = copysign (0.0, __imag__ x); - } - } - else if (__real__ x == 0.0) - { - double r = sqrt (0.5 * fabs (__imag__ x)); - - __real__ res = copysign (r, __imag__ x); - __imag__ res = r; - } - else - { - __complex__ double q; - double t, r; - - if (fabs (__imag__ x) < 2.0e-4 * fabs (__real__ x)) - t = 0.25 * __imag__ x * (__imag__ x / __real__ x); - else - t = 0.5 * (hypot (__real__ x, __imag__ x) - __real__ x); - - r = sqrt (t); - - __real__ q = __imag__ x / (2.0 * r); - __imag__ q = r; - - /* Heron iteration in complex arithmetic. */ - res = 0.5 * (q + q / x); - } - } - - return res; -} diff --git a/libstdc++-v3/math/csqrtf.c b/libstdc++-v3/math/csqrtf.c deleted file mode 100644 index a239588..0000000 --- a/libstdc++-v3/math/csqrtf.c +++ /dev/null @@ -1,110 +0,0 @@ -/* Complex square root of float value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ float -csqrtf (__complex__ float x) -{ - __complex__ float res; - - if (!FINITEF_P (__real__ x) || !FINITEF_P (__imag__ x)) - { - if (INFINITEF_P (__imag__ x)) - { - __real__ res = HUGE_VALF; - __imag__ res = __imag__ x; - } - else if (INFINITEF_P (__real__ x)) - { - if (__real__ x < 0.0) - { - __real__ res = __imag__ x != __imag__ x ? NAN : 0; - __imag__ res = copysignf (HUGE_VALF, __imag__ x); - } - else - { - __real__ res = __real__ x; - __imag__ res = (__imag__ x != __imag__ x - ? NAN : copysignf (0.0, __imag__ x)); - } - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - if (__imag__ x == 0.0) - { - if (__real__ x < 0.0) - { - __real__ res = 0.0; - __imag__ res = copysignf (sqrtf (-__real__ x), __imag__ x); - } - else - { - __real__ res = fabsf (sqrtf (__real__ x)); - __imag__ res = copysignf (0.0, __imag__ x); - } - } - else if (__real__ x == 0.0) - { - float r = sqrtf (0.5 * fabsf (__imag__ x)); - - __real__ res = copysignf (r, __imag__ x); - __imag__ res = r; - } - else - { - __complex__ float q; - float t, r; - - if (fabsf (__imag__ x) < 2.0e-4 * fabsf (__real__ x)) - t = 0.25 * __imag__ x * (__imag__ x / __real__ x); - else - t = 0.5 * (hypotf (__real__ x, __imag__ x) - __real__ x); - - r = sqrtf (t); - - __real__ q = __imag__ x / (2.0 * r); - __imag__ q = r; - - /* Heron iteration in complex arithmetic. */ - res = 0.5 * (q + q / x); - } - } - - return res; -} diff --git a/libstdc++-v3/math/csqrtl.c b/libstdc++-v3/math/csqrtl.c deleted file mode 100644 index d871a69..0000000 --- a/libstdc++-v3/math/csqrtl.c +++ /dev/null @@ -1,114 +0,0 @@ -/* Complex square root of long double value. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -/* Thanks to SGI we have to trick here. At least Irix 6.2 provides hypotl, - but it has a wrong prototype. Grrr. */ -extern long double local_hypotl (long double, long double) asm ("hypotl"); - - -__complex__ long double -csqrtl (__complex__ long double x) -{ - __complex__ long double res; - - if (!FINITEL_P (__real__ x) || !FINITEL_P (__imag__ x)) - { - if (INFINITEL_P (__imag__ x)) - { - __real__ res = HUGE_VALL; - __imag__ res = __imag__ x; - } - else if (INFINITEL_P (__real__ x)) - { - if (__real__ x < 0.0) - { - __real__ res = __imag__ x != __imag__ x ? NAN : 0; - __imag__ res = copysignl (HUGE_VALL, __imag__ x); - } - else - { - __real__ res = __real__ x; - __imag__ res = (__imag__ x != __imag__ x - ? NAN : copysignl (0.0, __imag__ x)); - } - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - if (__imag__ x == 0.0) - { - if (__real__ x < 0.0) - { - __real__ res = 0.0; - __imag__ res = copysignl (sqrtl (-__real__ x), __imag__ x); - } - else - { - __real__ res = fabsl (sqrtl (__real__ x)); - __imag__ res = copysignl (0.0, __imag__ x); - } - } - else if (__real__ x == 0.0) - { - long double r = sqrtl (0.5 * fabsl (__imag__ x)); - - __real__ res = copysignl (r, __imag__ x); - __imag__ res = r; - } - else - { - __complex__ long double q; - long double t, r; - - if (fabsl (__imag__ x) < 2.0e-4 * fabsl (__real__ x)) - t = 0.25 * __imag__ x * (__imag__ x / __real__ x); - else - t = 0.5 * (local_hypotl (__real__ x, __imag__ x) - __real__ x); - - r = sqrtl (t); - - __real__ q = __imag__ x / (2.0 * r); - __imag__ q = r; - - /* Heron iteration in complex arithmetic. */ - res = 0.5 * (q + q / x); - } - } - - return res; -} diff --git a/libstdc++-v3/math/ctan.c b/libstdc++-v3/math/ctan.c deleted file mode 100644 index 2a35c18..0000000 --- a/libstdc++-v3/math/ctan.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Complex tangent function for double. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ double -ctan (__complex__ double x) -{ - __complex__ double res; - - if (!FINITE_P (__real__ x) || !FINITE_P (__imag__ x)) - { - if (INFINITE_P (__imag__ x)) - { - __real__ res = copysign (0.0, __real__ x); - __imag__ res = copysign (1.0, __imag__ x); - } - else if (__real__ x == 0.0) - { - res = x; - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - double sin2rx = sin (2.0 * __real__ x); - double cos2rx = cos (2.0 * __real__ x); - double den; - - den = cos2rx + cosh (2.0 * __imag__ x); - - __real__ res = sin2rx / den; - __imag__ res = sinh (2.0 * __imag__ x) / den; - } - - return res; -} diff --git a/libstdc++-v3/math/ctanf.c b/libstdc++-v3/math/ctanf.c deleted file mode 100644 index ebd8cfa..0000000 --- a/libstdc++-v3/math/ctanf.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Complex tangent function for float. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ float -ctanf (__complex__ float x) -{ - __complex__ float res; - - if (!FINITEF_P (__real__ x) || !FINITEF_P (__imag__ x)) - { - if (INFINITEF_P (__imag__ x)) - { - __real__ res = copysignf (0.0, __real__ x); - __imag__ res = copysignf (1.0, __imag__ x); - } - else if (__real__ x == 0.0) - { - res = x; - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - float sin2rx = sinf (2.0f * __real__ x); - float cos2rx = cosf (2.0f * __real__ x); - float den; - - den = cos2rx + coshf (2.0 * __imag__ x); - - __real__ res = sin2rx / den; - __imag__ res = sinhf (2.0 * __imag__ x) / den; - } - - return res; -} diff --git a/libstdc++-v3/math/ctanh.c b/libstdc++-v3/math/ctanh.c deleted file mode 100644 index 5db5cd6..0000000 --- a/libstdc++-v3/math/ctanh.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Complex hyperbole tangent for double. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ double -ctanh (__complex__ double x) -{ - __complex__ double res; - - if (!FINITE_P (__real__ x) || !FINITE_P (__imag__ x)) - { - if (INFINITE_P (__real__ x)) - { - __real__ res = copysign (1.0, __real__ x); - __imag__ res = copysign (0.0, __imag__ x); - } - else if (__imag__ x == 0.0) - { - res = x; - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - double sin2ix = sin (2.0 * __imag__ x); - double cos2ix = cos (2.0 * __imag__ x); - double den; - - den = (cosh (2.0 * __real__ x) + cos2ix); - - __real__ res = sinh (2.0 * __real__ x) / den; - __imag__ res = sin2ix / den; - } - - return res; -} diff --git a/libstdc++-v3/math/ctanhf.c b/libstdc++-v3/math/ctanhf.c deleted file mode 100644 index b5f1cce..0000000 --- a/libstdc++-v3/math/ctanhf.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Complex hyperbole tangent for float. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ float -ctanhf (__complex__ float x) -{ - __complex__ float res; - - if (!FINITEF_P (__real__ x) || !FINITEF_P (__imag__ x)) - { - if (INFINITEF_P (__real__ x)) - { - __real__ res = copysignf (1.0, __real__ x); - __imag__ res = copysignf (0.0, __imag__ x); - } - else if (__imag__ x == 0.0) - { - res = x; - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - float sin2ix = sinf (2.0f * __imag__ x); - float cos2ix = cosf (2.0f * __imag__ x); - float den; - - den = (coshf (2.0 * __real__ x) + cos2ix); - - __real__ res = sinhf (2.0 * __real__ x) / den; - __imag__ res = sin2ix / den; - } - - return res; -} diff --git a/libstdc++-v3/math/ctanhl.c b/libstdc++-v3/math/ctanhl.c deleted file mode 100644 index 3fdf1fc..0000000 --- a/libstdc++-v3/math/ctanhl.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Complex hyperbole tangent for long double. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - - -__complex__ long double -ctanhl (__complex__ long double x) -{ - __complex__ long double res; - - if (!FINITEL_P (__real__ x) || !FINITEL_P (__imag__ x)) - { - if (INFINITEL_P (__real__ x)) - { - __real__ res = copysignl (1.0, __real__ x); - __imag__ res = copysignl (0.0, __imag__ x); - } - else if (__imag__ x == 0.0) - { - res = x; - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - long double sin2ix = sinl (2.0 * __imag__ x); - long double cos2ix = cosl (2.0 * __imag__ x); - long double den; - - den = (coshl (2.0 * __real__ x) + cos2ix); - - __real__ res = sinhl (2.0 * __real__ x) / den; - __imag__ res = sin2ix / den; - } - - return res; -} diff --git a/libstdc++-v3/math/ctanl.c b/libstdc++-v3/math/ctanl.c deleted file mode 100644 index 0af4cec..0000000 --- a/libstdc++-v3/math/ctanl.c +++ /dev/null @@ -1,69 +0,0 @@ -/* Complex tangent function for long double. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <math.h> -#include "mathconf.h" - - -__complex__ long double -ctanl (__complex__ long double x) -{ - __complex__ long double res; - - if (!FINITEL_P (__real__ x) || !FINITEL_P (__imag__ x)) - { - if (INFINITEL_P (__imag__ x)) - { - __real__ res = copysignl (0.0, __real__ x); - __imag__ res = copysignl (1.0, __imag__ x); - } - else if (__real__ x == 0.0) - { - res = x; - } - else - { - __real__ res = NAN; - __imag__ res = NAN; - } - } - else - { - long double sin2rx = sinl (2.0 * __real__ x); - long double cos2rx = cosl (2.0 * __real__ x); - long double den; - - den = cos2rx + coshl (2.0 * __imag__ x); - - __real__ res = sin2rx / den; - __imag__ res = sinhl (2.0 * __imag__ x) / den; - } - - return res; -} diff --git a/libstdc++-v3/math/expf.c b/libstdc++-v3/math/expf.c deleted file mode 100644 index a597502..0000000 --- a/libstdc++-v3/math/expf.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Compute exponential function. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -float -expf (float x) -{ - /* We use the double version. */ - return exp (x); -} diff --git a/libstdc++-v3/math/hypot.c b/libstdc++-v3/math/hypot.c deleted file mode 100644 index 9e3c07b..0000000 --- a/libstdc++-v3/math/hypot.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Compute hypothenuse. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -/* If the platform is so pathetic that is has no hypot function it does - not deserve it better than getting this version. */ -extern double sqrt (double); - -double -hypot (double x, double y) -{ - return sqrt (x * x + y * y); -} diff --git a/libstdc++-v3/math/hypotf.c b/libstdc++-v3/math/hypotf.c deleted file mode 100644 index 29d1681..0000000 --- a/libstdc++-v3/math/hypotf.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Compute hypothenuse. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <config.h> - -/* If there is a `double' version use it. Otherwise make it simply and - stupid. */ -extern double hypot (double, double); -extern double sqrt (double); -extern float sqrtf (float); - -float -hypotf (float x, float y) -{ -#ifdef HAVE_HYPOT - return hypot (x, y); -#elif HAVE_SQRTF - return sqrtf (x * x + y * y); -#else - return sqrt (x * x + y * y); -#endif -} diff --git a/libstdc++-v3/math/hypotl.c b/libstdc++-v3/math/hypotl.c deleted file mode 100644 index 1ec8a9c..0000000 --- a/libstdc++-v3/math/hypotl.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Compute hypothenuse. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -/* The platform supports some long double functions but not hypotl. Blarg. */ -extern long double sqrtl (long double); - -long double -hypotl (long double x, long double y) -{ - return sqrtl (x * x + y * y); -} diff --git a/libstdc++-v3/math/mathconf.h b/libstdc++-v3/math/mathconf.h deleted file mode 100644 index 3f4503c..0000000 --- a/libstdc++-v3/math/mathconf.h +++ /dev/null @@ -1,413 +0,0 @@ -/* Configuration data for libmath subpart of libstdc++. */ - -/* Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <bits/c++config.h> - -#ifdef _GLIBCPP_HAVE_ENDIAN_H -# include <endian.h> -#else -# ifdef _GLIBCPP_HAVE_MACHINE_ENDIAN_H -# include <machine/endian.h> -# else -# ifdef _GLIBCPP_HAVE_SYS_MACHINE_H -# include <sys/machine.h> -# else -# if defined _GLIBCPP_HAVE_SYS_ISA_DEFS_H || defined _GLIBCPP_HAVE_MACHINE_PARAM_H -/* This is on Solaris. */ -# ifdef _GLIBCPP_HAVE_SYS_ISA_DEFS_H -# include <sys/isa_defs.h> -# endif -# ifdef _GLIBCPP_HAVE_MACHINE_PARAM_H -# include <machine/param.h> -# endif -# ifdef _LITTLE_ENDIAN -# define LITTLE_ENDIAN 1 -# endif -# ifdef _BIG_ENDIAN -# define BIG_ENDIAN 1 -# endif -# define BYTE_ORDER 1 -# else -/* We have to rely on the AC_C_BIGENDIAN test. */ -# ifdef WORDS_BIGENDIAN -# define BIG_ENDIAN 1 -# else -# define LITTLE_ENDIAN 1 -# endif -# define BYTE_ORDER 1 -# endif -# endif -# endif -#endif - -typedef unsigned int U_int32_t __attribute ((mode (SI))); -typedef int Int32_t __attribute ((mode (SI))); -typedef unsigned int U_int64_t __attribute ((mode (DI))); -typedef int Uint64_t __attribute ((mode (DI))); - -#ifdef _GLIBCPP_HAVE_NAN_H -# include <nan.h> -#endif - -#ifndef NAN -# define NAN (nan()) -double nan (void); -#endif - -#ifdef _GLIBCPP_HAVE_IEEEFP_H -# include <ieeefp.h> -#endif - -#ifdef _GLIBCPP_HAVE_FP_H -# include <fp.h> -#endif - -#ifdef _GLIBCPP_HAVE_FLOAT_H -# include <float.h> -#endif - -/* `float' variant of HUGE_VAL. */ -#ifndef HUGE_VALF -# ifdef HUGE_VALf -# define HUGE_VALF HUGE_VALf -# else -# define HUGE_VALF HUGE_VAL -# endif -#endif - -/* `long double' variant of HUGE_VAL. */ -#ifndef HUGE_VALL -# ifdef HUGE_VALl -# define HUGE_VALL HUGE_VALl -# else -# define HUGE_VALL HUGE_VAL -# endif -#endif - -/* Make sure that at least HUGE_VAL is defined. */ -#ifndef HUGE_VAL -# ifdef HUGE -# define HUGE_VAL HUGE -# else -# ifdef MAXFLOAT -# define HUGE_VAL MAXFLOAT -# else -# error "We need HUGE_VAL!" -# endif -# endif -#endif - -#ifndef M_PI -# define M_PI 3.14159265358979323846 -#endif - -/* Test whether number is finite. */ -#ifdef isfinite -/* This is an ISO C 9x function. */ -# define FINITE_P(X) isfinite (X) -# define FINITEF_P(X) isfinite (X) -# define FINITEL_P(X) isfinite (X) -#else -# ifdef IsNANorINF -/* This is for Solaris, which does not have special macros for other - types. */ -# define FINITE_P(X) (!IsNANorINF (X)) -# define FINITEF_P(X) (!IsNANorINF (X)) -# define FINITEL_P(X) (!IsNANorINF (X)) -# else -# if defined _GLIBCPP_HAVE_ISINF && defined _GLIBCPP_HAVE_ISNAN -# define FINITE_P(X) ({ double __x = (X); !isinf (__x) && !isnan (__x); }) -# else -# ifdef _GLIBCPP_HAVE_FINITE -# define FINITE_P(X) finite (X) -# else -# error "We need FINITE_P" -# endif -# endif -# if defined _GLIBCPP_HAVE_ISINFF && defined _GLIBCPP_HAVE_ISNANF -# define FINITEF_P(X) ({ float __x = (X); !isinff (__x) && !isnanf (__x); }) -# else -# ifdef _GLIBCPP_HAVE_FINITE -# define FINITEF_P(X) finite (X) -# else -# define FINITEF_P(X) FINITE_P (X) -# endif -# endif -# if defined _GLIBCPP_HAVE_ISINFL && defined _GLIBCPP_HAVE_ISNANL -# define FINITEL_P(X) ({ long double __x = (X); \ - !isinfl (__x) && !isnanl (__x); }) -# else -# ifdef _GLIBCPP_HAVE_QFINITE -# define FINITEL_P(X) qfinite (X) -# else -# define FINITEL_P(X) FINITE_P (X) -# endif -# endif -# endif -#endif - -/* Test whether number is infinite. */ -#ifdef isinf -/* This is an ISO C 9x macro. */ -# define INFINITE_P(X) isinf (X) -# define INFINITEF_P(X) isinf (X) -# define INFINITEL_P(X) isinf (X) -#else -# ifdef IsINF -/* This is for Solaris, which does not have special macros for other - types. */ -# define INFINITE_P(X) IsINF (X) -# define INFINITEF_P(X) IsINF (X) -# define INFINITEL_P(X) IsINF (X) -# else -# if defined _GLIBCPP_HAVE_ISINF -# define INFINITE_P(X) isinf (X) -# else -# ifdef _GLIBCPP_HAVE_FPCLASS -# ifdef _FPCLASS_PINF -/* Mingw defines _FPCLASS_PINF. */ -# define FP_PINF _FPCLASS_PINF -# endif -/* This is for Irix and Mingw. */ -# define INFINITE_P(X) (fpclass (fabs (X)) == FP_PINF) -# else -# ifdef IS_INF -/* This is for AIX. */ -# define INFINITE_P(X) ({ double __d = (X); IS_INF (__d); }) -# else -# error "We need INFINITE_P" -# endif -# endif -# endif -# if defined _GLIBCPP_HAVE_ISINFF -# define INFINITEF_P(X) isinff (X) -# else -# define INFINITEF_P(X) INFINITE_P (X) -# endif -# if defined _GLIBCPP_HAVE_ISINFL -# define INFINITEL_P(X) isinfl (X) -# else -# ifdef _GLIBCPP_HAVE_QFPCLASS -# define INFINITEL_P(X) (qfpclass (fabsl (X)) == FP_PINF) -# else -# define INFINITEL_P(X) INFINITE_P (X) -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef _GLIBCPP_HAVE_COMPLEX_H -# include <complex.h> -#else -# include "complex-stub.h" -#endif -__complex__ double c_log (__complex__ double x); -__complex__ float c_logf (__complex__ float x); -__complex__ long double c_logl (__complex__ long double x); - -/* signbit is a macro in ISO C 9x. */ -#ifndef signbit -extern int __signbitf (float); -extern int __signbit (double); -extern int __signbitl (long double); - -# define signbit(x) \ - (sizeof (x) == sizeof (float) ? \ - __signbitf (x) \ - : sizeof (x) == sizeof (double) ? \ - __signbit (x) : __signbitl (x)) -#endif - -#if BYTE_ORDER == BIG_ENDIAN -typedef union -{ - double value; - struct - { - U_int32_t msw; - U_int32_t lsw; - } parts; -} ieee_double_shape_type; -#endif -#if BYTE_ORDER == LITTLE_ENDIAN -typedef union -{ - double value; - struct - { - U_int32_t lsw; - U_int32_t msw; - } parts; -} ieee_double_shape_type; -#endif -/* Get the more significant 32 bit int from a double. */ -#define GET_HIGH_WORD(i,d) \ -do { \ - ieee_double_shape_type gh_u; \ - gh_u.value = (d); \ - (i) = gh_u.parts.msw; \ -} while (0) - - -typedef union -{ - float value; - U_int32_t word; -} ieee_float_shape_type; -/* Get a 32 bit int from a float. */ -#define GET_FLOAT_WORD(i,d) \ -do { \ - ieee_float_shape_type gf_u; \ - gf_u.value = (d); \ - (i) = gf_u.word; \ -} while (0) - - -#if BYTE_ORDER == BIG_ENDIAN -typedef union -{ - long double value; - struct - { - unsigned int sign_exponent:16; - unsigned int empty:16; - U_int32_t msw; - U_int32_t lsw; - } parts; -} ieee_long_double_shape_type; -#endif -#if BYTE_ORDER == LITTLE_ENDIAN -typedef union -{ - long double value; - struct - { - U_int32_t lsw; - U_int32_t msw; - unsigned int sign_exponent:16; - unsigned int empty:16; - } parts; -} ieee_long_double_shape_type; -#endif -/* Get int from the exponent of a long double. */ -#define GET_LDOUBLE_EXP(exp,d) \ -do { \ - ieee_long_double_shape_type ge_u; \ - ge_u.value = (d); \ - (exp) = ge_u.parts.sign_exponent; \ -} while (0) - -#if BYTE_ORDER == BIG_ENDIAN -typedef union -{ - long double value; - struct - { - U_int64_t msw; - U_int64_t lsw; - } parts64; - struct - { - U_int32_t w0, w1, w2, w3; - } parts32; -} ieee_quad_double_shape_type; -#endif -#if BYTE_ORDER == LITTLE_ENDIAN -typedef union -{ - long double value; - struct - { - U_int64_t lsw; - U_int64_t msw; - } parts64; - struct - { - U_int32_t w3, w2, w1, w0; - } parts32; -} ieee_quad_double_shape_type; -#endif -/* Get most significant 64 bit int from a quad long double. */ -#define GET_LDOUBLE_MSW64(msw,d) \ -do { \ - ieee_quad_double_shape_type qw_u; \ - qw_u.value = (d); \ - (ix0) = qw_u.parts64.msw; \ -} while (0) - - -/* Replacement for non-existing float functions. */ -#if !defined(_GLIBCPP_HAVE_FABSF) && !defined(_GLIBCPP_HAVE___BUILTIN_FABSF) -# define fabsf(x) fabs (x) -#endif -#if !defined(_GLIBCPP_HAVE_COSF) && !defined(_GLIBCPP_HAVE___BUILTIN_COSF) -# define cosf(x) cos (x) -#endif -#ifndef _GLIBCPP_HAVE_COSHF -# define coshf(x) cosh (x) -#endif -#ifndef _GLIBCPP_HAVE_EXPF -# define expf(x) expf (x) -#endif -#ifndef _GLIBCPP_HAVE_LOGF -# define logf(x) log(x) -#endif -#ifndef _GLIBCPP_HAVE_LOG10F -# define log10f(x) log10 (x) -#endif -#ifndef _GLIBCPP_HAVE_POWF -# define powf(x, y) pow (x, y) -#endif -#if !defined(_GLIBCPP_HAVE_SINF) && !defined(_GLIBCPP_HAVE___BUILTIN_SINF) -# define sinf(x) sin (x) -#endif -#ifndef _GLIBCPP_HAVE_SINHF -# define sinhf(x) sinh (x) -#endif -#if !defined(_GLIBCPP_HAVE_SQRTF) && !defined(_GLIBCPP_HAVE___BUILTIN_SQRTF) -# define sqrtf(x) sqrt (x) -#endif -#ifndef _GLIBCPP_HAVE_TANF -# define tanf(x) tan (x) -#endif -#ifndef _GLIBCPP_HAVE_TANHF -# define tanhf(x) tanh (x) -#endif -#ifndef _GLIBCPP_HAVE_STRTOF -# define strtof(s, e) strtod (s, e) -#endif - -#ifdef __cplusplus -} -#endif diff --git a/libstdc++-v3/math/nan.c b/libstdc++-v3/math/nan.c deleted file mode 100644 index 779173a..0000000 --- a/libstdc++-v3/math/nan.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Return quiet nan. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <stdlib.h> -#include <string.h> - -double -nan () -{ return strtod ("nan", NULL); } diff --git a/libstdc++-v3/math/signbit.c b/libstdc++-v3/math/signbit.c deleted file mode 100644 index 0d58ed8..0000000 --- a/libstdc++-v3/math/signbit.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Return nonzero value if number is negative. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -int -__signbit (double x) -{ - Int32_t hx; - - GET_HIGH_WORD (hx, x); - return hx & 0x80000000; -} diff --git a/libstdc++-v3/math/signbitf.c b/libstdc++-v3/math/signbitf.c deleted file mode 100644 index 5e2eee1..0000000 --- a/libstdc++-v3/math/signbitf.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Return nonzero value if number is negative. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - - -#include <math.h> -#include "mathconf.h" - -int -__signbitf (float x) -{ - Int32_t hx; - - GET_FLOAT_WORD (hx, x); - return hx & 0x80000000; -} diff --git a/libstdc++-v3/math/signbitl.c b/libstdc++-v3/math/signbitl.c deleted file mode 100644 index 3516f07..0000000 --- a/libstdc++-v3/math/signbitl.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Return nonzero value if number is negative. */ - -/* Copyright (C) 1997-1999 Free Software Foundation, Inc. - - This file is part of the GNU ISO C++ Library. This library is free - software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) - any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this library; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. - - As a special exception, you may use this file as part of a free software - library without restriction. Specifically, if other files instantiate - templates or use macros or inline functions from this file, or you compile - this file and link it with other files to produce an executable, this - file does not by itself cause the resulting executable to be covered by - the GNU General Public License. This exception does not however - invalidate any other reasons why the executable file might be covered by - the GNU General Public License. */ - -#include <float.h> -#include <math.h> -#include "mathconf.h" - -int -__signbitl (long double x) -{ -#if LDBL_MANT_DIG == 113 - Int64_t msw; - - GET_LDOUBLE_MSW64 (msw, x); - return msw < 0; -#else - Int32_t e; - - GET_LDOUBLE_EXP (e, x); - return e & 0x8000; -#endif -} |