This is the mail archive of the libstdc++@sourceware.cygnus.com mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: cmath and pow


Sorry it took so long to get you this info.  I have attached
powcmath.ii.gz which is what you asked for.  I have also attached the
c++config.h file if that is helpful.

On Thu, 30 Sep 1999, Benjamin Kosnik wrote:

> 
> No. Pre-process. There's a bunch of autoconf hackery in bits/std_cmath.h 
> to select between powf, pow, and a using a potential __builtin_pow or 
> whatever, depending on the host platform. The
> 
> The problem probably is probably that bits/std_cmath.h is wrong, and the 
> wrong function is being called, or the right function is being called 
> with the wrong alignment. 
> 
> So, do a 
> 
> g++ -E yourtestfile.cc -o yourtestfile.ii
> 
> And either tar/gzip it and post to this list or send to Gaby and or I. 
> Another alternative is to post the generated bits/c++config.h, and it's 
> possible to deduce the rest from the defines in bits/std_cmath.h
> 
> Thanks,
> Benjamin
> 
> 
> On Thu, 30 Sep 1999, Chris Prince wrote:
> 
> > > Then I'd like to see pow() prototype (in <math.h>)
> > 
> >   Sorry about that, the prototype is actually in __math.h and looks like
> > this...
> > __MATH_INLINE double pow (double __x, double __y);
> > __MATH_INLINE double
> > pow (double __x, double __y)
> > {
> 

Chris :)
prince@wcug.wwu.edu
===================
What is "Windows 95/98"?
32 bit extensions for a 16 bit patch to an 8 bit operating system
originally coded for a 4 bit microprocessor written by a 2 bit company
that can't stand 1 bit of competition


powcmath.ii.gz

// Predefined symbols and macros -*- C++ -*-

// Copyright (C) 1997-1999 Cygnus Solutions
//
// 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 _CPP_BIN_CPPCONFIG
#define _CPP_BIN_CPPCONFIG 1

// The current version of the C++ library in compressed ISO date format.
#define __GLIBCPP__ 19990804

// This flag controls the error handling in string, and perhaps other
// bits as time goes on: check out bits/basic_string.h for more
// info. It also helps alleviate the circular dependency between
// string and exception.
# define _GLIBCPP_USE_EXCEPTIONS 1 

// If using the namespace std, you need this. Eventually this should
// not be an option. In the meantime, and as things like std_ctype.h
// need to be hacked out, give people the option. If this is set to 1,
// CXXFLAGS should include -fhonor-std. If this is set to 0, CXXFLAGS
// should include -fno-honor-std.
//# define _GLIBCPP_USE_NAMESPACES 1 

// This is necessary until Egcs supports separate template compilation.
#define _GLIBCPP_NO_TEMPLATE_EXPORT 1

// Implies the use of the GNU libio library, and the inclusion of libio.h
#define _GLIBCPP_USE_LIBIO 1

// To enable older, ARM-style iostreams and other anachronisms use this.
//#define _GLIBCPP_DEPRICATED 1

// Implies that code specialized for wchar_t should be used.
#define _GLIBCPP_USE_WCHAR_T 1

// Implies that long long should be used.
// On __linux__ systesms, it may be necessary to define __USE_GNU
// and _GNU_SOURCE. This is required for limits.h to define
// LONG_LONG_MIN and LONG_LONG_MAX, which are used in std_limits.h if
// __STL_LONG_LONG is defined.
//#define _GLIBCPP_USE_LONG_LONG 1

// Use corrected code from the committee library group's issues list.
# define _GLIBCPP_RESOLVE_LIB_DEFECTS 1

#endif // _CPP_BIN_CPPCONFIG_







/* config.h.  Generated automatically by configure.  */
/* config.h.in.  Generated automatically from configure.in by autoheader.  */

/* Define if your processor stores words with the most significant
   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
/* #undef WORDS_BIGENDIAN */

// Define if LC_MESSAGES is available in <locale.h>.
#define HAVE_LC_MESSAGES 1

