hxrain / libbittwiddle Goto Github PK
View Code? Open in Web Editor NEWThis project forked from p12tic/libbittwiddle
A collection of bit manipulation routines for C++
This project forked from p12tic/libbittwiddle
A collection of bit manipulation routines for C++
What is libbittwiddle ===================== Libbittwiddle is a collection of bit manipulation routines. The included routines are as follows: * popcnt Computes set bits. Uses a compiler intrinsic if available. Results in 12 arithmetic operations, no branches. * clz Computes leading zeros. Uses a compiler intrinsic if available. Results in 23-25 arithmetic operations, no branches. * ctz Computes trailing zeros. Uses a compiler intrinsic if available. Results in 16 arithmetic operations, no branches. * check_has_byte_eq Checks whether a number has a byte with a value equal to a value x. Results in 5 arithmetic operations, no branches. * check_has_byte_lt Checks whether a number has a byte with a value less than a value x. It's possible to select from two implementations with the following performance characteristics: 4-5 arithmetic operations and a branch (default). 14-15 arithmetic operations and no branches. If the value x is known at compile-time, both implementations are equivalent and result in 4-5 arithmetic operations and no branches. The branchless implementation can be selected by defining LIBBITTWIDDLE_BRANCHLESS_CHECK_HAS_LTGT before including libbittwiddle.h * check_has_byte_gt Checks whether a number has a byte with a value greater than a value x. It's possible to select from two implementations with the following performance characteristics: 3-4 arithmetic operations and a branch (default). 14-15 arithmetic operations and no branches. If the value x is known at compile-time, both implementations are equivalent and result in 3-4 arithmetic operations and no branches. The branchless implementation can be selected by defining LIBBITTWIDDLE_BRANCHLESS_CHECK_HAS_LTGT before including libbittwiddle.h * check_has_byte_between Checks whether a number has a byte with a value between compile-time values x and y. Results in 7 arithmetic operations and no branches (the range of x and y is restricted). A C++11-aware compiler is required.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.