| Infinite sequence of approximate values of the Dirichlet @β@ function at
-- positive even integer arguments, starting with @β(0)@.
betasEven :: forall a. (Floating a, Ord a) => a -> [a]
betasEven eps = (1 / 2) : hurwitz
  where
    hurwitz :: [a]
    hurwitz =
        zipWith3 (\quarter threeQuarters four ->
            (quarter - threeQuarters) / four)
        (tail . skipOdds $ zetaHurwitz eps 0.25)
        (tail . skipOdds $ zetaHurwitz eps 0.75)
        (iterate (16 *) 16)

-- | Infinite sequence of approximate (up to given precision)
-- values of Dirichlet beta-function at integer arguments, starting with @β(0)@.
--
-- >>> take 5 (betas 1e-14) :: [Double]
-- [0.5,0.7853981633974483,0.9159655941772189,0.9689461462593694,0.9889445517411051]
betas
betasEven :: forall a. (Floating a, Ord a) => a -> [a]
betasEven eps = (1 / 2) : hurwitz
  where
    hurwitz :: [a]
    hurwitz =
        zipWith3 (\quarter threeQuarters four ->
            (quarter - threeQuarters) / four)
        (tail . skipOdds $ zetaHurwitz eps 0.25)
        (tail . skipOdds $ zetaHurwitz eps 0.75)
        (iterate (16 *) 16)

-- | Infinite sequence of approximate (up to given precision)
-- values of Dirichlet beta-function at integer arguments, starting with @β(0)@.
--
-- >>> take 5 (betas 1e-14) :: [Double]
-- [0.5,0.7853981633974483,0.9159655941772189,0.9689461462593694,0.9889445517411051]
betasEven eps = (1 / 2) : hurwitz
  where
    hurwitz :: [a]
    hurwitz =
        zipWith3 (\quarter threeQuarters four ->
            (quarter - threeQuarters) / four)
        (tail . skipOdds $ zetaHurwitz eps 0.25)
        (tail . skipOdds $ zetaHurwitz eps 0.75)
        (iterate (16 *) 16)

-- | Infinite sequence of approximate (up to given precision)
-- values of Dirichlet beta-function at integer arguments, starting with @β(0)@.
--
-- >>> take 5 (betas 1e-14) :: [Double]
-- [0.5,0.7853981633974483,0.9159655941772189,0.9689461462593694,0.9889445517411051]