Add the string to floating point conversion functions. Long doubles aren't supported yet, but floats and doubles are. The primary algorithm used is the Eisel-Lemire ParseNumberF64 algorithm, with the Simple Decimal Conversion algorithm as backup. Links for more information on the algorithms: Number Parsing at a Gigabyte per Second, Software: Practice and Experience 51 (8), 2021 (https://arxiv.org/abs/2101.11408) https://nigeltao.github.io/blog/2020/eisel-lemire.html https://nigeltao.github.io/blog/2020/parse-number-f64-simple.html Differential Revision: https://reviews.llvm.org/D109261
19 lines
565 B
C++
19 lines
565 B
C++
//===-- Implementation header for atof --------------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_LIBC_SRC_STDLIB_ATOF_H
|
|
#define LLVM_LIBC_SRC_STDLIB_ATOF_H
|
|
|
|
namespace __llvm_libc {
|
|
|
|
double atof(const char *str);
|
|
|
|
} // namespace __llvm_libc
|
|
|
|
#endif // LLVM_LIBC_SRC_STDLIB_ATOI_H
|