Patent Pending Linear Bit
Counting Implementations:
  US 2011/0238717 A1 &
   WO 2011/126779 A2

  By Meltin.Bell@GMail.com

       (c) Copyright 2/16/12 Meltin Bell. All rights
                                                       1
                        reserved.
U.S. and Patent Cooperation Treaty
   Case Similarly Ordered Parts
•   Title
•   Abstract
•   Technical Field and Industrial Applicability
•   Background
•   Summary
•   Brief Drawings Description
•   Detailed Description
•   Claims
                  (c) Copyright 2/16/12 Meltin Bell. All rights
                                                                  2
                                   reserved.
U.S. and Patent Cooperation Treaty
         Case Differences
• PCT Cross-Reference To Related Applications
• Drawings




               (c) Copyright 2/16/12 Meltin Bell. All rights
                                                               3
                                reserved.
Bit Counting Applications

• Cryptography (6516330, 5717616, 5734599)
• Graphics (6516330)
• Transmission (5682405)




              (c) Copyright 2/16/12 Meltin Bell. All rights
                                                              4
                               reserved.
Linear Bit Counting Prior Art
int lbc1(int val) {
  int bc = 0;
  while (val) {                                   loop #           val   bc
    val &= (val -1);                              1                101   0
    bc++;                                         2                100   1
  }                                               3                0     2
  return bc;
}
                   (c) Copyright 2/16/12 Meltin Bell. All rights
                                                                              5
                                    reserved.
Motivations for Improvements
•   Faster computation (5717616)
•   Convenient implementation (5717616)
•   Greater CPU design flexibility (5717616)
•   Minimizing hardware/size (4607176, 5734599)




                 (c) Copyright 2/16/12 Meltin Bell. All rights
                                                                 6
                                  reserved.
Linear Bit Counting Contribution 1
int lbc1_(int val) {
  int bc = 3;
  while (val != 0x111) {                        loop #           val bc
    val |= (val + 1);                           1                011 3
    bc--;                                       2                111 2
  }
  return bc;
}
                 (c) Copyright 2/16/12 Meltin Bell. All rights
                                                                          7
                                  reserved.
Linear Bit Counting Contribution 2
int lbc0_(int val) {
  int bc = 3;
  while (val > 0) {                              loop #           val bc
    val &= (val -1);                             1                001 3
    bc--;                                        2                0   2
  }
  return bc;
}
                  (c) Copyright 2/16/12 Meltin Bell. All rights
                                                                           8
                                   reserved.
Linear Bit Counting Contribution 3
int lbc0(int val) {
  int bc = 0;
  while (val != 0x111) {                        loop #           val bc
    val |= (val + 1);                           1                011 0
    bc++;                                       2                111 1
  }
  return bc;
}
                 (c) Copyright 2/16/12 Meltin Bell. All rights
                                                                          9
                                  reserved.
Conclusion
• Performance of contributions is most
  significant for sparsely or densely populated
  data
• For further information, please contact
  Meltin.Bell@GMail.com
• THANKS!



                (c) Copyright 2/16/12 Meltin Bell. All rights
                                                                10
                                 reserved.

Patent Pending Linear Bit Counting Implementations

  • 1.
    Patent Pending LinearBit Counting Implementations: US 2011/0238717 A1 & WO 2011/126779 A2 By Meltin.Bell@GMail.com (c) Copyright 2/16/12 Meltin Bell. All rights 1 reserved.
  • 2.
    U.S. and PatentCooperation Treaty Case Similarly Ordered Parts • Title • Abstract • Technical Field and Industrial Applicability • Background • Summary • Brief Drawings Description • Detailed Description • Claims (c) Copyright 2/16/12 Meltin Bell. All rights 2 reserved.
  • 3.
    U.S. and PatentCooperation Treaty Case Differences • PCT Cross-Reference To Related Applications • Drawings (c) Copyright 2/16/12 Meltin Bell. All rights 3 reserved.
  • 4.
    Bit Counting Applications •Cryptography (6516330, 5717616, 5734599) • Graphics (6516330) • Transmission (5682405) (c) Copyright 2/16/12 Meltin Bell. All rights 4 reserved.
  • 5.
    Linear Bit CountingPrior Art int lbc1(int val) { int bc = 0; while (val) { loop # val bc val &= (val -1); 1 101 0 bc++; 2 100 1 } 3 0 2 return bc; } (c) Copyright 2/16/12 Meltin Bell. All rights 5 reserved.
  • 6.
    Motivations for Improvements • Faster computation (5717616) • Convenient implementation (5717616) • Greater CPU design flexibility (5717616) • Minimizing hardware/size (4607176, 5734599) (c) Copyright 2/16/12 Meltin Bell. All rights 6 reserved.
  • 7.
    Linear Bit CountingContribution 1 int lbc1_(int val) { int bc = 3; while (val != 0x111) { loop # val bc val |= (val + 1); 1 011 3 bc--; 2 111 2 } return bc; } (c) Copyright 2/16/12 Meltin Bell. All rights 7 reserved.
  • 8.
    Linear Bit CountingContribution 2 int lbc0_(int val) { int bc = 3; while (val > 0) { loop # val bc val &= (val -1); 1 001 3 bc--; 2 0 2 } return bc; } (c) Copyright 2/16/12 Meltin Bell. All rights 8 reserved.
  • 9.
    Linear Bit CountingContribution 3 int lbc0(int val) { int bc = 0; while (val != 0x111) { loop # val bc val |= (val + 1); 1 011 0 bc++; 2 111 1 } return bc; } (c) Copyright 2/16/12 Meltin Bell. All rights 9 reserved.
  • 10.
    Conclusion • Performance ofcontributions is most significant for sparsely or densely populated data • For further information, please contact Meltin.Bell@GMail.com • THANKS! (c) Copyright 2/16/12 Meltin Bell. All rights 10 reserved.