commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r3431 - gnuradio/branches/developers/eb/ticket-54/gr-e


From: eb
Subject: [Commit-gnuradio] r3431 - gnuradio/branches/developers/eb/ticket-54/gr-error-correcting-codes/src/lib/libecc/mld
Date: Sat, 26 Aug 2006 16:32:42 -0600 (MDT)

Author: eb
Date: 2006-08-26 16:32:41 -0600 (Sat, 26 Aug 2006)
New Revision: 3431

Modified:
   
gnuradio/branches/developers/eb/ticket-54/gr-error-correcting-codes/src/lib/libecc/mld/n2bs.cc
   
gnuradio/branches/developers/eb/ticket-54/gr-error-correcting-codes/src/lib/libecc/mld/n2bs.h
Log:
lean and mean trial fix for ticket:54

Modified: 
gnuradio/branches/developers/eb/ticket-54/gr-error-correcting-codes/src/lib/libecc/mld/n2bs.cc
===================================================================
--- 
gnuradio/branches/developers/eb/ticket-54/gr-error-correcting-codes/src/lib/libecc/mld/n2bs.cc
      2006-08-26 22:16:23 UTC (rev 3430)
+++ 
gnuradio/branches/developers/eb/ticket-54/gr-error-correcting-codes/src/lib/libecc/mld/n2bs.cc
      2006-08-26 22:32:41 UTC (rev 3431)
@@ -23,78 +23,15 @@
 #include <n2bs.h>
 #include <iostream>
 
