[Numpy-svn] r6280 - branches/fix_float_format/numpy/core/src

numpy-svn at scipy.org numpy-svn at scipy.org
Tue Dec 30 16:14:14 EST 2008


Author: ptvirtan
Date: 2008-12-30 15:14:04 -0600 (Tue, 30 Dec 2008)
New Revision: 6280

Modified:
   branches/fix_float_format/numpy/core/src/npy_format.c
Log:
Speed up NumPyOS_ascii_strtod

Modified: branches/fix_float_format/numpy/core/src/npy_format.c
===================================================================
--- branches/fix_float_format/numpy/core/src/npy_format.c	2008-12-30 20:37:30 UTC (rev 6279)
+++ branches/fix_float_format/numpy/core/src/npy_format.c	2008-12-30 21:14:04 UTC (rev 6280)
@@ -303,10 +303,14 @@
 NumPyOS_ascii_strtod(const char *s, char** endptr)
 {
     char buffer[FLOAT_FORMATBUFLEN+1];
-    char *p;
+    const char *p;
     size_t n;
     double result;
 
+    while (NumPyOS_ascii_isspace(*s)) {
+        ++s;
+    }
+
     /* ## 1
      *
      * At least Python versions <= 2.5.2 and <= 2.6.1
@@ -315,10 +319,8 @@
      * under foreign locale.
      */
     p = s;
-    while ((*p >= '0' && *p <= '9') || *p == '+' || *p == '-'
-           || NumPyOS_ascii_isspace(*p)) {
-        ++p;
-    }
+    if (*p == '+' || *p == '-') ++p;
+    while (*p >= '0' && *p <= '9') ++p;
     if (*p == ',') {
         n = (size_t)(p - s);
         if (n > FLOAT_FORMATBUFLEN)




More information about the Numpy-svn mailing list