{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO: Recompiling stale cache file /home/dzea/.julia/lib/v0.5/PairwiseListMatrices.ji for module PairwiseListMatrices.\n", "WARNING: Method definition require(Symbol) in module Base at loading.jl:345 overwritten in module Main at /home/dzea/.julia/v0.5/Requires/src/require.jl:12.\n" ] } ], "source": [ "using PairwiseListMatrices\n", "using BenchmarkTools\n", "using Base.Test\n", "using Gadfly" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "const SAMPLES = collect(5:50:2000)\n", "const TIME = zeros(Float64, length(SAMPLES)*2)\n", "const NAMES = vcat([ [\"pairwiselistmatrix\", \"full\"] for i in 1:length(SAMPLES) ]...)\n", "const XS = vcat([ [x, x] for x in SAMPLES ]...);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MEAN" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " 0.000\n", " 0.001\n", " 0.002\n", " 0.003\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " -2500\n", " -2000\n", " -1500\n", " -1000\n", " -500\n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " 2500\n", " 3000\n", " 3500\n", " 4000\n", " 4500\n", " -2000\n", " -1900\n", " -1800\n", " -1700\n", " -1600\n", " -1500\n", " -1400\n", " -1300\n", " -1200\n", " -1100\n", " -1000\n", " -900\n", " -800\n", " -700\n", " -600\n", " -500\n", " -400\n", " -300\n", " -200\n", " -100\n", " 0\n", " 100\n", " 200\n", " 300\n", " 400\n", " 500\n", " 600\n", " 700\n", " 800\n", " 900\n", " 1000\n", " 1100\n", " 1200\n", " 1300\n", " 1400\n", " 1500\n", " 1600\n", " 1700\n", " 1800\n", " 1900\n", " 2000\n", " 2100\n", " 2200\n", " 2300\n", " 2400\n", " 2500\n", " 2600\n", " 2700\n", " 2800\n", " 2900\n", " 3000\n", " 3100\n", " 3200\n", " 3300\n", " 3400\n", " 3500\n", " 3600\n", " 3700\n", " 3800\n", " 3900\n", " 4000\n", " -2000\n", " 0\n", " 2000\n", " 4000\n", " -2000\n", " -1800\n", " -1600\n", " -1400\n", " -1200\n", " -1000\n", " -800\n", " -600\n", " -400\n", " -200\n", " 0\n", " 200\n", " 400\n", " 600\n", " 800\n", " 1000\n", " 1200\n", " 1400\n", " 1600\n", " 1800\n", " 2000\n", " 2200\n", " 2400\n", " 2600\n", " 2800\n", " 3000\n", " 3200\n", " 3400\n", " 3600\n", " 3800\n", " 4000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " -0.004\n", " -0.003\n", " -0.002\n", " -0.001\n", " 0.000\n", " 0.001\n", " 0.002\n", " 0.003\n", " 0.004\n", " 0.005\n", " 0.006\n", " 0.007\n", " -0.0030\n", " -0.0029\n", " -0.0028\n", " -0.0027\n", " -0.0026\n", " -0.0025\n", " -0.0024\n", " -0.0023\n", " -0.0022\n", " -0.0021\n", " -0.0020\n", " -0.0019\n", " -0.0018\n", " -0.0017\n", " -0.0016\n", " -0.0015\n", " -0.0014\n", " -0.0013\n", " -0.0012\n", " -0.0011\n", " -0.0010\n", " -0.0009\n", " -0.0008\n", " -0.0007\n", " -0.0006\n", " -0.0005\n", " -0.0004\n", " -0.0003\n", " -0.0002\n", " -0.0001\n", " 0.0000\n", " 0.0001\n", " 0.0002\n", " 0.0003\n", " 0.0004\n", " 0.0005\n", " 0.0006\n", " 0.0007\n", " 0.0008\n", " 0.0009\n", " 0.0010\n", " 0.0011\n", " 0.0012\n", " 0.0013\n", " 0.0014\n", " 0.0015\n", " 0.0016\n", " 0.0017\n", " 0.0018\n", " 0.0019\n", " 0.0020\n", " 0.0021\n", " 0.0022\n", " 0.0023\n", " 0.0024\n", " 0.0025\n", " 0.0026\n", " 0.0027\n", " 0.0028\n", " 0.0029\n", " 0.0030\n", " 0.0031\n", " 0.0032\n", " 0.0033\n", " 0.0034\n", " 0.0035\n", " 0.0036\n", " 0.0037\n", " 0.0038\n", " 0.0039\n", " 0.0040\n", " 0.0041\n", " 0.0042\n", " 0.0043\n", " 0.0044\n", " 0.0045\n", " 0.0046\n", " 0.0047\n", " 0.0048\n", " 0.0049\n", " 0.0050\n", " 0.0051\n", " 0.0052\n", " 0.0053\n", " 0.0054\n", " 0.0055\n", " 0.0056\n", " 0.0057\n", " 0.0058\n", " 0.0059\n", " 0.0060\n", " -0.003\n", " 0.000\n", " 0.003\n", " 0.006\n", " -0.0030\n", " -0.0028\n", " -0.0026\n", " -0.0024\n", " -0.0022\n", " -0.0020\n", " -0.0018\n", " -0.0016\n", " -0.0014\n", " -0.0012\n", " -0.0010\n", " -0.0008\n", " -0.0006\n", " -0.0004\n", " -0.0002\n", " 0.0000\n", " 0.0002\n", " 0.0004\n", " 0.0006\n", " 0.0008\n", " 0.0010\n", " 0.0012\n", " 0.0014\n", " 0.0016\n", " 0.0018\n", " 0.0020\n", " 0.0022\n", " 0.0024\n", " 0.0026\n", " 0.0028\n", " 0.0030\n", " 0.0032\n", " 0.0034\n", " 0.0036\n", " 0.0038\n", " 0.0040\n", " 0.0042\n", " 0.0044\n", " 0.0046\n", " 0.0048\n", " 0.0050\n", " 0.0052\n", " 0.0054\n", " 0.0056\n", " 0.0058\n", " 0.0060\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n" ], "text/plain": [ "Plot(...)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = 0\n", "for sample in SAMPLES\n", " list = PairwiseListMatrix(rand(div(sample*(sample-1),2)))\n", " mat = full(list)\n", " @test_approx_eq mean(list) mean(mat)\n", " k += 1\n", " TIME[k] = @elapsed mean(list)\n", " k += 1\n", " TIME[k] = @elapsed mean(mat)\n", "end\n", "\n", "plot(x=XS, y=TIME, color=NAMES, Geom.point, Geom.smooth)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " -0.001\n", " 0.000\n", " 0.001\n", " 0.002\n", " 0.003\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " -2500\n", " -2000\n", " -1500\n", " -1000\n", " -500\n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " 2500\n", " 3000\n", " 3500\n", " 4000\n", " 4500\n", " -2000\n", " -1900\n", " -1800\n", " -1700\n", " -1600\n", " -1500\n", " -1400\n", " -1300\n", " -1200\n", " -1100\n", " -1000\n", " -900\n", " -800\n", " -700\n", " -600\n", " -500\n", " -400\n", " -300\n", " -200\n", " -100\n", " 0\n", " 100\n", " 200\n", " 300\n", " 400\n", " 500\n", " 600\n", " 700\n", " 800\n", " 900\n", " 1000\n", " 1100\n", " 1200\n", " 1300\n", " 1400\n", " 1500\n", " 1600\n", " 1700\n", " 1800\n", " 1900\n", " 2000\n", " 2100\n", " 2200\n", " 2300\n", " 2400\n", " 2500\n", " 2600\n", " 2700\n", " 2800\n", " 2900\n", " 3000\n", " 3100\n", " 3200\n", " 3300\n", " 3400\n", " 3500\n", " 3600\n", " 3700\n", " 3800\n", " 3900\n", " 4000\n", " -2000\n", " 0\n", " 2000\n", " 4000\n", " -2000\n", " -1800\n", " -1600\n", " -1400\n", " -1200\n", " -1000\n", " -800\n", " -600\n", " -400\n", " -200\n", " 0\n", " 200\n", " 400\n", " 600\n", " 800\n", " 1000\n", " 1200\n", " 1400\n", " 1600\n", " 1800\n", " 2000\n", " 2200\n", " 2400\n", " 2600\n", " 2800\n", " 3000\n", " 3200\n", " 3400\n", " 3600\n", " 3800\n", " 4000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " -0.006\n", " -0.005\n", " -0.004\n", " -0.003\n", " -0.002\n", " -0.001\n", " 0.000\n", " 0.001\n", " 0.002\n", " 0.003\n", " 0.004\n", " 0.005\n", " 0.006\n", " 0.007\n", " 0.008\n", " -0.0050\n", " -0.0048\n", " -0.0046\n", " -0.0044\n", " -0.0042\n", " -0.0040\n", " -0.0038\n", " -0.0036\n", " -0.0034\n", " -0.0032\n", " -0.0030\n", " -0.0028\n", " -0.0026\n", " -0.0024\n", " -0.0022\n", " -0.0020\n", " -0.0018\n", " -0.0016\n", " -0.0014\n", " -0.0012\n", " -0.0010\n", " -0.0008\n", " -0.0006\n", " -0.0004\n", " -0.0002\n", " 0.0000\n", " 0.0002\n", " 0.0004\n", " 0.0006\n", " 0.0008\n", " 0.0010\n", " 0.0012\n", " 0.0014\n", " 0.0016\n", " 0.0018\n", " 0.0020\n", " 0.0022\n", " 0.0024\n", " 0.0026\n", " 0.0028\n", " 0.0030\n", " 0.0032\n", " 0.0034\n", " 0.0036\n", " 0.0038\n", " 0.0040\n", " 0.0042\n", " 0.0044\n", " 0.0046\n", " 0.0048\n", " 0.0050\n", " 0.0052\n", " 0.0054\n", " 0.0056\n", " 0.0058\n", " 0.0060\n", " 0.0062\n", " 0.0064\n", " 0.0066\n", " 0.0068\n", " 0.0070\n", " -0.005\n", " 0.000\n", " 0.005\n", " 0.010\n", " -0.0050\n", " -0.0045\n", " -0.0040\n", " -0.0035\n", " -0.0030\n", " -0.0025\n", " -0.0020\n", " -0.0015\n", " -0.0010\n", " -0.0005\n", " 0.0000\n", " 0.0005\n", " 0.0010\n", " 0.0015\n", " 0.0020\n", " 0.0025\n", " 0.0030\n", " 0.0035\n", " 0.0040\n", " 0.0045\n", " 0.0050\n", " 0.0055\n", " 0.0060\n", " 0.0065\n", " 0.0070\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n" ], "text/plain": [ "Plot(...)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = 0\n", "for sample in SAMPLES\n", " list = PairwiseListMatrix(rand(div(sample*(sample-1),2)))\n", " mat = full(list)\n", " @test_approx_eq mean(list, 1) mean(mat, 1)\n", " k += 1\n", " TIME[k] = @elapsed mean(list, 1)\n", " k += 1\n", " TIME[k] = @elapsed mean(mat, 1)\n", "end\n", "\n", "plot(x=XS, y=TIME, color=NAMES, Geom.point, Geom.smooth)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## SUM" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " -0.0005\n", " 0.0000\n", " 0.0005\n", " 0.0010\n", " 0.0015\n", " 0.0020\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " -2500\n", " -2000\n", " -1500\n", " -1000\n", " -500\n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " 2500\n", " 3000\n", " 3500\n", " 4000\n", " 4500\n", " -2000\n", " -1900\n", " -1800\n", " -1700\n", " -1600\n", " -1500\n", " -1400\n", " -1300\n", " -1200\n", " -1100\n", " -1000\n", " -900\n", " -800\n", " -700\n", " -600\n", " -500\n", " -400\n", " -300\n", " -200\n", " -100\n", " 0\n", " 100\n", " 200\n", " 300\n", " 400\n", " 500\n", " 600\n", " 700\n", " 800\n", " 900\n", " 1000\n", " 1100\n", " 1200\n", " 1300\n", " 1400\n", " 1500\n", " 1600\n", " 1700\n", " 1800\n", " 1900\n", " 2000\n", " 2100\n", " 2200\n", " 2300\n", " 2400\n", " 2500\n", " 2600\n", " 2700\n", " 2800\n", " 2900\n", " 3000\n", " 3100\n", " 3200\n", " 3300\n", " 3400\n", " 3500\n", " 3600\n", " 3700\n", " 3800\n", " 3900\n", " 4000\n", " -2000\n", " 0\n", " 2000\n", " 4000\n", " -2000\n", " -1800\n", " -1600\n", " -1400\n", " -1200\n", " -1000\n", " -800\n", " -600\n", " -400\n", " -200\n", " 0\n", " 200\n", " 400\n", " 600\n", " 800\n", " 1000\n", " 1200\n", " 1400\n", " 1600\n", " 1800\n", " 2000\n", " 2200\n", " 2400\n", " 2600\n", " 2800\n", " 3000\n", " 3200\n", " 3400\n", " 3600\n", " 3800\n", " 4000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " -0.0035\n", " -0.0030\n", " -0.0025\n", " -0.0020\n", " -0.0015\n", " -0.0010\n", " -0.0005\n", " 0.0000\n", " 0.0005\n", " 0.0010\n", " 0.0015\n", " 0.0020\n", " 0.0025\n", " 0.0030\n", " 0.0035\n", " 0.0040\n", " 0.0045\n", " 0.0050\n", " -0.0030\n", " -0.0029\n", " -0.0028\n", " -0.0027\n", " -0.0026\n", " -0.0025\n", " -0.0024\n", " -0.0023\n", " -0.0022\n", " -0.0021\n", " -0.0020\n", " -0.0019\n", " -0.0018\n", " -0.0017\n", " -0.0016\n", " -0.0015\n", " -0.0014\n", " -0.0013\n", " -0.0012\n", " -0.0011\n", " -0.0010\n", " -0.0009\n", " -0.0008\n", " -0.0007\n", " -0.0006\n", " -0.0005\n", " -0.0004\n", " -0.0003\n", " -0.0002\n", " -0.0001\n", " 0.0000\n", " 0.0001\n", " 0.0002\n", " 0.0003\n", " 0.0004\n", " 0.0005\n", " 0.0006\n", " 0.0007\n", " 0.0008\n", " 0.0009\n", " 0.0010\n", " 0.0011\n", " 0.0012\n", " 0.0013\n", " 0.0014\n", " 0.0015\n", " 0.0016\n", " 0.0017\n", " 0.0018\n", " 0.0019\n", " 0.0020\n", " 0.0021\n", " 0.0022\n", " 0.0023\n", " 0.0024\n", " 0.0025\n", " 0.0026\n", " 0.0027\n", " 0.0028\n", " 0.0029\n", " 0.0030\n", " 0.0031\n", " 0.0032\n", " 0.0033\n", " 0.0034\n", " 0.0035\n", " 0.0036\n", " 0.0037\n", " 0.0038\n", " 0.0039\n", " 0.0040\n", " 0.0041\n", " 0.0042\n", " 0.0043\n", " 0.0044\n", " 0.0045\n", " -0.005\n", " 0.000\n", " 0.005\n", " -0.0030\n", " -0.0028\n", " -0.0026\n", " -0.0024\n", " -0.0022\n", " -0.0020\n", " -0.0018\n", " -0.0016\n", " -0.0014\n", " -0.0012\n", " -0.0010\n", " -0.0008\n", " -0.0006\n", " -0.0004\n", " -0.0002\n", " 0.0000\n", " 0.0002\n", " 0.0004\n", " 0.0006\n", " 0.0008\n", " 0.0010\n", " 0.0012\n", " 0.0014\n", " 0.0016\n", " 0.0018\n", " 0.0020\n", " 0.0022\n", " 0.0024\n", " 0.0026\n", " 0.0028\n", " 0.0030\n", " 0.0032\n", " 0.0034\n", " 0.0036\n", " 0.0038\n", " 0.0040\n", " 0.0042\n", " 0.0044\n", " 0.0046\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n" ], "text/plain": [ "Plot(...)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = 0\n", "for sample in SAMPLES\n", " list = PairwiseListMatrix(rand(div(sample*(sample-1),2)))\n", " mat = full(list)\n", " @test_approx_eq sum(list) sum(mat)\n", " k += 1\n", " TIME[k] = @elapsed sum(list)\n", " k += 1\n", " TIME[k] = @elapsed sum(mat)\n", "end\n", "\n", "plot(x=XS, y=TIME, color=NAMES, Geom.point, Geom.smooth)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " -0.001\n", " 0.000\n", " 0.001\n", " 0.002\n", " 0.003\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " -2500\n", " -2000\n", " -1500\n", " -1000\n", " -500\n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " 2500\n", " 3000\n", " 3500\n", " 4000\n", " 4500\n", " -2000\n", " -1900\n", " -1800\n", " -1700\n", " -1600\n", " -1500\n", " -1400\n", " -1300\n", " -1200\n", " -1100\n", " -1000\n", " -900\n", " -800\n", " -700\n", " -600\n", " -500\n", " -400\n", " -300\n", " -200\n", " -100\n", " 0\n", " 100\n", " 200\n", " 300\n", " 400\n", " 500\n", " 600\n", " 700\n", " 800\n", " 900\n", " 1000\n", " 1100\n", " 1200\n", " 1300\n", " 1400\n", " 1500\n", " 1600\n", " 1700\n", " 1800\n", " 1900\n", " 2000\n", " 2100\n", " 2200\n", " 2300\n", " 2400\n", " 2500\n", " 2600\n", " 2700\n", " 2800\n", " 2900\n", " 3000\n", " 3100\n", " 3200\n", " 3300\n", " 3400\n", " 3500\n", " 3600\n", " 3700\n", " 3800\n", " 3900\n", " 4000\n", " -2000\n", " 0\n", " 2000\n", " 4000\n", " -2000\n", " -1800\n", " -1600\n", " -1400\n", " -1200\n", " -1000\n", " -800\n", " -600\n", " -400\n", " -200\n", " 0\n", " 200\n", " 400\n", " 600\n", " 800\n", " 1000\n", " 1200\n", " 1400\n", " 1600\n", " 1800\n", " 2000\n", " 2200\n", " 2400\n", " 2600\n", " 2800\n", " 3000\n", " 3200\n", " 3400\n", " 3600\n", " 3800\n", " 4000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " -0.006\n", " -0.005\n", " -0.004\n", " -0.003\n", " -0.002\n", " -0.001\n", " 0.000\n", " 0.001\n", " 0.002\n", " 0.003\n", " 0.004\n", " 0.005\n", " 0.006\n", " 0.007\n", " 0.008\n", " -0.0050\n", " -0.0048\n", " -0.0046\n", " -0.0044\n", " -0.0042\n", " -0.0040\n", " -0.0038\n", " -0.0036\n", " -0.0034\n", " -0.0032\n", " -0.0030\n", " -0.0028\n", " -0.0026\n", " -0.0024\n", " -0.0022\n", " -0.0020\n", " -0.0018\n", " -0.0016\n", " -0.0014\n", " -0.0012\n", " -0.0010\n", " -0.0008\n", " -0.0006\n", " -0.0004\n", " -0.0002\n", " 0.0000\n", " 0.0002\n", " 0.0004\n", " 0.0006\n", " 0.0008\n", " 0.0010\n", " 0.0012\n", " 0.0014\n", " 0.0016\n", " 0.0018\n", " 0.0020\n", " 0.0022\n", " 0.0024\n", " 0.0026\n", " 0.0028\n", " 0.0030\n", " 0.0032\n", " 0.0034\n", " 0.0036\n", " 0.0038\n", " 0.0040\n", " 0.0042\n", " 0.0044\n", " 0.0046\n", " 0.0048\n", " 0.0050\n", " 0.0052\n", " 0.0054\n", " 0.0056\n", " 0.0058\n", " 0.0060\n", " 0.0062\n", " 0.0064\n", " 0.0066\n", " 0.0068\n", " 0.0070\n", " -0.005\n", " 0.000\n", " 0.005\n", " 0.010\n", " -0.0050\n", " -0.0045\n", " -0.0040\n", " -0.0035\n", " -0.0030\n", " -0.0025\n", " -0.0020\n", " -0.0015\n", " -0.0010\n", " -0.0005\n", " 0.0000\n", " 0.0005\n", " 0.0010\n", " 0.0015\n", " 0.0020\n", " 0.0025\n", " 0.0030\n", " 0.0035\n", " 0.0040\n", " 0.0045\n", " 0.0050\n", " 0.0055\n", " 0.0060\n", " 0.0065\n", " 0.0070\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n" ], "text/plain": [ "Plot(...)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = 0\n", "for sample in SAMPLES\n", " list = PairwiseListMatrix(rand(div(sample*(sample-1),2)))\n", " mat = full(list)\n", " @test_approx_eq sum(list, 1) sum(mat, 1)\n", " k += 1\n", " TIME[k] = @elapsed sum(list, 1)\n", " k += 1\n", " TIME[k] = @elapsed sum(mat, 1)\n", "end\n", "\n", "plot(x=XS, y=TIME, color=NAMES, Geom.point, Geom.smooth)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Mean without diagonal: mean_nodiag" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "mean_nodiag (generic function with 4 methods)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import PairwiseListMatrices: mean_nodiag\n", "\n", "mean_nodiag(m::Matrix, region) = (squeeze(sum(m, region), region) .- diag(m)) ./ (size(m, region)-1)\n", "\n", "function mean_nodiag{T}(m::Matrix{T})\n", " nrow, ncol = size(m)\n", " total = zero(T)\n", " @inbounds for j in 1:(ncol-1)\n", " @simd for i in (j+1):ncol\n", " total += m[i, j]\n", " end\n", " end\n", " total / div(ncol*(ncol-1), 2)\n", "end" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " 0.0000\n", " 0.0005\n", " 0.0010\n", " 0.0015\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " -2500\n", " -2000\n", " -1500\n", " -1000\n", " -500\n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " 2500\n", " 3000\n", " 3500\n", " 4000\n", " 4500\n", " -2000\n", " -1900\n", " -1800\n", " -1700\n", " -1600\n", " -1500\n", " -1400\n", " -1300\n", " -1200\n", " -1100\n", " -1000\n", " -900\n", " -800\n", " -700\n", " -600\n", " -500\n", " -400\n", " -300\n", " -200\n", " -100\n", " 0\n", " 100\n", " 200\n", " 300\n", " 400\n", " 500\n", " 600\n", " 700\n", " 800\n", " 900\n", " 1000\n", " 1100\n", " 1200\n", " 1300\n", " 1400\n", " 1500\n", " 1600\n", " 1700\n", " 1800\n", " 1900\n", " 2000\n", " 2100\n", " 2200\n", " 2300\n", " 2400\n", " 2500\n", " 2600\n", " 2700\n", " 2800\n", " 2900\n", " 3000\n", " 3100\n", " 3200\n", " 3300\n", " 3400\n", " 3500\n", " 3600\n", " 3700\n", " 3800\n", " 3900\n", " 4000\n", " -2000\n", " 0\n", " 2000\n", " 4000\n", " -2000\n", " -1800\n", " -1600\n", " -1400\n", " -1200\n", " -1000\n", " -800\n", " -600\n", " -400\n", " -200\n", " 0\n", " 200\n", " 400\n", " 600\n", " 800\n", " 1000\n", " 1200\n", " 1400\n", " 1600\n", " 1800\n", " 2000\n", " 2200\n", " 2400\n", " 2600\n", " 2800\n", " 3000\n", " 3200\n", " 3400\n", " 3600\n", " 3800\n", " 4000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " -0.0020\n", " -0.0015\n", " -0.0010\n", " -0.0005\n", " 0.0000\n", " 0.0005\n", " 0.0010\n", " 0.0015\n", " 0.0020\n", " 0.0025\n", " 0.0030\n", " 0.0035\n", " -0.00150\n", " -0.00145\n", " -0.00140\n", " -0.00135\n", " -0.00130\n", " -0.00125\n", " -0.00120\n", " -0.00115\n", " -0.00110\n", " -0.00105\n", " -0.00100\n", " -0.00095\n", " -0.00090\n", " -0.00085\n", " -0.00080\n", " -0.00075\n", " -0.00070\n", " -0.00065\n", " -0.00060\n", " -0.00055\n", " -0.00050\n", " -0.00045\n", " -0.00040\n", " -0.00035\n", " -0.00030\n", " -0.00025\n", " -0.00020\n", " -0.00015\n", " -0.00010\n", " -0.00005\n", " 0.00000\n", " 0.00005\n", " 0.00010\n", " 0.00015\n", " 0.00020\n", " 0.00025\n", " 0.00030\n", " 0.00035\n", " 0.00040\n", " 0.00045\n", " 0.00050\n", " 0.00055\n", " 0.00060\n", " 0.00065\n", " 0.00070\n", " 0.00075\n", " 0.00080\n", " 0.00085\n", " 0.00090\n", " 0.00095\n", " 0.00100\n", " 0.00105\n", " 0.00110\n", " 0.00115\n", " 0.00120\n", " 0.00125\n", " 0.00130\n", " 0.00135\n", " 0.00140\n", " 0.00145\n", " 0.00150\n", " 0.00155\n", " 0.00160\n", " 0.00165\n", " 0.00170\n", " 0.00175\n", " 0.00180\n", " 0.00185\n", " 0.00190\n", " 0.00195\n", " 0.00200\n", " 0.00205\n", " 0.00210\n", " 0.00215\n", " 0.00220\n", " 0.00225\n", " 0.00230\n", " 0.00235\n", " 0.00240\n", " 0.00245\n", " 0.00250\n", " 0.00255\n", " 0.00260\n", " 0.00265\n", " 0.00270\n", " 0.00275\n", " 0.00280\n", " 0.00285\n", " 0.00290\n", " 0.00295\n", " 0.00300\n", " -0.002\n", " 0.000\n", " 0.002\n", " 0.004\n", " -0.0015\n", " -0.0014\n", " -0.0013\n", " -0.0012\n", " -0.0011\n", " -0.0010\n", " -0.0009\n", " -0.0008\n", " -0.0007\n", " -0.0006\n", " -0.0005\n", " -0.0004\n", " -0.0003\n", " -0.0002\n", " -0.0001\n", " 0.0000\n", " 0.0001\n", " 0.0002\n", " 0.0003\n", " 0.0004\n", " 0.0005\n", " 0.0006\n", " 0.0007\n", " 0.0008\n", " 0.0009\n", " 0.0010\n", " 0.0011\n", " 0.0012\n", " 0.0013\n", " 0.0014\n", " 0.0015\n", " 0.0016\n", " 0.0017\n", " 0.0018\n", " 0.0019\n", " 0.0020\n", " 0.0021\n", " 0.0022\n", " 0.0023\n", " 0.0024\n", " 0.0025\n", " 0.0026\n", " 0.0027\n", " 0.0028\n", " 0.0029\n", " 0.0030\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n" ], "text/plain": [ "Plot(...)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = 0\n", "for sample in SAMPLES\n", " list = PairwiseListMatrix(rand(div(sample*(sample-1),2)))\n", " mat = full(list)\n", " @test_approx_eq mean_nodiag(list) mean_nodiag(mat)\n", " k += 1\n", " TIME[k] = @elapsed mean_nodiag(list)\n", " k += 1\n", " TIME[k] = @elapsed mean_nodiag(mat)\n", "end\n", "\n", "plot(x=XS, y=TIME, color=NAMES, Geom.point, Geom.smooth)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " 0.0000\n", " 0.0005\n", " 0.0010\n", " 0.0015\n", " 0.0020\n", " 0.0025\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " -2500\n", " -2000\n", " -1500\n", " -1000\n", " -500\n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " 2500\n", " 3000\n", " 3500\n", " 4000\n", " 4500\n", " -2000\n", " -1900\n", " -1800\n", " -1700\n", " -1600\n", " -1500\n", " -1400\n", " -1300\n", " -1200\n", " -1100\n", " -1000\n", " -900\n", " -800\n", " -700\n", " -600\n", " -500\n", " -400\n", " -300\n", " -200\n", " -100\n", " 0\n", " 100\n", " 200\n", " 300\n", " 400\n", " 500\n", " 600\n", " 700\n", " 800\n", " 900\n", " 1000\n", " 1100\n", " 1200\n", " 1300\n", " 1400\n", " 1500\n", " 1600\n", " 1700\n", " 1800\n", " 1900\n", " 2000\n", " 2100\n", " 2200\n", " 2300\n", " 2400\n", " 2500\n", " 2600\n", " 2700\n", " 2800\n", " 2900\n", " 3000\n", " 3100\n", " 3200\n", " 3300\n", " 3400\n", " 3500\n", " 3600\n", " 3700\n", " 3800\n", " 3900\n", " 4000\n", " -2000\n", " 0\n", " 2000\n", " 4000\n", " -2000\n", " -1800\n", " -1600\n", " -1400\n", " -1200\n", " -1000\n", " -800\n", " -600\n", " -400\n", " -200\n", " 0\n", " 200\n", " 400\n", " 600\n", " 800\n", " 1000\n", " 1200\n", " 1400\n", " 1600\n", " 1800\n", " 2000\n", " 2200\n", " 2400\n", " 2600\n", " 2800\n", " 3000\n", " 3200\n", " 3400\n", " 3600\n", " 3800\n", " 4000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " -0.0030\n", " -0.0025\n", " -0.0020\n", " -0.0015\n", " -0.0010\n", " -0.0005\n", " 0.0000\n", " 0.0005\n", " 0.0010\n", " 0.0015\n", " 0.0020\n", " 0.0025\n", " 0.0030\n", " 0.0035\n", " 0.0040\n", " 0.0045\n", " 0.0050\n", " 0.0055\n", " -0.0025\n", " -0.0024\n", " -0.0023\n", " -0.0022\n", " -0.0021\n", " -0.0020\n", " -0.0019\n", " -0.0018\n", " -0.0017\n", " -0.0016\n", " -0.0015\n", " -0.0014\n", " -0.0013\n", " -0.0012\n", " -0.0011\n", " -0.0010\n", " -0.0009\n", " -0.0008\n", " -0.0007\n", " -0.0006\n", " -0.0005\n", " -0.0004\n", " -0.0003\n", " -0.0002\n", " -0.0001\n", " 0.0000\n", " 0.0001\n", " 0.0002\n", " 0.0003\n", " 0.0004\n", " 0.0005\n", " 0.0006\n", " 0.0007\n", " 0.0008\n", " 0.0009\n", " 0.0010\n", " 0.0011\n", " 0.0012\n", " 0.0013\n", " 0.0014\n", " 0.0015\n", " 0.0016\n", " 0.0017\n", " 0.0018\n", " 0.0019\n", " 0.0020\n", " 0.0021\n", " 0.0022\n", " 0.0023\n", " 0.0024\n", " 0.0025\n", " 0.0026\n", " 0.0027\n", " 0.0028\n", " 0.0029\n", " 0.0030\n", " 0.0031\n", " 0.0032\n", " 0.0033\n", " 0.0034\n", " 0.0035\n", " 0.0036\n", " 0.0037\n", " 0.0038\n", " 0.0039\n", " 0.0040\n", " 0.0041\n", " 0.0042\n", " 0.0043\n", " 0.0044\n", " 0.0045\n", " 0.0046\n", " 0.0047\n", " 0.0048\n", " 0.0049\n", " 0.0050\n", " -0.005\n", " 0.000\n", " 0.005\n", " -0.0028\n", " -0.0026\n", " -0.0024\n", " -0.0022\n", " -0.0020\n", " -0.0018\n", " -0.0016\n", " -0.0014\n", " -0.0012\n", " -0.0010\n", " -0.0008\n", " -0.0006\n", " -0.0004\n", " -0.0002\n", " 0.0000\n", " 0.0002\n", " 0.0004\n", " 0.0006\n", " 0.0008\n", " 0.0010\n", " 0.0012\n", " 0.0014\n", " 0.0016\n", " 0.0018\n", " 0.0020\n", " 0.0022\n", " 0.0024\n", " 0.0026\n", " 0.0028\n", " 0.0030\n", " 0.0032\n", " 0.0034\n", " 0.0036\n", " 0.0038\n", " 0.0040\n", " 0.0042\n", " 0.0044\n", " 0.0046\n", " 0.0048\n", " 0.0050\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n" ], "text/plain": [ "Plot(...)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = 0\n", "for sample in SAMPLES\n", " list = PairwiseListMatrix(rand(div(sample*(sample-1),2)))\n", " mat = full(list)\n", " @test_approx_eq mean_nodiag(list, 1) mean_nodiag(mat, 1)\n", " k += 1\n", " TIME[k] = @elapsed mean_nodiag(list, 1)\n", " k += 1\n", " TIME[k] = @elapsed mean_nodiag(mat, 1)\n", "end\n", "\n", "plot(x=XS, y=TIME, color=NAMES, Geom.point, Geom.smooth)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Vector{PairwiseListMatrix}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SUM" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " 0.0\n", " 0.1\n", " 0.2\n", " 0.3\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " -2500\n", " -2000\n", " -1500\n", " -1000\n", " -500\n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " 2500\n", " 3000\n", " 3500\n", " 4000\n", " 4500\n", " -2000\n", " -1900\n", " -1800\n", " -1700\n", " -1600\n", " -1500\n", " -1400\n", " -1300\n", " -1200\n", " -1100\n", " -1000\n", " -900\n", " -800\n", " -700\n", " -600\n", " -500\n", " -400\n", " -300\n", " -200\n", " -100\n", " 0\n", " 100\n", " 200\n", " 300\n", " 400\n", " 500\n", " 600\n", " 700\n", " 800\n", " 900\n", " 1000\n", " 1100\n", " 1200\n", " 1300\n", " 1400\n", " 1500\n", " 1600\n", " 1700\n", " 1800\n", " 1900\n", " 2000\n", " 2100\n", " 2200\n", " 2300\n", " 2400\n", " 2500\n", " 2600\n", " 2700\n", " 2800\n", " 2900\n", " 3000\n", " 3100\n", " 3200\n", " 3300\n", " 3400\n", " 3500\n", " 3600\n", " 3700\n", " 3800\n", " 3900\n", " 4000\n", " -2000\n", " 0\n", " 2000\n", " 4000\n", " -2000\n", " -1800\n", " -1600\n", " -1400\n", " -1200\n", " -1000\n", " -800\n", " -600\n", " -400\n", " -200\n", " 0\n", " 200\n", " 400\n", " 600\n", " 800\n", " 1000\n", " 1200\n", " 1400\n", " 1600\n", " 1800\n", " 2000\n", " 2200\n", " 2400\n", " 2600\n", " 2800\n", " 3000\n", " 3200\n", " 3400\n", " 3600\n", " 3800\n", " 4000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " -0.4\n", " -0.3\n", " -0.2\n", " -0.1\n", " 0.0\n", " 0.1\n", " 0.2\n", " 0.3\n", " 0.4\n", " 0.5\n", " 0.6\n", " 0.7\n", " -0.31\n", " -0.30\n", " -0.29\n", " -0.28\n", " -0.27\n", " -0.26\n", " -0.25\n", " -0.24\n", " -0.23\n", " -0.22\n", " -0.21\n", " -0.20\n", " -0.19\n", " -0.18\n", " -0.17\n", " -0.16\n", " -0.15\n", " -0.14\n", " -0.13\n", " -0.12\n", " -0.11\n", " -0.10\n", " -0.09\n", " -0.08\n", " -0.07\n", " -0.06\n", " -0.05\n", " -0.04\n", " -0.03\n", " -0.02\n", " -0.01\n", " 0.00\n", " 0.01\n", " 0.02\n", " 0.03\n", " 0.04\n", " 0.05\n", " 0.06\n", " 0.07\n", " 0.08\n", " 0.09\n", " 0.10\n", " 0.11\n", " 0.12\n", " 0.13\n", " 0.14\n", " 0.15\n", " 0.16\n", " 0.17\n", " 0.18\n", " 0.19\n", " 0.20\n", " 0.21\n", " 0.22\n", " 0.23\n", " 0.24\n", " 0.25\n", " 0.26\n", " 0.27\n", " 0.28\n", " 0.29\n", " 0.30\n", " 0.31\n", " 0.32\n", " 0.33\n", " 0.34\n", " 0.35\n", " 0.36\n", " 0.37\n", " 0.38\n", " 0.39\n", " 0.40\n", " 0.41\n", " 0.42\n", " 0.43\n", " 0.44\n", " 0.45\n", " 0.46\n", " 0.47\n", " 0.48\n", " 0.49\n", " 0.50\n", " 0.51\n", " 0.52\n", " 0.53\n", " 0.54\n", " 0.55\n", " 0.56\n", " 0.57\n", " 0.58\n", " 0.59\n", " 0.60\n", " 0.61\n", " -0.5\n", " 0.0\n", " 0.5\n", " 1.0\n", " -0.32\n", " -0.30\n", " -0.28\n", " -0.26\n", " -0.24\n", " -0.22\n", " -0.20\n", " -0.18\n", " -0.16\n", " -0.14\n", " -0.12\n", " -0.10\n", " -0.08\n", " -0.06\n", " -0.04\n", " -0.02\n", " 0.00\n", " 0.02\n", " 0.04\n", " 0.06\n", " 0.08\n", " 0.10\n", " 0.12\n", " 0.14\n", " 0.16\n", " 0.18\n", " 0.20\n", " 0.22\n", " 0.24\n", " 0.26\n", " 0.28\n", " 0.30\n", " 0.32\n", " 0.34\n", " 0.36\n", " 0.38\n", " 0.40\n", " 0.42\n", " 0.44\n", " 0.46\n", " 0.48\n", " 0.50\n", " 0.52\n", " 0.54\n", " 0.56\n", " 0.58\n", " 0.60\n", " 0.62\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n" ], "text/plain": [ "Plot(...)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = 0\n", "for sample in SAMPLES\n", " list = PairwiseListMatrix{Float64, false,Vector{Float64}}[ PairwiseListMatrix(rand(div(150*(150-1),2))) for i in 1:sample ]\n", " mat = Matrix{Float64}[ full(l) for l in list ] \n", " @test_approx_eq sum(list) sum(mat)\n", " k += 1\n", " TIME[k] = @elapsed sum(list)\n", " k += 1\n", " TIME[k] = @elapsed sum(mat)\n", "end\n", "\n", "plot(x=XS, y=TIME, color=NAMES, Geom.point, Geom.smooth)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### MEAN" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " 0.00\n", " 0.05\n", " 0.10\n", " 0.15\n", " 0.20\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " x\n", " \n", " \n", " -2500\n", " -2000\n", " -1500\n", " -1000\n", " -500\n", " 0\n", " 500\n", " 1000\n", " 1500\n", " 2000\n", " 2500\n", " 3000\n", " 3500\n", " 4000\n", " 4500\n", " -2000\n", " -1900\n", " -1800\n", " -1700\n", " -1600\n", " -1500\n", " -1400\n", " -1300\n", " -1200\n", " -1100\n", " -1000\n", " -900\n", " -800\n", " -700\n", " -600\n", " -500\n", " -400\n", " -300\n", " -200\n", " -100\n", " 0\n", " 100\n", " 200\n", " 300\n", " 400\n", " 500\n", " 600\n", " 700\n", " 800\n", " 900\n", " 1000\n", " 1100\n", " 1200\n", " 1300\n", " 1400\n", " 1500\n", " 1600\n", " 1700\n", " 1800\n", " 1900\n", " 2000\n", " 2100\n", " 2200\n", " 2300\n", " 2400\n", " 2500\n", " 2600\n", " 2700\n", " 2800\n", " 2900\n", " 3000\n", " 3100\n", " 3200\n", " 3300\n", " 3400\n", " 3500\n", " 3600\n", " 3700\n", " 3800\n", " 3900\n", " 4000\n", " -2000\n", " 0\n", " 2000\n", " 4000\n", " -2000\n", " -1800\n", " -1600\n", " -1400\n", " -1200\n", " -1000\n", " -800\n", " -600\n", " -400\n", " -200\n", " 0\n", " 200\n", " 400\n", " 600\n", " 800\n", " 1000\n", " 1200\n", " 1400\n", " 1600\n", " 1800\n", " 2000\n", " 2200\n", " 2400\n", " 2600\n", " 2800\n", " 3000\n", " 3200\n", " 3400\n", " 3600\n", " 3800\n", " 4000\n", " \n", " \n", " \n", " pairwiselistmatrix\n", " full\n", " \n", " \n", " \n", " \n", " \n", " \n", " Color\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " -0.25\n", " -0.20\n", " -0.15\n", " -0.10\n", " -0.05\n", " 0.00\n", " 0.05\n", " 0.10\n", " 0.15\n", " 0.20\n", " 0.25\n", " 0.30\n", " 0.35\n", " 0.40\n", " 0.45\n", " -0.20\n", " -0.19\n", " -0.18\n", " -0.17\n", " -0.16\n", " -0.15\n", " -0.14\n", " -0.13\n", " -0.12\n", " -0.11\n", " -0.10\n", " -0.09\n", " -0.08\n", " -0.07\n", " -0.06\n", " -0.05\n", " -0.04\n", " -0.03\n", " -0.02\n", " -0.01\n", " 0.00\n", " 0.01\n", " 0.02\n", " 0.03\n", " 0.04\n", " 0.05\n", " 0.06\n", " 0.07\n", " 0.08\n", " 0.09\n", " 0.10\n", " 0.11\n", " 0.12\n", " 0.13\n", " 0.14\n", " 0.15\n", " 0.16\n", " 0.17\n", " 0.18\n", " 0.19\n", " 0.20\n", " 0.21\n", " 0.22\n", " 0.23\n", " 0.24\n", " 0.25\n", " 0.26\n", " 0.27\n", " 0.28\n", " 0.29\n", " 0.30\n", " 0.31\n", " 0.32\n", " 0.33\n", " 0.34\n", " 0.35\n", " 0.36\n", " 0.37\n", " 0.38\n", " 0.39\n", " 0.40\n", " 0.41\n", " -0.2\n", " 0.0\n", " 0.2\n", " 0.4\n", " -0.20\n", " -0.18\n", " -0.16\n", " -0.14\n", " -0.12\n", " -0.10\n", " -0.08\n", " -0.06\n", " -0.04\n", " -0.02\n", " 0.00\n", " 0.02\n", " 0.04\n", " 0.06\n", " 0.08\n", " 0.10\n", " 0.12\n", " 0.14\n", " 0.16\n", " 0.18\n", " 0.20\n", " 0.22\n", " 0.24\n", " 0.26\n", " 0.28\n", " 0.30\n", " 0.32\n", " 0.34\n", " 0.36\n", " 0.38\n", " 0.40\n", " 0.42\n", " \n", " \n", " y\n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n" ], "text/plain": [ "Plot(...)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = 0\n", "for sample in SAMPLES\n", " list = PairwiseListMatrix{Float64, false, Vector{Float64}}[ PairwiseListMatrix(rand(div(150*(150-1),2))) for i in 1:sample ]\n", " mat = Matrix{Float64}[ full(l) for l in list ] \n", " @test_approx_eq mean(list) mean(mat)\n", " k += 1\n", " TIME[k] = @elapsed mean(list)\n", " k += 1\n", " TIME[k] = @elapsed mean(mat)\n", "end\n", "\n", "plot(x=XS, y=TIME, color=NAMES, Geom.point, Geom.smooth)" ] } ], "metadata": { "kernelspec": { "display_name": "Julia 0.5.0", "language": "julia", "name": "julia-0.5" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "0.5.0" } }, "nbformat": 4, "nbformat_minor": 0 }