]> www.ginac.de Git - cln.git/commitdiff
Janitorial clean-up.
authorRichard Kreckel <kreckel@ginac.de>
Sat, 11 Oct 2014 22:24:25 +0000 (22:24 +0000)
committerRichard Kreckel <kreckel@ginac.de>
Sat, 11 Oct 2014 22:24:25 +0000 (22:24 +0000)
Remove some unused variables and convert files with CRNL line endings
to files with NL line endings.

src/complex/input/cl_N_read.cc
src/float/input/cl_F_read.cc
src/integer/conv/cl_I_cached_power.cc
src/integer/conv/cl_I_cached_power.h
src/real/input/cl_R_read.cc

index 0b24e0b15d2baa914e7b32300ccdd685d4b505f4..7b1b773c0521d3e5826077ceefb314a37c03496b 100644 (file)
@@ -164,13 +164,11 @@ not_rational_syntax:
                }
                var const char * ptr_after_sign = ptr;
                var const char * ptr_after_intpart = skip_digits(ptr_after_sign,string_limit,float_base);
-               var bool have_dot = false;
                var const char * ptr_before_fracpart = ptr_after_intpart;
                var const char * ptr_after_fracpart = ptr_after_intpart;
                ptr = ptr_after_intpart;
                if (ptr != string_limit)
                  if (*ptr == '.') {
-                       have_dot = true;
                        ptr_before_fracpart = ptr+1;
                        ptr_after_fracpart = skip_digits(ptr_before_fracpart,string_limit,float_base);
                }
index 7ba78fa8072373957e676e2972a6a4986971232a..25884571194345081de630eb7847f5d581381986 100644 (file)
@@ -75,13 +75,11 @@ const cl_F read_float (const cl_read_flags& flags, const char * string, const ch
                }
                var const char * ptr_after_sign = ptr;
                var const char * ptr_after_intpart = skip_digits(ptr_after_sign,string_limit,float_base);
-               var bool have_dot = false;
                var const char * ptr_before_fracpart = ptr_after_intpart;
                var const char * ptr_after_fracpart = ptr_after_intpart;
                ptr = ptr_after_intpart;
                if (ptr != string_limit)
                  if (*ptr == '.') {
-                       have_dot = true;
                        ptr_before_fracpart = ptr+1;
                        ptr_after_fracpart = skip_digits(ptr_before_fracpart,string_limit,float_base);
                }
