arithmoi-0.13.2.0: Efficient basic number-theoretic functions.
Copyright(c) 2018 Andrew Lelechenko
LicenseMIT
MaintainerAndrew Lelechenko <andrew.lelechenko@gmail.com>
Safe HaskellNone
LanguageHaskell2010

Math.NumberTheory.ArithmeticFunctions.Moebius

Description

Values of Möbius function.

Synopsis

Documentation

data Moebius Source #

Represents three possible values of Möbius function.

Instances

Instances details
Monoid Moebius Source # 
Instance details

Defined in Math.NumberTheory.ArithmeticFunctions.Moebius

Semigroup Moebius Source # 
Instance details

Defined in Math.NumberTheory.ArithmeticFunctions.Moebius

Methods

(<>) :: Moebius -> Moebius -> Moebius

sconcat :: NonEmpty Moebius -> Moebius

stimes :: Integral b => b -> Moebius -> Moebius

Show Moebius Source # 
Instance details

Defined in Math.NumberTheory.ArithmeticFunctions.Moebius

Methods

showsPrec :: Int -> Moebius -> ShowS

show :: Moebius -> String

showList :: [Moebius] -> ShowS

Eq Moebius Source # 
Instance details

Defined in Math.NumberTheory.ArithmeticFunctions.Moebius

Methods

(==) :: Moebius -> Moebius -> Bool

(/=) :: Moebius -> Moebius -> Bool

Ord Moebius Source # 
Instance details

Defined in Math.NumberTheory.ArithmeticFunctions.Moebius

Methods

compare :: Moebius -> Moebius -> Ordering

(<) :: Moebius -> Moebius -> Bool

(<=) :: Moebius -> Moebius -> Bool

(>) :: Moebius -> Moebius -> Bool

(>=) :: Moebius -> Moebius -> Bool

max :: Moebius -> Moebius -> Moebius

min :: Moebius -> Moebius -> Moebius

Unbox Moebius Source # 
Instance details

Defined in Math.NumberTheory.ArithmeticFunctions.Moebius

Vector Vector Moebius Source # 
Instance details

Defined in Math.NumberTheory.ArithmeticFunctions.Moebius

MVector MVector Moebius Source # 
Instance details

Defined in Math.NumberTheory.ArithmeticFunctions.Moebius

newtype Vector Moebius Source # 
Instance details

Defined in Math.NumberTheory.ArithmeticFunctions.Moebius

newtype Vector Moebius = V_Moebius (Vector Int8)
newtype MVector s Moebius Source # 
Instance details

Defined in Math.NumberTheory.ArithmeticFunctions.Moebius

newtype MVector s Moebius = MV_Moebius (MVector s Int8)

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]