Changeset 087c8798 in mainline for uspace/lib/posix/stdlib/strtold.c
- Timestamp:
- 2011-07-20T19:30:30Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 102a729
- Parents:
- fc3680e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/posix/stdlib/strtold.c
rfc3680e r087c8798 30 30 * @{ 31 31 */ 32 /** @file 32 /** @file Backend for floating point conversions. 33 33 */ 34 34 … … 55 55 #endif 56 56 57 // TODO: clean up , documentation57 // TODO: clean up 58 58 59 59 // FIXME: ensure it builds and works on all platforms … … 116 116 }; 117 117 118 /** 119 * Decides whether the argument is still in range representable by 120 * long double or not. 121 * 122 * @param num Floating point number to be checked. 123 * @return True if the argument is out of range, false otherwise. 124 */ 118 125 static inline bool out_of_range(long double num) 119 126 { … … 127 134 * @param base Number to be multiplied. 128 135 * @param exponent Base 5 exponent. 129 * @return base multiplied by 5**exponent 136 * @return base multiplied by 5**exponent. 130 137 */ 131 138 static long double mul_pow5(long double base, int exponent) … … 173 180 * @param base Number to be multiplied. 174 181 * @param exponent Base 2 exponent. 175 * @return base multiplied by 2**exponent 182 * @return base multiplied by 2**exponent. 176 183 */ 177 184 static long double mul_pow2(long double base, int exponent) … … 212 219 } 213 220 214 221 /** 222 * Convert decimal string representation of the floating point number. 223 * Function expects the string pointer to be already pointed at the first 224 * digit (i.e. leading optional sign was already consumed by the caller). 225 * 226 * @param sptr Pointer to the storage of the string pointer. Upon successful 227 * conversion, the string pointer is updated to point to the first 228 * unrecognized character. 229 * @return An approximate representation of the input floating-point number. 230 */ 215 231 static long double parse_decimal(const char **sptr) 216 232 { … … 315 331 } 316 332 333 /** 334 * Derive a hexadecimal digit from its character representation. 335 * 336 * @param ch Character representation of the hexadecimal digit. 337 * @return Digit value represented by an integer. 338 */ 317 339 static inline int hex_value(char ch) 318 340 { … … 325 347 326 348 /** 349 * Get the count of leading zero bits up to the maximum of 3 zero bits. 350 * 327 351 * @param val Integer value. 328 352 * @return How many leading zero bits there are. (Maximum is 3) … … 339 363 } 340 364 365 /** 366 * Convert hexadecimal string representation of the floating point number. 367 * Function expects the string pointer to be already pointed at the first 368 * digit (i.e. leading optional sign and 0x prefix were already consumed 369 * by the caller). 370 * 371 * @param sptr Pointer to the storage of the string pointer. Upon successful 372 * conversion, the string pointer is updated to point to the first 373 * unrecognized character. 374 * @return Representation of the input floating-point number. 375 */ 341 376 static long double parse_hexadecimal(const char **sptr) 342 377 { … … 567 602 /** @} 568 603 */ 569
Note:
See TracChangeset
for help on using the changeset viewer.