Skip to content

Instantly share code, notes, and snippets.

View crabmusket's full-sized avatar

Daniel Buckmaster crabmusket

View GitHub Profile
@crabmusket
crabmusket / ReadNCFile.hs
Last active December 16, 2015 04:19
Reads the G commands from a CNC file and outputs the physical state of the machine after each command.
module Main where
import Data.Maybe
import Text.Printf
import Text.Regex.Posix
-- The main function defines what the program does when we compile it.
main = do
-- Read all data from standard input (until the end of the file).
file <- getContents
@crabmusket
crabmusket / moreStepResponse.py
Created April 8, 2013 04:40
Step response of a complex LTI system plotted with several parameter variations in Python.
# Step response graphs
# Python 2.7 with numpy, scipy, and matplotlib
# Based on https://gist.github.com/ofan666/1882562
from numpy import min as nmin
from scipy import linspace
from scipy.signal import lti, step
from matplotlib import pyplot as p
def create_tf(i):
@crabmusket
crabmusket / stepResponse.py
Last active December 15, 2015 22:08
Step responses of LTI systems in Python for AMME3500.
# Step response graphs
# Python 2.7 with numpy, scipy, and matplotlib
# Based on https://gist.github.com/ofan666/1882562
from numpy import min as nmin
from scipy import linspace
from scipy.signal import lti, step
from matplotlib import pyplot as p
def plotLTI(num, den, n = 200):
@crabmusket
crabmusket / Alphabet.hs
Last active April 20, 2020 12:02
Naive bijective function in Haskell. http://stackoverflow.com/questions/742013
module Alphabet (
Alphabet,
encodeWithAlphabet,
decodeFromAlphabet
) where
import Prelude
import Data.List(elemIndex, mapAccumR)
import Data.Maybe(fromMaybe)
@crabmusket
crabmusket / AssignmentE.hs
Created November 1, 2012 02:31
MECH2400 assignment code.
-- Main module so that this file can be compiled.
module Main where
-- Import module defined in StressAnalysis.hs (https://gist.github.com/3979818)
import StressAnalysis
-- Main function detemermines what the compiled executable does.
-- At the moment, I want to graph the stress at each element of a section.
main = graphElements
@crabmusket
crabmusket / StressAnalysis.hs
Last active October 12, 2015 05:48
Analysing mechanical stresses in Haskell.
-- Define a module with the same name as the file.
module StressAnalysis where
-- A Beam is defined by its geometry. Think of this as a class declaration.
data Beam = Circle {
diameter :: Float -- Member named 'diameter' of type 'Float'
} deriving (Show)
-- Define functions for common properties of beams. The functions are
-- impleented down the bottom of the file. These functions take a Beam and