Skip to content

Instantly share code, notes, and snippets.

@JohannesBuchner
JohannesBuchner / codememoize.py
Last active August 29, 2015 14:21
For tests/builds that should only re-run when code or data files have changed (memoized tests)
"""
Memoizes a given function, given its code dependencies (loaded modules and
additional data files)
Example::
import douglasadams
def costlyfunction():
# compute answer to the universe and everything
return douglasadams.compute_answer() == 42
import numpy
from numpy import cos, sin, exp, log, pi, tan, arccos, arcsin, arctan
import matplotlib.pyplot as plt
# make a quadratic figure
plt.figure(figsize=(6, 6))
# generate 400 points between 0 and 1
t = numpy.linspace(0, 1, 40)
print 't = ', t
def generateTuple():
if numpy.random.uniform() > 0.05:
# generate from normal data set, e.g. normal distribution around some values -- here, a line
k = 1.16
d = 8.9
x = numpy.random.uniform(6, 12)
y = k * (x - 11) + d
return numpy.random.norm(x, 1), numpy.random.norm(y, 3)
else:
# generate from outlier distribution, e.g. uniform distribution over full parameter space
@JohannesBuchner
JohannesBuchner / bd.py
Created February 6, 2015 12:57
birthday problem for 4 people
import numpy
import matplotlib.pyplot as plt
def prob(M):
# for M people, compute the probability of having more than 4 with same birthday
hits = 0
# number of simulation instances
N = 1000
I = numpy.arange(365).reshape((1,-1))
for j in range(N):
@JohannesBuchner
JohannesBuchner / gen.tab
Last active August 29, 2015 14:05
Toy linefitting: new test data with known true values
# "x" "x_err" "y" "y_err" "cor"
10.191 0.125 20.128 0.125 0.731
9.808 0.050 20.286 0.050 0.662
9.700 0.039 20.437 0.039 0.580
9.831 0.065 20.058 0.065 0.720
9.912 0.058 20.194 0.058 0.502
9.861 0.083 19.989 0.083 0.769
9.971 0.060 20.229 0.060 0.563
9.859 0.060 20.164 0.060 0.752
9.720 0.044 20.318 0.044 0.646
@JohannesBuchner
JohannesBuchner / toybootstrap.py
Last active August 29, 2015 14:05
Toy linefitting: bootstrapped estimator
import numpy
from numpy import log, log10, sin, cos, tan, arctan, arccos, arcsin, abs, any, pi
import sys
import matplotlib.pyplot as plt
data = numpy.loadtxt(sys.argv[1],
dtype=[(colname, 'f') for colname in 'x', 'x_err', 'y', 'y_err', 'cor'],
skiprows=1)
plt.figure(figsize=(7,7))
@JohannesBuchner
JohannesBuchner / toy.py
Last active August 29, 2015 14:05
Toy linefitting
import numpy
from numpy import log, isnan, isfinite, sin, cos, tan, abs, any, pi
import scipy, scipy.stats
import pymultinest
import json
import sys
import matplotlib.pyplot as plt
numpy.random.seed(1)
outputfiles_basename = "mnchains_toy_"
@JohannesBuchner
JohannesBuchner / install.rst
Last active December 29, 2015 22:19
Prepare VirtualBox image

Installation notes for Virtual machine

Contains

  • BXA
  • MultiNest
  • PyMultiNest
  • Sherpa
  • Xspec
@JohannesBuchner
JohannesBuchner / howlong.py
Last active December 27, 2015 17:29
ETA from external programs
"""Estimate Time until completion of a process.
Usage: <statusprog> | howlong.py <n>
<statusprog> is a program that writes a line to stdout from time to time.
The line is the number of items completed so far.
<n> is the total number of items to complete.
Example:
for((i=0;i<20;i++)); do echo $i; sleep 1; done | python howlong.py 20
@JohannesBuchner
JohannesBuchner / updateGentoo.sh
Created October 9, 2013 11:05
update Gentoo Linux
#!/bin/bash
#rm /usr/portage/distfiles/*
renice +20 -p $$
ionice -c3 -p $$
pgrep emerge >/dev/null || rm /var/tmp/portage/*-* -rf
emerge-webrsync && eix-update
ARGS="--quiet-build --load-average=10 --jobs=3"