Yellowstone sequence: Difference between revisions

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

edits