// Define if the host has a type mbstate_t defined in
// wchar.h, as required by 21.1.3.1. Some systems, namely
// hppa-hp-hpux10.20 do not meet this requirement, and must be worked
// around.
/* #undef _GLIBCPP_NEED_MBSTATE_T */

// Define if <cctype> uses the _ISBit macro to define what constitutes
// a space, punct, etc. Usually, this involved _ISspace, etc macros.
#define _GLIBCPP_USE_CTYPE_ISBIT 1

// Define if the compiler/host combination has __builtin_sinf defined.
#define _GLIBCPP_HAS_BUILTIN_SINF 1

// Define if the compiler/host combination has __builtin_cosf defined.
#define _GLIBCPP_HAS_BUILTIN_COSF 1

// Define if the compiler/host combination has __builtin_fabsf defined.
#define _GLIBCPP_HAS_BUILTIN_FABSF 1

// Define if the compiler/host combination has __builtin_fabsf defined.
#define _GLIBCPP_HAS_BUILTIN_SQRTF 1

/* Define if you have the _copysign function.  */
/* #undef HAVE__COPYSIGN */

/* Define if you have the _copysignl function.  */
/* #undef HAVE__COPYSIGNL */

/* Define if you have the _cosf function.  */
/* #undef HAVE__COSF */

/* Define if you have the _coshf function.  */
/* #undef HAVE__COSHF */

/* Define if you have the _fabsf function.  */
/* #undef HAVE__FABSF */

/* Define if you have the _finite function.  */
/* #undef HAVE__FINITE */

/* Define if you have the _fpclass function.  */
/* #undef HAVE__FPCLASS */

/* Define if you have the _isinf function.  */
/* #undef HAVE__ISINF */

/* Define if you have the _isinff function.  */
/* #undef HAVE__ISINFF */

/* Define if you have the _isinfl function.  */
/* #undef HAVE__ISINFL */

/* Define if you have the _isnan function.  */
/* #undef HAVE__ISNAN */

/* Define if you have the _isnanf function.  */
/* #undef HAVE__ISNANF */

/* Define if you have the _isnanl function.  */
/* #undef HAVE__ISNANL */

/* Define if you have the _log10f function.  */
/* #undef HAVE__LOG10F */

/* Define if you have the _logf function.  */
/* #undef HAVE__LOGF */

/* Define if you have the _modf function.  */
/* #undef HAVE__MODF */

/* Define if you have the _powf function.  */
/* #undef HAVE__POWF */

/* Define if you have the _qfinite function.  */
/* #undef HAVE__QFINITE */

/* Define if you have the _qfpclass function.  */
/* #undef HAVE__QFPCLASS */

/* Define if you have the _sincos function.  */
/* #undef HAVE__SINCOS */

/* Define if you have the _sincosf function.  */
/* #undef HAVE__SINCOSF */

/* Define if you have the _sincosl function.  */
/* #undef HAVE__SINCOSL */

/* Define if you have the _sinf function.  */
/* #undef HAVE__SINF */

/* Define if you have the _sinhf function.  */
/* #undef HAVE__SINHF */

/* Define if you have the _sqrtf function.  */
/* #undef HAVE__SQRTF */

/* Define if you have the _strtof function.  */
/* #undef HAVE__STRTOF */

/* Define if you have the _strtold function.  */
/* #undef HAVE__STRTOLD */

/* Define if you have the _tanf function.  */
/* #undef HAVE__TANF */

/* Define if you have the _tanhf function.  */
/* #undef HAVE__TANHF */

/* Define if you have the atan2f function.  */
#define HAVE_ATAN2F 1

/* Define if you have the c_log function.  */
/* #undef HAVE_C_LOG */

/* Define if you have the c_logf function.  */
/* #undef HAVE_C_LOGF */

/* Define if you have the c_logl function.  */
/* #undef HAVE_C_LOGL */

/* Define if you have the carg function.  */
/* #undef HAVE_CARG */

