Skip to content

Instantly share code, notes, and snippets.

View Jamil's full-sized avatar

Jamil Dhanani Jamil

View GitHub Profile
@Jamil
Jamil / trig-approximations.c
Last active December 20, 2015 19:18
Simple approximations for sine and cosine using recursive identities + small angle approximation and Maclaurin Series
// Math Defs
float factorial (float n) {
if (n < 1)
return 1;
return (n*factorial(n-1));
}
// Approximations Using Trig Identities & Small Angle Formulae
@Jamil
Jamil / integration.ss
Last active January 2, 2016 07:39
Finding the antiderivative of a polynomial expression in Scheme
#lang scheme
(define (make-sum a1 a2)
(list '+ a1 a2))
(define (make-product m1 m2)
(list '* m1 m2))
(define (make-exponent e1 e2)
(list '** e1 e2))
(define (term-integrate expr)
@Jamil
Jamil / multiple-indefinite-integration.ss
Last active January 2, 2016 16:09
Multiple (indefinite) integration of a polynomial expression in Scheme
#lang scheme
(define (make-sum a1 a2)
(list '+ a1 a2))
(define (make-product m1 m2)
(list '* m1 m2))
(define (make-exponent e1 e2)
(list '** e1 e2))
(define (term-var-integrate expr var)
#lang racket
(define (find-Vt temp)
(define boltzmann 1.38e-23) ; J/K
(define e-charge 1.60e-19) ; Coulombs/e-
(/ (* boltzmann (+ temp 273)) e-charge))
(define (kvl-current Vdd R Vd)
(/ (- Vdd Vd) R))

Keybase proof

I hereby claim:

  • I am jamil on github.
  • I am jamil (https://keybase.io/jamil) on keybase.
  • I have a public key whose fingerprint is 088B 76A3 F9B8 249D BE59 AF5E 7B0A 29E3 5526 2FA5

To claim this, I am signing this object:

#lang racket
(define sample-predicates '(
("~X" "Y")
("~Y" "Z")
("X" "~Z")
("Z" "Y")
))
; Quick initialization
@Jamil
Jamil / createURL.hs
Last active August 29, 2015 14:07
Create URL with query parameters from base and key-value pairs
createURL :: String -> [(String,String)] -> String
createURL base parameters = base ++ (makePairs parameters)
where
makePairs (x:xs) = foldl (++) (makeHead x) (map (\p -> "&" ++ (makePair p)) xs)
makeHead x = "?" ++ (makePair x)
makePair (key,value) = key ++ "=" ++ value
@Jamil
Jamil / mapfilterreduce.swift
Created November 4, 2014 05:24
Map and Filter in terms of reduce
func map<T1, T2>(f: T1 -> T2, l: [T1]) -> [T2] {
return l.reduce([]) { $0 + [f($1)] }
}
func filter<T>(f: T -> Bool, l: [T]) -> [T] {
return l.reduce([]) { $0 + (f($1) ? [$1] : []) }
}
@Jamil
Jamil / bigrams.hs
Created December 23, 2016 22:13
Simple Bigram Generation
bigrams :: [String] -> [(String, String)]
bigrams [x] = []
bigrams (x:y:xs) = (x, y):(bigrams $ y:xs)
@Jamil
Jamil / successors.hs
Created December 23, 2016 22:14
Generate a list of potential successor tokens given a word, from a bigram model
successors :: String -> [(String, String)] -> [String]
successors predecessor bigrams = map snd matches
where matches = filter (\p -> fst p == predecessor) bigrams