Developer Guide and Reference

Contents

Function List

Intel's Numeric String Conversion library (
libistrconv
) functions are listed in this topic.

Routines to convert floating-point numbers to ASCII strings

Intel's Numeric String Conversion Library supports the following functions to convert floating-point number
x
to string
s
in various formats, where
l
represents the length of the formatted string allowing for full conversion (not including the null terminator).
__IML_float_to_string
,
__IML_double_to_string
Description:
These functions are similar to
snprintf(s, n, "%.*g", p, x)
in
stdio.h
, where
p
specifies the maximum number of significant digits in either fixed-point or exponential notation format. If
n
is zero, nothing is written and
s
may be a null pointer. Output characters beyond the
(n-1)
th
character are discarded and a null character is appended at the end.
l
is returned on success; otherwise the result is undefined.
Calling interface:
int __IML_float_to_string
(
char * s
,
size_t n
,
int p
,
float x
);
int __IML_double_to_string
(
char * s
,
size_t n
,
int p
,
double x
);
__IML_float_to_string_f
,
__IML_double_to_string_f
Description:
These functions are similar to
snprintf(s, n, "%.*f", p, x)
in
stdio.h
, where
p
specifies the number of digits after the decimal point in the fixed-point notation format. If
n
is zero, nothing is written and
s
may be a null pointer. Output characters beyond the
(n-1)
th
character are discarded and a null character is appended at the end.
l
is returned on success; otherwise the result is undefined.
Calling interface:
int __IML_float_to_string_f
(
char * s
,
size_t n
,
int p
,
float x
);
int __IML_double_to_string_f
(
char * s
,
size_t n
,
int p
,
double x
);
__IML_float_to_string_e
,
__IML_double_to_string_e
Description:
These functions are similar to
snprintf(s, n, "%.*e", p, x)
in
stdio.h
, where
p
specifies the number of digits after the decimal point in the exponential notation format. If
n
is zero, nothing is written and
s
may be a null pointer. Output characters beyond the
(n-1)
th
character are discarded and a null character is appended at the end.
l
is returned on success; otherwise, the result is undefined.
Calling interface:
int __IML_float_to_string_e
(
char * s
,
size_t n
,
int p
,
float x
);
int __IML_double_to_string_e
(
char * s
,
size_t n
,
int p
,
double x
);
__IML_f_to_str
,
__IML_d_to_str
Description:
These functions are similar to
snprintf(s, n, “%.*g”, p, x)
in
stdio.h
, where
p
specifies the maximum number of significant digits in either fixed-point or exponential notation format. If
l < n
, all output characters are stored in
s
with a null terminator at the end. Otherwise, output characters beyond the
n
th
character are discarded and no null character is appended at the end. If
n
is zero, nothing is written and
s
may be a null pointer.
l
is returned on success; otherwise the result is undefined.
Calling interface:
int __IML_f_to_str
(
char * s
,
size_t n
,
int p
,
float x
);
int __IML_d_to_str
(
char * s
,
size_t n
,
int p
,
double x
);
__IML_f_to_str_f
,
__IML_d_to_str_f
Description:
These functions are similar to
snprintf(s, n, “%.*f”, p, x)
in
stdio.h
, where
p
specifies the number of digits after the decimal point in the fixed-point notation format. If
l < n
, all output characters are stored in
s
with a null terminator at the end. Otherwise, output characters beyond the
n
th
character are discarded and no null character is appended at the end. If
n
is zero, nothing is written and
s
may be a null pointer.
l
is returned on success; otherwise the result is undefined.
Calling interface:
int __IML_f_to_str_f
(
char * s
,
size_t n
,
int p
,
float x
);
int __IML_d_to_str_f
(
char * s
,
size_t n
,
int p
,
double x
);
__IML_f_to_str_e
,
__IML_d_to_str_e
Description:
These functions are similar to
snprintf(s, n, “%.*e”, p, x)
in
stdio.h
, where
p
specifies the number of digits after the decimal point in the exponential notation format. If
l < n
, all output characters are stored in
s
with a null terminator at the end. Otherwise, output characters beyond the
n
th
character are discarded and no null character is appended at the end. If
n
is zero, nothing is written and
s
may be a null pointer.
l
is returned on success; otherwise the result is undefined.
Calling interface:
int __IML_f_to_str_e
(
char * s
,
size_t n
,
int p
,
float x
);
int __IML_d_to_str_e
(
char * s
,
size_t n
,
int p
,
double x
);

