Yellowstone sequence: Difference between revisions
Content added Content deleted
Line 184: | Line 184: | ||
import Codec.Picture |
import Codec.Picture |
||
import Control.Arrow (second) |
import Control.Arrow (second) |
||
------------------YELLOWSTONE PERMUTATION------------------ |
------------------YELLOWSTONE PERMUTATION------------------ |
||
yellowstone :: [Integer] |
yellowstone :: [Integer] |
||
Line 190: | Line 190: | ||
where |
where |
||
nextWindow :: (Integer, Integer, [Integer]) -> (Integer, Integer, [Integer]) |
nextWindow :: (Integer, Integer, [Integer]) -> (Integer, Integer, [Integer]) |
||
nextWindow (p2, p1, rest) = |
nextWindow (p2, p1, rest) = (p1, n, residue) |
||
where |
|||
let [rp2, rp1] = relativelyPrime <$> [p2, p1] |
|||
[rp2, rp1] = relativelyPrime <$> [p2, p1] |
|||
go (x:xs) |
|||
| rp1 x && not (rp2 x) = (x, xs) |
|||
| otherwise = second ((:) x) (go xs) |
|||
(n, residue) = go rest |
|||
active (_, x, _) = x |
active (_, x, _) = x |
||
relativelyPrime :: Integer -> Integer -> Bool |
relativelyPrime :: Integer -> Integer -> Bool |
||
relativelyPrime a b = 1 == gcd a b |
relativelyPrime a b = 1 == gcd a b |
||
----------30 FIRST TERMS, AND CHART OF FIRST 100----------- |
----------30 FIRST TERMS, AND CHART OF FIRST 100----------- |
||
main :: IO (Image PixelRGBA8) |
main :: IO (Image PixelRGBA8) |
||
Line 210: | Line 210: | ||
chartRender env $ |
chartRender env $ |
||
plot (line "Yellowstone terms" [zip [1 ..] (take 100 yellowstone)]) |
plot (line "Yellowstone terms" [zip [1 ..] (take 100 yellowstone)]) |
||
---------------------CHART GENERATION---------------------- |
---------------------CHART GENERATION---------------------- |
||
chartRender |
chartRender |
||
Line 219: | Line 219: | ||
in renderDia Rasterific (RasterificOptions (mkWidth width)) $ |
in renderDia Rasterific (RasterificOptions (mkWidth width)) $ |
||
fst $ runBackendR env (toRenderable (execEC ec)) |
fst $ runBackendR env (toRenderable (execEC ec)) |
||
------------------------ LOCAL FONT------------------------ |
------------------------ LOCAL FONT------------------------ |
||
chartEnv :: IO (DEnv Double) |
chartEnv :: IO (DEnv Double) |