Skip to content

Instantly share code, notes, and snippets.

@ian-ross
ian-ross / seasonal-cycle.hs
Last active August 29, 2015 14:05
Haskell data analysis: atmospheric non-diffusive flow data pre-processing
module Main where
import Prelude hiding (length, maximum, minimum, sum, map)
import Control.Applicative ((<$>))
import Control.Monad
import Data.List (foldl')
import qualified Data.Map as M
import Foreign.C
import qualified Data.Vector.Generic as GV
import qualified Data.Vector.Unboxed as VU
@ian-ross
ian-ross / pca-2d.cabal
Created September 18, 2014 11:43
Two-dimensional PCA example
name: pca-2d
version: 0.1
synopsis: Two-dimensional PCA example
license: BSD3
author: Ian Ross
maintainer: ian@skybluetrades.net
copyright: Copyright (2014) Ian Ross
category: Data
build-type: Simple
cabal-version: >=1.8
@ian-ross
ian-ross / z500-pca-offline.hs
Last active August 29, 2015 14:07
Haskell data analysis: Z500 anomaly data PCA calculation
module Main where
import Control.Applicative ((<$>))
import Control.Monad (forM_, foldM, when)
import System.FilePath
import qualified Data.Array.Repa as Repa
import qualified Data.Array.Repa.Eval as Repa
import Data.Array.Repa.Repr.ForeignPtr (F)
@ian-ross
ian-ross / kde-1d.hs
Last active August 29, 2015 14:14
Haskell data analysis: kernel density estimation
module Main where
import Prelude hiding (enumFromThenTo, length, map, mapM_, replicate, zipWith)
import Data.Vector hiding ((++))
import System.Random
import System.IO
-- Number of sample points.
n :: Int
n = 10
@ian-ross
ian-ross / make-pdf-cuda.hs
Last active August 29, 2015 14:14
Haskell data analysis: CUDA speedups for KDE
module Main where
import Numeric
import Control.Applicative ((<$>))
import System.FilePath
import Data.NetCDF
import Data.NetCDF.HMatrix
import Data.NetCDF.Vector
import Foreign.C
@ian-ross
ian-ross / make-hist.hs
Last active August 29, 2015 14:14
Haskell data analysis: spherical PDF significance testing
module Main where
import Numeric
import Control.Applicative ((<$>))
import Control.Monad
import System.FilePath
import Data.NetCDF
import Data.NetCDF.HMatrix
import Data.NetCDF.Vector
@ian-ross
ian-ross / calc-markov-matrices.hs
Created April 2, 2015 08:15
Haskell data analysis: Markov matrix calculation
module Main where
import Control.Applicative ((<$>))
import Control.Monad (forM_, zipWithM_)
import Data.List (intercalate)
import System.FilePath
import qualified Data.Vector.Storable as SV
import Data.NetCDF
import Data.NetCDF.HMatrix
@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
@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 / 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.