Routines to convert integers to ASCII strings

Intel's Numeric String Conversion Library supports the following functions to convert integer
x
to string
s
, where
l
represents the length of the formatted string allowing for full conversion (not including the null terminator).
__IML_int_to_string
,
__IML_uint_to_string
,
__IML_int64_to_string
,
__IML_uint64_to_string
Description:
These functions are similar to
snprintf(s, n, "%[d|u|lld|llu]", x)
in
stdio.h
. If
n
is zero, nothing is written and
s
may be a null pointer. Output characters beyond the
(n-1)
th
character are discarded and a null character is appended at the end.
l
is returned on success; otherwise the result is undefined.
Calling interface:
int __IML_int_to_string
(
char * s
,
size_t n
,
int x
);
int __IML_uint_to_string
(
char * s
,
size_t n
,
unsigned int x
);
int __IML_int64_to_string
(
char * s
,
size_t n
,
long long x
);
int __IML_uint64_to_string
(
char * s
,
size_t n
,
unsigned long long x
);
__IML_int_to_oct_string
,
__IML_uint_to_oct_string
,
__IML_int64_to_oct_string
,
__IML_uint64_to_oct_string
Description:
These functions are similar to
snprintf(s, n, "%[o|llo]", x)
in
stdio.h
. If
n
is zero, nothing is written and
s
may be a null pointer. Output characters beyond the
(n-1)
th
character are discarded and a null character is appended at the end.
l
is returned on success; otherwise the result is undefined.
Calling interface:
int __IML_int_to_oct_string
(
char * s
,
size_t n
,
int x
);
int __IML_uint_to_oct_string
(
char * s
,
size_t n
,
unsigned int x
);
int __IML_int64_to_oct_string
(
char * s
,
size_t n
,
long long x
);
int __IML_uint64_to_oct_string
(
char * s
,
size_t n
,
unsigned long long x
);
__IML_int_to_hex_string
,
__IML_uint_to_hex_string
,
__IML_int64_to_hex_string
,
__IML_uint64_to_hex_string
Description:
These functions are similar to
snprintf(s, n, "%[x|llx]", x)
in
stdio.h
. If
n
is zero, nothing is written and
s
may be a null pointer. Output characters beyond the
(n-1)
th
character are discarded and a null character is appended at the end.
l
is returned on success; otherwise the result is undefined.
Calling interface:
int __IML_int_to_hex_string
(
char * s
,
size_t n
,
int x
);
int __IML_uint_to_hex_string
(
char * s
,
size_t n
,
unsigned int x
);
int __IML_int64_to_hex_string
(
char * s
,
size_t n
,
long long x
);
int __IML_uint64_to_hex_string
(
char * s
,
size_t n
,
unsigned long long x
);
__IML_i_to_str
,
__IML_u_to_str
,
__IML_ll_to_str
,
__IML_ull_to_str
Description:
These functions are similar to
snprintf(s, n, "%[d|u|lld|llu]", x)
in
stdio.h
. If
l < n
, all output characters are stored in
s
with a null terminator at the end. Otherwise, output characters beyond the
n
th
character are discarded and no null character is appended at the end. If
n
is zero, nothing is written, and
s
may be a null pointer.
l
is returned on success, otherwise the result is undefined.
Calling interface:
int __IML_i_to_str
(
char * s
,
size_t n
,
int x
);
int __IML_u_to_str
(
char * s
,
size_t n
,
unsigned int x
);
int __IML_ll_to_str
(
char * s
,
size_t n
,
long long x
);
int __IML_ull_to_str
(
char * s
,
size_t n
,
unsigned long long x
);
__IML_i_to_oct_str
,
__IML_u_to_oct_str
,
__IML_ll_to_oct_str
,
__IML_ull_to_oct_str
Description:
These functions are similar to
snprintf(s, n, "%[o|llo]", x)
in
stdio.h
. If
l < n
, all output characters are stored in
s
with a null terminator at the end. Otherwise, output characters beyond the
n
th
character are discarded and no null character is appended at the end. If
n
is zero, nothing is written, and
s
may be a null pointer.
l
is returned on success, otherwise the result is undefined.
Calling interface:
int __IML_i_to_oct_str
(
char * s
,
size_t n
,
int x
);
int __IML_u_to_oct_str
(
char * s
,
size_t n
,
unsigned int x
);
int __IML_ll_to_oct_str
(
char * s
,
size_t n
,
long long x
);
int __IML_ull_to_oct_str
(
char * s
,
size_t n
,
unsigned long long x
);
__IML_i_to_hex_str
,
__IML_u_to_hex_str
,
__IML_ll_to_hex_str
,
__IML_ull_to_hex_str
Description:
These functions are similar to
snprintf(s, n, "%[x|llx]", x)
in
stdio.h
. If
l < n
, all output characters are stored in
s
with a null terminator at the end. Otherwise, output characters beyond the
n
th
character are discarded and no null character is appended at the end. If
n
is zero, nothing is written, and
s
may be a null pointer.
l
is returned on success, otherwise the result is undefined.
Calling interface:
int __IML_i_to_hex_str
(
char * s
,
size_t n
,
int x
);
int __IML_u_to_hex_str
(
char * s
,
size_t n
,
unsigned int x
);
int __IML_ll_to_hex_str
(
char * s
,
size_t n
,
long long x
);
int __IML_ull_to_hex_str
(
char * s
,
size_t n
,
unsigned long long x
);

