00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef PUTIL_H
00025
#define PUTIL_H
00026
00027
#include "unicode/utypes.h"
00028
00029
00030
00031
#ifndef IEEE_754
00032
# define IEEE_754 1
00033
#endif
00034
00035
00036
00037
00038
00049
U_CAPI UBool U_EXPORT2 uprv_isNaN(
double d);
00054
U_CAPI UBool U_EXPORT2 uprv_isInfinite(
double d);
00059
U_CAPI UBool U_EXPORT2 uprv_isPositiveInfinity(
double d);
00064
U_CAPI UBool U_EXPORT2 uprv_isNegativeInfinity(
double d);
00069
U_CAPI double U_EXPORT2 uprv_getNaN(
void);
00074
U_CAPI double U_EXPORT2 uprv_getInfinity(
void);
00075
00080
U_CAPI double U_EXPORT2 uprv_trunc(
double d);
00085
U_CAPI double U_EXPORT2 uprv_floor(
double d);
00090
U_CAPI double U_EXPORT2 uprv_ceil(
double d);
00095
U_CAPI double U_EXPORT2 uprv_fabs(
double d);
00100
U_CAPI double U_EXPORT2 uprv_modf(
double d,
double* pinteger);
00105
U_CAPI double U_EXPORT2 uprv_fmod(
double d,
double y);
00110
U_CAPI double U_EXPORT2 uprv_pow(
double d,
double exponent);
00115
U_CAPI double U_EXPORT2 uprv_pow10(int32_t exponent);
00120
U_CAPI double U_EXPORT2 uprv_fmax(
double d,
double y);
00125
U_CAPI double U_EXPORT2 uprv_fmin(
double d,
double y);
00130
U_CAPI int32_t U_EXPORT2 uprv_max(int32_t d, int32_t y);
00135
U_CAPI int32_t U_EXPORT2 uprv_min(int32_t d, int32_t y);
00136
00137
#if U_IS_BIG_ENDIAN
00138
# define uprv_isNegative(number) (*((signed char *)&(number))<0)
00139
#else
00140
# define uprv_isNegative(number) (*((signed char *)&(number)+sizeof(number)-1)<0)
00141
#endif
00142
00148
U_CAPI double U_EXPORT2 uprv_maxMantissa(
void);
00149
00161
U_CAPI int16_t U_EXPORT2 uprv_log10(
double d);
00162
00167
U_CAPI double U_EXPORT2 uprv_log(
double d);
00168
00175
U_CAPI double U_EXPORT2 uprv_round(
double x);
00176
00184
U_CAPI int32_t U_EXPORT2 uprv_digitsAfterDecimal(
double x);
00185
00218
U_CAPI void U_EXPORT2 uprv_tzset(
void);
00219
00226
U_CAPI int32_t U_EXPORT2 uprv_timezone(
void);
00227
00236
U_CAPI char* U_EXPORT2 uprv_tzname(
int n);
00237
00243
U_CAPI int32_t U_EXPORT2 uprv_getUTCtime(
void);
00244
00265
U_CAPI const char* U_EXPORT2 u_getDataDirectory(
void);
00266
00286
U_CAPI void U_EXPORT2 u_setDataDirectory(
const char *directory);
00287
00296
U_CAPI const char* U_EXPORT2 uprv_getDefaultCodepage(
void);
00297
00307
U_CAPI const char* U_EXPORT2 uprv_getDefaultLocaleID(
void);
00308
00314
#ifdef XP_MAC
00315
# define U_FILE_SEP_CHAR ':'
00316
# define U_FILE_ALT_SEP_CHAR ':'
00317
# define U_PATH_SEP_CHAR ';'
00318
# define U_FILE_SEP_STRING ":"
00319
# define U_FILE_ALT_SEP_STRING ":"
00320
# define U_PATH_SEP_STRING ";"
00321
#elif defined(WIN32) || defined(OS2)
00322
# define U_FILE_SEP_CHAR '\\'
00323
# define U_FILE_ALT_SEP_CHAR '/'
00324
# define U_PATH_SEP_CHAR ';'
00325
# define U_FILE_SEP_STRING "\\"
00326
# define U_FILE_ALT_SEP_STRING "/"
00327
# define U_PATH_SEP_STRING ";"
00328
#else
00329
# define U_FILE_SEP_CHAR '/'
00330
# define U_FILE_ALT_SEP_CHAR '/'
00331
# define U_PATH_SEP_CHAR ':'
00332
# define U_FILE_SEP_STRING "/"
00333
# define U_FILE_ALT_SEP_STRING "/"
00334
# define U_PATH_SEP_STRING ":"
00335
#endif
00336
00353
U_CAPI void U_EXPORT2
00354 u_charsToUChars(
const char *cs, UChar *us, int32_t length);
00355
00373
U_CAPI void U_EXPORT2
00374 u_UCharsToChars(
const UChar *us,
char *cs, int32_t length);
00375
00386
U_CAPI UBool U_EXPORT2
00387 uprv_isInvariantString(
const char *s, int32_t length);
00388
00399
U_CAPI UBool U_EXPORT2
00400 uprv_isInvariantUString(
const UChar *s, int32_t length);
00401
00407
#if U_CHARSET_FAMILY==U_ASCII_FAMILY
00408
# define U_UPPER_ORDINAL(x) ((x)-'A')
00409
#elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY
00410
# define U_UPPER_ORDINAL(x) (((x) < 'J') ? ((x)-'A') : \
00411
(((x) < 'S') ? ((x)-'J'+9) : \
00412
((x)-'S'+18)))
00413
#else
00414
# error Unknown charset family!
00415
#endif
00416
00431
#ifndef U_MAX_PTR
00432
# ifdef OS390
00433
# define U_MAX_PTR(base) ((void *)0x7fffffff)
00434
# elif defined(OS400)
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447
# define U_MAX_PTR(base) ((void *)(((char *)base)-((int32_t)(base))+((int32_t)0xffefff)))
00448
# else
00449
# define U_MAX_PTR(base) ((void *)(((char *)(base)+0x7fffffffu) > (char *)(base) ? ((char *)(base)+0x7fffffffu) : (char *)-1))
00450
# endif
00451
#endif
00452
00453
#endif