Skip to content

Instantly share code, notes, and snippets.

David Shepherd davidshepherd7

Block or report user

Report or block davidshepherd7

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
# This script will setup Evm (Emacs Version Manager) and Cask on
# Travis to use for Emacs Lisp testing.
# In .travis.yml, add this:
# - curl -fsSkL > && source ./
# Emacs 24.3 is installed in the above script because Cask requires
davidshepherd7 /
Created Apr 17, 2015
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 / Makefile
Created Apr 12, 2015
coursera crypto assignment 4: fixed Makefile
View 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
rm -f mac.o aes_core.o cbcmac.o mac.o vrfy.o vrfy mac
davidshepherd7 / gist:d9fe1ae929e3dde22c1d
Created Feb 10, 2015
Scaled block matrices in LaTeX
View gist:d9fe1ae929e3dde22c1d
\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
\Jm =
View gist:579fd585b891a81eec73
(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)))
View gist:d9b99d7762ca796d3501
(defun true1 () t)
(setq function-list (list #'true1))
(cons 'or function-list)
(eval (cons 'or function-list))
View adaptive unsteady newton.cpp
double Problem::
adaptive_unsteady_newton_solve(const double &dt_desired,
const double &epsilon,
const bool &shift_values)
//First, we need to backup the existing dofs, in case the timestep is
//Find total number of dofs on current processor
unsigned n_dof_local = dof_distribution_pt()->nrow_local();
View bdf2 adaptive
def emr_step(dt_n, y_n, dy_n, dt_nm1, y_nm1):
"""Take a single step of the explicit midpoint rule.
From G&S pg. 715 and Prinja's thesis pg.45.
dtr = dt_n / dt_nm1
y_np1 = (1 - dtr**2)*y_n + (1 + dtr)*dt_n*dy_n + (dtr**2)*(y_nm1)
return y_np1
def bdf2_dydt(ts, ys):
"""Get dy/dt at time ts[-1] (allowing for varying dt).
View gist:5883871
/// \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
View Automatically run make on multiple cores
# 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))
You can’t perform that action at this time.