Skip to content

Instantly share code, notes, and snippets.

@si14
si14 / core.clj
Created March 1, 2014 22:00
Visualizing "Missionaries and cannibals" problem
(ns mercanviz.core
(:require
[clojure.string :as s]
[hiccup.core :as h]
[clojure.data.priority-map :as pm])
(:gen-class))
(defn update-state [state & updates]
(reduce (fn [acc [key op]]
(update-in acc [key] op))
(ns testapp.core
(:require
[criterium.core :as cr]
[primitive-math :as p]
[no.disassemble :as nd]))
(set! *warn-on-reflection* true)
(defn ^double test0 [a b]
(let [^doubles a a

The code (full version here):

// ...
        unsortedArray = new String[arraySize];
        System.arraycopy(allStrings, 0, unsortedArray, 0, arraySize);
        toSearchIdx = arraySize / 2;

// ...
import org.apache.commons.math3.util.FastMath;
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
import java.util.Random;
import java.util.concurrent.TimeUnit;
import java.util.function.DoubleUnaryOperator;
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
import java.util.Random;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.RecursiveTask;
import java.util.concurrent.TimeUnit;
import org.apache.commons.math3.util.FastMath;
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
import java.util.Random;
import java.util.concurrent.*;
import java.util.stream.DoubleStream;
public static class CountedLogSumExp extends CountedCompleter<Double> {
final int lo;
final int hi;
final double[] array;
final int blockSize;
double sum;
double offset;
CountedLogSumExp[] siblings;
StreamUtil.zippingStream(WigParser.newParser().parse(sourcePaths[0]),
WigParser.newParser().parse(sourcePaths[1]),
StreamUtil.ZipPair::create)
.peek(StreamUtil.equalityForBoth(wigPair -> wigPair.first,
"wig files should have same structure"))
.filter(StreamUtil.predicateForBoth(wigPair -> {
final Chromosome chromosome = chromosomeMap.get(wigPair.first);
return chromosome != null && !chromosome.isMitochondrialChromosome();
}))
.forEach(StreamUtil.consumerForEach((pairLevel, pairCoverage) -> {

Keybase proof

I hereby claim:

  • I am si14 on github.
  • I am si14 (https://keybase.io/si14) on keybase.
  • I have a public key whose fingerprint is 9049 8ED9 BDEF 2C3F 9834 824F 810D 6E4E EDC8 5F24

To claim this, I am signing this object:

Program yoba;
uses crt;
var
a1: integer;
a2: integer;
a3: integer;
a4: integer;
a5: integer;
a6: integer;
a7: integer;