module Data.RangeMin.Common ( module Data.RangeMin.Common.Combinators, module Data.RangeMin.Common.Math, module Data.RangeMin.Common.Types, module Data.RangeMin.Common.Vector, module Data.RangeMin.Common.ST, module Data.RangeMin.Common.Unf, module Data.RangeMin.Common.Unf.Slice, n2Cross, nlognCross, nearNCross, forceBlockN2, forceNLogN, forceBlockMins) where import Data.RangeMin.Common.Combinators import Data.RangeMin.Common.Math import Data.RangeMin.Common.Types import Data.RangeMin.Common.Vector import Data.RangeMin.Common.ST import Data.RangeMin.Common.Unf import Data.RangeMin.Common.Unf.Slice n2Cross, nlognCross, nearNCross :: Int n2Cross = 10 nlognCross = 400 nearNCross = 5000 -- Whether or not the internal block range-mins must be done with the O(n^2) algorithm. forceBlockN2 :: Bool forceBlockN2 = True -- Whether or not the O(n) algorithms should force recursion to the O(n log n) algorithm or may allow -- the O(n), O(log n) algorithm. forceNLogN :: Bool forceNLogN = True -- Whether or not the O(n) algorithms must force the block-internal range min thunks. forceBlockMins :: Bool forceBlockMins = True