/* Define if you have the cargf function.  */
/* #undef HAVE_CARGF */

/* Define if you have the cargl function.  */
/* #undef HAVE_CARGL */

/* Define if you have the ccos function.  */
/* #undef HAVE_CCOS */

/* Define if you have the ccosf function.  */
/* #undef HAVE_CCOSF */

/* Define if you have the ccosh function.  */
/* #undef HAVE_CCOSH */

/* Define if you have the ccoshf function.  */
/* #undef HAVE_CCOSHF */

/* Define if you have the ccoshl function.  */
/* #undef HAVE_CCOSHL */

/* Define if you have the ccosl function.  */
/* #undef HAVE_CCOSL */

/* Define if you have the cexp function.  */
/* #undef HAVE_CEXP */

/* Define if you have the cexpf function.  */
/* #undef HAVE_CEXPF */

/* Define if you have the cexpl function.  */
/* #undef HAVE_CEXPL */

/* Define if you have the clog10 function.  */
/* #undef HAVE_CLOG10 */

/* Define if you have the clog10f function.  */
/* #undef HAVE_CLOG10F */

/* Define if you have the clog10l function.  */
/* #undef HAVE_CLOG10L */

/* Define if you have the copysign function.  */
#define HAVE_COPYSIGN 1

/* Define if you have the copysignf function.  */
#define HAVE_COPYSIGNF 1

/* Define if you have the copysignl function.  */
#define HAVE_COPYSIGNL 1

/* Define if you have the cosf function.  */
#define HAVE_COSF 1

/* Define if you have the coshf function.  */
#define HAVE_COSHF 1

/* Define if you have the cpow function.  */
/* #undef HAVE_CPOW */

/* Define if you have the cpowf function.  */
/* #undef HAVE_CPOWF */

/* Define if you have the cpowl function.  */
/* #undef HAVE_CPOWL */

/* Define if you have the csin function.  */
/* #undef HAVE_CSIN */

/* Define if you have the csinf function.  */
/* #undef HAVE_CSINF */

/* Define if you have the csinh function.  */
/* #undef HAVE_CSINH */

/* Define if you have the csinhf function.  */
/* #undef HAVE_CSINHF */

/* Define if you have the csinhl function.  */
/* #undef HAVE_CSINHL */

/* Define if you have the csinl function.  */
/* #undef HAVE_CSINL */

/* Define if you have the csqrt function.  */
/* #undef HAVE_CSQRT */

/* Define if you have the csqrtf function.  */
/* #undef HAVE_CSQRTF */

/* Define if you have the csqrtl function.  */
/* #undef HAVE_CSQRTL */

/* Define if you have the ctan function.  */
/* #undef HAVE_CTAN */

/* Define if you have the ctanf function.  */
/* #undef HAVE_CTANF */

/* Define if you have the ctanh function.  */
/* #undef HAVE_CTANH */

/* Define if you have the ctanhf function.  */
/* #undef HAVE_CTANHF */

/* Define if you have the ctanhl function.  */
/* #undef HAVE_CTANHL */

/* Define if you have the ctanl function.  */
/* #undef HAVE_CTANL */

/* Define if you have the expf function.  */
#define HAVE_EXPF 1

/* Define if you have the fabsf function.  */
#define HAVE_FABSF 1

/* Define if you have the finite function.  */
#define HAVE_FINITE 1

/* Define if you have the fpclass function.  */
/* #undef HAVE_FPCLASS */

/* Define if you have the hypot function.  */
#define HAVE_HYPOT 1

/* Define if you have the hypotf function.  */
#define HAVE_HYPOTF 1

/* Define if you have the hypotl function.  */
#define HAVE_HYPOTL 1

/* Define if you have the isinf function.  */
#define HAVE_ISINF 1

/* Define if you have the isinff function.  */
#define HAVE_ISINFF 1

/* Define if you have the isinfl function.  */
#define HAVE_ISINFL 1

/* Define if you have the isnan function.  */
#define HAVE_ISNAN 1