Routines to convert ASCII strings to floating-point numbers

Intel's Numeric String Conversion Library supports the following functions to convert the initial portion of decimal string
s
to floating-point number
x
. If no conversion could be performed, zero is returned. If the correct value is outside the range of the return type, plus (+) or minus (-)
HUGE_VALF
,
HUGE_VAL
, or
HUGE_VALL
is returned, and the value of macro
ERANGE
is stored in
errno
.
__IML_string_to_float
,
__IML_string_to_double
,
__IML_string_to_long_double
Description:
These functions are similar to
strtof(nptr, endptr)
,
strtod(nptr, endptr)
, and
strtold(nptr, endptr)
in
stdlib.h
, where
endptr
points to the object that stores the final part of
nptr
when
endptr
is not a null pointer.
Calling interface:
float __IML_string_to_float
(
const char * nptr
,
char ** endptr
);
double __IML_string_to_double
(
const char * nptr
,
char ** endptr
);
long double __IML_string_to_long_double
(
const char * nptr
,
char ** endptr
);
__IML_str_to_f
,
__IML_str_to_d
,
__IML_str_to_ld
Description:
These functions convert the initial
n
decimal digits of the
significand
string multiplied by 10 raised to power of
exponent
to floating-point number as return.
endptr
points to the object that stores the final part of significand, provided that
endptr
is not a null pointer.
Calling interface:
float __IML_str_to_f
(
const char * significand
,
size_t n
,
int exponent
,
char ** endptr
);
double __IML_str_to_d
(
const char * significand
,
size_t n
,
int exponent
,
char ** endptr
);
long double __IML_str_to_ld
(
const char * significand
,
size_t n
,
int exponent
,
char ** endptr
);

Routines to convert ASCII strings to integers

