foxts
Version:
Opinionated collection of common TypeScript utils by @SukkaW
2 lines (1 loc) • 725 B
JavaScript
function t(t){return t-=t>>1&0x55555555,((t=(0x33333333&t)+(t>>2&0x33333333))+(t>>4)&0xf0f0f0f)*0x1010101>>24}let e=(t,e)=>!!(t&e),i=(t,e)=>!(t&e),r=(t,e)=>t|e,n=(t,e)=>t&~e,s=(t,e)=>t<<16|e,c=t=>t>>16&65535,u=t=>65535&t;function o(t,e=Array.from([,,].keys())){return e[0]=c(t),e[1]=u(t),e}let B=(t,e,i)=>t<<20|e<<10|i,a=t=>t>>20&1023,k=t=>t>>10&1023,p=t=>1023&t;function T(t,e=Array.from([,,,].keys())){return e[0]=a(t),e[1]=k(t),e[2]=p(t),e}export{t as bitCount,n as deleteBit,e as getBit,i as missingBit,B as packThreeBits,s as packTwoBits,r as setBit,T as unpackThreeBits,a as unpackThreeBitsFirst,k as unpackThreeBitsSecond,p as unpackThreeBitsThird,o as unpackTwoBits,c as unpackTwoBitsFirst,u as unpackTwoBitsSecond};