Skip to content

Instantly share code, notes, and snippets.

View nalimilan's full-sized avatar

Milan Bouchet-Valat nalimilan

View GitHub Profile
using NullableArrays
@inline function f1{S1, S2}(x::Nullable{S1}, y::Nullable{S2})
if isbits(S1) & isbits(S2)
Nullable{Base.promote_op(+, S1, S2)}(x.value + y.value, x.isnull | y.isnull)
else
error()
end
end
using DataFrames,DataFramesMeta, FreqTables
n=1000_000
y=ASCIIString[string("id",i) for i in rand(1:10,n)];
x=rand(1:10,n);
@time pda=PooledDataArray(y,UInt8);
@time f=freqtable(x);
@time f=freqtable(y);
@time f=freqtable(pda);
@time f=freqtable(x, pda);
make test JULIA_CPU_CORES=1
JULIA test/all
* linalg/triangular in 584.26 seconds, maxrss 923.37 MB
* linalg/qr in 77.82 seconds, maxrss 1028.33 MB
* linalg/dense in 40.51 seconds, maxrss 1073.18 MB
* linalg/matmul in 27.55 seconds, maxrss 1106.57 MB
* linalg/schur in 10.25 seconds, maxrss 1118.80 MB
* linalg/special in 4.78 seconds, maxrss 1124.21 MB
* linalg/eigen in 34.91 seconds, maxrss 1166.86 MB
* linalg/bunchkaufman in 20.86 seconds, maxrss 1178.17 MB
$ time make test JULIA_CPU_CORES=1
JULIA test/all
* linalg/triangular in 568.94 seconds, maxrss 1942.53 MB
* linalg/qr in 77.76 seconds, maxrss 2191.19 MB
* linalg/dense in 43.67 seconds, maxrss 2224.02 MB
* linalg/matmul in 29.29 seconds, maxrss 2284.09 MB
* linalg/schur in 12.09 seconds, maxrss 2300.77 MB
* linalg/special in 5.23 seconds, maxrss 2316.80 MB
* linalg/eigen in 38.01 seconds, maxrss 2347.16 MB
* linalg/bunchkaufman in 23.86 seconds, maxrss 2358.98 MB
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv) {
int A[1000000];
int B[1000000];
int i = 1000000;
int j = 1000000;
[milan@milan julia]$ time make test JULIA_CPU_CORES=1
JULIA test/all
* linalg/triangular in 788.01 seconds, maxrss 750.01 MB
* linalg/qr in 133.74 seconds, maxrss 805.48 MB
* linalg/dense in 96.28 seconds, maxrss 867.33 MB
* linalg/matmul in 46.61 seconds, maxrss 885.41 MB
* linalg/schur in 21.33 seconds, maxrss 892.68 MB
* linalg/special in 20.82 seconds, maxrss 902.05 MB
* linalg/eigen in 10.86 seconds, maxrss 909.84 MB
* linalg/bunchkaufman in 5.26 seconds, maxrss 910.35 MB
$ time make test JULIA_CPU_CORES=1
JULIA test/all
* linalg/triangular in 432.60 seconds, maxrss 1354.71 MB
* linalg/qr in 74.89 seconds, maxrss 1529.75 MB
* linalg/dense in 70.00 seconds, maxrss 1631.83 MB
* linalg/matmul in 40.07 seconds, maxrss 1701.44 MB
* linalg/schur in 17.09 seconds, maxrss 1702.00 MB
* linalg/special in 10.75 seconds, maxrss 1702.00 MB
* linalg/eigen in 5.90 seconds, maxrss 1709.28 MB
@nalimilan
nalimilan / puzzle.jl
Last active January 2, 2016 06:08
A small puzzle...
function test1(x::AbstractVector)
dims = [10]
a = zeros(Int, dims...)
for i in 1:length(x)
a[1] += 1
end
a
@nalimilan
nalimilan / table.jl
Last active January 1, 2016 10:29
Draft implementation of table() for PooledDataVectors
using DataArrays
using NamedArrays
function table(x::PooledDataVector...; usena::Bool = false)
n = length(x)
l = [length(y) for y in x]
for i in 1:n
if l[1] != l[i]
error("arguments are not of the same length: $l")
end
--- a/deps/Makefile 2013-11-30 15:23:26.387689253 +0100
+++ b/deps/Makefile 2013-12-06 17:58:34.800112867 +0100
@@ -439,14 +439,11 @@
UV_OBJ_TARGET = $(BUILD)/$(JL_LIBDIR)/libuv.a
endif
-libuv/configure:
- (cd .. && git submodule init && git submodule update)
-ifeq (exists, $(shell [ -d libuv/.git ] && echo exists ))
-libuv/config.status: libuv/.git/HEAD