module HaskellWorks.Data.BalancedParens.Internal.Word32
  ( mu0
  , mu1
  , mu2
  , mu3
  , mu4
  , mu5
  ) where

import Data.Word

-- | Subwords of size 2 ^ 0 alternating between all bits cleared and all bits
mu0 :: Word32
mu0 :: Word32
mu0 = Word32
0x55555555
{-# INLINE mu0 #-}

-- | Subwords of size 2 ^ 1 alternating between all bits cleared and all bits
mu1 :: Word32
mu1 :: Word32
mu1 = Word32
0x33333333
{-# INLINE mu1 #-}

-- | Subwords of size 2 ^ 2 alternating between all bits cleared and all bits
mu2 :: Word32
mu2 :: Word32
mu2 = Word32
0x0f0f0f0f
{-# INLINE mu2 #-}

-- | Subwords of size 2 ^ 3 alternating between all bits cleared and all bits
mu3 :: Word32
mu3 :: Word32
mu3 = Word32
0x00ff00ff
{-# INLINE mu3 #-}

-- | Subwords of size 2 ^ 4 alternating between all bits cleared and all bits
mu4 :: Word32
mu4 :: Word32
mu4 = Word32
0x0000ffff
{-# INLINE mu4 #-}

-- | Subwords of size 2 ^ 5 alternating between all bits cleared and all bits
mu5 :: Word32
mu5 :: Word32
mu5 = Word32
0xffffffff
{-# INLINE mu5 #-}