/* Define if you have the isnanf function.  */
#define HAVE_ISNANF 1

/* Define if you have the isnanl function.  */
#define HAVE_ISNANL 1

/* Define if you have the log10f function.  */
#define HAVE_LOG10F 1

/* Define if you have the logf function.  */
#define HAVE_LOGF 1

/* Define if you have the modf function.  */
#define HAVE_MODF 1

/* Define if you have the nan function.  */
/* #undef HAVE_NAN */

/* Define if you have the powf function.  */
#define HAVE_POWF 1

/* Define if you have the qfinite function.  */
/* #undef HAVE_QFINITE */

/* Define if you have the qfpclass function.  */
/* #undef HAVE_QFPCLASS */

/* Define if you have the signbitl function.  */
/* #undef HAVE_SIGNBITL */

/* Define if you have the sincos function.  */
/* #undef HAVE_SINCOS */

/* Define if you have the sincosf function.  */
/* #undef HAVE_SINCOSF */

/* Define if you have the sincosl function.  */
/* #undef HAVE_SINCOSL */

/* Define if you have the sinf function.  */
#define HAVE_SINF 1

/* Define if you have the sinhf function.  */
#define HAVE_SINHF 1

/* Define if you have the sqrtf function.  */
#define HAVE_SQRTF 1

/* Define if you have the strtof function.  */
#define HAVE_STRTOF 1

/* Define if you have the strtold function.  */
#define HAVE_STRTOLD 1

/* Define if you have the tanf function.  */
#define HAVE_TANF 1

/* Define if you have the tanhf function.  */
#define HAVE_TANHF 1

/* Define if you have the wcslen function.  */
#define HAVE_WCSLEN 1

/* Define if you have the wmemchr function.  */
#define HAVE_WMEMCHR 1

/* Define if you have the wmemcmp function.  */
#define HAVE_WMEMCMP 1

/* Define if you have the wmemcpy function.  */
#define HAVE_WMEMCPY 1

/* Define if you have the wmemmove function.  */
#define HAVE_WMEMMOVE 1

/* Define if you have the wmemset function.  */
#define HAVE_WMEMSET 1

/* Define if you have the <endian.h> header file.  */
#define HAVE_ENDIAN_H 1

/* Define if you have the <float.h> header file.  */
#define HAVE_FLOAT_H 1

/* Define if you have the <fp.h> header file.  */
/* #undef HAVE_FP_H */

/* Define if you have the <ieeefp.h> header file.  */
/* #undef HAVE_IEEEFP_H */

/* Define if you have the <locale.h> header file.  */
#define HAVE_LOCALE_H 1

/* Define if you have the <machine/endian.h> header file.  */
/* #undef HAVE_MACHINE_ENDIAN_H */

/* Define if you have the <machine/param.h> header file.  */
/* #undef HAVE_MACHINE_PARAM_H */

/* Define if you have the <nan.h> header file.  */
#define HAVE_NAN_H 1

/* Define if you have the <sys/isa_defs.h> header file.  */
/* #undef HAVE_SYS_ISA_DEFS_H */

/* Define if you have the <sys/machine.h> header file.  */
/* #undef HAVE_SYS_MACHINE_H */

/* Name of package */
#define PACKAGE "libstdc++"

/* Version number of package */
#define VERSION "2.90.5"

//
// Systems that have certain non-standard functions prefixed with an
// underscore, we'll handle those here. Must come after config.h.in.
//

#if defined (HAVE__ISNAN) && ! defined (HAVE_ISNAN)
# define HAVE_ISNAN 1
# define isnan _isnan
#endif

#if defined (HAVE__ISNANF) && ! defined (HAVE_ISNANF)
# define HAVE_ISNANF 1
# define isnanf _isnanf
#endif

#if defined (HAVE__ISNANL) && ! defined (HAVE_ISNANL)
# define HAVE_ISNANL 1
# define isnanl _isnanl
#endif