-static const int g_num_bits_per_byte = 8;
-
-std::string DoIt (long long number, char digits)
+std::string _n2bs_helper(unsigned long long  v, size_t nbinary_digits)
 {
-  std::string retVal (digits, '0');
-  if (number != 0)
-    for (char n = digits-1; n >= 0; n--) {
-      if (number & 1) {
+  std::string retVal (nbinary_digits, '0');
+  if (v != 0)
+    for (int n = int(nbinary_digits) - 1; n >= 0; n--) {
+      if (v & 1) {
        retVal[n] = '1';
       }
-      number >>= 1;
+      v >>= 1;
     }
   return (retVal);
 }
-
-std::string n2bs (char number, unsigned char digits)
-{
-  if (digits > (unsigned char)(sizeof (char) * g_num_bits_per_byte))
-    digits = sizeof (char) * g_num_bits_per_byte;
-  return DoIt ((long long) number, (char) digits);
-}
-std::string n2bs (short number, unsigned char digits)
-{
-  if (digits > (unsigned char)(sizeof (short) * g_num_bits_per_byte))
-    digits = sizeof (short) * g_num_bits_per_byte;
-  return DoIt ((long long) number, (char) digits);
-}
-std::string n2bs (int number, unsigned char digits)
-{
-  if (digits > (unsigned char)(sizeof (int) * g_num_bits_per_byte))
-    digits = sizeof (int) * g_num_bits_per_byte;
-  return DoIt ((long long) number, (char) digits);
-}
-std::string n2bs (long number, unsigned char digits)
-{
-  if (digits > (unsigned char)(sizeof (long long) * g_num_bits_per_byte))
-    digits = sizeof (long long) * g_num_bits_per_byte;
-  return DoIt (number, (char) digits);
-}
-std::string n2bs (long long number, unsigned char digits)
-{
-  if (digits > (unsigned char)(sizeof (long long) * g_num_bits_per_byte))
-    digits = sizeof (long long) * g_num_bits_per_byte;
-  return DoIt (number, (char) digits);
-}
-std::string n2bs (unsigned char number, unsigned char digits)
-{
-  if (digits > (unsigned char)(sizeof (unsigned char) * g_num_bits_per_byte))
-    digits = sizeof (unsigned char) * g_num_bits_per_byte;
-  return DoIt ((long long) number, (char) digits);
-}
-std::string n2bs (unsigned short number, unsigned char digits)
-{
-  if (digits > (unsigned char)(sizeof (unsigned short) * g_num_bits_per_byte))
-    digits = sizeof (unsigned short) * g_num_bits_per_byte;
-  return DoIt ((long long) number, (char) digits);
-}
-std::string n2bs (unsigned int number, unsigned char digits)
-{
-  if (digits > (unsigned char)(sizeof (unsigned int) * g_num_bits_per_byte))
-    digits = sizeof (unsigned int) * g_num_bits_per_byte;
-  return DoIt ((long long) number, (char) digits);
-}
-std::string n2bs (unsigned long number, unsigned char digits)
-{
-  if (digits > (unsigned char)(sizeof (unsigned long long) * 
g_num_bits_per_byte))
-    digits = sizeof (unsigned long long) * g_num_bits_per_byte;
-  return DoIt ((long long) number, (char) digits);
-}
-std::string n2bs (unsigned long long number, unsigned char digits)
-{
-  if (digits > (unsigned char)(sizeof (unsigned long long) * 
g_num_bits_per_byte))
-    digits = sizeof (unsigned long long) * g_num_bits_per_byte;
-  return DoIt ((long long) number, (char) digits);
-}

Modified: 
gnuradio/branches/developers/eb/ticket-54/gr-error-correcting-codes/src/lib/libecc/mld/n2bs.h
===================================================================
--- 
gnuradio/branches/developers/eb/ticket-54/gr-error-correcting-codes/src/lib/libecc/mld/n2bs.h
       2006-08-26 22:16:23 UTC (rev 3430)
+++ 
gnuradio/branches/developers/eb/ticket-54/gr-error-correcting-codes/src/lib/libecc/mld/n2bs.h
       2006-08-26 22:32:41 UTC (rev 3431)
@@ -24,205 +24,14 @@
 #define INCLUDED_N2BS_H
 
 #include <string>
+#include <algorithm>
 
-std::string n2bs (char number, unsigned char digits);
-std::string n2bs (short number, unsigned char digits);
-std::string n2bs (int number, unsigned char digits);
-std::string n2bs (long number, unsigned char digits);
-std::string n2bs (long long number, unsigned char digits);
-std::string n2bs (unsigned char number, unsigned char digits);
-std::string n2bs (unsigned short number, unsigned char digits);
-std::string n2bs (unsigned int number, unsigned char digits);
-std::string n2bs (unsigned long number, unsigned char digits);
-std::string n2bs (unsigned long long number, unsigned char digits);
+std::string _n2bs_helper(unsigned long long v, size_t nbinary_digits);
 
-inline std::string n2bs (char number, char digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (short number, char digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (int number, char digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long number, char digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long long number, char digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned char number, char digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned short number, char digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned int number, char digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long number, char digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long long number, char digits)
-{return (n2bs (number, (unsigned char) digits));};
+template<class T>
+std::string n2bs(T v, size_t nbinary_digits)
+{
+  return _n2bs_helper((unsigned long long)v, std::min(nbinary_digits, 8 * 
sizeof(T)));
+}
 
-inline std::string n2bs (char number, unsigned short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (short number, unsigned short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (int number, unsigned short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long number, unsigned short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long long number, unsigned short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned char number, unsigned short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned short number, unsigned short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned int number, unsigned short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long number, unsigned short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long long number, unsigned short digits)
-{return (n2bs (number, (unsigned char) digits));};
-
-inline std::string n2bs (char number, short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (short number, short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (int number, short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long number, short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long long number, short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned char number, short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned short number, short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned int number, short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long number, short digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long long number, short digits)
-{return (n2bs (number, (unsigned char) digits));};
-
-inline std::string n2bs (char number, unsigned int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (short number, unsigned int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (int number, unsigned int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long number, unsigned int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long long number, unsigned int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned char number, unsigned int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned short number, unsigned int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned int number, unsigned int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long number, unsigned int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long long number, unsigned int digits)
-{return (n2bs (number, (unsigned char) digits));};
-
-inline std::string n2bs (char number, int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (short number, int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (int number, int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long number, int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long long number, int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned char number, int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned short number, int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned int number, int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long number, int digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long long number, int digits)
-{return (n2bs (number, (unsigned char) digits));};
-
-inline std::string n2bs (char number, unsigned long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (short number, unsigned long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (int number, unsigned long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long number, unsigned long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long long number, unsigned long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned char number, unsigned long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned short number, unsigned long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned int number, unsigned long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long number, unsigned long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long long number, unsigned long digits)
-{return (n2bs (number, (unsigned char) digits));};
-
-inline std::string n2bs (char number, long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (short number, long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (int number, long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long number, long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long long number, long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned char number, long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned short number, long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned int number, long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long number, long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long long number, long digits)
-{return (n2bs (number, (unsigned char) digits));};
-
-inline std::string n2bs (char number, unsigned long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (short number, unsigned long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (int number, unsigned long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long number, unsigned long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long long number, unsigned long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned char number, unsigned long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned short number, unsigned long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned int number, unsigned long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long number, unsigned long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long long number, unsigned long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-
-inline std::string n2bs (char number, long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (short number, long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (int number, long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long number, long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (long long number, long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned char number, long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned short number, long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned int number, long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long number, long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-inline std::string n2bs (unsigned long long number, long long digits)
-{return (n2bs (number, (unsigned char) digits));};
-
 #endif /* INCLUDED_N2BS_H */





reply via email to

[Prev in Thread] Current Thread [Next in Thread]