[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/build/uClibc/libm/nan.c b/ap/build/uClibc/libm/nan.c
new file mode 100644
index 0000000..eee3b1c
--- /dev/null
+++ b/ap/build/uClibc/libm/nan.c
@@ -0,0 +1,60 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Copyright (C) 2002 by Erik Andersen <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+/***********************************************************************
+ nan, nanf, nanl - return quiet NaN
+
+ These functions shall return a quiet NaN, if available, with content
+ indicated through tagp.
+
+ If the implementation does not support quiet NaNs, these functions
+ shall return zero.
+
+ Calls: strlen(), sprintf(), strtod()
+
+***********************************************************************/
+#include <math.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+double nan (const char *tagp)
+{
+ if (tagp[0] != '\0') {
+ char buf[6 + strlen (tagp)];
+ sprintf (buf, "NAN(%s)", tagp);
+ return strtod (buf, NULL);
+ }
+ return NAN;
+}
+libm_hidden_def(nan)
+
+libm_hidden_proto(nanf)
+float nanf (const char *tagp)
+{
+ if (tagp[0] != '\0') {
+ char buf[6 + strlen (tagp)];
+ sprintf (buf, "NAN(%s)", tagp);
+ return strtof (buf, NULL);
+ }
+ return NAN;
+}
+libm_hidden_def(nanf)
+
+#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __NO_LONG_DOUBLE_MATH
+libm_hidden_proto(nanl)
+long double nanl (const char *tagp)
+{
+ if (tagp[0] != '\0') {
+ char buf[6 + strlen (tagp)];
+ sprintf (buf, "NAN(%s)", tagp);
+ return strtold (buf, NULL);
+ }
+ return NAN;
+}
+libm_hidden_def(nanl)
+#endif