#if defined (HAVE__ISINF) && ! defined (HAVE_ISINF)
# define HAVE_ISINF 1
# define isinf _isinf
#endif

#if defined (HAVE__ISINFF) && ! defined (HAVE_ISINFF)
# define HAVE_ISINFF 1
# define isinff _isinff
#endif

#if defined (HAVE__ISINFL) && ! defined (HAVE_ISINFL)
# define HAVE_ISINFL 1
# define isinfl _isinfl
#endif

#if defined (HAVE__COPYSIGN) && ! defined (HAVE_COPYSIGN)
# define HAVE_COPYSIGN 1
# define copysign _copysign
#endif

#if defined (HAVE__COPYSIGNL) && ! defined (HAVE_COPYSIGNL)
# define HAVE_COPYSIGNL 1
# define copysignl _copysignl
#endif

#if defined (HAVE__COSF) && ! defined (HAVE_COSF)
# define HAVE_COSF 1
# define cosf _cosf
#endif

#if defined (HAVE__COSHF) && ! defined (HAVE_COSHF)
# define HAVE_COSHF 1
# define coshf _coshf
#endif

#if defined (HAVE__LOGF) && ! defined (HAVE_LOGF)
# define HAVE_LOGF 1
# define logf _logf
#endif

#if defined (HAVE__LOG10F) && ! defined (HAVE_LOG10F)
# define HAVE_LOG10F 1
# define log10f _log10f
#endif

#if defined (HAVE__POWF) && ! defined (HAVE_POWF)
# define HAVE_POWF 1
# define powf _powf
#endif

#if defined (HAVE__SINF) && ! defined (HAVE_SINF)
# define HAVE_SINF 1
# define sinf _sinf
#endif

#if defined (HAVE__SINHF) && ! defined (HAVE_SINHF)
# define HAVE_SINHF 1
# define sinhf _sinhf
#endif

#if defined (HAVE__SQRTF) && ! defined (HAVE_SQRTF)
# define HAVE_SQRTF 1
# define sqrtf _sqrtf
#endif

#if defined (HAVE__TANF) && ! defined (HAVE_TANF)
# define HAVE_TANF 1
# define tanf _tanf
#endif

#if defined (HAVE__TANHF) && ! defined (HAVE_TANHF)
# define HAVE_TANHF 1
# define tanhf _tanhf
#endif

#if defined (HAVE__STRTOF) && ! defined (HAVE_STRTOF)
# define HAVE_STRTOF 1
# define strtof _strtof
#endif

#if defined (HAVE__STRTOLD) && ! defined (HAVE_STRTOLD)
# define HAVE_STRTOLD 1
# define strtold _strtold
#endif

#if defined (HAVE__FABSF) && ! defined (HAVE_FABSF)
# define HAVE_FABSF 1
# define fabsf _fabsf
#endif

#if defined (HAVE__SINCOS) && ! defined (HAVE_SINCOS)
# define HAVE_SINCOS 1
# define sincos _sincos
#endif

#if defined (HAVE__SINCOSF) && ! defined (HAVE_SINCOSF)
# define HAVE_SINCOSF 1
# define sincosf _sincosf
#endif

#if defined (HAVE__SINCOSL) && ! defined (HAVE_SINCOSL)
# define HAVE_SINCOSL 1
# define sincosl _sincosl
#endif

#if defined (HAVE__FINITE) && ! defined (HAVE_FINITE)
# define HAVE_FINITE 1
# define finite _finite
#endif

#if defined (HAVE__QFINITE) && ! defined (HAVE_QFINITE)
# define HAVE_QFINITE 1
# define qfinite _qfinite
#endif

#if defined (HAVE__FPCLASS) && ! defined (HAVE_FPCLASS)
# define HAVE_FPCLASS 1
# define fpclass _fpclass
#endif

#if defined (HAVE__QFPCLASS) && ! defined (HAVE_QFPCLASS)
# define HAVE_QFPCLASS 1
# define qfpclass _qfpclass
#endif


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]