Intel's Numeric String Conversion Library supports the following functions to convert the initial portion of string
s
to integer
x
. If no conversion could be performed, zero is returned. If the correct value is outside the range of the return type,
INT_MIN
,
INT_MAX
,
UINT_MAX
,
LLONG_MIN
,
LLONG_MAX
,
ULLONG_MAX
is returned, and the value of macro
ERANGE
is stored in
errno
.
__IML_string_to_int
,
__IML_string_to_uint
,
__IML_string_to_int64
,
__IML_string_to_uint64
Description:
These functions are similar to
([unsigned] int)strto[u]l(nptr, endptr, 10)
and
strto[u]ll(nptr, endptr, 10)
functions in
stdlib.h
, where
endptr
points to the object that stores the final part of
nptr
when
endptr
is not a null pointer.
Calling interface:
int __IML_string_to_int
(
const char * nptr
,
char ** endptr
);
unsigned int __IML_string_to_uint
(
const char * nptr
,
char ** endptr
);
long long __IML_string_to_int64
(
const char * nptr
,
char ** endptr
);
unsigned long long __IML_string_to_uint64
(
const char * nptr
,
char ** endptr
);
__IML_oct_string_to_int
,
__IML_oct_string_to_uint
,
__IML_oct_string_to_int64
,
__IML_oct_string_to_uint64
Description:
These functions are similar to
([unsigned] int)strto[u]l(nptr, endptr, 8)
and
strto[u]ll(nptr, endptr, 8)
functions in
stdlib.h
, where
endptr
points to the object that stores the final part of
nptr
when
endptr
is not a null pointer.
Calling interface:
int __IML_oct_string_to_int
(
const char * nptr
,
char ** endptr
);
unsigned int __IML_oct_string_to_uint
(
const char * nptr
,
char ** endptr
);
long long __IML_oct_string_to_int64
(
const char * nptr
,
char ** endptr
);
unsigned long long __IML_oct_string_to_uint64
(
const char * nptr
,
char ** endptr
);
__IML_hex_string_to_int
,
__IML_hex_string_to_uint
,
__IML_hex_string_to_int64
,
__IML_hex_string_to_uint64
Description:
These functions are similar to
([unsigned] int)strto[u]l(nptr, endptr, 16)
and
strto[u]ll(nptr, endptr, 16)
functions in
stdlib.h
, where
endptr
points to the object that stores the final part of
nptr
when
endptr
is not a null pointer.
Calling interface:
int __IML_hex_string_to_int
(
const char * nptr
,
char ** endptr
);
unsigned int __IML_hex_string_to_uint
(
const char * nptr
,
char ** endptr
);
long long __IML_hex_string_to_int64
(
const char * nptr
,
char ** endptr
);
unsigned long long __IML_hex_string_to_uint64
(
const char * nptr
,
char ** endptr
);
__IML_str_to_i
,
__IML_str_to_u
,
__IML_str_to_ll
,
__IML_str_to_ull
Description:
These functions convert the initial
n
decimal digits (including an optional + or - sign) pointed to by
nptr
to integral values. When
endptr
is not a null pointer it points to the object that stores the final part of
nptr
. These functions treat any leading whitespace as invalid.
Calling interface:
int __IML_str_to_i
(
const char * nptr
,
size_t n
,
char ** endptr
);
unsigned int __IML_str_to_u
(
const char * nptr
,
size_t n
,
char ** endptr
);
long long __IML_str_to_ll
(
const char * nptr
,
size_t n
,
char ** endptr
);
unsigned long long __IML_str_to_ull
(
const char * nptr
,
size_t n
,
char ** endptr
);
__IML_oct_str_to_i
,
__IML_oct_str_to_u
,
__IML_oct_str_to_ll
,
__IML_oct_str_to_ull
Description:
These functions convert the initial
n
octal digits (including an optional + or - sign) pointed to by
nptr
to integral values. When
endptr
is not a null pointer it points to the object that stores the final part of
nptr
. These functions treat any leading whitespace as invalid.
Calling interface:
int __IML_oct_str_to_i
(
const char * nptr
,
size_t n
,
char ** endptr
);
unsigned int __IML_oct_str_to_u
(
const char * nptr
,
size_t n
,
char ** endptr
);
long long __IML_oct_str_to_ll
(
const char * nptr
,
size_t n
,
char ** endptr
);
unsigned long long __IML_oct_str_to_ull
(
const char * nptr
,
size_t n
,
char ** endptr
);
__IML_hex_str_to_i
,
__IML_hex_str_to_u
,
__IML_hex_str_to_ll
,
__IML_hex_str_to_ull
Description:
These functions convert the initial
n
hexadecimal digits (including an optional + or - sign) pointed to by
nptr
to integral values. When
endptr
is not a null pointer it points to the object that stores the final part of
nptr
. These functions treat any leading whitespace as invalid.
Calling interface:
int __IML_hex_str_to_i
(
const char * nptr
,
size_t n
,
char ** endptr
);
unsigned int __IML_hex_str_to_u
(
const char * nptr
,
size_t n
,
char ** endptr
);
long long __IML_hex_str_to_ll
(
const char * nptr
,
size_t n
,
char ** endptr
);
unsigned long long __IML_hex_str_to_ull
(
const char * nptr
,
size_t n
,
char ** endptr
);

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.