Skip to content

Instantly share code, notes, and snippets.

View davidshepherd7's full-sized avatar

David Nikel-Shepherd davidshepherd7

View GitHub Profile
(defun true1 () t)
(setq function-list (list #'true1))
(cons 'or function-list)
(eval (cons 'or function-list))
@davidshepherd7
davidshepherd7 / gist:579fd585b891a81eec73
Created January 26, 2015 20:36
better comment-dwim
(defun dwim-entire-line (function)
(if (region-active-p)
(funcall function (region-beginning) (region-end))
;; else
(funcall function (point-at-bol) (point-at-beginning-of-next-line))))
(global-set-key (kbd "M-;") (lambda () (interactive)
(dwim-entire-line 'comment-or-uncomment-region)))
@davidshepherd7
davidshepherd7 / gist:d9fe1ae929e3dde22c1d
Created February 10, 2015 14:40
Scaled block matrices in LaTeX
\newcommand{\scalemath}[2]{\scalebox{#1}{\begin{math} {#2} \end{math}}}
\newcommand{\Aprime}{\scalemath{0.5}{\begin{matrix} \Amm & \Abound \\ \zm & -\Idm \end{matrix}}}
\newcommand{\Gprime}{\scalemath{0.5}{\begin{matrix} \zm & \zm \\ \zm & \bm \end{matrix}}}
\newcommand{\Qprime}{\scalemath{0.5}{\begin{matrix} \Qm \\ \zm \end{matrix}}}
Combining the above with the Jacobian matrix as derived in \cref{sec:llg-magn-coupl}, the complete Jacobian is
\begin{equation}
\Jm =
\scalemath{2}{
@davidshepherd7
davidshepherd7 / Makefile
Created April 12, 2015 10:25
coursera crypto assignment 4: fixed Makefile
all: vrfy mac
vrfy: vrfy.o cbcmac.o aes_core.o
gcc -o vrfy vrfy.o cbcmac.o aes_core.o -lpthread
mac: mac.o cbcmac.o aes_core.o
gcc -o mac mac.o cbcmac.o aes_core.o -lpthread
clean:
rm -f mac.o aes_core.o cbcmac.o mac.o vrfy.o vrfy mac
@davidshepherd7
davidshepherd7 / isplit.py
Created April 17, 2015 11:41
python string split iterator
#! /usr/bin/env python3
import sys
import re
def isplit(string, delimiter = None):
"""Like string.split but returns an iterator (lazy)
Multiple character delimters are not handled.
@davidshepherd7
davidshepherd7 / gist:4105231
Created November 18, 2012 13:21
1.31 Velocity Transformation
;; Just use the transformation from the example then pull out the velocity from the tuple.
(define (velocity-transform coordinate-transform)
(compose (lambda (tuple) (velocity tuple)) (F->C coordinate-transform)))
;; ;; Or explicitly using Gamma-bar this is:
;; (define (velocity-transform coordinate-transform)
;; (define (f-bar q-prime)
;; (define q (compose coordinate-transform (Gamma q-prime)))
;; (Gamma q))
;; (compose (lambda (x) (velocity x)) (Gamma-bar f-bar)))
(define (q t) (abs (- t 5))
@davidshepherd7
davidshepherd7 / gist:4666285
Created January 29, 2013 18:12
example parallel parameter sweep for an oomph-lib driver
#!/usr/bin/env python
import subprocess as subp
from multiprocessing import Pool
import itertools
import sys
import numbers
import argparse
# Changes to defaults for "make"
# ============================================================
# How many cores do we have? Find out from /proc/cpuinfo (using regexp matching
# the start of info for a new processor).
NCORES=`grep --count '^processor[[:space:]]*:' /proc/cpuinfo`
# Apparently make runs fastest with one more job than there are cores.
NJOBS=$(($NCORES + 1))
export MAKEFLAGS="-j$NJOBS"
/// \short Indexed output function to print a matrix to the stream outfile
/// as i,j,a(i,j) for a(i,j)!=0 only with a specified precision.
void sparse_indexed_output(std::ostream &outfile,
const unsigned &precision,
const bool& output_bottom_right_entry_regardless=false) const
{
// Note: we might have to specify "output_bottom_right_entry_regardless"
// as well (can't be a default). C++ can silently convert between
// unsigned and bool, so having a default set for
// output_bottom_right_entry_regardless would give the same function