Copyright | (c) 2018 Andrew Lelechenko |
---|---|
License | MIT |
Maintainer | Andrew Lelechenko <andrew.lelechenko@gmail.com> |
Stability | Provisional |
Portability | Non-portable (GHC extensions) |
Safe Haskell | None |
Language | Haskell2010 |
Values of Möbius function.
Documentation
Represents three possible values of Möbius function.
runMoebius :: Num a => Moebius -> a Source #
Convert to any numeric type.
sieveBlockMoebius :: Word -> Word -> Vector Moebius Source #
Evaluate the Möbius function over a block.
Value of f
at 0, if zero falls into block, is undefined.
Based on the sieving algorithm from p. 3 of Computations of the Mertens function and improved bounds on the Mertens conjecture by G. Hurst. It is approximately 5x faster than sieveBlockUnboxed
.
> sieveBlockMoebius 1 10 [MoebiusP, MoebiusN, MoebiusN, MoebiusZ, MoebiusN, MoebiusP, MoebiusN, MoebiusZ, MoebiusZ, MoebiusP]