index 8fb235f8a687ff7fc3fc3ee7f40bced32329e1f0..4231252f025b415b5686c92266f2fd866c4c45fc 100644 (file)
-// cached_power().\r
-\r
-// Specification.\r
-#include "integer/conv/cl_I_cached_power.h"\r
-\r
-\r
-// Implementation.\r
-\r
-namespace cln {\r
-\r
-const power_table_entry power_table [36-2+1] = {\r
-#if (intDsize==8)\r
-       { 7, 2*2*2*2*2*2*2 },\r
-       { 5, 3*3*3*3*3 },\r
-       { 3, 4*4*4 },\r
-       { 3, 5*5*5 },\r
-       { 3, 6*6*6 },\r
-       { 2, 7*7 },\r
-       { 2, 8*8 },\r
-       { 2, 9*9 },\r
-       { 2, 10*10 },\r
-       { 2, 11*11 },\r
-       { 2, 12*12 },\r
-       { 2, 13*13 },\r
-       { 2, 14*14 },\r
-       { 2, 15*15 },\r
-       { 1, 16 },\r
-       { 1, 17 },\r
-       { 1, 18 },\r
-       { 1, 19 },\r
-       { 1, 20 },\r
-       { 1, 21 },\r
-       { 1, 22 },\r
-       { 1, 23 },\r
-       { 1, 24 },\r
-       { 1, 25 },\r
-       { 1, 26 },\r
-       { 1, 27 },\r
-       { 1, 28 },\r
-       { 1, 29 },\r
-       { 1, 30 },\r
-       { 1, 31 },\r
-       { 1, 32 },\r
-       { 1, 33 },\r
-       { 1, 34 },\r
-       { 1, 35 },\r
-       { 1, 36 },\r
-#endif\r
-#if (intDsize==16)\r
-       { 15, 2*2*2*2*2*2*2*2*2*2*2*2*2*2*2 },\r
-       { 10, 3*3*3*3*3*3*3*3*3*3 },\r
-       {  7, 4*4*4*4*4*4*4 },\r
-       {  6, 5*5*5*5*5*5 },\r
-       {  6, 6*6*6*6*6*6 },\r
-       {  5, 7*7*7*7*7 },\r
-       {  5, 8*8*8*8*8 },\r
-       {  5, 9*9*9*9*9 },\r
-       {  4, 10*10*10*10 },\r
-       {  4, 11*11*11*11 },\r
-       {  4, 12*12*12*12 },\r
-       {  4, 13*13*13*13 },\r
-       {  4, 14*14*14*14 },\r
-       {  4, 15*15*15*15 },\r
-       {  3, 16*16*16 },\r
-       {  3, 17*17*17 },\r
-       {  3, 18*18*18 },\r
-       {  3, 19*19*19 },\r
-       {  3, 20*20*20 },\r
-       {  3, 21*21*21 },\r
-       {  3, 22*22*22 },\r
-       {  3, 23*23*23 },\r
-       {  3, 24*24*24 },\r
-       {  3, 25*25*25 },\r
-       {  3, 26*26*26 },\r
-       {  3, 27*27*27 },\r
-       {  3, 28*28*28 },\r
-       {  3, 29*29*29 },\r
-       {  3, 30*30*30 },\r
-       {  3, 31*31*31 },\r
-       {  3, 32*32*32 },\r
-       {  3, 33*33*33 },\r
-       {  3, 34*34*34 },\r
-       {  3, 35*35*35 },\r
-       {  3, 36*36*36 },\r
-#endif\r
-#if (intDsize==32)\r
-       { 31, 2UL*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2 },\r
-       { 20, 3UL*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3 },\r
-       { 15, 4UL*4*4*4*4*4*4*4*4*4*4*4*4*4*4 },\r
-       { 13, 5UL*5*5*5*5*5*5*5*5*5*5*5*5 },\r
-       { 12, 6UL*6*6*6*6*6*6*6*6*6*6*6 },\r
-       { 11, 7UL*7*7*7*7*7*7*7*7*7*7 },\r
-       { 10, 8UL*8*8*8*8*8*8*8*8*8 },\r
-       { 10, 9UL*9*9*9*9*9*9*9*9*9 },\r
-       {  9, 10UL*10*10*10*10*10*10*10*10 },\r
-       {  9, 11UL*11*11*11*11*11*11*11*11 },\r
-       {  8, 12UL*12*12*12*12*12*12*12 },\r
-       {  8, 13UL*13*13*13*13*13*13*13 },\r
-       {  8, 14UL*14*14*14*14*14*14*14 },\r
-       {  8, 15UL*15*15*15*15*15*15*15 },\r
-       {  7, 16UL*16*16*16*16*16*16 },\r
-       {  7, 17UL*17*17*17*17*17*17 },\r
-       {  7, 18UL*18*18*18*18*18*18 },\r
-       {  7, 19UL*19*19*19*19*19*19 },\r
-       {  7, 20UL*20*20*20*20*20*20 },\r
-       {  7, 21UL*21*21*21*21*21*21 },\r
-       {  7, 22UL*22*22*22*22*22*22 },\r
-       {  7, 23UL*23*23*23*23*23*23 },\r
-       {  6, 24UL*24*24*24*24*24 },\r
-       {  6, 25UL*25*25*25*25*25 },\r
-       {  6, 26UL*26*26*26*26*26 },\r
-       {  6, 27UL*27*27*27*27*27 },\r
-       {  6, 28UL*28*28*28*28*28 },\r
-       {  6, 29UL*29*29*29*29*29 },\r
-       {  6, 30UL*30*30*30*30*30 },\r
-       {  6, 31UL*31*31*31*31*31 },\r
-       {  6, 32UL*32*32*32*32*32 },\r
-       {  6, 33UL*33*33*33*33*33 },\r
-       {  6, 34UL*34*34*34*34*34 },\r
-       {  6, 35UL*35*35*35*35*35 },\r
-       {  6, 36UL*36*36*36*36*36 },\r
-#endif\r
-#if (intDsize==64)\r
-       { 63, 2ULL*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2 },\r
-       { 40, 3ULL*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3 },\r
-       { 31, 4ULL*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4 },\r
-       { 27, 5ULL*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5 },\r
-       { 24, 6ULL*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6 },\r
-       { 22, 7ULL*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7 },\r
-       { 21, 8ULL*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8 },\r
-       { 20, 9ULL*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9 },\r
-       { 19, 10ULL*10*10*10*10*10*10*10*10*10*10*10*10*10*10*10*10*10*10 },\r
-       { 18, 11ULL*11*11*11*11*11*11*11*11*11*11*11*11*11*11*11*11*11 },\r
-       { 17, 12ULL*12*12*12*12*12*12*12*12*12*12*12*12*12*12*12*12 },\r
-       { 17, 13ULL*13*13*13*13*13*13*13*13*13*13*13*13*13*13*13*13 },\r
-       { 16, 14ULL*14*14*14*14*14*14*14*14*14*14*14*14*14*14*14 },\r
-       { 16, 15ULL*15*15*15*15*15*15*15*15*15*15*15*15*15*15*15 },\r
-       { 15, 16ULL*16*16*16*16*16*16*16*16*16*16*16*16*16*16 },\r
-       { 15, 17ULL*17*17*17*17*17*17*17*17*17*17*17*17*17*17 },\r
-       { 15, 18ULL*18*18*18*18*18*18*18*18*18*18*18*18*18*18 },\r
-       { 15, 19ULL*19*19*19*19*19*19*19*19*19*19*19*19*19*19 },\r
-       { 14, 20ULL*20*20*20*20*20*20*20*20*20*20*20*20*20 },\r
-       { 14, 21ULL*21*21*21*21*21*21*21*21*21*21*21*21*21 },\r
-       { 14, 22ULL*22*22*22*22*22*22*22*22*22*22*22*22*22 },\r
-       { 14, 23ULL*23*23*23*23*23*23*23*23*23*23*23*23*23 },\r
-       { 13, 24ULL*24*24*24*24*24*24*24*24*24*24*24*24 },\r
-       { 13, 25ULL*25*25*25*25*25*25*25*25*25*25*25*25 },\r
-       { 13, 26ULL*26*26*26*26*26*26*26*26*26*26*26*26 },\r
-       { 13, 27ULL*27*27*27*27*27*27*27*27*27*27*27*27 },\r
-       { 13, 28ULL*28*28*28*28*28*28*28*28*28*28*28*28 },\r
-       { 13, 29ULL*29*29*29*29*29*29*29*29*29*29*29*29 },\r
-       { 13, 30ULL*30*30*30*30*30*30*30*30*30*30*30*30 },\r
-       { 12, 31ULL*31*31*31*31*31*31*31*31*31*31*31 },\r
-       { 12, 32ULL*32*32*32*32*32*32*32*32*32*32*32 },\r
-       { 12, 33ULL*33*33*33*33*33*33*33*33*33*33*33 },\r
-       { 12, 34ULL*34*34*34*34*34*34*34*34*34*34*34 },\r
-       { 12, 35ULL*35*35*35*35*35*35*35*35*35*35*35 },\r
-       { 12, 36ULL*36*36*36*36*36*36*36*36*36*36*36 },\r
-#endif\r
-};\r
-\r
-cached_power_table* ctable [36-2+1] = {\r
-       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,\r
-       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,\r
-       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,\r
-       NULL, NULL, NULL, NULL, NULL\r
-};\r
-\r
-const cached_power_table_entry * cached_power (uintD base, uintL i)\r
-{\r
-       var cached_power_table* ptr;\r
-       if (!(ptr = ctable[base-2]))\r
-        { ctable[base-2] = ptr = new cached_power_table (); }\r
-       var uintL j;\r
-       for (j = 0; j <= i; j++) {\r
-               if (zerop(ptr->element[j].base_pow)) {\r
-                       // Compute b^(k*2^j) and its inverse.\r
-                       cl_I x =\r
-                           (j==0 ? cl_I(power_table[base-2].b_to_the_k)\r
-                                 : ptr->element[j-1].base_pow * ptr->element[j-1].base_pow\r
-                            );\r
-                       ptr->element[j].base_pow = x;\r
-#ifdef MUL_REPLACES_DIV\r
-                       ptr->element[j].inv_base_pow = floor1(ash(1,2*integer_length(x)),x);\r
-#endif\r
-               }\r
-       }\r
-       return &ptr->element[i];\r
-}\r
-\r
-AT_DESTRUCTION(cached_power)\r
-{\r
-       for (var uintD base = 2; base <= 36; base++) {\r
-               var cached_power_table* ptr = ctable[base-2];\r
-               if (ptr) {\r
-                       delete ptr;\r
-                       ctable[base-2] = NULL;\r
-               }\r
-        }\r
-}\r
-\r
-}  // namespace cln\r
+// cached_power().
+
+// Specification.
+#include "integer/conv/cl_I_cached_power.h"
+
+
+// Implementation.
+
+namespace cln {
+
+const power_table_entry power_table [36-2+1] = {
+#if (intDsize==8)
+       { 7, 2*2*2*2*2*2*2 },
+       { 5, 3*3*3*3*3 },
+       { 3, 4*4*4 },
+       { 3, 5*5*5 },
+       { 3, 6*6*6 },
+       { 2, 7*7 },
+       { 2, 8*8 },
+       { 2, 9*9 },
+       { 2, 10*10 },
+       { 2, 11*11 },
+       { 2, 12*12 },
+       { 2, 13*13 },
+       { 2, 14*14 },
+       { 2, 15*15 },
+       { 1, 16 },
+       { 1, 17 },
+       { 1, 18 },
+       { 1, 19 },
+       { 1, 20 },
+       { 1, 21 },
+       { 1, 22 },
+       { 1, 23 },
+       { 1, 24 },
+       { 1, 25 },
+       { 1, 26 },
+       { 1, 27 },
+       { 1, 28 },
+       { 1, 29 },
+       { 1, 30 },
+       { 1, 31 },
+       { 1, 32 },
+       { 1, 33 },
+       { 1, 34 },
+       { 1, 35 },
+       { 1, 36 },
+#endif
+#if (intDsize==16)
+       { 15, 2*2*2*2*2*2*2*2*2*2*2*2*2*2*2 },
+       { 10, 3*3*3*3*3*3*3*3*3*3 },
+       {  7, 4*4*4*4*4*4*4 },
+       {  6, 5*5*5*5*5*5 },
+       {  6, 6*6*6*6*6*6 },
+       {  5, 7*7*7*7*7 },
+       {  5, 8*8*8*8*8 },
+       {  5, 9*9*9*9*9 },
+       {  4, 10*10*10*10 },
+       {  4, 11*11*11*11 },
+       {  4, 12*12*12*12 },
+       {  4, 13*13*13*13 },
+       {  4, 14*14*14*14 },
+       {  4, 15*15*15*15 },
+       {  3, 16*16*16 },
+       {  3, 17*17*17 },
+       {  3, 18*18*18 },
+       {  3, 19*19*19 },
+       {  3, 20*20*20 },
+       {  3, 21*21*21 },
+       {  3, 22*22*22 },
+       {  3, 23*23*23 },
+       {  3, 24*24*24 },
+       {  3, 25*25*25 },
+       {  3, 26*26*26 },
+       {  3, 27*27*27 },
+       {  3, 28*28*28 },
+       {  3, 29*29*29 },
+       {  3, 30*30*30 },
+       {  3, 31*31*31 },
+       {  3, 32*32*32 },
+       {  3, 33*33*33 },
+       {  3, 34*34*34 },
+       {  3, 35*35*35 },
+       {  3, 36*36*36 },
+#endif
+#if (intDsize==32)
+       { 31, 2UL*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2 },
+       { 20, 3UL*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3 },
+       { 15, 4UL*4*4*4*4*4*4*4*4*4*4*4*4*4*4 },
+       { 13, 5UL*5*5*5*5*5*5*5*5*5*5*5*5 },
+       { 12, 6UL*6*6*6*6*6*6*6*6*6*6*6 },
+       { 11, 7UL*7*7*7*7*7*7*7*7*7*7 },
+       { 10, 8UL*8*8*8*8*8*8*8*8*8 },
+       { 10, 9UL*9*9*9*9*9*9*9*9*9 },
+       {  9, 10UL*10*10*10*10*10*10*10*10 },
+       {  9, 11UL*11*11*11*11*11*11*11*11 },
+       {  8, 12UL*12*12*12*12*12*12*12 },
+       {  8, 13UL*13*13*13*13*13*13*13 },
+       {  8, 14UL*14*14*14*14*14*14*14 },
+       {  8, 15UL*15*15*15*15*15*15*15 },
+       {  7, 16UL*16*16*16*16*16*16 },
+       {  7, 17UL*17*17*17*17*17*17 },
+       {  7, 18UL*18*18*18*18*18*18 },
+       {  7, 19UL*19*19*19*19*19*19 },
+       {  7, 20UL*20*20*20*20*20*20 },
+       {  7, 21UL*21*21*21*21*21*21 },
+       {  7, 22UL*22*22*22*22*22*22 },
+       {  7, 23UL*23*23*23*23*23*23 },
+       {  6, 24UL*24*24*24*24*24 },
+       {  6, 25UL*25*25*25*25*25 },
+       {  6, 26UL*26*26*26*26*26 },
+       {  6, 27UL*27*27*27*27*27 },
+       {  6, 28UL*28*28*28*28*28 },
+       {  6, 29UL*29*29*29*29*29 },
+       {  6, 30UL*30*30*30*30*30 },
+       {  6, 31UL*31*31*31*31*31 },
+       {  6, 32UL*32*32*32*32*32 },
+       {  6, 33UL*33*33*33*33*33 },
+       {  6, 34UL*34*34*34*34*34 },
+       {  6, 35UL*35*35*35*35*35 },
+       {  6, 36UL*36*36*36*36*36 },
+#endif
+#if (intDsize==64)
+       { 63, 2ULL*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2 },
+       { 40, 3ULL*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3*3 },
+       { 31, 4ULL*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4*4 },
+       { 27, 5ULL*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5*5 },
+       { 24, 6ULL*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6*6 },
+       { 22, 7ULL*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7 },
+       { 21, 8ULL*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8*8 },
+       { 20, 9ULL*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9 },
+       { 19, 10ULL*10*10*10*10*10*10*10*10*10*10*10*10*10*10*10*10*10*10 },
+       { 18, 11ULL*11*11*11*11*11*11*11*11*11*11*11*11*11*11*11*11*11 },
+       { 17, 12ULL*12*12*12*12*12*12*12*12*12*12*12*12*12*12*12*12 },
+       { 17, 13ULL*13*13*13*13*13*13*13*13*13*13*13*13*13*13*13*13 },
+       { 16, 14ULL*14*14*14*14*14*14*14*14*14*14*14*14*14*14*14 },
+       { 16, 15ULL*15*15*15*15*15*15*15*15*15*15*15*15*15*15*15 },
+       { 15, 16ULL*16*16*16*16*16*16*16*16*16*16*16*16*16*16 },
+       { 15, 17ULL*17*17*17*17*17*17*17*17*17*17*17*17*17*17 },
+       { 15, 18ULL*18*18*18*18*18*18*18*18*18*18*18*18*18*18 },
+       { 15, 19ULL*19*19*19*19*19*19*19*19*19*19*19*19*19*19 },
+       { 14, 20ULL*20*20*20*20*20*20*20*20*20*20*20*20*20 },
+       { 14, 21ULL*21*21*21*21*21*21*21*21*21*21*21*21*21 },
+       { 14, 22ULL*22*22*22*22*22*22*22*22*22*22*22*22*22 },
+       { 14, 23ULL*23*23*23*23*23*23*23*23*23*23*23*23*23 },
+       { 13, 24ULL*24*24*24*24*24*24*24*24*24*24*24*24 },
+       { 13, 25ULL*25*25*25*25*25*25*25*25*25*25*25*25 },
+       { 13, 26ULL*26*26*26*26*26*26*26*26*26*26*26*26 },
+       { 13, 27ULL*27*27*27*27*27*27*27*27*27*27*27*27 },
+       { 13, 28ULL*28*28*28*28*28*28*28*28*28*28*28*28 },
+       { 13, 29ULL*29*29*29*29*29*29*29*29*29*29*29*29 },
+       { 13, 30ULL*30*30*30*30*30*30*30*30*30*30*30*30 },
+       { 12, 31ULL*31*31*31*31*31*31*31*31*31*31*31 },
+       { 12, 32ULL*32*32*32*32*32*32*32*32*32*32*32 },
+       { 12, 33ULL*33*33*33*33*33*33*33*33*33*33*33 },
+       { 12, 34ULL*34*34*34*34*34*34*34*34*34*34*34 },
+       { 12, 35ULL*35*35*35*35*35*35*35*35*35*35*35 },
+       { 12, 36ULL*36*36*36*36*36*36*36*36*36*36*36 },
+#endif
+};
+
+cached_power_table* ctable [36-2+1] = {
+       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+       NULL, NULL, NULL, NULL, NULL
+};
+
+const cached_power_table_entry * cached_power (uintD base, uintL i)
+{
+       var cached_power_table* ptr;
+       if (!(ptr = ctable[base-2]))
+        { ctable[base-2] = ptr = new cached_power_table (); }
+       var uintL j;
+       for (j = 0; j <= i; j++) {
+               if (zerop(ptr->element[j].base_pow)) {
+                       // Compute b^(k*2^j) and its inverse.
+                       cl_I x =
+                           (j==0 ? cl_I(power_table[base-2].b_to_the_k)
+                                 : ptr->element[j-1].base_pow * ptr->element[j-1].base_pow
+                            );
+                       ptr->element[j].base_pow = x;
+#ifdef MUL_REPLACES_DIV
+                       ptr->element[j].inv_base_pow = floor1(ash(1,2*integer_length(x)),x);
+#endif
+               }
+       }
+       return &ptr->element[i];
+}
+
+AT_DESTRUCTION(cached_power)
+{
+       for (var uintD base = 2; base <= 36; base++) {
+               var cached_power_table* ptr = ctable[base-2];
+               if (ptr) {
+                       delete ptr;
+                       ctable[base-2] = NULL;
+               }
+        }
+}
+
+}  // namespace cln
index 6efc2706ff5cd35a12cee0afc87bec5346da7ef7..879dff4c8dda30df050bf06b6535d1589762cb19 100644 (file)
@@ -1,47 +1,47 @@
-// cached_power().\r
-\r
-// General includes.\r
-#include "base/cl_sysdep.h"\r
-\r
-// Specification.\r
-#include "integer/cl_I.h"\r
-\r
-\r
-// Implementation.\r
-\r
-namespace cln {\r
-\r
-// Table: For each base b (2 <= b <= 36), store k and b^k where k is the largest\r
-// integer such that b^k < 2^intDsize, i.e. k == floor(log(2^intDsize-1,b)).\r
-struct power_table_entry {\r
-       uintC k;\r
-       uintD b_to_the_k;\r
-};\r
-extern const power_table_entry power_table [36-2+1];\r
-\r
-// Table: contains for each base b (2 <= b <= 36) either NULL or an array of\r
-// lazily computed b^(k*2^i) and maybe 1/b^(k*2^i).\r
-//#define MUL_REPLACES_DIV\r
-struct cached_power_table_entry {\r
-       ALLOCATE_ANYWHERE(cached_power_table_entry)\r
-       cl_I base_pow; // 0 or b^(k*2^i)\r
-#ifdef MUL_REPLACES_DIV\r
-       cl_I inv_base_pow; // if base_pow: floor(2^(2*integer_length(base_pow))/base_pow)\r
-#endif\r
-};\r
-\r
-struct cached_power_table {\r
-       cached_power_table_entry element[40];\r
-       // Constructor and destructor - nothing special.\r
-       cached_power_table () {}\r
-       ~cached_power_table () {}\r
-       // Allocation and deallocation.\r
-       void* operator new (size_t size) { return malloc_hook(size); }\r
-       void operator delete (void* ptr) { free_hook(ptr); }\r
-};\r
-\r
-extern cached_power_table* ctable [36-2+1];\r
-\r
-const cached_power_table_entry * cached_power (uintD base, uintL i);\r
-\r
-}  // namespace cln\r
+// cached_power().
+
+// General includes.
+#include "base/cl_sysdep.h"
+
+// Specification.
+#include "integer/cl_I.h"
+
+
+// Implementation.
+
+namespace cln {
+
+// Table: For each base b (2 <= b <= 36), store k and b^k where k is the largest
+// integer such that b^k < 2^intDsize, i.e. k == floor(log(2^intDsize-1,b)).
+struct power_table_entry {
+       uintC k;
+       uintD b_to_the_k;
+};
+extern const power_table_entry power_table [36-2+1];
+
+// Table: contains for each base b (2 <= b <= 36) either NULL or an array of
+// lazily computed b^(k*2^i) and maybe 1/b^(k*2^i).
+//#define MUL_REPLACES_DIV
+struct cached_power_table_entry {
+       ALLOCATE_ANYWHERE(cached_power_table_entry)
+       cl_I base_pow; // 0 or b^(k*2^i)
+#ifdef MUL_REPLACES_DIV
+       cl_I inv_base_pow; // if base_pow: floor(2^(2*integer_length(base_pow))/base_pow)
+#endif
+};
+
+struct cached_power_table {
+       cached_power_table_entry element[40];
+       // Constructor and destructor - nothing special.
+       cached_power_table () {}
+       ~cached_power_table () {}
+       // Allocation and deallocation.
+       void* operator new (size_t size) { return malloc_hook(size); }
+       void operator delete (void* ptr) { free_hook(ptr); }
+};
+
+extern cached_power_table* ctable [36-2+1];
+
+const cached_power_table_entry * cached_power (uintD base, uintL i);
+
+}  // namespace cln
index 3d39050990dc34c089a32dfc97fbe634d6a21e47..b6b5cd4ed842dde60f65b49f0b62ebf5603ac4ea 100644 (file)
@@ -165,13 +165,11 @@ not_rational_syntax:
                }
                var const char * ptr_after_sign = ptr;
                var const char * ptr_after_intpart = skip_digits(ptr_after_sign,string_limit,float_base);
-               var bool have_dot = false;
                var const char * ptr_before_fracpart = ptr_after_intpart;
                var const char * ptr_after_fracpart = ptr_after_intpart;
                ptr = ptr_after_intpart;
                if (ptr != string_limit)
                  if (*ptr == '.') {
-                       have_dot = true;
                        ptr_before_fracpart = ptr+1;
                        ptr_after_fracpart = skip_digits(ptr_before_fracpart,string_limit,float_base);
                }