nextpValue::PinkNoise -> RandomValue -> PinkNoise
nextpValue pn rv | nextIdx /= 0  = updatePink pn
                                   (trailingZeros nextIdx)
                                   (rval1 rv)
                                   (rval2 rv)
                  | otherwise  = pn {index = nextIdx,rand2 = rval2 rv}
  where nextIdx = index pn + 1 .&. fromIntegral indexMask
nextpValue::PinkNoise -> RandomValue -> PinkNoise
nextpValue pn rv | nextIdx /= 0  = updatePink pn
                                   (trailingZeros nextIdx)
                                   (rval1 rv)
                                   (rval2 rv)
                  | otherwise  = pn {index = nextIdx,rand2 = rval2 rv}
  where nextIdx = index pn + 1 .&. fromIntegral indexMask
nextpValue pn rv | nextIdx /= 0  = updatePink pn
                                   (trailingZeros nextIdx)
                                   (rval1 rv)
                                   (rval2 rv)
                  | otherwise  = pn {index = nextIdx,rand2 = rval2 rv}
  where nextIdx = index pn + 1 .&. fromIntegral indexMask