I hereby claim:
- I am mreid on github.
- I am mreid (https://keybase.io/mreid) on keybase.
- I have a public key whose fingerprint is 0290 8892 E023 A876 460B D320 2B84 F83F 283D 58D8
To claim this, I am signing this object:
# Example implementation of simple arithmetic coding in Python (2.7+). | |
# | |
# USAGE | |
# | |
# python -i arithmetic.py | |
# >>> m = {'a': 1, 'b': 1, 'c': 1} | |
# >>> model = dirichlet(m) | |
# >>> encode(model, "aabbaacc") | |
# '00011110011110010' | |
# |
# Example Huffman coding implementation | |
# Distributions are represented as dictionaries of { 'symbol': probability } | |
# Codes are dictionaries too: { 'symbol': 'codeword' } | |
def huffman(p): | |
'''Return a Huffman code for an ensemble with distribution p.''' | |
assert(sum(p.values()) == 1.0) # Ensure probabilities sum to 1 | |
# Base case of only two symbols, assign 0 or 1 arbitrarily | |
if(len(p) == 2): |
I hereby claim:
To claim this, I am signing this object:
101110000011111111001001101101001010101001110011010000110100010111100111000000010111110000110101011011100000110000000101101100000101111010001001111000000000111000000011 |
# A command-line noisy channel | |
# | |
# USAGE: python channel.py BLOCK_SIZE FLIP_PROBABILITY | |
# | |
# EXAMPLE: | |
# $ echo "0000000" | python channel.py 7 0.8 | |
# 0000100 | |
# | |
# AUTHOR: Mark Reid <[email protected]> | |
# CREATED: 2013-10-21 |
# Hamming (7,4) Coding | |
# | |
# Reads binary stream from standard input and outputs Hamming (7,4) encoded | |
# version to standard output. | |
# | |
# USAGE: python h74-encode.py | |
# | |
# EXAMPLE: | |
# $ echo "0001" | python h74-encode.py | |
# 1000101 |
# LZ78 Encoding | |
# | |
# Performs LZ78 encoding on the standard input and writes result to standard output | |
# using algorithm described in MacKay textbook. | |
# | |
# Note: | |
# - All input symbols are encoded using 7-bit ASCII. | |
# - Pointer index is encoded using logarithmically increasing number of bits | |
# | |
# USAGE: python lz78-encode.py |
# LZ77 Encoding | |
# | |
# Simple implementation of Lempel-Ziv 77 (a.k.a. "Sliding Window") coding | |
# as described in Section 13.4 of Cover & Thomas' "Information Theory". | |
# | |
# USAGE: python encode.py INPUT_STREAM | |
# | |
# EXAMPLE (from lectures): | |
# $ python encode.py abbababbababbab | |
# (0,a) |
The INSTALL instructions that come with Vowpal Wabbit appear not to work on Mac OS X Lion. Here's what I did to get it to compile. You will need the developer tools that come with the XCode installation.
The only dependency VW has is the boost C++ library. So first, download and install Boost
To install Boost, do the following:
$ cp ~/Downloads/boost_1_48_0.tar.bz2 ./
Running Snow Leopard 10.6.7 on a 2.66 GHz Intel Core 2 Duo iMac. | |
Installed XCode 4 from the App Store (previous had XCode 3 installed under 10.5). | |
---- | |
$ uname -a | |
Darwin iMac.local 10.7.0 Darwin Kernel Version 10.7.0: Sat Jan 29 15:17:16 PST 2011; root:xnu-1504.9.37~1/RELEASE_I386 i386 | |
$ gcc --version | |
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3) |