View sort1mb.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
#include <assert.h> | |
typedef unsigned int u32; | |
typedef unsigned long long u64; | |
//------------------------------------------------------------------------- | |
// WorkArea | |
//------------------------------------------------------------------------- |
View sort1mb.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
#include <assert.h> | |
typedef unsigned int u32; | |
typedef unsigned long long u64; | |
//------------------------------------------------------------------------- | |
// WorkArea | |
//------------------------------------------------------------------------- |
View validate.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from subprocess import * | |
import time | |
def validate(sequence): | |
start = time.clock() | |
sorter = Popen('sort1mb.exe', stdin=PIPE, stdout=PIPE, stderr=PIPE) | |
for value in sequence: | |
sorter.stdin.write('%08d\n' % value) | |
sorter.stdin.close() | |
result = [int(line) for line in sorter.stdout] |
View rsu.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "randomsequence.h" | |
#include <stdio.h> | |
#include <string.h> | |
extern "C" | |
{ | |
#include "unif01.h" | |
#include "bbattery.h" | |
#include "util.h" | |
} |
View list_modifications.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env python | |
# License: http://creativecommons.org/publicdomain/zero/1.0/ | |
# See http://preshing.com/20130115/view-your-filesystem-history-using-python | |
import optparse | |
import os | |
import fnmatch | |
import time | |
# Parse options | |
parser = optparse.OptionParser(usage='Usage: %prog [options] path [path2 ...]') |
View gist:6663087
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <mintomic/mintomic.h> | |
#include <time.h> | |
struct Message | |
{ | |
clock_t tick; | |
const char* str; | |
void* param; | |
}; |
View math.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#-------------------------------------------------------------- | |
# MathJax tags for Octopress | |
# | |
# Put this in the plugins folder. | |
# Use a single "inlinemath" tag for inline math. | |
# Use a pair of "math/endmath" tags for math as a standalone paragraph. | |
# The "math" tag takes an optional size argument. | |
# You also need to include MathJax in the page header, for example by adding | |
# <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> | |
# to source/_includes/custom/head.html |
View capped_spsc_queue.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// Generate benchmarks for the three queue implementations shown in | |
// Jeff Preshing's CppCon 2014 talk, "How Ubisoft Montreal Develops Games for | |
// Multicore - Before and After C++11". | |
// | |
// Slides: https://github.com/CppCon/CppCon2014/blob/master/Presentations/How%20Ubisoft%20Montreal%20Develops%20Games%20for%20Multicore/How%20Ubisoft%20Montreal%20Develops%20Games%20for%20Multicore%20-%20Before%20and%20After%20C++11%20-%20Jeff%20Preshing%20-%20CppCon%202014.pdf?raw=true | |
// | |
#include <iostream> | |
#include <atomic> |
View build_cross_gcc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/bash | |
set -e | |
trap 'previous_command=$this_command; this_command=$BASH_COMMAND' DEBUG | |
trap 'echo FAILED COMMAND: $previous_command' EXIT | |
#------------------------------------------------------------------------------------------- | |
# This script will download packages for, configure, build and install a GCC cross-compiler. | |
# Customize the variables (INSTALL_PATH, TARGET, etc.) to your liking before running. | |
# If you get an error and need to resume the script from some point in the middle, | |
# just delete/comment the preceding lines before running it again. |
View spinlock-example.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <atomic> | |
class SpinLock { | |
std::atomic<int> m_flag = 0; | |
public: | |
void lock() { | |
int expected = 0; | |
while (!m_flag.compare_exchange_weak(expected, 1, std::memory_order_acquire)) { | |
expected = 0; |
OlderNewer