31#define todigit(x) ((x)+'0')
33#if defined (_STLP_UNIX)
36# include <floatingpoint.h>
39# if defined (__sun) || defined (__digital__) || defined (__sgi) || defined (_STLP_SCO_OPENSERVER) || defined (__NCR_SVR)
45# if defined (__QNXNTO__) || ( defined(__GNUC__) && defined(__APPLE__) ) || defined(_STLP_USE_UCLIBC) || \
47# define USE_SPRINTF_INSTEAD
61#if defined (_STLP_MSVC_LIB) || defined (__MINGW32__) || defined (__BORLANDC__) || defined (__DJGPP) || \
62 defined (_STLP_SCO_OPENSERVER) || defined (__NCR_SVR)
66#if defined (__MRC__) || defined (__SC__) || defined (_CRAY)
70#if defined (__CYGWIN__)
81#if defined (__ISCPP__)
88# define snprintf _snprintf
95#if defined (__MWERKS__) || defined(__BEOS__)
96# define USE_SPRINTF_INSTEAD
111#ifdef _STLP_NO_LONG_DOUBLE
112# define MAXEDIGITS int(_Dig<DBL_MAX_10_EXP>::dig)
113# define MAXFSIG DBL_DIG
114# define MAXFCVT (DBL_DIG + 1)
116# define MAXEDIGITS int(_Dig<LDBL_MAX_10_EXP>::dig)
117# define MAXFSIG LDBL_DIG
118# define MAXFCVT (LDBL_DIG + 1)
123#if !defined (USE_SPRINTF_INSTEAD)
124# if defined (__hpux) && defined (__GNUC__)
125# define _STLP_USE_SIGN_HELPER
126# elif defined (__DJGPP) || (defined (_STLP_USE_GLIBC) && ! defined (__MSL__)) || \
127 defined (__CYGWIN__) || \
128 defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || \
130static inline bool _Stl_is_nan_or_inf(
double x)
131# if defined (isfinite)
134{
return !finite(
x); }
136static inline bool _Stl_is_neg_nan(
double x) {
return isnan(
x) && (
copysign(1.,
x) < 0 ); }
137static inline bool _Stl_is_inf(
double x) {
return isinf(
x); }
139static inline bool _Stl_is_neg_inf(
double x) {
return isinf(
x) &&
x < 0; }
140# elif (defined (__unix) || defined (__unix__)) && \
141 !defined (__APPLE__) && !defined (__DJGPP) && !defined(__osf__) && \
143static inline bool _Stl_is_nan_or_inf(
double x) {
return IsNANorINF(
x); }
144static inline bool _Stl_is_inf(
double x) {
return IsNANorINF(
x) && IsINF(
x); }
145static inline bool _Stl_is_neg_inf(
double x) {
return (IsINF(
x)) && (
x < 0.0); }
146static inline bool _Stl_is_neg_nan(
double x) {
return IsNegNAN(
x); }
147# elif defined (_STLP_MSVC_LIB) || defined (__MINGW32__) || defined (__BORLANDC__)
148static inline bool _Stl_is_nan_or_inf(
double x) {
return !
_finite(
x); }
149# if !defined (__BORLANDC__)
150static inline bool _Stl_is_inf(
double x) {
156static inline bool _Stl_is_inf(
double x) {
return _Stl_is_nan_or_inf(
x) && !
_isnan(
x);}
157static inline bool _Stl_is_neg_inf(
double x) {
return _Stl_is_inf(
x) &&
x < 0 ; }
159static inline bool _Stl_is_neg_nan(
double x) {
return _isnan(
x) &&
_copysign(1.,
x) < 0 ; }
160# if defined (__BORLANDC__)
161static inline bool _Stl_is_nan_or_inf(
long double x) {
return !_finitel(
x); }
162static inline bool _Stl_is_inf(
long double x) {
return _Stl_is_nan_or_inf(
x) && !
_isnanl(
x);}
163static inline bool _Stl_is_neg_inf(
long double x) {
return _Stl_is_inf(
x) &&
x < 0 ; }
164static inline bool _Stl_is_neg_nan(
long double x) {
return _isnanl(
x) &&
_copysignl(1.l,
x) < 0 ; }
165# elif !defined (_STLP_NO_LONG_DOUBLE)
167static inline bool _Stl_is_nan_or_inf(
long double x) {
return _Stl_is_nan_or_inf(
__STATIC_CAST(
double,
x)); }
168static inline bool _Stl_is_inf(
long double x) {
return _Stl_is_inf(
__STATIC_CAST(
double,
x));}
169static inline bool _Stl_is_neg_inf(
long double x) {
return _Stl_is_neg_inf(
__STATIC_CAST(
double,
x)); }
170static inline bool _Stl_is_neg_nan(
long double x) {
return _Stl_is_neg_nan(
__STATIC_CAST(
double,
x)); }
172# elif defined (__MRC__) || defined (__SC__) || defined (__DMC__)
173static bool _Stl_is_nan_or_inf(
double x) {
return isnan(
x) || !
isfinite(
x); }
174static bool _Stl_is_inf(
double x) {
return !
isfinite(
x); }
176static bool _Stl_is_neg_nan(
double x) {
return isnan(
x) &&
signbit(
x); }
177# elif (defined(__GNUC__) && defined(__APPLE__))
178static inline bool _Stl_is_nan_or_inf(
double x) {
return !finite(
x); }
179static inline bool _Stl_is_inf(
double x) {
return _Stl_is_nan_or_inf(
x) && !
isnan(
x); }
180static inline bool _Stl_is_neg_inf(
double x) {
return _Stl_is_inf(
x) &&
x < 0 ; }
181static inline bool _Stl_is_neg_nan(
double x) {
return isnan(
x) &&
copysign(1.,
x) < 0 ; }
182# elif defined( _AIX )
183static bool _Stl_is_nan_or_inf(
double x) {
return isnan(
x) || !finite(
x); }
184static bool _Stl_is_inf(
double x) {
return !finite(
x); }
186static bool _Stl_is_neg_inf(
double x) {
return _Stl_is_inf(
x) && (
copysign(1.,
x) < 0 ); }
187static bool _Stl_is_neg_nan(
double x) {
return isnan(
x) && (
copysign(1.,
x) < 0 ); }
188# elif defined (__ISCPP__)
189static inline bool _Stl_is_nan_or_inf (
double x) {
return _fp_isINF(
x) || _fp_isNAN(
x); }
190static inline bool _Stl_is_inf (
double x) {
return _fp_isINF(
x); }
191static inline bool _Stl_is_neg_inf (
double x) {
return _fp_isINF(
x) &&
x < 0; }
192static inline bool _Stl_is_neg_nan (
double x) {
return _fp_isNAN(
x) &&
x < 0; }
193# elif defined (_CRAY)
194# if defined (_CRAYIEEE)
195static inline bool _Stl_is_nan_or_inf(
double x) {
return isnan(
x) ||
isinf(
x); }
196static inline bool _Stl_is_inf(
double x) {
return isinf(
x); }
197static inline bool _Stl_is_neg_inf(
double x) {
return isinf(
x) &&
signbit(
x); }
198static inline bool _Stl_is_neg_nan(
double x) {
return isnan(
x) &&
signbit(
x); }
200static inline bool _Stl_is_nan_or_inf(
double x) {
return false; }
201static inline bool _Stl_is_inf(
double x) {
return false; }
202static inline bool _Stl_is_neg_inf(
double x) {
return false; }
203static inline bool _Stl_is_neg_nan(
double x) {
return false; }
206# define USE_SPRINTF_INSTEAD
210#if !defined (USE_SPRINTF_INSTEAD)
215# if defined (__CYGWIN__) || defined(__DJGPP)
216static inline char* _Stl_ecvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf)
218static inline char* _Stl_fcvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf)
220# if !defined (_STLP_NO_LONG_DOUBLE)
221# if defined (__CYGWIN__)
222# define _STLP_EMULATE_LONG_DOUBLE_CVT
224static inline char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf)
226static inline char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf)
230# elif defined (_STLP_USE_GLIBC)
231static inline char* _Stl_ecvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf,
size_t bsize)
233static inline char* _Stl_fcvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf,
size_t bsize)
235# ifndef _STLP_NO_LONG_DOUBLE
236static inline char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf,
size_t bsize)
238static inline char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf,
size_t bsize)
241# define _STLP_NEED_CVT_BUFFER_SIZE
242# elif defined (__sun)
243static inline char* _Stl_ecvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf)
245static inline char* _Stl_fcvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf)
247# ifndef _STLP_NO_LONG_DOUBLE
248static inline char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf)
250static inline char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf)
253# elif defined (__DECCXX)
254static inline char* _Stl_ecvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf,
size_t bsize)
256static inline char* _Stl_fcvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf,
size_t bsize)
258# ifndef _STLP_NO_LONG_DOUBLE
260static inline char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf,
size_t bsize)
261{
return (ecvt_r((
double)
x,
n,
pt,
sign,
buf, bsize) == 0 ?
buf : 0) ; }
262static inline char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf,
size_t bsize)
263{
return (fcvt_r((
double)
x,
n,
pt,
sign,
buf, bsize) == 0 ?
buf : 0); }
265# define _STLP_NEED_CVT_BUFFER_SIZE
266# elif defined (__hpux)
267static inline char* _Stl_ecvtR(
double x,
int n,
int*
pt,
int*
sign)
269static inline char* _Stl_fcvtR(
double x,
int n,
int*
pt,
int*
sign)
271# if !defined (_STLP_NO_LONG_DOUBLE)
272static inline char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign)
273{
return _ldecvt(*(long_double*)&
x,
n,
pt,
sign); }
274static inline char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign)
275{
return _ldfcvt(*(long_double*)&
x,
n,
pt,
sign); }
277# define _STLP_CVT_NEED_SYNCHRONIZATION
278# elif defined (__unix) && !defined (__APPLE__) && !defined (_CRAY)
279static inline char* _Stl_ecvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf)
281static inline char* _Stl_fcvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf)
283# if !defined (_STLP_NO_LONG_DOUBLE)
284static inline char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf)
286static inline char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf)
289# elif defined (_STLP_MSVC_LIB) || defined (__MINGW32__) || defined (__BORLANDC__)
290# if defined (_STLP_USE_SAFE_STRING_FUNCTIONS)
291# define _STLP_APPEND(a, b) a##b
292# define _STLP_BUF_PARAMS , char* buf, size_t bsize
293# define _STLP_SECURE_FUN(F, X, N, PT, SIGN) _STLP_APPEND(F, _s)(buf, bsize, X, N, PT, SIGN); return buf
295# define _STLP_BUF_PARAMS
296# define _STLP_SECURE_FUN(F, X, N, PT, SIGN) return F(X, N, PT, SIGN)
297# define _STLP_CVT_NEED_SYNCHRONIZATION
299static inline char* _Stl_ecvtR(
double x,
int n,
int*
pt,
int*
sign _STLP_BUF_PARAMS)
301static inline char* _Stl_fcvtR(
double x,
int n,
int*
pt,
int*
sign _STLP_BUF_PARAMS)
303# if !defined (_STLP_NO_LONG_DOUBLE)
304# if defined (_STLP_USE_SAFE_STRING_FUNCTIONS)
305# define _STLP_PARAMS , buf, bsize
309static inline char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign _STLP_BUF_PARAMS)
311static inline char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign _STLP_BUF_PARAMS)
315# undef _STLP_SECURE_FUN
316# undef _STLP_BUF_PARAMS
318# if defined (__BORLANDC__)
319# define _STLP_EMULATE_LONG_DOUBLE_CVT
321# elif defined (__ISCPP__)
322static inline char* _Stl_ecvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf)
324static inline char* _Stl_fcvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf)
326# if !defined (_STLP_NO_LONG_DOUBLE)
327static inline char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf)
329static inline char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf)
332# elif defined (_AIX) || defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || \
333 defined (__MRC__) || defined (__SC__) || defined (_CRAY) || \
334 defined (_STLP_SCO_OPENSERVER) || defined (__NCR_SVR) || \
336static inline char* _Stl_ecvtR(
double x,
int n,
int*
pt,
int*
sign)
338static inline char* _Stl_fcvtR(
double x,
int n,
int*
pt,
int*
sign)
340# if !defined (_STLP_NO_LONG_DOUBLE)
341static inline char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign)
343static inline char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign)
346# define _STLP_CVT_NEED_SYNCHRONIZATION
348# error Missing _Stl_ecvtR and _Stl_fcvtR implementations.
351#if defined (_STLP_CVT_NEED_SYNCHRONIZATION)
354# if defined (_STLP_THREADS)
357 return __put_float_mutex;
359static inline char* _Stl_ecvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf) {
363static inline char* _Stl_fcvtR(
double x,
int n,
int*
pt,
int*
sign,
char*
buf) {
367# if !defined (_STLP_NO_LONG_DOUBLE) && !defined (_STLP_EMULATE_LONG_DOUBLE_CVT)
368static inline char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf) {
372static inline char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf) {
378static inline char* _Stl_ecvtR(
double x,
int n,
int*
pt,
int*
sign,
char*)
379{
return _Stl_ecvtR(
x,
n,
pt,
sign); }
380static inline char* _Stl_fcvtR(
double x,
int n,
int*
pt,
int*
sign,
char*)
381{
return _Stl_fcvtR(
x,
n,
pt,
sign); }
382# if !defined (_STLP_NO_LONG_DOUBLE) && !defined (_STLP_EMULATE_LONG_DOUBLE_CVT)
383static inline char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*)
384{
return _Stl_ecvtR(
x,
n,
pt,
sign); }
385static inline char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*)
386{
return _Stl_fcvtR(
x,
n,
pt,
sign); }
391# if !defined (_STLP_USE_SAFE_STRING_FUNCTIONS) && !defined (_STLP_NEED_CVT_BUFFER_SIZE)
392# define _STLP_CVT_BUFFER(B) B
394# define _STLP_CVT_BUFFER(B) _STLP_ARRAY_AND_SIZE(B)
397# if defined (_STLP_EMULATE_LONG_DOUBLE_CVT)
401static char* _Stl_ecvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf) {
416 while (
buf[++
i] != 0 &&
n != 0) {
417 if (
buf[
i] >=
'0' &&
buf[
i] <=
'9') {
432 while (
buf[++
i] != 0) {
433 if (
buf[
i] >=
'0' &&
buf[
i] <=
'9') {
434 e =
e * 10 + (
buf[
i] -
'0');
441static char* _Stl_fcvtR(
long double x,
int n,
int*
pt,
int*
sign,
char*
buf) {
456 if (
buf[
i] >=
'0' &&
buf[
i] <=
'9') {
486static size_t __format_float_scientific(
__iostring&
buf,
const char *bp,
493 else if (
flags & ios_base::showpos)
502 size_t __group_pos =
buf.size();
526 for (; nn > 9; nn /= 10)
527 *--suffix = (
char)
todigit(nn % 10);
539 *--suffix = (
char) ((
decpt > 0 || is_zero ) ?
'+' :
'-');
542 *--suffix =
flags & ios_base::uppercase ?
'E' :
'e';
549static size_t __format_float_fixed(
__iostring &
buf,
const char *bp,
555 else if (
flags & ios_base::showpos )
561 buf += (nnn <= 0 || *bp == 0) ?
'0' : *bp++;
562 }
while ( --nnn > 0 );
565 size_t __group_pos =
buf.size();
574 buf += (++
decpt <= 0) ?
'0' : *bp++;
584#if defined (_STLP_USE_SIGN_HELPER)
585template<
class _FloatT>
586struct float_sign_helper {
587 float_sign_helper(_FloatT __x)
588 { _M_number._num = __x; }
590 bool is_negative()
const {
591 const unsigned short sign_mask(1 << (
sizeof(
unsigned short) *
CHAR_BIT - 1));
592 return (get_sign_word() & sign_mask) != 0;
596 unsigned short _Words[8];
601 {
return _M_number._Words[0]; }
603 {
return _M_number._Words[(
sizeof(_FloatT) >= 12 ? 10 :
sizeof(_FloatT)) /
sizeof(
unsigned short) - 1]; }
605# if defined (_STLP_BIG_ENDIAN)
606 {
return get_word_higher(); }
608 {
return get_word_lower(); }
613template <
class _FloatT>
615 static const char* inf[2] = {
"inf",
"Inf" };
616 static const char*
nan[2] = {
"nan",
"NaN" };
617 const char** inf_or_nan;
618#if !defined (_STLP_USE_SIGN_HELPER)
619 if (_Stl_is_inf(
x)) {
621 if (_Stl_is_neg_inf(
x))
623 else if (
flags & ios_base::showpos)
627 if (_Stl_is_neg_nan(
x))
629 else if (
flags & ios_base::showpos)
634 if (
x == limits::infinity() ||
x == -limits::infinity()) {
639 float_sign_helper<_FloatT> helper(
x);
640 if (helper.is_negative())
642 else if (
flags & ios_base::showpos)
646 buf += inf_or_nan[
flags & ios_base::uppercase ? 1 : 0];
650static inline size_t __format_float(
__iostring &
buf,
const char * bp,
654 size_t __group_pos = 0;
655 switch (
flags & ios_base::floatfield) {
656 case ios_base::scientific:
657 __group_pos = __format_float_scientific(
buf, bp,
decpt,
sign, is_zero,
660 case ios_base::fixed:
661 __group_pos = __format_float_fixed(
buf, bp,
decpt,
sign,
676 if (!(
flags & ios_base::showpoint)) {
680 while (kk >= 1 && bp[kk-1] ==
'0')
686 __group_pos = __format_float_scientific(
buf, bp,
decpt,
sign, is_zero,
690 __group_pos = __format_float_fixed(
buf, bp,
decpt,
sign,
700#if defined (USE_SPRINTF_INSTEAD) || defined (_STLP_EMULATE_LONG_DOUBLE_CVT)
713 if (
flags & ios_base::showpos)
716 if (
flags & ios_base::showpoint)
723 fmtbuf[
i++] = long_modifier;
725 switch (
flags & ios_base::floatfield)
727 case ios_base::scientific:
728 fmtbuf[
i++] = (
flags & ios_base::uppercase) ?
'E' :
'e';
730 case ios_base::fixed:
731# if defined (__FreeBSD__)
734 fmtbuf[
i++] = (
flags & ios_base::uppercase) ?
'F' :
'f';
738 fmtbuf[
i++] = (
flags & ios_base::uppercase) ?
'G' :
'g';
747template <
class _FloatT>
757 char static_buf[limits::max_exponent10 + 6];
767 if (limits::has_infinity && limits::has_quiet_NaN) {
769 (
x == limits::infinity() ||
x == -limits::infinity())) {
770 return __format_nan_or_inf(
buf,
x,
flags);
775 else if (_Stl_is_nan_or_inf(
x)) {
776 return __format_nan_or_inf(
buf,
x,
flags);
778# if defined (__MINGW32__)
782 return __format_nan_or_inf(
buf,
x,
flags);
791 char cvtbuf[limits::max_exponent10 + limits::digits10 + 2 + 1];
795 switch (
flags & ios_base::floatfield) {
796 case ios_base::fixed:
803 int digits10 = (
x > -1.0 &&
x < 1.0 ? -limits::min_exponent10 + limits::digits10 + 2
804 : limits::digits10 + 2);
808 case ios_base::scientific:
812 int digits10 = limits::digits10 + 2;
831#if !defined (_STLP_NO_LONG_DOUBLE)
845#if defined (USE_SPRINTF_INSTEAD)
846 char cvtbuf[limits::max_exponent10 + 6];
847# if !defined (_STLP_NO_LONG_DOUBLE)
852 char *
p =
strchr( cvtbuf,
'.' );
854 out.append( cvtbuf );
856 out.append( cvtbuf,
p );
859 char cvtbuf[limits::max_exponent10 + 1];
862 bp = _Stl_fcvtR(__x, 0, &
decpt, &
sign, _STLP_CVT_BUFFER(cvtbuf));
872#if !defined (_STLP_NO_WCHAR_T)
875 string::const_iterator str_ite(
str.begin()), str_end(
str.end());
879 while (str_ite != str_end) {
880 if (*str_ite !=
'.') {
881 out += ct.widen(*str_ite++);
888 if (str_ite != str_end) {
889 out += ct.widen(*str_ite);
893 if (str_ite != str_end) {
895 while (++str_ite != str_end) {
896 out += ct.widen(*str_ite);
906 size_t __dot_pos =
str.find(
'.');
907 if (__dot_pos != string::npos) {
908 str[__dot_pos] = dot;
_STLP_MOVE_TO_STD_NAMESPACE _InputIter find_if(_InputIter __first, _InputIter __last, _Predicate __pred)
#define _STLP_MUTEX_INITIALIZER
ACPI_SIZE strlen(const char *String)
char * strcpy(char *DstString, const char *SrcString)
char * strchr(const char *String, int ch)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
char * fcvtbuf(double, int, int *, int *, char *)
#define _STLP_TEMPLATE_NULL
#define _STLP_ARRAY_AND_SIZE(A)
#define _STLP_MOVE_TO_STD_NAMESPACE
#define _STLP_STATIC_MUTEX
#define __STATIC_CAST(__x, __y)
#define _STLP_LONGEST_FLOAT_TYPE
#define _STLP_BEGIN_NAMESPACE
#define _STLP_END_NAMESPACE
#define _STLP_MOVE_TO_PRIV_NAMESPACE
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLint GLint * precision
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_Check_return_ __MINGW_NOTHROW _CRTIMP int __cdecl _fpclass(_In_ double)
_Check_return_ __MINGW_NOTHROW _CRTIMP int __cdecl _isnan(_In_ double)
_Check_return_ __MINGW_NOTHROW _CRTIMP int __cdecl _finite(_In_ double)
_Check_return_ __MINGW_NOTHROW _CRTIMP double __cdecl _copysign(_In_ double, _In_ double)
_Check_return_ __CRT_INLINE long double _copysignl(_In_ long double number, _In_ long double sign)
_Check_return_ _CRTIMP char *__cdecl fcvt(_In_ double _Val, _In_ int _NumOfDec, _Out_ int *_PtDec, _Out_ int *_PtSign)
_Check_return_ _CRTIMP char *__cdecl _ecvt(_In_ double _Val, _In_ int _NumOfDigits, _Out_ int *_PtDec, _Out_ int *_PtSign)
_Check_return_ _CRTIMP char *__cdecl _fcvt(_In_ double _Val, _In_ int _NumOfDec, _Out_ int *_PtDec, _Out_ int *_PtSign)
_Check_return_ _CRTIMP char *__cdecl ecvt(_In_ double _Val, _In_ int _NumOfDigits, _Out_ int *_PtDec, _Out_ int *_PtSign)
double __cdecl nan(const char *tagp)
double __cdecl copysign(double, double)
#define sprintf(buf, format,...)
static size_t double int int * decpt
size_t _STLP_CALL __write_float(__iostring &buf, ios_base::fmtflags flags, int precision, double x)
#define USE_SPRINTF_INSTEAD
static void __fill_fmtbuf(char *fmtbuf, ios_base::fmtflags flags, char long_modifier)
void _STLP_CALL __adjust_float_buffer(__iostring &str, char dot)
static size_t __write_floatT(__iostring &buf, ios_base::fmtflags flags, int precision, _FloatT x, char modifier)
void _STLP_CALL __get_floor_digits(__iostring &out, _STLP_LONGEST_FLOAT_TYPE __x)
void _STLP_CALL __convert_float_buffer(__iostring const &str, __iowstring &out, const ctype< wchar_t > &ct, wchar_t dot, bool __check_dot)
bool operator()(char __c) const