Skip to content

Instantly share code, notes, and snippets.

View martinus's full-sized avatar
😎
warp! Help, I'm trapped in a time

Martin Leitner-Ankerl martinus

😎
warp! Help, I'm trapped in a time
View GitHub Profile
@martinus
martinus / benchmark.cpp
Created July 25, 2019 05:55
simple benchmark of tsl, robin_hood, and std::unordered_map
#include <iostream>
#include <string>
#include <chrono>
#include <unordered_map>
#include "tsl/robin_map.h"
#include "robin_hood.h"
using namespace std;
using my_clock = std::chrono::high_resolution_clock;
@martinus
martinus / random_bool_benchmark.cpp
Last active October 15, 2019 05:42
fast random bool in C++
#include <algorithm>
#include <chrono>
#include <iostream>
#include <random>
#define LIKELY(x) __builtin_expect((x), 1)
#define UNLIKELY(x) __builtin_expect((x), 0)
#define NO_INLINE __attribute__((noinline))
// extremely fast random number generator that also produces very high quality random.
@martinus
martinus / .bashrc
Created May 4, 2018 07:59
awesome bash prompt
function prompt_timer_start {
PROMPT_TIMER=${PROMPT_TIMER:-`date +%s.%3N`}
echo -ne "\033]0;${@}\007"
}
function prompt_svn_stats() {
command -v svn >/dev/null
if [ $? != 0 ]; then
return
fi
@martinus
martinus / DifferentialEvolution.cpp
Created September 22, 2014 07:53
Differential Evolution - Sample Code
/* Example adapted from http://www.drdobbs.com/database/differential-evolution/184410166
*
* This implements the DE/rand/1/bin optimization algorithm.
*
*/
/* Initialize individuals */
for (i=0; i<NP; i++) {
/* randomly initialize all individuals */
for (j=0; j<D; j++) {
@martinus
martinus / gist:250192d3350c4b11756a
Created September 2, 2014 13:08
onename verification
Verifying that +martinus is my Bitcoin username. You can send me #bitcoin here: https://onename.io/martinus
@martinus
martinus / xy.gnuplot
Created May 2, 2014 06:35
Bitcoin Balance over Time of Last Transaction - Gnuplot to produce a graph like this: http://i.imgur.com/bzdr3fl.png
#set term pngcairo size 1920,1080 enhanced font 'Verdana,10'
set term pngcairo size 3840,2160 enhanced font 'Verdana,10'
set title 'Bitcoin Balance over Time of Last Transaction'
set xlabel 'Last Transaction [Time]'
set ylabel 'Amount [BTC]'
set output 'xy.png'
set logscale y
set xdata time
set timefmt "%s"
set format x "%Y-%m-%d"
#pragma once
/// MarsagliaMWC99 is a simple random number generator based on
/// George Marsaglia's MWC (multiply with carry) generator.
/// Although it is very simple, it passes Marsaglia's DIEHARD
/// series of random number generator tests. It is exceptionally fast.
///
/// @see http://www.codeproject.com/Articles/25172/Simple-Random-Number-Generation
/// @see http://www.bobwheeler.com/statistics/Password/MarsagliaPost.txt
/// @see http://mathforum.org/kb/message.jspa?messageID=1524861
@martinus
martinus / trie.rb
Created December 23, 2009 21:23 — forked from DataWraith/trie.rb
class TrieNode
def initialize
@sub_tries = {}
@end_of_word = false
end
def insert(input)
to_insert = input
package com.ankerl.stuff;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* Calls multiple methods with a single interface.