Skip to content

Instantly share code, notes, and snippets.

{-# LANGUAGE ScopedTypeVariables, TypeSynonymInstances, FlexibleInstances #-}
module FFT where
import Prelude hiding (length, sum, map, zipWith, (++), foldr, foldr1, or,
concat, concatMap, replicate, scanl, scanl1, scanr, null,
init, last, tail, head, filter, reverse, product,
maximum, zip, dropWhile)
import qualified Prelude as P
import Data.Complex
import Data.Vector
@ian-ross
ian-ross / FFT-Matrices-v2.hs
Created November 23, 2013 12:39
Toy algebra system code for general Fourier matrix decomposition (http://www.skybluetrades.net/blog/posts/2013/11/23/data-analysis-fft-5.html)
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
import qualified Data.List as L
-- MATRIX ENTRIES
data Sign = P | M deriving (Eq, Show)
data Entry = Z | O Sign | W Sign Int Int deriving Eq
negS :: Sign -> Sign
module Main where
import Data.WAVE
import Prelude hiding (length, sum, map, zipWith, (++), foldr, concat, zip3,
replicate, concatMap)
import qualified Prelude as P
import Data.Complex
import Data.Vector
import Data.Bits
import System.Environment (getArgs)
import Prelude hiding (length, sum, map, zipWith, (++), foldr, concat)
import qualified Prelude as P
import Data.Complex
import Data.Vector
import Data.Bits
i :: Complex Double
i = 0 :+ 1
omega :: Int -> Complex Double
@ian-ross
ian-ross / FFT-Matrices-v1.hs
Created November 15, 2013 06:52
Toy algebra system code for Fourier matrix decomposition (http://www.skybluetrades.net/blog/posts/2013/11/15/data-analysis-fft-2.html)
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
import qualified Data.List as L
-- MATRIX ENTRIES
data Sign = P | M deriving (Eq, Show)
data Entry = Z | O Sign | W Sign Int Int deriving Eq
negS :: Sign -> Sign
@ian-ross
ian-ross / RingOscillator.hs
Created November 13, 2012 14:31
Ring oscillator toy with Fay
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE NoImplicitPrelude #-}
module RingOscillator (main) where
import Language.Fay.FFI
import Language.Fay.Prelude
-- System parameters.
@ian-ross
ian-ross / Lorenz.hs
Created November 7, 2012 09:50
Haskell Lyapunov exponent calculations using method of Rangarajan et al. (1998)
module Lorenz where
import Data.Default
data LzParam t = LzParam { sigma :: t, r :: t, b :: t } deriving (Eq, Show)
instance Floating t => Default (LzParam t) where
def = LzParam 10 28 (8/3)
lorenz :: Floating t => t -> [t] -> [t]
@ian-ross
ian-ross / JqSlider.hs
Created October 10, 2012 16:24
jQuery slider widget for Yesod
{-# LANGUAGE OverloadedStrings, TemplateHaskell,
QuasiQuotes, FlexibleContexts #-}
-- Yesod code to implement a form field based on the jQuery slider
-- widget defined at http://egorkhmelev.github.com/jslider
--
-- File layout: we need access to the CSS and JavaScript files for the
-- slider plugin, along with the images used for theming the sliders.
-- If the CSS is in .../css/jquery.slider.min.css, then the image
-- files must be in .../img. A type class is provided to set up the