From 6bdeb16a1d50bd1686c4a654e8015aac718a9d97 Mon Sep 17 00:00:00 2001 From: Azzaare Date: Mon, 5 Aug 2024 07:38:43 +0000 Subject: [PATCH 1/6] Adds tests and fixes import --- Project.toml | 7 +++---- perf/Project.toml | 1 - src/CompositionalNetworks.jl | 19 +++++++++---------- src/composition.jl | 2 +- src/learn.jl | 2 +- src/metrics.jl | 2 +- test/ExplicitImports.jl | 3 +++ test/JET.jl | 3 +++ test/runtests.jl | 11 +++++++++-- 9 files changed, 30 insertions(+), 20 deletions(-) create mode 100644 test/ExplicitImports.jl create mode 100644 test/JET.jl diff --git a/Project.toml b/Project.toml index a432cb2..ff76b74 100644 --- a/Project.toml +++ b/Project.toml @@ -12,7 +12,6 @@ JuliaFormatter = "98e50ef6-434e-11e9-1051-2b60c6c9e899" OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" TestItems = "1c621080-faea-4a02-84b6-bbd5e436b8fe" -ThreadSafeDicts = "4239201d-c60e-5e0a-9702-85d713665ba7" Unrolled = "9602ed7d-8fef-5bc8-8597-8f21381861e8" [compat] @@ -23,19 +22,19 @@ Distances = "0.10" JuliaFormatter = "1" OrderedCollections = "1" Random = "1" -TestItemRunner = "0.2, 1" TestItems = "0.1, 1" -ThreadSafeDicts = "0.1" Unrolled = "0.1" julia = "1.8" [extras] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Evolutionary = "86b6b26d-c046-49b6-aa0b-5f0f74682bd6" +ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7" +JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" Memoization = "6fafb56a-5788-4b4e-91ca-c0cea6611c73" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a" ThreadPools = "b189fb0b-2eb5-4ed4-bc0c-d34c51242431" [targets] -test = ["Aqua", "Evolutionary", "Memoization", "Test", "TestItemRunner", "ThreadPools"] +test = ["Aqua", "ExplicitImports", "JET", "Evolutionary", "Memoization", "Test", "TestItemRunner", "ThreadPools"] diff --git a/perf/Project.toml b/perf/Project.toml index e348fbb..fae3d9e 100644 --- a/perf/Project.toml +++ b/perf/Project.toml @@ -2,4 +2,3 @@ CompositionalNetworks = "4b67e4b5-442d-4ef5-b760-3f5df3a57537" ConstraintDomains = "5800fd60-8556-4464-8d61-84ebf7a0bedb" PerfChecker = "6309bf6b-a531-4b08-891e-8ee981e5c424" -Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/src/CompositionalNetworks.jl b/src/CompositionalNetworks.jl index 2bc3939..42b8fe9 100644 --- a/src/CompositionalNetworks.jl +++ b/src/CompositionalNetworks.jl @@ -1,16 +1,15 @@ module CompositionalNetworks -# Usings -using ConstraintCommons -using ConstraintDomains -using Dictionaries +# imports +import ConstraintCommons: incsert! +import ConstraintDomains: explore +import Dictionaries: Dictionary, set! import Distances -using JuliaFormatter -using OrderedCollections -using Random -using TestItems -using ThreadSafeDicts -using Unrolled +import JuliaFormatter: SciMLStyle, format_text +import OrderedCollections: LittleDict +import Random: bitrand +import TestItems: @testitem +import Unrolled: @unroll export Composition export ICN diff --git a/src/composition.jl b/src/composition.jl index 2a27ef2..6e200d1 100644 --- a/src/composition.jl +++ b/src/composition.jl @@ -91,7 +91,7 @@ function generate(c::Composition, name, ::Val{:Julia}) return $ag(@view X[:, 1]) |> (y -> $co(y; dom_size, nvars=length(x), params...)) end """ - return documentation * format_text(output, BlueStyle(); pipe_to_function_call = false) + return documentation * format_text(output, SciMLStyle(); pipe_to_function_call = false) end """ diff --git a/src/learn.jl b/src/learn.jl index 6a71559..a2410f7 100644 --- a/src/learn.jl +++ b/src/learn.jl @@ -1,6 +1,6 @@ abstract type AbstractOptimizer end -function optimize!(args...) +function optimize!(args...; kwargs...) return nothing end diff --git a/src/metrics.jl b/src/metrics.jl index 992b323..542c6e8 100644 --- a/src/metrics.jl +++ b/src/metrics.jl @@ -7,7 +7,7 @@ hamming(x, X) = mapreduce(y -> Distances.hamming(x, y), min, X) """ minkowski(x, X, p) """ -minkowski(x, X, p) = mapreduce(Distances.minkowski(x, y, p), min, X) +minkowski(x, X, p) = mapreduce(y -> Distances.minkowski(x, y, p), min, X) """ manhattan(x, X) diff --git a/test/ExplicitImports.jl b/test/ExplicitImports.jl new file mode 100644 index 0000000..e9058ce --- /dev/null +++ b/test/ExplicitImports.jl @@ -0,0 +1,3 @@ +@testset "Look for Explicit Imports" begin + @test check_no_implicit_imports(CompositionalNetworks) === nothing +end diff --git a/test/JET.jl b/test/JET.jl new file mode 100644 index 0000000..41736d6 --- /dev/null +++ b/test/JET.jl @@ -0,0 +1,3 @@ +@testset "Code linting (JET.jl)" begin + JET.test_package(CompositionalNetworks; target_defined_modules = true) +end diff --git a/test/runtests.jl b/test/runtests.jl index 8c2c27c..c3ed1ee 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,9 +1,16 @@ +using CompositionalNetworks + +using Aqua +using ExplicitImports +using JET using Test using TestItemRunner -using TestItems -@testset "Package tests: CompositionalNetworks" begin +@testset "Package tests: ConstraintCommons" begin include("Aqua.jl") + include("ExplicitImports.jl") + include("JET.jl") include("TestItemRunner.jl") + include("icn.jl") end From 87b43a6b3cdcc685730a53fdf7d5c2e4c075b8af Mon Sep 17 00:00:00 2001 From: Azzaare Date: Mon, 5 Aug 2024 07:41:30 +0000 Subject: [PATCH 2/6] Removes all perf files. Please look at ConstraintLearning.jl or ConstraintLearningBenchmarks.jl --- perf/Project.toml | 4 - perf/allocs.jl | 36 -- perf/bench.jl | 21 - perf/benchmarks/benchmark-0.2.7.csv | 11 - perf/benchmarks/benchmark-0.3.0.csv | 11 - perf/benchmarks/benchmark-0.3.1.csv | 11 - perf/benchmarks/benchmark-allocs.pdf | Bin 23056 -> 0 bytes perf/benchmarks/benchmark-allocs.png | Bin 11340 -> 0 bytes perf/benchmarks/benchmark-allocs.svg | 371 ----------- perf/benchmarks/benchmark-allocs.tikz | 282 --------- perf/benchmarks/benchmark-evolutions.pdf | Bin 25006 -> 0 bytes perf/benchmarks/benchmark-evolutions.png | Bin 32070 -> 0 bytes perf/benchmarks/benchmark-evolutions.svg | 415 ------------- perf/benchmarks/benchmark-evolutions.tikz | 45 -- perf/benchmarks/benchmark-gctimes.pdf | Bin 31482 -> 0 bytes perf/benchmarks/benchmark-gctimes.png | Bin 14276 -> 0 bytes perf/benchmarks/benchmark-gctimes.svg | 405 ------------ perf/benchmarks/benchmark-gctimes.tikz | 289 --------- perf/benchmarks/benchmark-memory.pdf | Bin 23367 -> 0 bytes perf/benchmarks/benchmark-memory.png | Bin 11827 -> 0 bytes perf/benchmarks/benchmark-memory.svg | 375 ----------- perf/benchmarks/benchmark-memory.tikz | 282 --------- perf/benchmarks/benchmark-params-0.2.7.txt | 1 - perf/benchmarks/benchmark-params-0.3.0.txt | 1 - perf/benchmarks/benchmark-params-0.3.1.txt | 1 - perf/benchmarks/benchmark-times.pdf | Bin 23408 -> 0 bytes perf/benchmarks/benchmark-times.png | Bin 12925 -> 0 bytes perf/benchmarks/benchmark-times.svg | 364 ----------- perf/benchmarks/benchmark-times.tikz | 290 --------- perf/mallocs/mallocs-0.2.7.csv | 383 ------------ perf/mallocs/mallocs-0.2.7.pdf | Bin 12674 -> 0 bytes perf/mallocs/mallocs-0.2.7.png | Bin 30759 -> 0 bytes perf/mallocs/mallocs-0.2.7.svg | 385 ------------ perf/mallocs/mallocs-0.2.7.tikz | 352 ----------- perf/mallocs/mallocs-0.3.0.csv | 121 ---- perf/mallocs/mallocs-0.3.0.pdf | Bin 14665 -> 0 bytes perf/mallocs/mallocs-0.3.0.png | Bin 38108 -> 0 bytes perf/mallocs/mallocs-0.3.0.svg | 503 --------------- perf/mallocs/mallocs-0.3.0.tikz | 526 ---------------- perf/mallocs/mallocs-0.3.1.csv | 121 ---- perf/mallocs/mallocs-0.3.1.pdf | Bin 14980 -> 0 bytes perf/mallocs/mallocs-0.3.1.png | Bin 37747 -> 0 bytes perf/mallocs/mallocs-0.3.1.svg | 511 --------------- perf/mallocs/mallocs-0.3.1.tikz | 526 ---------------- perf/mallocs/mallocs-evolutions.pdf | Bin 36171 -> 0 bytes perf/mallocs/mallocs-evolutions.png | Bin 48755 -> 0 bytes perf/mallocs/mallocs-evolutions.svg | 687 --------------------- perf/mallocs/mallocs-evolutions.tikz | 135 ---- 48 files changed, 7465 deletions(-) delete mode 100644 perf/Project.toml delete mode 100644 perf/allocs.jl delete mode 100644 perf/bench.jl delete mode 100644 perf/benchmarks/benchmark-0.2.7.csv delete mode 100644 perf/benchmarks/benchmark-0.3.0.csv delete mode 100644 perf/benchmarks/benchmark-0.3.1.csv delete mode 100644 perf/benchmarks/benchmark-allocs.pdf delete mode 100644 perf/benchmarks/benchmark-allocs.png delete mode 100644 perf/benchmarks/benchmark-allocs.svg delete mode 100644 perf/benchmarks/benchmark-allocs.tikz delete mode 100644 perf/benchmarks/benchmark-evolutions.pdf delete mode 100644 perf/benchmarks/benchmark-evolutions.png delete mode 100644 perf/benchmarks/benchmark-evolutions.svg delete mode 100644 perf/benchmarks/benchmark-evolutions.tikz delete mode 100644 perf/benchmarks/benchmark-gctimes.pdf delete mode 100644 perf/benchmarks/benchmark-gctimes.png delete mode 100644 perf/benchmarks/benchmark-gctimes.svg delete mode 100644 perf/benchmarks/benchmark-gctimes.tikz delete mode 100644 perf/benchmarks/benchmark-memory.pdf delete mode 100644 perf/benchmarks/benchmark-memory.png delete mode 100644 perf/benchmarks/benchmark-memory.svg delete mode 100644 perf/benchmarks/benchmark-memory.tikz delete mode 100644 perf/benchmarks/benchmark-params-0.2.7.txt delete mode 100644 perf/benchmarks/benchmark-params-0.3.0.txt delete mode 100644 perf/benchmarks/benchmark-params-0.3.1.txt delete mode 100644 perf/benchmarks/benchmark-times.pdf delete mode 100644 perf/benchmarks/benchmark-times.png delete mode 100644 perf/benchmarks/benchmark-times.svg delete mode 100644 perf/benchmarks/benchmark-times.tikz delete mode 100644 perf/mallocs/mallocs-0.2.7.csv delete mode 100644 perf/mallocs/mallocs-0.2.7.pdf delete mode 100644 perf/mallocs/mallocs-0.2.7.png delete mode 100644 perf/mallocs/mallocs-0.2.7.svg delete mode 100644 perf/mallocs/mallocs-0.2.7.tikz delete mode 100644 perf/mallocs/mallocs-0.3.0.csv delete mode 100644 perf/mallocs/mallocs-0.3.0.pdf delete mode 100644 perf/mallocs/mallocs-0.3.0.png delete mode 100644 perf/mallocs/mallocs-0.3.0.svg delete mode 100644 perf/mallocs/mallocs-0.3.0.tikz delete mode 100644 perf/mallocs/mallocs-0.3.1.csv delete mode 100644 perf/mallocs/mallocs-0.3.1.pdf delete mode 100644 perf/mallocs/mallocs-0.3.1.png delete mode 100644 perf/mallocs/mallocs-0.3.1.svg delete mode 100644 perf/mallocs/mallocs-0.3.1.tikz delete mode 100644 perf/mallocs/mallocs-evolutions.pdf delete mode 100644 perf/mallocs/mallocs-evolutions.png delete mode 100644 perf/mallocs/mallocs-evolutions.svg delete mode 100644 perf/mallocs/mallocs-evolutions.tikz diff --git a/perf/Project.toml b/perf/Project.toml deleted file mode 100644 index fae3d9e..0000000 --- a/perf/Project.toml +++ /dev/null @@ -1,4 +0,0 @@ -[deps] -CompositionalNetworks = "4b67e4b5-442d-4ef5-b760-3f5df3a57537" -ConstraintDomains = "5800fd60-8556-4464-8d61-84ebf7a0bedb" -PerfChecker = "6309bf6b-a531-4b08-891e-8ee981e5c424" diff --git a/perf/allocs.jl b/perf/allocs.jl deleted file mode 100644 index dcafcf9..0000000 --- a/perf/allocs.jl +++ /dev/null @@ -1,36 +0,0 @@ -using PerfChecker -using Test - -using CompositionalNetworks -using ConstraintDomains - -@testset "PerfChecker.jl" begin - # Title of the alloc check (for logging purpose) - title = "Explore, Learn, and Compose" - - # Dependencies needed to execute pre_alloc and alloc - dependencies = [CompositionalNetworks, ConstraintDomains] - - # Target of the alloc check - targets = [CompositionalNetworks] - - # Code specific to the package being checked - domains = fill(domain([1, 2, 3]), 3) - - # Code to trigger precompilation before the alloc check - pre_alloc() = foreach(_ -> explore_learn_compose(domains, allunique), 1:10) - - # Code being allocations check - alloc() = explore_learn_compose(domains, allunique) - - # Actual call to PerfChecker - alloc_check( - title, - dependencies, - targets, - pre_alloc, - alloc; - path = @__DIR__, - threads = 10, - ) -end diff --git a/perf/bench.jl b/perf/bench.jl deleted file mode 100644 index 5b37b3e..0000000 --- a/perf/bench.jl +++ /dev/null @@ -1,21 +0,0 @@ -using PerfChecker -using BenchmarkTools - -using CompositionalNetworks -using ConstraintDomains - -# Target of the becnhamrk -target = CompositionalNetworks - -# Code specific to the package being checked -domains = fill(domain([1, 2, 3, 4]), 4) - -# Code to trigger precompilation before the becnh (optional) -foreach(_ -> explore_learn_compose(domains, allunique), 1:10) - -# Code being benchmarked -t = @benchmark explore_learn_compose(domains, allunique) evals = 1 samples = 10 seconds = - 3600 - -# Store the bench results -store_benchmark(t, target; path = @__DIR__) diff --git a/perf/benchmarks/benchmark-0.2.7.csv b/perf/benchmarks/benchmark-0.2.7.csv deleted file mode 100644 index aef1b5c..0000000 --- a/perf/benchmarks/benchmark-0.2.7.csv +++ /dev/null @@ -1,11 +0,0 @@ -times,gctimes,memory,allocs -2.82057323e10,7.4165509e9,35201313954,772781687 -3.31711664e10,1.09701184e10,35201313954,772781687 -2.94444416e10,8.9803602e9,35201313954,772781687 -2.75833201e10,7.4754396e9,35201313954,772781687 -2.64568053e10,6.8462894e9,35201313954,772781687 -3.03186626e10,9.2108541e9,35201313954,772781687 -2.72911134e10,7.3486411e9,35201313954,772781687 -2.90782494e10,8.4920859e9,35201313954,772781687 -2.97272747e10,9.0009021e9,35201313954,772781687 -2.70209456e10,7.2544251e9,35201313954,772781687 diff --git a/perf/benchmarks/benchmark-0.3.0.csv b/perf/benchmarks/benchmark-0.3.0.csv deleted file mode 100644 index f4947d4..0000000 --- a/perf/benchmarks/benchmark-0.3.0.csv +++ /dev/null @@ -1,11 +0,0 @@ -times,gctimes,memory,allocs -4.5054707e9,4.609721e8,1688680160,43902598 -4.4884263e9,5.096094e8,1688680160,43902598 -5.1127691e9,5.08184e8,1688680160,43902598 -5.5702289e9,5.551036e8,1688680160,43902598 -4.685473e9,5.138967e8,1688680160,43902598 -3.9022191e9,4.279265e8,1688680160,43902598 -3.8231374e9,4.314888e8,1688680160,43902598 -5.1091927e9,5.27126e8,1688680160,43902598 -2.6517206e9,3.701838e8,1688680160,43902598 -1.547612e9,2.510559e8,1688680160,43902598 diff --git a/perf/benchmarks/benchmark-0.3.1.csv b/perf/benchmarks/benchmark-0.3.1.csv deleted file mode 100644 index 0cbc899..0000000 --- a/perf/benchmarks/benchmark-0.3.1.csv +++ /dev/null @@ -1,11 +0,0 @@ -times,gctimes,memory,allocs -6.2163534e9,6.269408e8,1791540787,45464260 -3.2730546e9,3.811795e8,1791540787,45464260 -4.0982624e9,4.420458e8,1791540787,45464260 -3.618149e9,4.244872e8,1791540787,45464260 -4.5703931e9,5.245305e8,1791540787,45464260 -2.4535218e9,3.193049e8,1791540787,45464260 -3.8460514e9,4.634933e8,1791540787,45464260 -2.7953075e9,3.992261e8,1791540787,45464260 -1.6829643e9,2.564143e8,1791540787,45464260 -5.7435154e9,6.207959e8,1791540787,45464260 diff --git a/perf/benchmarks/benchmark-allocs.pdf b/perf/benchmarks/benchmark-allocs.pdf deleted file mode 100644 index c8a93ac9e89b682042e6e16fc4ce6b710a515ae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23056 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 diff --git a/perf/benchmarks/benchmark-allocs.png b/perf/benchmarks/benchmark-allocs.png deleted file mode 100644 index 6e74d03e0e5a550535ad31f4bddb5523208d5ffb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11340 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 diff --git a/perf/benchmarks/benchmark-allocs.svg b/perf/benchmarks/benchmark-allocs.svg deleted file mode 100644 index 9c7fcca..0000000 --- a/perf/benchmarks/benchmark-allocs.svg +++ /dev/null @@ -1,371 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/perf/benchmarks/benchmark-allocs.tikz b/perf/benchmarks/benchmark-allocs.tikz deleted file mode 100644 index 9d5a1a0..0000000 --- a/perf/benchmarks/benchmark-allocs.tikz +++ /dev/null @@ -1,282 +0,0 @@ -\begin{tikzpicture}[/tikz/background rectangle/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, draw opacity={1.0}}, show background rectangle] -\begin{axis}[point meta max={nan}, point meta min={nan}, legend cell align={left}, legend columns={1}, title={Benchmarks (allocs) evolution in -CompositionalNetworks.jl}, title style={at={{(0.5,1)}}, anchor={south}, font={{\fontsize{14 pt}{18.2 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, legend style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid, fill={rgb,1:red,1.0;green,1.0;blue,1.0}, fill opacity={1.0}, text opacity={1.0}, font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, text={rgb,1:red,0.0;green,0.0;blue,0.0}, cells={anchor={center}}, at={(1.02, 1)}, anchor={north west}}, axis background/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, opacity={1.0}}, anchor={north west}, xshift={1.0mm}, yshift={-1.0mm}, width={145.4mm}, height={99.6mm}, scaled x ticks={false}, xlabel={version}, x tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, x tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, xlabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, xmajorgrids={true}, xmin={0.015999999999999986}, xmax={2.984}, xtick={{0.5,1.5,2.5}}, xticklabels={{$0.2.7$,$0.3.0$,$0.3.1$}}, xtick align={inside}, xticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, x grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis x line*={left}, x axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, scaled y ticks={false}, ylabel={allocations}, y tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, y tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, ylabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, ymode={log}, log basis y={10}, ymajorgrids={true}, ymin={4.028313140080153e7}, ymax={8.422166441968265e8}, ytick={{1.0e6,1.0e9,1.0e12}}, yticklabels={{$10^{6}$,$10^{9}$,$10^{12}$}}, ytick align={inside}, yticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, y grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis y line*={left}, y axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, colorbar={false}] - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid] - table[row sep={\\}] - { - \\ - 0.5 7.72781687e8 \\ - 0.3 7.72781687e8 \\ - 0.7 7.72781687e8 \\ - 0.5 7.72781687e8 \\ - 0.5 7.72781687e8 \\ - } - ; - \addlegendentry {allocs} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 7.72781687e8 \\ - 0.9 7.72781687e8 \\ - 0.09999999999999998 7.72781687e8 \\ - 0.09999999999999998 7.72781687e8 \\ - 0.9 7.72781687e8 \\ - 0.9 7.72781687e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 7.72781687e8 \\ - 0.09999999999999998 7.72781687e8 \\ - 0.09999999999999998 7.72781687e8 \\ - 0.9 7.72781687e8 \\ - 0.9 7.72781687e8 \\ - 0.5 7.72781687e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 7.72781687e8 \\ - 0.3 7.72781687e8 \\ - 0.7 7.72781687e8 \\ - 0.5 7.72781687e8 \\ - 0.5 7.72781687e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 4.3902598e7 \\ - 1.3 4.3902598e7 \\ - 1.7 4.3902598e7 \\ - 1.5 4.3902598e7 \\ - 1.5 4.3902598e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 4.3902598e7 \\ - 1.9 4.3902598e7 \\ - 1.1 4.3902598e7 \\ - 1.1 4.3902598e7 \\ - 1.9 4.3902598e7 \\ - 1.9 4.3902598e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 4.3902598e7 \\ - 1.1 4.3902598e7 \\ - 1.1 4.3902598e7 \\ - 1.9 4.3902598e7 \\ - 1.9 4.3902598e7 \\ - 1.5 4.3902598e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 4.3902598e7 \\ - 1.3 4.3902598e7 \\ - 1.7 4.3902598e7 \\ - 1.5 4.3902598e7 \\ - 1.5 4.3902598e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 4.546426e7 \\ - 2.3 4.546426e7 \\ - 2.7 4.546426e7 \\ - 2.5 4.546426e7 \\ - 2.5 4.546426e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 4.546426e7 \\ - 2.9 4.546426e7 \\ - 2.1 4.546426e7 \\ - 2.1 4.546426e7 \\ - 2.9 4.546426e7 \\ - 2.9 4.546426e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 4.546426e7 \\ - 2.1 4.546426e7 \\ - 2.1 4.546426e7 \\ - 2.9 4.546426e7 \\ - 2.9 4.546426e7 \\ - 2.5 4.546426e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={db0199ff-11df-4b33-b692-8e4d5152104f}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 4.546426e7 \\ - 2.3 4.546426e7 \\ - 2.7 4.546426e7 \\ - 2.5 4.546426e7 \\ - 2.5 4.546426e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 7.72781687e8 \\ - 0.3 7.72781687e8 \\ - 0.7 7.72781687e8 \\ - 0.5 7.72781687e8 \\ - 0.5 7.72781687e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 7.72781687e8 \\ - 0.9 7.72781687e8 \\ - 0.09999999999999998 7.72781687e8 \\ - 0.09999999999999998 7.72781687e8 \\ - 0.9 7.72781687e8 \\ - 0.9 7.72781687e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 7.72781687e8 \\ - 0.09999999999999998 7.72781687e8 \\ - 0.09999999999999998 7.72781687e8 \\ - 0.9 7.72781687e8 \\ - 0.9 7.72781687e8 \\ - 0.5 7.72781687e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 7.72781687e8 \\ - 0.3 7.72781687e8 \\ - 0.7 7.72781687e8 \\ - 0.5 7.72781687e8 \\ - 0.5 7.72781687e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 4.3902598e7 \\ - 1.3 4.3902598e7 \\ - 1.7 4.3902598e7 \\ - 1.5 4.3902598e7 \\ - 1.5 4.3902598e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 4.3902598e7 \\ - 1.9 4.3902598e7 \\ - 1.1 4.3902598e7 \\ - 1.1 4.3902598e7 \\ - 1.9 4.3902598e7 \\ - 1.9 4.3902598e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 4.3902598e7 \\ - 1.1 4.3902598e7 \\ - 1.1 4.3902598e7 \\ - 1.9 4.3902598e7 \\ - 1.9 4.3902598e7 \\ - 1.5 4.3902598e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 4.3902598e7 \\ - 1.3 4.3902598e7 \\ - 1.7 4.3902598e7 \\ - 1.5 4.3902598e7 \\ - 1.5 4.3902598e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 4.546426e7 \\ - 2.3 4.546426e7 \\ - 2.7 4.546426e7 \\ - 2.5 4.546426e7 \\ - 2.5 4.546426e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 4.546426e7 \\ - 2.9 4.546426e7 \\ - 2.1 4.546426e7 \\ - 2.1 4.546426e7 \\ - 2.9 4.546426e7 \\ - 2.9 4.546426e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 4.546426e7 \\ - 2.1 4.546426e7 \\ - 2.1 4.546426e7 \\ - 2.9 4.546426e7 \\ - 2.9 4.546426e7 \\ - 2.5 4.546426e7 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={ef0f6e0c-8e69-4ae5-91ee-654076f239d6}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 4.546426e7 \\ - 2.3 4.546426e7 \\ - 2.7 4.546426e7 \\ - 2.5 4.546426e7 \\ - 2.5 4.546426e7 \\ - } - ; -\end{axis} -\end{tikzpicture} diff --git a/perf/benchmarks/benchmark-evolutions.pdf b/perf/benchmarks/benchmark-evolutions.pdf deleted file mode 100644 index da73c8fb91a5a298ad56450ab8ee159361b7f1d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25006 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 Voz1~Wz;}KHClV#4xS|Bo{{jmW*BAf* diff --git a/perf/benchmarks/benchmark-evolutions.png b/perf/benchmarks/benchmark-evolutions.png deleted file mode 100644 index a19587eb63dd4afd3085ac5de7de20b2739688e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32070 zcmagGbyyZ_*FHQb0wMy^(kas2DTtJSbazX4hl(IAB@H6d-6dVpCEeX6-M{PBz2EnF z-tUj^K8}6tJ^Ns0u9<7CbDis4Yfa!AS@Fln_{b0hJ(iSssQ^LuA|MDZ1?e96KcZ)S zzrerX92CSw;3m81eZav(TM2as2tw0`{R5XRlw}S$vx7fP;EJF_mHSjLyofvJgy zr1J=;0NF#b&pI?Y@Rl2BPfm7THDh86wAp8w@->MHwEGjg(*_Zfi=ksU4Q* zo}mz*kihG()=T%DC`HigGAq@4YjZQ6!(!~4Sa3^A3$(D%{9#<%g(&5F?65aGzKo>g zLq0lI*5T&nW{uL)(qTR3&yL2bAUWxj5)*6xfF`J> zt1FZf_DQD*{B$ec#++n1&um{z&)+(q?o9Ta2~Zo|(8g?q@$I>;#;98VIP7qlbEBr9 zNdNkEp%qQ&dZ%o_d3TC~O7@$)O8crHxo9Ox+2qXd@b4jU5(cg6gNCcUGKR@tzm89* zZK$cK?+#kg?%%&3wN7jBO}2M;y2|Ht(iGD}BTWeUfS~U~n3tDlMeTjQ7@)<-MMt;& z+e$U<&CYz|9omdtB&CDB{jk0}932||aJ4>0H(?CCNFSlbi31oj> zCMG6&d3nuy>gwX+Vria&K_lO@j)0~`TgaCbX*v*%|Db8A!eZX%?xwuFyvJ$e z!}SLnkLyKUy>AT@lVzqiH#b&UFJHc7XJcfpR#ryhu~Q-zj8juvt08wiH2<8~KI_?0pxgPu zVvcW`Wz35yVu_`fd#-D=UM8Z$301^l{BUkLg}mSfG;r zGEum`(iPR--fmJhX+2isuwGhLR##iAQl#T`dwl_n9lVE0ZJq4VEnV-6kGtVfNl80< zdvnv%SIgl-_BAuNx3@eFYoFSe&d<+-M@JVDc$~JBG&KnVTGO7>GBEVDw`ZiKrG5SC zODQQQH*j&Ze&4stXsXVoNF^`BoR@|saMzVXO;og%squPvcDCNAD{^DQtX`+lE{ULLTdTE3J)Gm4lz zK#>FB16Cvn-j|zM&_U|mH8mUC(P98e!&-s`BR|ce{bZ*JZ!#nBAWqKHqXD7)?QO*z zC73$|(V1B-86KD11o)3yvw=lSHkGbR+q!Hj~5j{fz{^H&!W9>?>Z zan8dtGuPlDN^uW`ZjLc!Movyn?Ck7Py-p`TO&j2u{8Z6bh3z?6_)lg6{1U+c^W6{A zXjlAo>FFPCrXJxk9v>g??Cu(yT1}OkpMT+BkyTb!F3_kzh6Jy6*a}pxz>7eHho@IB z_1ncf0tX=8)E~4w($>~)-Ptr2U;%KclCMS<+Y^w3!%n5w+hEpvyYK<+bbr3l=MIJ# z^(SMRXadKBXY)P-IA6`(_hxE<^A|crjOM8d9kyYP6&lg0?UjJIOTF>x+I|M@Pr+-}ZH>{=a|!eoVj_*Jt81(!(6=)XRF)%W&9lDM^W9hB* zH^+8XW?5M*rsKSpeXN^GQF$8NZt1W8_U+p?gF~;gSySAy0HIFAeI*+krqqF|Q!LF! zZxG*gZIbKkmOJE$8+sfKSW%7uI2rV&ARM@zifMzF&;yJHcbSRKmeh)g>`!x zjotzf77otZ>MGTGxVs zcDcPAZ`8O;{QQ}D<-KSjCo}UKdK}HWJcXQmhg6R}9t+iHXlQ7Hsq<4)Z_oIdczN-m z>+9>CJrPr5$p{6?-Or-iMDL&sJEBr-utB#K-51Yyt#la=x;QOIWn!hQ+r| z5}#h#@$C~-R8*0)&%6CcBXU9v+O@xGu~G*BcKLvnFgiONxBRFb9BlaC%yK%SB83wm*qyzy56Q(=>jja!9E|RKuCL#3nydG)saeHw=Dmu{ zj*5z!4cD`?J7o6y#JFk}W)j>=5Mpa4aITkV`Aty&-flO98pQ%yMFr#}iX__kFb$MK< zT{lsb5D~%BR)DYY&>*DAL4^5L$RHmZxc}35%`X?2tdX%g3kcYq9Jl$AM5mKqbHt^>=|u6M6^m0t2pi=Zz> zCkzvF(djfMySVr>W!J{W#`(ExgoIISi@ELaNOMbT>#Dt*nApeNw%pv@z?&4n z0rzaV-NQpcI4yyq_QZJ7K-p`-LDR^6*?3%tsBZPj{G~(qv*!Ti`;qb#)dN z7KluOVGKIf47)_MF0_z?r9kM`mPfz@)6Eyqukb!>P?Gv_V;G ztd%8f%-W08iUZu*X?x7;`mhrO+;q#X4=z%a7!0}%*F8*)O0+S^AD7k=Z5W?F|JmDH zUSGtyCs5ypiK*Y4(tqqO0KLI7<~vNZX_y4Y9L&_PvAn#zv{VYPt7^`@$9?VW^i)F; z2mDbTy_o#i{L6R32Sq+N+p{k76?1hXZ!6N(ZGYC_()9|im))BCfMkY=i78n&ONn+; zXmOH}6X8SiUO-5uxpOjLT^3{cuppA}#y^4DK_CB`^IRd2!?O=+0(i+3)%AyE&WfBS ztdZQEcLtDnn`!3)x(!0!?pr}uQ#evm(x%Ja()9H7+S(~g>8xii(O7q0%wNdst%X zMK&F^Vs(Zrl+!2SHje>)D-91H2*ReDz%e8Ef`EW9fkM1|zDD8wc)GKk#OpXBDhl%| z;r!Edty*4jUJw~tfK|y8F81EAkclZoCQVgUE^h1%U`RwHBsNxJ6qPGvE?WSjFTtCf zXj`zaxdwjc0p7S(SsPko7N)B~Wkp5C_wR%}_D1J87A_iTUEyWcv%L8a=uTHImV%kU zHWT3E|2{fGBjP;OAGI0x!R$gaugNZq@wl_0a$b(RsPKAPxXJ2qFalJj@!cxxqn@ z(O_U;zz);iR6A}C1J)R;YKwuznm5OM?^|Y%*;OEnwyhB!q-NoVHb5T+WWx z2XL{m1KXGCJz1 zzUw?`eS;HhoNu9b==#HBuO=%aW3?HPZO zkRt(MKs&zz7YApml0-?$dlLfq{YR1F5>@W+-{0Rq_J9Ll z2Jk9j;igaZqpup<=Z|FNWMxsWqS>E4TQgws7HQxK@8q*xXaaf6^vul8+M06-0*|Yv z;alw3E8Ew479?KMAb|xgnU9t=N$?PNI#yc9(~uV)CPjes^p)og987_c(HV;iRc2wx zQKIF%n^o2IssO>};l98JZ_{&rf;76=E~9VHyY~)x5@dmiQk|le0@^rz)-r_kaiHu; ztq3sJ`qL>3pvG`;Z~)?4S>HNXzPP;Hx_$&~pO=?+!kS%;S`mMaKpbc~nFv3)!v075 z`9}!)PwnR)A?QD}pMQj)mbg%uh7>Xhu7ZAfV_5kr{Q^*Xdk2RC^*#oi9>5UfQuqUv z!@*yLb{P{=d@m}p0fFr4)2E1N#Mgk%pb~NmqqhN>;fMFlB}ibC`CO(R)0~2knDzbp zjQe&$x_XU9fwQe`({ey2qU8Wm;&J{fanuO_}T zt%39gSW21cK!g3;0ZUF2kg0(b^IY5T6hvBpQ4oYBHpEVZj$RBxAP{Yw3tvB@qo*$q zg+2b@=b;rK8&%t%0wHR;ug~hIdMt~{qmLpaBqWgQc0tuxzWVacPX3S?aQXrVL<9uO zo;;;okXl}>#_Cqex^3lTrMPe9kg3j1P6qDc$q-DW3}H`y&rqP5Gr||xTb*m-n)jr@ z2!yF7r&Ci#tR*9e^E?qft01&Y7VEb@AK%&B4D3XMo%n>)oc&wRv<*KswKyp{|LKIG z7>M#8KW=Vr0!ePn;_mzR?DeTSAU9uArk4M_BN`gdNDgY zJ0&IMk35H3phAZe{P4Z&awr#gQ4|yu<3+kcnHBO_PCdI-?lTw*S6S-hax??-3xvCZ zR~P4^oj#MdtIn30V9_59@z&a%2t4nb6waIv>E1f%4VCh>EU%6J`lZ#)+jzCd7y8QZ zW#gEn%+rB{WaEaDA!mY~cXJ+l?WaNLBC4ghwnu;^6m! zi-+zGi~}!<53@xO~Xyt-lA6%f+a*Mu{D)7+8jJyUu$mb78CKb zgzwkhY#qo^fqV#(z6a37#RUjGKx(O}sgabF1V{l3#AAipni?9lAYr9W^(+PXd;QFO zx%mjLuIFJlT~RauEhVL$iIU}m#a3V+@sZ<`%gZY(Mo*d1Qml!YyYJ5WxkQlC%=gU* zqO!`-s#b+eTY4#NPb(6wlTu3z_cg}rI8k*599Rf%i_z+A>UJxu=Dn|g-vH!+K7alU zvd7o*N(u^*T8vrd?iasT!4J5LD`0P0T3VIXvzLI-T1{8VWQ`ab8R4P$1C>F5pPwJd z2Mi3M1M9jk#wUR>=GGExCw5r7yQoa}^?Wg;c!iWk7cV~|C!G`!M`p+J_LBN7-PoKd zr6d9(;(cE=`V=0AXIC#W6yTal3_FkAZ-7K%yYe%_xaSK<*F^#Egk>fmE@C?-GsO1j z&K>;rm$^f6rx#h;MuJepxO`Oe1m^D+V)KgY$^8bgTQo&pzB$F@iEuy#S!ld|Q(?NR zXv1CpAd;y;wuK6Uo}bPtA!@+4Y=BC0cAZ4dW%&ZbyS16(;^G9M9Uzg1gL3oo92^{6 z_GTnUj)6e4URzrWG7&m*llx7W7O8+N4G7#N{pyLJTRa(a@<4DGI-9IDI8hf0PW?>R zlo^69GNKdx=*g-9iG|H?>B-8l@y|CT?u)IBvZIc{KG*Awf^$FE^^&+^VnNajauJ~K zLBjg_`Z6+o;5jidF#&&e0sCyw9%R@V21o%&Pvx+_p|0Ci z-+q1lrb2^nvmQF~M?-C?qH%{BE#h$T5q6moAasLZny&SwkLwnYvN_=EANC%<<}fHZ z&&?~;C^eGYNE*aSy}(GpgQnPtGPJQ>Q%J#f0j%Azlw1r#FC14r>zPyMFEY7`)tsws z^L-30BTYc07=f<*#1KeyR_(<}iUT^6hs7n@Fd2@eFLU;g`UcyRR}0B;NyM2fs{vRT z|2{sxKDcoaN^0QaUbT5fM`?YSG6Xe24*9EoQ{S6af?*YqQ%dYLUOwSHMCes8P1#}f z$I1meF<2eMBU0*jJQMCu=&R~{?6{6!CpN5xvLhKJZjak1v1sQCy%|;1p4AKvzyZO5 zy)~KBgB+9lncG0$+wKRxQ3a++VzP|nruk0~XbIXC@j%e?cpi0M+z16=<>*%JqK;w8Hgy1S6j za3Gj8+Rpouj(B1==J6O6<0T+ybVtWT1ii8B2IVNLLEguP!_zXBZ_Ouf=kKNfMye4n zsptN>wYUl1w{|x?aOY-K#dDNDJM1Lk}$J!aM>-nv!K>lauT1SG$4B0^b2J^-@f%9#Br?kKX_> z?jW#1K|?Fb&VEiq19Xvjpm(kHC1#oS0*+nC>v1|#w>~9%Y=>14dgQfTp<2K~08x5& zi8Ovs-3}i{(f*~rMQ;DwxhelMcqSPqaBbD!IPL0ciujtcIU&!#+{Zqj;$kjf#y!5?4)RASHbUtBAzNp{HHwrNcHBvz+_j$Ku?LiW-8$!8SXFXq33w$C zZ}QU}Gy>MN%1rv=*-RNZdDlVps|u8gh!WVixz80|ttUwt+7-GvIxRNekmzD=9W*i` zAX@OH@@P11sj1lR%#h)3j-K7Txq6h?=a}YW@7s%($d}+}OE2pub7}BO2**@Wab)RN zv>wY0#>x`?(rQ(nAfuJX>BspWn(RMdd=Unc#d>h9%+r-tK!ykxIK`Vl$?w7;=-f!E zw7|1-?APyDN|L(inD<+klB=^w@YQZ5JoqPC{LLPloUn{bj%gHpOXU zZg=BN?@oKmmNl<|g?uxwEiF}ej#a4J=#8OqM0%({BcFa-$^O##P^LEwxyOgbo#7ULO^^*s-o5rIZNiC6(tBcHpg`Ofn2 z8FPnnq)05WEHk;=m)jN5Qs&v*3_%iv&-qRFxyXAKSTBATGi_2Epi+UG;Bf_g|UG{zE`e}LFIQDO*7#w{!iG5uq| zd@0naudS~K64|cD*`AfPHF3j%?(Oeb&=Vryaq4+{u?};fp#&<->S<$W%RB?E+Y8pBPre$J5NGZal3%p@%cD7I1ta#pdNf_@S`jTFRC^f#c zJl+U@f6?)Tb2Ip9lFg6#?6JrA`ZYBaOiDaTuAIE%_D6*kI&gCXk;2|(j!<1PClwf zUW`BCzY1E8m}zHIXv`Bd%j~PjML^5BqF*QFA3+x}i;Q|mX!L>D%-z3s-mNoP$lH~9 zV@M)wL&Qum#d@1>=uqnLm0ZqMhRrzR_W3z7te6e@LPpKlaUV^zCZ>o=VZxIIy9QYHCyAs zwT;$-=dCY<8YS7kErVj4pU9%X*$i7ld)KD>0TQYzVU*OtM+ofc(*ayGb$a17+%^1r z5SA#B6|Z$MUdb%L5+zD>q=xIIo@Mbcf!g!tke}1@msbRjIZnV^iL=yYWoLJs33kXj zJfsj)u(M2H+-DY5?5IUn*!g*u%u}uQ!}N7{Ly_oo28+3ahAcx$gcS6y0ETwoK&B6V z<^D{fW#hehViN%XRM9Un!AOZfdcJv&2%_w%lZNCMHXT9#iWR4zq4x1r=-b0!T%XsLZ*%OZI&^a z%gj>`AwH@$0d^|eA&R>OY8swHP<)Ngeyl#?uPLP0ODy8;?QLoS3ZO;B$s3f;4NQBB zeKz%632~1hel8|=mFTowB)nI;k)n*%Vap3fsvVNg<&IN4@-N__q_=%8Pk4A9uDS|> z?2a;Rn;Fl&&l&S5Nbbz}c-C9lfA^(o4mpMMXd+W1(LP(7=9Fw%20YJ9Vm)ZQ0(JLz z9tRV7`5{2Rl9Q7B0n^)7iGQ6rzTIwc$WS$N4|J%6zpu2Gq8wsHi|e zsBXVu8pu}}J6F*)TsrddES(evw$>9!MH@juEGQoskWkjIdf_4e(hcNNvnYMrc+#w= zmc)u|R$Z3-)|q{-k+9Y3Z*b%#Iy&D4$>IjMzeEjtvZym;I-rcgSY$oiERk-NJ^Ge7 z++{?D%gxo*6LcAgetF8Tar*8)qLj2WkO_pcva&!z48f36jb2t-x(@UlFxky#z3%-Y zm7!5)@`;xtmkMJuPK63Nu_vbP9#k;Cfn4^E_*>DW=f10I2^)lhH`;1`~pALw74GIR%;0$#KyV%-R>&t<4RIR#|DV9BUal*RKSV3^UTie5` zNyJ)yqPD{~3VvE}5c}hD6yiLP{0@?c;7}gEwlBGI8M%L_I;=35t~`Z(n{gRHC0#_I zHOJOvd`_?o9e^GiK3?8JwGwi2@_P`FBoJdu2pIT4g#l3h%E~Xv3d+h4AV64voRgoI zH?j$2HYe4Wy(-VK!i5^vK7NpU&Y``7g%D>WeMVToQ+`?57~*8*CrlY8P0g(ZF<1PG zOUU)FE?t+7^ja%(dwn$hh_77RH5cp}Nf-s`1$ZK#+p=q7@0B!MG=a&y?F)`q(Ysw% z-IrI=1E`DxE(>9C8N6U|OicTrJAo4q1(*%!;sEj~;6Jcp>q+avQ0ac-op<`s`6fsW zu6C8yQWqWLjXzSpWnaxV@;JYGAHD8cm`5nF)-&!bjZ*rK zx4`hLk)`qwC>J0 zYzEv~rhnT8)pTS!QHoA#-+ig_IOIFS^c+(j{UbEA#av??921mH8<%Q5<8h?%XNZYPOjcSA96JeV?`>|~K zvFQ<>|4>YFv=kxGMe10O>M`Aqy}S^Vi*%g6aWIW?Js|*B(zXWX3&WkFq?^%A#}R&$ z`%p6(R!M2th?hx0`}fM{kCgWw%2G72+DI>uh*&6PW*!ME0vg}-o@&LWZ2dsOy4I)r zU4rPdZl&q*1x9&4?t!+Ehh%je;bN-(@1JB(QRR2zhm%gWk6ga%!ndh~}Cl;ORI{I;Q_umeF#KH>V= z<(b~Bsc&M@p|57NWsB9#25lyPnwU>r4~VL*OYBbzt25Q-b@Pap+iQg}Vr6aJAicK* zY-6cJTF>U#I<&t*P=R{lY_v2RdnM(cCg)Dkjb4|~FHZo|$bB1HE6G(U718}NLQ)tV z(#xhTcdVGeCH>^sNXZ#)o|u`g20Vo25?zryUBUt^1sItus<(mq!kxnRm{S7x&M)MlBzXO2 zpsBpWU<{ks`1Ps$yyzD3_LIjD3iG5)%~qPfHB5|THVF@+S0g`p0td;kbbs?6@pU`y z!GI@2NgenTIz~2v!dt(>iL_{&4t&0V^NnCN=2%r=|0sj}$3729ky?0qU+gf#LsPHm z9$j@tlZP(YwwFAbtSV;^*!6dK@L@c4hfVI8ExfO_ww#U!87Ix(_d`;tO-}St))Okm z%Pzc!ZAC1~Wg|k0A(n+fi3o)}j>%kmTX&Bi)h11sHFo7*Q%%ZNLIba*^4}%9Q1kd% zgoIG9-t$#A+@yUo^aVuUJ|}xj{{d4Wg8nsicfMU@?%)+kL5Il!YR!S;4UZE2e_j)z z;3n~Y8@4^vl+EfAd)$imjq{-X{sr3_Xtp1@{AQ_PIzLPQMv$V73J;<$r>diYDWq0^ zPo67gpqyP=*=Ztk&nU_A^wsY`uM#U;c10$EzRJAPmgh7qAsM%5P)!oqL56N#ogA)3 z8EOFa6PDIj#rB|TRdMq)lR?5Gx%)*=rGwbtql-~RDLjSV+^@eZ)vC*WjjyOd!#uQNQ>M0@ReKQcS0i8-WUhjMh@P?fY>V5W2E z5p-;FGt{yChvtHEZtP1=#ib1<1jyf{HW-+p3_5ebJ^>1ZVmyRx%$7N?m4hk#{gRUR zAOjlA*k;^$-tO!VP{#0-Dq`SEkboZ~tQl9xk|}}d-@nRRcOQ_Kw~tEW=1mx|Z7+ha z6(?TO0c?GI(>L)8oF#J_SD*qK+ z?Mzn<@UDU|jr#Cm4d`KG_%LU4YuLgmS>68gJd7VI-gs`TFC-dzTK`so6r(c}Q;QJ- zS+`8+DU-{`YWM+1WO#_pxc_Z8%LtC8Eii&-=Dnc(@(MIB*zg$xEd*5NKsU7W$lXuc zg@_<-9#tUv7&fY_XB%t``CEmhM?Gf^Bt?Rlm2l!>3Y;Hccwqp5g9c4EgoYvm9;1Sw zP8mA+p`xnF2NZ&Vuwn;PvXz_%VZKUjJv^Qm(6K;fN-4{CiRGHBhwsS&gqV3rGG-8+ z_a!{+7rCPp3_ydNa{V0yMkm(5gNLHo)hJrtf({$`93{{$gK{;GNi7Td=C)2Qfocj` zwm?G`15Iqt)s@fD;Mw1rbC$oBm8oeK7@%nLR+bV)izdKBhJ-izum={x?O*uo$2nXK zjvzpO6YoB~e!w_TDV$h%^wN|VLKmh#ma>1st=}UWTPHxlPL)uuMC$}<_4ou-d;2vd zb8|X1TBs0t#HXHB(9JVB2bymGw_LrpxyiFQ|AvXp89T=pZUZrJsM*fnwOoJt24QzI zHRqNX@*h`c2$H7$q`R;0`ktD?pLJCo;4tq`E_lW|YD(B2Ov;jv!< zI?Ik}vh4cmD#v85=y&w$S3f7#M{;RHE3L|DhW}6IJB|J6GoI#od>Ze9nv-#8nfB=p-5?3jFo#&ZK59~Xj(XBP(zSJnByD=VNKrd z3}eCXtXc|oQA}Yi4vJ72yP&~U>j5PFsE+NO!v$OJCr_SyxPNN2%s;*8Lo;k<{H{Bn z$f^)K#RYv{2p;myEdQupe#_PBMN4UIM=bxp^{!{1V8TVmPL9LI<2J)4ZdksCu28eP__15FD5s^yrz!i$4IVkPbZS)m;L4 z!S-tstEZz5@b5{*OBz#4V?EtvBc(T*p8BgOf%>ne&w9@!Lj}QLKIdTLsSx!;);=!zpV;?=M}(#0OEI>e z{(01gq=#6%efD5^`tEeUYWs&WBq(^6CO&?Dg90h(#x^V++l+O^(jQBcKg587c%?N* zchv^K3uZQvgF2xS!={hDnX?%;uVUPQ-~p6I#^eQCxTaqUhHrCAlecM{!WI1PLw$pt z336}yc=JvFESK8X^UKREhI^2|LG(x3GG`@8dG4_OZ=YT|A3qUYeJU*%usicyEG{)2 z4Z@@MPY>n!H;`b08KHG%#0WYP=sD(W{JiNA&AB+9TzEl%Y?xB>~AU!G9$g!Eb2 znnsLh4XB+uSRc{El#u-Mh6A(t1am$`IlxmwcS z13s=cW0PV&MnNd zZ=kPFc>#6OW6^`HvBQ#`h48v9>>aMc_mk*Tf~!}1g0DV*f6g0&#RtrI-tgQ?W8}Xo z6R*ob`46vb$S(p>S0dt-;%n8k?(f7rV)$LS5=+Am8PTBE1x_88WsR>KNr$g-BwP(3 zvvEfpmoJ8o|G6L1ds|c&bUJuQIMLkr-CK5=VTqjASn=?d8Y8(P(yGBuUp~{lK9e&M zN2gI%0aC=j3)R=3rjmN*xOCsQUDydbdqe(D{6sc+1-Mp7A!UFp>+?7ysNE$PiC&98D=lIyq$`0C_uj#0XBt{2hy|5X6I1VH041ijPzV9O_i%$ zaoKh+`R9Jj_o!1e%R^)$#&p?ovCOrox#Z71PszGDL+*0!-bRPK~G7at9%HvDI+C9pC%RdD@{59Dm=dU&LjQ z(F+U+LU5NtL=ni0pt#xLPH91e%%bE~qx;ktkFf#b%?gS2V!{a@30tU-tLN*$JR|g3 zB){6$0yT_{MvJ8bLqh+SZKObZAA0*$Rria6F&s8HA^&6M`oQc0ZU6GlVHoc;_ro&(-X>3& z+?&b4G5RHbnjpW7d`9HPxB=2D#W!^Gaqh;y>!ik2} z3mj2hSDZb{XzE+0q3)cqYrzl5|J*gOEy{j&d6hC2f~*o78r{Kq;U$B2-Wrf<1ltga0`d(*e7L^}Q(MTRA(Z$&_@8_rR%81wZFk_Ir7|xr%odT zke7>D;HFmcceVTtA?rAF)DrigUow~PE*Du7F<>Q_B?&?}U;K^H*tJr(L03wyS)q>u zi}!`CbVZeI9;?v*MOwL)7MDO$iOsSQsi-haBxC=W7Ich%bfDRBz+TV4~bbrfp2iWaL?*!RIP^f+W$C!Mr4dw#>%^D4|0_yrx$d2wq6vo|eyEDv?|9S2n+wAl2vfq)1W{Loa)0b3AiiVLlMpB^#^ z5A~C~MGk0HHg%1$)n5wcD+8g}pQSE4+pH^+3d|USkr9|Y{@j!F5)pmsyTo?UQ%*7b z7oXB2c~I@4uk1IMk%azfaHRh$Fy+y70)YwK-%O)@CnzWgOk);l*PVh%J&@6tfCj!| z{rh7;SY4uVOj$+(4u)J&c=TgIp7g}#5x?PV8zVGmqeNoE!_k{= z2S}bGlL;83@CIK50P|*6N=l&bb{ICUw7P1{nOK5xhmPt^uKv~U@w7n3O-Dm8F_Ho$ zcKi2xlJ|Ub3R`AW&>+IdsJ&GB6=djZPGiQmD?$}eyO&9g11++YQ6^=<@-kxwj`dcvKf`wx_PH&XDR>{x5HC{ z8hHSZ9Vi2pLA56Gjo$Z4jmQK)$3L7W|{eOL_LL?Rk;b_x@Eq#DbtG)}WM43$s zfvHWjG|mu|+t~TW4j)1yRq(#Ql3KjYt8l(K75!>HI1oIccY-cP07yvOT#QA1 z*#7KGK%CV!7yxU+Pome?lmH_7KZNjXr%4R0M(J75>wBC9=E`Xqc@LnOHbw^lLpV^+ zNcy5kD=PHo0-O{=1F%m;#4_o6gMMu5xgRyz**|%c_2WP-1lF`nXBW93SyRYTTF6H0 zZ}O|pJyNdwLxyOq;~92u2)jxw)Vd*MPkB_d%>C1}4xY|QfWyn_PhG;Hwb#Op5*G$e znF_sN8rIp)4$c>hKY^)2FcxFc3%-V+_8}^0Fn%A0K@sPK4P`_(Z}mVD(dY0p)q@vL zLY$j^sSK#~*0!V%KN!dKY`(XDF8CoAG!6by!(!KBKPdwvP^2*tI{Brz699T1naRkS zomGT|p|J%c3I(Jjk&Jrmx6p<_)*2GG0b28d0sIT3*7XtI3b9d{ZT8xw|pYy{GS}~+FNduIDGEiA6NCh)RwV)YgYDy!&S@LJID*YoMC^8Rf zPuXldpUJNqCjTB*l)ZC{YuOmZE5&NH)>U@dXjvO^##1;~4V}duJ(_2_nROKxT z`dN1?r@t$hgHJ7}EKyRTeJOQmf0`hVqs=acPlg`&P4OX28Sbl`x_dE5b7!a)gX zAc8)|p%|kEu82S}Pf%1)Fk9=Cr&GiPhJ($_iedA{pe)PhdCsh|w6emkDfRTZc2-0s zGaw@TYkXx)A114yKa^eDoDst7UyHyHFD&!O7dHaEZZacj9Oh+-_C=^_p8{2Yu7j*) zium9`0qB|A9L@j(L2QnC$A8M{ zS!54cM_u0eQ6ufK#g0RhSdD_cjSVE!hQXLFgAyZS zW6*s2;1Q1AuI_2$Pi{YQmAUwFQw2?WUMcmj_Nm)1Z9g?r0qGqtd1_`W+c#yBU?JXt8$rNv{PPhIG?XLO%Y571NrIJl3y4mzZk23A=m>7ZQy-D{_hc~ zsnJoN(ZkGZ(0C;KYaSBXOEKzckUpgDl1ce|FVM#il4Y)Jvad4AtIJbeFClc?7MvP7yYY^t-#V06&0hxcbz@J z$4cbopLFP%Pv-Sp&E(E*sdyg2?s%9o2_{kP!NejMbDy4=;08kym6erXf`O80rT#ULp^v?% zU!~i*p67Fv)a&en&jj3pv9EAzH}G|sSE`OY;^4Ca|F5pE4vTW@+8^ZzM=6JHbOfZk zQ)TFGDM5zrt|3&6p`{xH=@gJI0qGKuE|G5OhTk5}dEf8*{`j5i60Zx-v!A{9v)0;c zt-aQLWA4az+4lK!wxI5;W4yTj$aVha^FU_7lT_OWu z;Lzn`p#=b6G+JVGJ&p)BT&@G{b1yH76-n-F&NoXpMMr|?v-=VewZ>+x(tKV;{5zti zhR*u2;tFvYCDv2Q@Qw_&Hm~7fMdj#yW_-M59%K2|EQ6;KQ){l$un6Exe3l7kh*Q7& zp>>6d#b_ExDJX!53_m|Vk7G9sxAbv$NBki8#aHG13kD#V!eByPb!m<|TlOc3%2Ly}l~X&H-SWb+yqRi)HYQ$4$p<^-G+p8^!m-eBfa|bLE@8X6kUaoLW$$59W%5|GO$rE zP1fL-I?}M6NK%a)D#z5~HdXP3O(7^ zCSWG7S*k}_2m+@85)Ej~&B%CGGN!;(Wjj&kcj-;!^jjTA6!Fx0p!g{p0}P||_4}7& zR3a(9U1Eq{UW>rL@ocUhvi-syv*Xb!ei2)D61tFdQToIv*WYO1^*h~tRYk}vC)ec5 zv8F3Ga9NdhxoHs`92`}3R5rDh`|ItT4G+s&OxR+mYs@y;0z2oqi2W@ELEGaCPeGSPcCimAQ(mh4qTkPEHQ`7OxD3CBLJ_963}cmqrr0oQ!qu62Y3}rT_6lPQM!nfp)tYi={dybns`out0tvInfQr(rAlRbF%O+=W=v&xMDuh1l${IxZ{*qiqbtgfV0rY< z__VyA7VO8-?>tbS8~e#W{hIqWlB*QKn#*F{5PVb!SR@XtDpZ@!m;^;$!`Sk20Ph$H%Bd9Wa@ey$Y%a72%T~A5VWp z#uj9Dsy%@Z!fh2cD&NZf=c#sHUp-y6-;ar5l# zrby)AYLe)$8*-;T-X*p#+WrBIjY0IhKF}pr7SXHOs8}k5lEpr0aU0p^>EU5rgA<|d z6o|OXMKV6RnH*iEkV2Y`fS@Zp8fEFr_W~+m)4-Fx-WyYpFbkZ3#{QGt_L0+`K4C&= z1-=KrCtk+;8)+{X*N#V~N?ND|GA^rlTGy+KY^)|E6)p$Gd>4YYB~ogs90%3YcfHfL zMy}W0p80nxtcO->kd2ajOmL#Z_VW#&mE?Wx6!L8H{XkiHa_jN6(deKMZdfGUoXr$@ z$OqMbRt6o(tY)E>cMjxLasBh_j}XU?mAKU$BCtPfn&&U_iXP0R%D^MwrZzTw+YfFe zw)As(esNF){m{kM%eh^kA3XgApR&yeB2aHz&gb+KwGvFeK-GXA0aQLEGY@Q#6GD+!M-Y%xkA<>%{sqtX^Ep-d6x}5HXUJS^HcPLqP z|Aw7p`l0F(`^56-$eu)+yuR?fwtg5aDENEqsGSp3=HCZ4hoxg>qn>$Nzc;xmkCh!Z zTO`l!dkFMSQ>Wp9Sz^y7UB-Ow^<`zs%3LfZ1Z^IQINOu6_+8$=M!}zXAK}usSg=Ky zGcpfbkP<{Fe*b(vXB1QOBbNe|YgfGhOc7YVv9q~5Bat@%%n`7gbUpd=GGwkgXzQzx zyChi2*WA?^k<7O52?G=s9NN_EFoJZ5#Pd2<3+N+hII_+L`Gy8PM48!<3&#bW7|Sv3 z&Urt^K)rgY=~BxQ8l#3YXu*t|saI?uy($kL{kK&rMTu;(_)Z_uh^PaxKw=;x*N>Fh z5uOf1dHA#L{Lyt)(U9A>A&RNJe%7r#bEktE=^y5(uZ%=4j+=;2)%N{X%HApH;Nkri z4_`1BU-R_NlH_BC6YaO1Zw%hq#xxDthrDjkyL8w=WUELD|C0MCx z<=DpMRnz5zgV4}u9;9hhzDnV#fKhW9?d4cF*T;nq)|%7%)CL`ajGKW+0w?_!(Ew7? zKCwaYRM6XTM}5k*VD=eY?5T>K3Uxj>Y{#*iGX4$1(@IQ|ah5LD+F)j?VVJkd%zt3O2n4kO{CwU6IPm4vHz+fmo~48GLF zhZvh!9389;=UqZlK=D3SVNDwc718;bDV0DfnM$vHfQxo_C;Qm^lTZ60DhXWX%tq}+ z?y#ZvSlGg1Qen4YK{mVjmFvJVdP5+Dg5{uRG}7GI_PnHjk^*=2>TLYC|3&wcw^x%4 zsfDBtRl)OQ@7?OZEG1A47j+?4n;HBwuMfsKwJZ{uWxM!I6^*;Thu7CSdsI13B>3v>t|V9_YFw`j)9N03B?X}vJdle#p_2uD z89b=+rG+;QohCg3gb_q#JFhtSea^@d_0@Y_;^^b}V*0S+$oJh0WZ;kA>xJRa$e>?h zZBD2LI*4Z)XFP3$>c}E3!ub)A{~)^KfZVZCNONOc#dJ<@{MzSVGrK$&4Z2*_>USZrL8i4pdF3oK=p4r$X1(Dc8cYWhzq?_>@?!Ja7`im5;O zTO2RMz-2SFT7dihut`Qqdt7N}I$88$)cckM*lKVEZIoV%+r?^cMoWNXU*eC-ueRq0 z2l|l;$pG_JsqCsGu_S1Rk%c z5J9gkSY@>il2JF_=lo!dQcbgIYE@z$GnC2DP9a*cpA1U9YPWje@foCZUB#w@d4_vO z7x%F&_O&La3(FSUD_>pA+}*u+TGR9B_w6n*cg^z17i-4%9%UGNnEv^4?V6F3nYhfV zluBAEAP`4h7APC(Q(}jFKmrFMQXDs6rt4;_MS`pjDPsGzmL0K3gX&b;a+dr&J?CjFe8O#P*658`tHLG%v}2?NhW3rJkLv0A_H%aq3EYFrM~|d zd=>5d$ts?*x-083tUcbUp8!fVdLb!F_Po%e-bRf#k9u8Vom(g;OIZpmwPRxJvmy^z zB!0{;*g040oh8iz{ZAvlMOlg!nMBEYFuNv!b!y#-Xr_F$>qr^c2^zdUg|g~3mb-x9 z`)@Z4i0RQ`PyS~u-OY4vGbM44l-hjcgJ)>D!&Dn#ldMLx@hvcx>bWSw>G;<24nx@^ z+Lg5T>tjM#;L$TPMs!8+==*`du*AQ=vvdoR;Ojf=lJ8pT5W}3t@ms?#M{nkC{yKpQ zA1ahBgX0a%&^Lt3BCl_Ch%f?mS0z*@IK*dEQOPaIoI_qbbw(^%8WXlBbvY&MJ`WRv zJTb@M${@hf*Xi9!$&1e6ddCHm|65n!fxolr#TjGqdLt&^3af9i;s5x$TXOUrY z;Ht$dtH9~~BA_I2qOcEDmG-UFaP%OgoRjNUXE-lX+XWv9myCom`@%8n*c)0>S&N(4 z7Hw#BVWIk)*?UVNPSUo`AI-xUP@RP9C0ltigXpJe8K+uCN&Xy`$CxEdX95*~cWECh zeE3>>D{o%Xn)Wr9Qkr&bq`|~b4_2~OGND_=3IqH^afA^s_U>Fdk%U9l5ZCD>Mj}Dz z{jDbZkZRxk62ITPYLV;1%daC!l=|O?aWnGu-#cj?e=tM4)#Jdg7aCv0KMXT4w}=tQ z;K;}!N{lKMQt48I@@+{+G%5_(hlvo#pVQ<3FAB$bGY~*r;+@hiu z@y7aW30rBBr9-Nm)}p86LQ%SOBoaXfOYge6Z1jBa6#kufzg}zFk|D!O%_Ybq9`zp9 zNKK7Y68iXO_&-C%KTU75 zzcNnPJB6iMP+Pg3FYJYA3xw5hJgOvKPPG`*)s$zC&|Zj1q=Ol1H#UBWMmfiu>G{jH zBc282S8heXiKKuL;P=Vxl&h>&kk+3GQLd`Jqc;=BCv!M$xTYF%4=UBLdnHUO2ZJGY z4N^qnP~FwT6JsjRu-o74RM>Sq0|iFC@54>Mjx==k9dvhU%>WS^zzeRu6{zoK^wwH? zItH(p8+Okt0|VGLFjD}&)3A5N$j9yS^xr6 z=ePLQOGnk-7COLhJt77Rxzj80YBoE2z=cjCn${8@8IFZQuxYzLw)-&@i-vs(5RA<&2& zPseILIDFcaPp6Qs-!RClGVSdgi(KPeX)B06P0))gkbGIl8*@2~a}`7IB2jo~Jem&8|%tK}AIIhe^Z|2&CtY{ni%W}e|1{<6%YqNwl45u9>n`V@errt}YpKG4r zjWmOalhI5LH_$HKMo0L*${2Ng;SvVzKz5jNir1AZYtw89zz$`k%Rbs1z6mPj9-bea zo3uK?xNl;jbri<}`Ohh3bt-Z}ciTUIb>Bg&D?`X5?06P16(L}zCDm$bG{k{|&9M7$ z5e1SV`qh(!T4mudc2T}r_;bWRfs+0`9@ZaJcU2xkw>GB*?$f~A&_-k|s3n&-#@7z> zTK+CaB@h45diD%WP5M*hQne+%!A?#OIl{_C9Vbs1Hk8p)K2Xs1*BB)$h&}U@GRCnb zGri7v^Rz1L!>z`LZ=n~6&?wx*9+oa%A9czY)IN>?e-0^U4PI`0;Wa4HXLxdgghlVEK3Kpq4HD8}XBa=Gddbm$9%1(ha{+Ap<>GLg1! za}vR9&OFo>@JzW0UOFRjRzD{=FRr0ck$r&V3Ud|VBiJ4v)@9Md?A)7Fi$Q*MnF;IQ z9I+g{vQm2i4+i0MD&@Me?GK|CiDlI#z(Zdk0yt{-fM(9K=+^l^r#=>qClN9<==?nU zi8#Ot0YGbHO_?9tDSYL(K2rQt-gztJ>RkMYzoU4qI0>IZ+M6JqkPD;+?C3EY6k=Kf z%F=}y2=w9lKN8vt!`6=SmimWwk5Ulgt#mG@8j}DP-IiZ-lRFP_nud#qCrpJ0<4#b_ z&))_(_q{xecpng#XNLgnV%)4zUt61`-9b~0eTLn1_`cmvOzIc9jK2mOIr-Y3dr`3U z{rbG|Rnc5`vEq(TM*#eLZNj4-d*-eneWmoXt?LKbc6gPXNb9O)CN5%9;p~vQ9qN5@ zhKZ6#*#~@_*&mG2_s`i%Nz!<@lIfe9wm9ELrmue&iiXa3xEF|Um%XYv0-vuQPj4p7 zYBbu12Ly=c_#lJsWZ19i+uW;ZU--j}&Rfq^w6Xylfa|Sqff^jOO@lT;_3pE?GXN@S z1#bE@vK5;l2H3#33YhQ7k69KZCB9!Azz@FhyPchl3X_FFc*A=?LRNM_+(9&+voH5& zjY|$w-aA(M*Dnp4kRB3RMZdt8vP0UokLdCTv1<{Pi52Aw4z* z7oyzfCPY$9EG!BtDl%&w@1?SUUpdd+Sotc4QidN-+DfBt`UfMwNB4Y}rYvk_fXaGbX`S>#6U9(fM(7_q<_98Ij`tDd*Iw4 z5|y+t!`9sC_;0EetY@rH*u8ed*ZS7}Yt-~lb^%^gU&@dKllb$Zstp4dkP4y{C#SN% zOK!pTQ-~*S)mf3EtyaJGQVh$Rl8Y8?Zx^m)qlXiUwinxt-+;YI{qy#kT**G5pf`2% zH!}RMH#2I((@PBHz6s)Suz9$VjIWW#lp_`c20HC{+Zg_+Xgi@^G?Xa>s`jk2_SR`s zz$Bfen|@j7(HaSef$;cGKl|CIR!wH9D1K?JbZjxtC`sQ)l#hJ z89Xapw*28@rx&KM@8)cmBQF!-vr$~t%TJ77 zhhPFMl^T15F9?5i%!4?i!DB$xRxsjkE091vzMxbOXbpy&A`2hQ4p#?rO$4T6 zL8vTR;W7Wl8I?ehG^Iff$Giz0&JMShWg9UtbV~IbEPZjAr=}` z&&_5{gUxEcyuB=3zMg7f(cMX4)hZ^fu=d;ROq5WA5Zs)nB5+d!$SfgbIzI;9<2!sE znIVn_j47?3h$5x+W-!Wrw3F261|lwwY7X5~kg2U23o*~mrds5kwB?_!;r0y{m5x65 zPzcR%Nl2L(WyRrz{1T*O2)D)7*Z(#)pdD-G{P`K2E-WTO;)lVirz z6{F z(wd27{p|8S6x{1bDm_hT_{5vVsUsIL==f=4JT}&@I^b`#6gqP=+Lk6sa3=XTqE>W) z7HNVI%>Ku$CGq9LPQJZg9+x!hX7lPTrkxn4&In}#3RJirJMZKO>?&(R%S*@AK-u8G z=bmV**_%cDe!$d{@_5#6mVnd=haQYEUu&#t`E?`(nLn}>jur>k0ME}_2QuQzi{|%S z2Ff4D$p&K)yzV@Bw`QhnA00SuY%_dbB*JijD~Fa#$9FDar36^#Iph~C^!2F*?WKYq-l$%9R%#2tJ z*a4$ObMJS9Aev62CUL{qTd38l`cKRdgd=Cz-QD({iB4`GcT@P{IQ0`20t@ZC(qvJr zj*4E%k~h(ZPaHma+*|j?84>JRsaCKJrBx`LE0yiD=xn=SB1EaHL6f6X%#pLj59Pue)HrEK5UIm|*G6h??}KTl3* zc4lIN-o5fYW&r{6BeWaxDtMXk^B(U}pDwATo5U2OkzHeVk$r=bQi&_)J1(iN^0|+c zjC8Q35(|Z`f@k+|u+Y2BzNJ}^#PMGr+x1X?2J=I|mi=RC0|!>F62}uBRBq8{r|XDg zPEZvLcF4d=x)ua?&)XfkU-Hj%wwo55pE7t==*^f{J+#xl2PL=dPv};c>{N!IxUUvhaT*WJ^s-SDNCKn$W8;8SOa_GC1XdVY|I7h@PxN z`tRW5WL(|6kDK`>KU}Uq6A^Kzw?ZdLYDLDzZ7N4seXkE59V1ro%_zG)WYF`(LBzkv z>bd0|aQH%K8KnPk; zR--G{@ahy~A6M|Zf$WmTDch$=x#ggTyF-r zO8@4u1I9rfJ5Jbqbjqz*$i1OokPlf&|M4Y-`^dp)l|V!I(=hdI2k8Th&q z^QrPiK+ee20s~?MpL@t|?{&669m-S$DcC1&7|ua4V1zbzc|XrBs#seDEJIHBKI&}g z)dADvxjf%Pyr~9Z8R2`_5L$}&3KzOxft7OPtfUcsMmFC*hZ{=@;fWeqGd2l`3kYNc? zqY?OdcYc?Fgz3nGtM&QVvV%99_Kf09o6ma zD3AjJA<>3hLTb#)0oJoinNYu#S?%zddOo-2$7Bo5#++1mNs0{M9vJ8!=V%!l2m*{G z^mSvqLhnH%=!Cmnakqazlyp~gHe+l!`!l~nbMEIpe-N3FMN&}YI-8-C#Gmep{-h^l zf(Nb|c*xw4xyTMGOlf$t=4Szq(U0tXq*0W9S5?=Cy&Mezk|BRt6jprR2pjO3U*WjM zU&kZ_%tSLWCQ3}~%%!^O0HP)Eje(({0G?wXIZ@?!A4$zxu8#I`=aC{-n+45Gy@Spc zKg(xFR(rL+yHK4=Np`afR{E3DQqzpC!0! za&q>!bB!u3Fsg9w$#r||PU^7DIKLBt?7MMd*XJIWxtw+s(2>fW)A^}z%#6nKs||nq z^W|fdY=>OUT{_3^A1t${}Ce9|$7>-46Y>`oeL?eS_guGBbj-nfss4c5b>T4X)) zcAhU~*8Nl|cFucI_Uc}pX~fI31Cyl0z4GfF4<>1(b5Bn9w)Y>EYfaGxPe;r9hfmEh z6lFCEZG*H<%@rDSEqt$dnz+|`ySDcCNE%Nj<_gabQ$igskII8t*!O4X)P6@|Jt3XU z&GQz1^v0LggaiIVrk<<%m#~+6wsV)P!C^yIa6?Wzk%@)d-7KQXtj4>s7uquZ_X+Oh zD74pxJ(dYU$##CXJp4<8PA5K^F1|ZZ-1t~7nW9T!+mut9`B9{L)SEzjpHSyfxJf1> z9Ol$M&_8kKh=LrUF0zk(C*ncIY=0_kiLVpym%z?kitA&xYqx=G!{N!v#I&^VIbZbt z#-JER*=jv_zeJU7)%4_Cwl;=Q%Oek957|mMN9p7uSNuGs(mUIl;4h>fl$R4o5!994 zk5f-2bd9@c{!V?Xw_@$55I5Ued+&OXjAvCzU0%tOSwcXYK(ED;_qPsB0xsuka<+D5hx5}Z6+CJW z3$rrCl`K5R1kLZKSaq}!s*A*QZ|dtwSu+2y)WP5J^mF)W1wZ5VQsgk>RwgcXbT^Ap zO>o|p3sB&jbTepheDC*dYm&}Mt6?ZDg=v!j6bldBvwv4`H#GAHyD$~2Upx6dF`a%f zjDaj;B2wDwB+j$)$Lt4bM8hH1`@^(bmVORxU;PDL&Ld_6<~>*I<}TU&me5NcPZSxg z->WkMmPjJ;Fm^DMdUkXjp)XK>(feB^rodoH$CEExdC<_xey!%Jo8TP}_1MdkUp_I| zE0-%G*Reavi94){_G{RlSBHHc%3aC}wOQ6(w7&GL>xKsYQ??0GY>2r1-yp|WSjZYe zs|X+?9tenV%p~tNsEBg0HNa&{OYFv)t}pAXbo&u9;ThtbP+}4icQ;p#q{`ZHzVbdG z?-5Go1zyIEkeC`hhV?{dfZR!kiO;}WFj9-$VNavFSf*|A>p91NwG+hFUmmcU0eD20*fh zi=VCLh#%$w2>5gcPV$U9{uw2>2j#cKN9UesT^{5}D8a8!)2;)pA>Z0wHaG#|Ra1WO z!$53db-Fs+YGhx57(Ou4~m*TB%B3Vtx4Lj)uaaL5mipC4=p#Y7lB!e+- z-=t~Ip?reVk5kB4y!B8t3$(hZl?KLvqF9I{bkza_^l6pf0!_k07VfZ!aey!fYN`kP z0Ywd(^>3=mL1Lw_F?vtM|7;jA4(REl|2scB(dT zIywp{r~ts;_UZJB_;H|$j|o@-nIYM=hA1NJNcg^#AALQ^FD^Fo?%5h}cf7ZQMgK=K1#ir3L9%;*lM_{x4;4lmSqO~D8d z=y6#K=5ZrIqXSr3SBHCDLuIA=K_0+u5e0z$a6nCSKjX_6#{=~D1#e0t-{64cqsr@f8Z(r zJpp`k4Z~}qD>k6m3FKrQ^H>z4nNkh_maJF9i-s5eQvXa8OUdeFwS7VC*`_;^m4q^d zY6a^LU}jTd7zV9Q{#Rp-7kfQ`3h-NX3p`;cF}uyAbP9Y5P#5c7V*sj609j#uuhCzx zoK7B}!89lsR-BIhZ}E4c=qu$TDX?+4n5|$$H2>hDP{LpiY85aFcJ=mtzZn=!I0P6{ z6yf>#=H}*rL?cw(t-0hj*@}P0K-!SSRp5KM_zBR2!A%j0=3oF^BP48k(NR&7@U*Lg z96-RLtE1!5LG9slSYXuG+iL*my+X)&q|@a6?7-)2o&RV0XqpHBxz`+k1tc_0TT|2L zH(?r?@A@0C6{#yc&=iTRfeXS*0N>{@Tki$x%0b~21@q~{khuy4m1Mz}oMe$R8$DxF zQ%MmKubtin@?`;n3Ni$suh7{bz4dG1lF&DT2{(!dts}n_pVtuqy-C0YKRRu}j~lJL z(Vv@N0>|Qi{gNRUAh_>Q&YfVcLm(@vYPVnQngc{fAP~72kYo&-I8bn-h|`Vl_Xk7s z*00Ye3xGr`Y3{-tfXd#vb4NL6AI-8hoOVSNDh-OC1Db!K312~V+`S8?)oHB0`2vyg>|N9eg+R0kxg9D9vMlIhqYjho)LI=o~Qon+s6K!kF3Fw>LKr zJVn{#SZKm6%+0Sl{4YADYg`BezYq8wl>zcpor=N>uRC1SmrN zMV7#q16-wWO@PdK_70Tlv9Pe{*SQxBuL0KPYtQ~EK#w8-V5kq$00S-P;ZhQJubb(@ z3d;EVA?II^F$^Djs$c6TfW;0?_62rPQ(K#%YH@klxnJV6ONHTD=x=WbYjHtA#w^i&6Z8jK00Y8#0jD5Z&OnPHocAnIWT(D7J^dj` zFuhSdFlOj~v1oj7O4f!|t^CVn0it7d9k)L}KM#&z&``HXQa(}dINt)~e#n-8XS!w> z*f1O%H1iQaRt{@3=?Z@b*tiw|^6WEIY-}vBuV{mc=H~%j1Rj9w8jJ(_P`kUk0gveF z;TeE-?$|iI>S?;@0s99?Hvv(kcU(_aJ{n22#$)Hj=fQX%Nl5&6M_>MLT7=;pZo)IC zQ%G;`$W!ktjne0eC1XfY8Y#7*p&{|r6!80G<&}iTBk1%YP}BvYGxRZdqsbtC`S&FJ f|Eo7=!i5C>`$pVW<1}#11cAs&DZ`7O8Nc~|WB`Z7 diff --git a/perf/benchmarks/benchmark-evolutions.svg b/perf/benchmarks/benchmark-evolutions.svg deleted file mode 100644 index 27991c7..0000000 --- a/perf/benchmarks/benchmark-evolutions.svg +++ /dev/null @@ -1,415 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/perf/benchmarks/benchmark-evolutions.tikz b/perf/benchmarks/benchmark-evolutions.tikz deleted file mode 100644 index 18db2bd..0000000 --- a/perf/benchmarks/benchmark-evolutions.tikz +++ /dev/null @@ -1,45 +0,0 @@ -\begin{tikzpicture}[/tikz/background rectangle/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, draw opacity={1.0}}, show background rectangle] -\begin{axis}[point meta max={nan}, point meta min={nan}, legend cell align={left}, legend columns={1}, title={Benchmarks evolution in -CompositionalNetworks.jl}, title style={at={{(0.5,1)}}, anchor={south}, font={{\fontsize{14 pt}{18.2 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, legend style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid, fill={rgb,1:red,1.0;green,1.0;blue,1.0}, fill opacity={1.0}, text opacity={1.0}, font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, text={rgb,1:red,0.0;green,0.0;blue,0.0}, cells={anchor={center}}, at={(1.02, 1)}, anchor={north west}}, axis background/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, opacity={1.0}}, anchor={north west}, xshift={1.0mm}, yshift={-1.0mm}, width={145.4mm}, height={99.6mm}, scaled x ticks={false}, xlabel={version}, x tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, x tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, xlabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, xmajorgrids={true}, xmin={0.44}, xmax={2.56}, xtick={{0.5,1.5,2.5}}, xticklabels={{$0.2.7$,$0.3.0$,$0.3.1$}}, xtick align={inside}, xticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, x grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis x line*={left}, x axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, scaled y ticks={false}, ylabel={ratio}, y tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, y tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, ylabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, ymajorgrids={true}, ymin={0.3814041807690086}, ymax={20.209806681794515}, ytick={{5.0,10.0,15.0,20.0}}, yticklabels={{$5$,$10$,$15$,$20$}}, ytick align={inside}, yticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, y grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis y line*={left}, y axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, colorbar={false}] - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={68b3113f-eb17-41a6-bcb9-9228f0d965ef}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 7.527832433475178 \\ - 1.5 1.0809105294502879 \\ - 2.5 1.0 \\ - } - ; - \addlegendentry {times} - \addplot[color={rgb,1:red,0.8889;green,0.4356;blue,0.2781}, name path={a7e77995-f614-42d7-b6b9-bd7ff6cd66c5}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.8889;green,0.4356;blue,0.2781}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 18.61549572412261 \\ - 1.5 1.0217854165904532 \\ - 2.5 1.0 \\ - } - ; - \addlegendentry {gctimes} - \addplot[color={rgb,1:red,0.2422;green,0.6433;blue,0.3044}, name path={ee5486d9-f06f-4911-aa14-21ea31c078ce}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.2422;green,0.6433;blue,0.3044}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 19.6486254789353 \\ - 1.5 0.942585383628221 \\ - 2.5 1.0 \\ - } - ; - \addlegendentry {memory} - \addplot[color={rgb,1:red,0.7644;green,0.4441;blue,0.8243}, name path={dcb52430-d2da-4f48-8f1d-18218ff3c888}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.7644;green,0.4441;blue,0.8243}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 16.997564394537598 \\ - 1.5 0.9656507771159147 \\ - 2.5 1.0 \\ - } - ; - \addlegendentry {allocs} -\end{axis} -\end{tikzpicture} diff --git a/perf/benchmarks/benchmark-gctimes.pdf b/perf/benchmarks/benchmark-gctimes.pdf deleted file mode 100644 index c0182af6a831fda4392109a3bf0133ef82c62888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31482 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�@p@vwhqeCN+3*KfFES-uz0@}7rI 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 Nhaw>nkrRdbzW|hWc8dT2 diff --git a/perf/benchmarks/benchmark-gctimes.png b/perf/benchmarks/benchmark-gctimes.png deleted file mode 100644 index 0088d18b2384cf6f74eeec16a268b3a63f53a0be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14276 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 diff --git a/perf/benchmarks/benchmark-gctimes.svg b/perf/benchmarks/benchmark-gctimes.svg deleted file mode 100644 index c36bc35..0000000 --- a/perf/benchmarks/benchmark-gctimes.svg +++ /dev/null @@ -1,405 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/perf/benchmarks/benchmark-gctimes.tikz b/perf/benchmarks/benchmark-gctimes.tikz deleted file mode 100644 index 321de61..0000000 --- a/perf/benchmarks/benchmark-gctimes.tikz +++ /dev/null @@ -1,289 +0,0 @@ -\begin{tikzpicture}[/tikz/background rectangle/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, draw opacity={1.0}}, show background rectangle] -\begin{axis}[point meta max={nan}, point meta min={nan}, legend cell align={left}, legend columns={1}, title={Benchmarks (gctimes) evolution in -CompositionalNetworks.jl}, title style={at={{(0.5,1)}}, anchor={south}, font={{\fontsize{14 pt}{18.2 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, legend style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid, fill={rgb,1:red,1.0;green,1.0;blue,1.0}, fill opacity={1.0}, text opacity={1.0}, font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, text={rgb,1:red,0.0;green,0.0;blue,0.0}, cells={anchor={center}}, at={(1.02, 1)}, anchor={north west}}, axis background/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, opacity={1.0}}, anchor={north west}, xshift={1.0mm}, yshift={-1.0mm}, width={145.4mm}, height={99.6mm}, scaled x ticks={false}, xlabel={version}, x tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, x tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, xlabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, xmajorgrids={true}, xmin={0.015999999999999986}, xmax={2.984}, xtick={{0.5,1.5,2.5}}, xticklabels={{$0.2.7$,$0.3.0$,$0.3.1$}}, xtick align={inside}, xticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, x grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis x line*={left}, x axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, scaled y ticks={false}, ylabel={time (ns)}, y tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, y tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, ylabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, ymode={log}, log basis y={10}, ymajorgrids={true}, ymin={2.2415952909119862e8}, ymax={1.228639692090918e10}, ytick={{1.0e9,1.0e10}}, yticklabels={{$10^{9}$,$10^{10}$}}, ytick align={inside}, yticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, y grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis y line*={left}, y axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, colorbar={false}] - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid] - table[row sep={\\}] - { - \\ - 0.5 6.8462894e9 \\ - 0.3 6.8462894e9 \\ - 0.7 6.8462894e9 \\ - 0.5 6.8462894e9 \\ - 0.5 7.36561855e9 \\ - } - ; - \addlegendentry {gctimes} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 7.36561855e9 \\ - 0.9 7.98376275e9 \\ - 0.09999999999999998 7.98376275e9 \\ - 0.09999999999999998 7.36561855e9 \\ - 0.9 7.36561855e9 \\ - 0.9 7.98376275e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 8.995766625e9 \\ - 0.09999999999999998 8.995766625e9 \\ - 0.09999999999999998 7.98376275e9 \\ - 0.9 7.98376275e9 \\ - 0.9 8.995766625e9 \\ - 0.5 8.995766625e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 1.09701184e10 \\ - 0.3 1.09701184e10 \\ - 0.7 1.09701184e10 \\ - 0.5 1.09701184e10 \\ - 0.5 8.995766625e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 3.701838e8 \\ - 1.3 3.701838e8 \\ - 1.7 3.701838e8 \\ - 1.5 3.701838e8 \\ - 1.5 4.28817075e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 4.28817075e8 \\ - 1.9 4.8457805e8 \\ - 1.1 4.8457805e8 \\ - 1.1 4.28817075e8 \\ - 1.9 4.28817075e8 \\ - 1.9 4.8457805e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 5.12824875e8 \\ - 1.1 5.12824875e8 \\ - 1.1 4.8457805e8 \\ - 1.9 4.8457805e8 \\ - 1.9 5.12824875e8 \\ - 1.5 5.12824875e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 5.551036e8 \\ - 1.3 5.551036e8 \\ - 1.7 5.551036e8 \\ - 1.5 5.551036e8 \\ - 1.5 5.12824875e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 2.564143e8 \\ - 2.3 2.564143e8 \\ - 2.7 2.564143e8 \\ - 2.5 2.564143e8 \\ - 2.5 3.8569115e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 3.8569115e8 \\ - 2.9 4.332665e8 \\ - 2.1 4.332665e8 \\ - 2.1 3.8569115e8 \\ - 2.9 3.8569115e8 \\ - 2.9 4.332665e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 5.092712e8 \\ - 2.1 5.092712e8 \\ - 2.1 4.332665e8 \\ - 2.9 4.332665e8 \\ - 2.9 5.092712e8 \\ - 2.5 5.092712e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={0b3181ca-c5d1-4e08-9a5a-09e73ba2f22a}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 6.269408e8 \\ - 2.3 6.269408e8 \\ - 2.7 6.269408e8 \\ - 2.5 6.269408e8 \\ - 2.5 5.092712e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={b8371335-6980-471c-901e-c3dc06ca0fbb}, only marks, draw opacity={0.5}, line width={0}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}, forget plot] - table[row sep={\\}] - { - \\ - 1.5 2.510559e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 6.8462894e9 \\ - 0.3 6.8462894e9 \\ - 0.7 6.8462894e9 \\ - 0.5 6.8462894e9 \\ - 0.5 7.36561855e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 7.36561855e9 \\ - 0.9 7.98376275e9 \\ - 0.09999999999999998 7.98376275e9 \\ - 0.09999999999999998 7.36561855e9 \\ - 0.9 7.36561855e9 \\ - 0.9 7.98376275e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 8.995766625e9 \\ - 0.09999999999999998 8.995766625e9 \\ - 0.09999999999999998 7.98376275e9 \\ - 0.9 7.98376275e9 \\ - 0.9 8.995766625e9 \\ - 0.5 8.995766625e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 1.09701184e10 \\ - 0.3 1.09701184e10 \\ - 0.7 1.09701184e10 \\ - 0.5 1.09701184e10 \\ - 0.5 8.995766625e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 3.701838e8 \\ - 1.3 3.701838e8 \\ - 1.7 3.701838e8 \\ - 1.5 3.701838e8 \\ - 1.5 4.28817075e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 4.28817075e8 \\ - 1.9 4.8457805e8 \\ - 1.1 4.8457805e8 \\ - 1.1 4.28817075e8 \\ - 1.9 4.28817075e8 \\ - 1.9 4.8457805e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 5.12824875e8 \\ - 1.1 5.12824875e8 \\ - 1.1 4.8457805e8 \\ - 1.9 4.8457805e8 \\ - 1.9 5.12824875e8 \\ - 1.5 5.12824875e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 5.551036e8 \\ - 1.3 5.551036e8 \\ - 1.7 5.551036e8 \\ - 1.5 5.551036e8 \\ - 1.5 5.12824875e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 2.564143e8 \\ - 2.3 2.564143e8 \\ - 2.7 2.564143e8 \\ - 2.5 2.564143e8 \\ - 2.5 3.8569115e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 3.8569115e8 \\ - 2.9 4.332665e8 \\ - 2.1 4.332665e8 \\ - 2.1 3.8569115e8 \\ - 2.9 3.8569115e8 \\ - 2.9 4.332665e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 5.092712e8 \\ - 2.1 5.092712e8 \\ - 2.1 4.332665e8 \\ - 2.9 4.332665e8 \\ - 2.9 5.092712e8 \\ - 2.5 5.092712e8 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={f1a1bd0c-2f0d-45cd-9cb8-46ffa769f2f1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 6.269408e8 \\ - 2.3 6.269408e8 \\ - 2.7 6.269408e8 \\ - 2.5 6.269408e8 \\ - 2.5 5.092712e8 \\ - } - ; -\end{axis} -\end{tikzpicture} diff --git a/perf/benchmarks/benchmark-memory.pdf b/perf/benchmarks/benchmark-memory.pdf deleted file mode 100644 index 875164c185e31b40b5e3e9dc8ee3a494f5f5bba8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23367 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 r-GHT%?$mRg@Es{0+JFC~5DyD?4FAtZH>?F diff --git a/perf/benchmarks/benchmark-memory.png b/perf/benchmarks/benchmark-memory.png deleted file mode 100644 index 8062d6fc2ab1293a2ead1aeaec5b339fd5429480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11827 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 diff --git a/perf/benchmarks/benchmark-memory.svg b/perf/benchmarks/benchmark-memory.svg deleted file mode 100644 index b4c5384..0000000 --- a/perf/benchmarks/benchmark-memory.svg +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/perf/benchmarks/benchmark-memory.tikz b/perf/benchmarks/benchmark-memory.tikz deleted file mode 100644 index d07ecec..0000000 --- a/perf/benchmarks/benchmark-memory.tikz +++ /dev/null @@ -1,282 +0,0 @@ -\begin{tikzpicture}[/tikz/background rectangle/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, draw opacity={1.0}}, show background rectangle] -\begin{axis}[point meta max={nan}, point meta min={nan}, legend cell align={left}, legend columns={1}, title={Benchmarks (memory) evolution in -CompositionalNetworks.jl}, title style={at={{(0.5,1)}}, anchor={south}, font={{\fontsize{14 pt}{18.2 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, legend style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid, fill={rgb,1:red,1.0;green,1.0;blue,1.0}, fill opacity={1.0}, text opacity={1.0}, font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, text={rgb,1:red,0.0;green,0.0;blue,0.0}, cells={anchor={center}}, at={(1.02, 1)}, anchor={north west}}, axis background/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, opacity={1.0}}, anchor={north west}, xshift={1.0mm}, yshift={-1.0mm}, width={145.4mm}, height={99.6mm}, scaled x ticks={false}, xlabel={version}, x tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, x tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, xlabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, xmajorgrids={true}, xmin={0.015999999999999986}, xmax={2.984}, xtick={{0.5,1.5,2.5}}, xticklabels={{$0.2.7$,$0.3.0$,$0.3.1$}}, xtick align={inside}, xticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, x grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis x line*={left}, x axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, scaled y ticks={false}, ylabel={size (bytes)}, y tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, y tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, ylabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, ymode={log}, log basis y={10}, ymajorgrids={true}, ymin={1.5416190089458804e9}, ymax={3.855930689431302e10}, ytick={{1.0e9,1.0e12,1.0e15}}, yticklabels={{$10^{9}$,$10^{12}$,$10^{15}$}}, ytick align={inside}, yticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, y grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis y line*={left}, y axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, colorbar={false}] - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid] - table[row sep={\\}] - { - \\ - 0.5 3.5201313954e10 \\ - 0.3 3.5201313954e10 \\ - 0.7 3.5201313954e10 \\ - 0.5 3.5201313954e10 \\ - 0.5 3.5201313954e10 \\ - } - ; - \addlegendentry {memory} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 3.5201313954e10 \\ - 0.9 3.5201313954e10 \\ - 0.09999999999999998 3.5201313954e10 \\ - 0.09999999999999998 3.5201313954e10 \\ - 0.9 3.5201313954e10 \\ - 0.9 3.5201313954e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 3.5201313954e10 \\ - 0.09999999999999998 3.5201313954e10 \\ - 0.09999999999999998 3.5201313954e10 \\ - 0.9 3.5201313954e10 \\ - 0.9 3.5201313954e10 \\ - 0.5 3.5201313954e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 3.5201313954e10 \\ - 0.3 3.5201313954e10 \\ - 0.7 3.5201313954e10 \\ - 0.5 3.5201313954e10 \\ - 0.5 3.5201313954e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 1.68868016e9 \\ - 1.3 1.68868016e9 \\ - 1.7 1.68868016e9 \\ - 1.5 1.68868016e9 \\ - 1.5 1.68868016e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 1.68868016e9 \\ - 1.9 1.68868016e9 \\ - 1.1 1.68868016e9 \\ - 1.1 1.68868016e9 \\ - 1.9 1.68868016e9 \\ - 1.9 1.68868016e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 1.68868016e9 \\ - 1.1 1.68868016e9 \\ - 1.1 1.68868016e9 \\ - 1.9 1.68868016e9 \\ - 1.9 1.68868016e9 \\ - 1.5 1.68868016e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 1.68868016e9 \\ - 1.3 1.68868016e9 \\ - 1.7 1.68868016e9 \\ - 1.5 1.68868016e9 \\ - 1.5 1.68868016e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 1.791540787e9 \\ - 2.3 1.791540787e9 \\ - 2.7 1.791540787e9 \\ - 2.5 1.791540787e9 \\ - 2.5 1.791540787e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 1.791540787e9 \\ - 2.9 1.791540787e9 \\ - 2.1 1.791540787e9 \\ - 2.1 1.791540787e9 \\ - 2.9 1.791540787e9 \\ - 2.9 1.791540787e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 1.791540787e9 \\ - 2.1 1.791540787e9 \\ - 2.1 1.791540787e9 \\ - 2.9 1.791540787e9 \\ - 2.9 1.791540787e9 \\ - 2.5 1.791540787e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={be9b7002-f00c-429a-9330-b2454480d12c}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 1.791540787e9 \\ - 2.3 1.791540787e9 \\ - 2.7 1.791540787e9 \\ - 2.5 1.791540787e9 \\ - 2.5 1.791540787e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 3.5201313954e10 \\ - 0.3 3.5201313954e10 \\ - 0.7 3.5201313954e10 \\ - 0.5 3.5201313954e10 \\ - 0.5 3.5201313954e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 3.5201313954e10 \\ - 0.9 3.5201313954e10 \\ - 0.09999999999999998 3.5201313954e10 \\ - 0.09999999999999998 3.5201313954e10 \\ - 0.9 3.5201313954e10 \\ - 0.9 3.5201313954e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 3.5201313954e10 \\ - 0.09999999999999998 3.5201313954e10 \\ - 0.09999999999999998 3.5201313954e10 \\ - 0.9 3.5201313954e10 \\ - 0.9 3.5201313954e10 \\ - 0.5 3.5201313954e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 3.5201313954e10 \\ - 0.3 3.5201313954e10 \\ - 0.7 3.5201313954e10 \\ - 0.5 3.5201313954e10 \\ - 0.5 3.5201313954e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 1.68868016e9 \\ - 1.3 1.68868016e9 \\ - 1.7 1.68868016e9 \\ - 1.5 1.68868016e9 \\ - 1.5 1.68868016e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 1.68868016e9 \\ - 1.9 1.68868016e9 \\ - 1.1 1.68868016e9 \\ - 1.1 1.68868016e9 \\ - 1.9 1.68868016e9 \\ - 1.9 1.68868016e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 1.68868016e9 \\ - 1.1 1.68868016e9 \\ - 1.1 1.68868016e9 \\ - 1.9 1.68868016e9 \\ - 1.9 1.68868016e9 \\ - 1.5 1.68868016e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 1.68868016e9 \\ - 1.3 1.68868016e9 \\ - 1.7 1.68868016e9 \\ - 1.5 1.68868016e9 \\ - 1.5 1.68868016e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 1.791540787e9 \\ - 2.3 1.791540787e9 \\ - 2.7 1.791540787e9 \\ - 2.5 1.791540787e9 \\ - 2.5 1.791540787e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 1.791540787e9 \\ - 2.9 1.791540787e9 \\ - 2.1 1.791540787e9 \\ - 2.1 1.791540787e9 \\ - 2.9 1.791540787e9 \\ - 2.9 1.791540787e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 1.791540787e9 \\ - 2.1 1.791540787e9 \\ - 2.1 1.791540787e9 \\ - 2.9 1.791540787e9 \\ - 2.9 1.791540787e9 \\ - 2.5 1.791540787e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={a5bfe175-106e-4a6c-8938-cf0e8594b2d1}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 1.791540787e9 \\ - 2.3 1.791540787e9 \\ - 2.7 1.791540787e9 \\ - 2.5 1.791540787e9 \\ - 2.5 1.791540787e9 \\ - } - ; -\end{axis} -\end{tikzpicture} diff --git a/perf/benchmarks/benchmark-params-0.2.7.txt b/perf/benchmarks/benchmark-params-0.2.7.txt deleted file mode 100644 index ba5e12c..0000000 --- a/perf/benchmarks/benchmark-params-0.2.7.txt +++ /dev/null @@ -1 +0,0 @@ -BenchmarkTools.Parameters(5.0, 10000, 1, 0.0, true, false, 0.05, 0.01) \ No newline at end of file diff --git a/perf/benchmarks/benchmark-params-0.3.0.txt b/perf/benchmarks/benchmark-params-0.3.0.txt deleted file mode 100644 index ba5e12c..0000000 --- a/perf/benchmarks/benchmark-params-0.3.0.txt +++ /dev/null @@ -1 +0,0 @@ -BenchmarkTools.Parameters(5.0, 10000, 1, 0.0, true, false, 0.05, 0.01) \ No newline at end of file diff --git a/perf/benchmarks/benchmark-params-0.3.1.txt b/perf/benchmarks/benchmark-params-0.3.1.txt deleted file mode 100644 index ba5e12c..0000000 --- a/perf/benchmarks/benchmark-params-0.3.1.txt +++ /dev/null @@ -1 +0,0 @@ -BenchmarkTools.Parameters(5.0, 10000, 1, 0.0, true, false, 0.05, 0.01) \ No newline at end of file diff --git a/perf/benchmarks/benchmark-times.pdf b/perf/benchmarks/benchmark-times.pdf deleted file mode 100644 index d870508b52f12a1d434854abffe5e1ab789ac975..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23408 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
Kp5ljMU?V1r>o_0N$ zjQPyI2c7sD%f4oV({R1|7k%cw)L7?GF6cD*QyY6h& zauStnqEJ__%$!wJjB$=_E7pwMA}f2boKt9{BnsH)s=4v9vQTV+;{$xi!sC8-iyHW` z1USN9+~wHMIhGq`E9^d0_y{CX?;33P=I3*p1qCO$UIa0G=aN0$7iKxDigrPb(pId^ zGTSkxVJIkeX-Sov>g`9i&EJD`+Kgj}_a5hd|ED`ynE#vZWMTa`Z~mJ*jSUQT6`2$b z7Bdf4>iSH8fsj~16aRx9mVdMJ|D#eYoc~<)KRhj~HDFayHE?pV5+iUbvY6FbolU(L zmmv}7{;m>K?-voxL*}dB0izJ$po|5DM|O!OW(f^^VCN?Gn*kH5)=S&i2)A6Qw>mek z+jchF4y);Oy4^aux&^ju@mqO4XK!V2vpQXWKKT6nZ2kP)w1Z4d!lFWfB^8kbiR$k# z@mgQuW*%ZaZ3^vhCPPE0MK3=%pmT;~!4#vN1UUepxGd2mVYx?O!DT`yOY{b#=7X?`fWNph~SPtydVq$CVMtXU)s-RgQ_?fba`WbWTSavp`VPG-nDb=)cA@b%t%sjv4Z3)mYAWnV~E8$7vdshW#^eCVq7T)1)HT)SR~4#jp5F@N>b-2 zX)>0SkQ1h8VzdFli;hVwR%G+3^E=TM%lK$igeq#wd$W3mu|fdMESY z86gx{Rkg<8z=a)3HJYqPU!}Q3w}!_Etsd4JC8?*f#%}@M2pu+((qu^uvtxByw6e;IBlquqyenOB$vND>Om;fE;##-X>#&aqbbl+cYa;w^seEXPBH5f1 zheVN&hriL#Et(r>yw8|)v);h+dSuH6OH;*bR@pWKf@NG9Jg9WdoFQtz*}x}-7q7QQZg;+|T-Y-y}SF=CpIE)3f8ZD-@lVlQQ@%JK!@*Y#?Q?p$Ko)jzpY`52@X61T?bCb>BPgPEE9A-czwLLQ1L6kZ2T!AJoATgw^JBeePxnu~p{I zG=VySYk|XDSft0S086^|EG6bB*mz4h`%a#d_LFG`fxJ24t|Ocj0bzk)ZUrvvQmx|- zn{bLedny#|jsa~tijGYO8XuK-^ko~fn`Ks@hn62wv3TEcb3rnE@2_S&ySZ zscUq0wvVd~`!?M_8nLb0;UpG7x0;C{XD>pOl*9#acKXBCa89g47}zr25p!lix@AV* zJJC}lg=nY0M+$^SXY7SenqyiIMqEqq+HXa@!{USuJ(L#Rna_V|DMF393ReZ_!BUPZ z#bV9Szx|z&`<{*{C0jGUIRT!0TO1@)-=YrE6x`fa_`P>d(eRq3J!@KGh~*30_5@jh z;L^kz;ce(uP7~BJ@L^}*$f6E}`t@ymOJ1b8Kl_+BHX{o#fh<

K>xfOoJ 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 diff --git a/perf/benchmarks/benchmark-times.png b/perf/benchmarks/benchmark-times.png deleted file mode 100644 index cbba170b264a088dddb401c96d2d2f52afc663a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12925 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 diff --git a/perf/benchmarks/benchmark-times.svg b/perf/benchmarks/benchmark-times.svg deleted file mode 100644 index 2036217..0000000 --- a/perf/benchmarks/benchmark-times.svg +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/perf/benchmarks/benchmark-times.tikz b/perf/benchmarks/benchmark-times.tikz deleted file mode 100644 index 8b47b30..0000000 --- a/perf/benchmarks/benchmark-times.tikz +++ /dev/null @@ -1,290 +0,0 @@ -\begin{tikzpicture}[/tikz/background rectangle/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, draw opacity={1.0}}, show background rectangle] -\begin{axis}[point meta max={nan}, point meta min={nan}, legend cell align={left}, legend columns={1}, title={Benchmarks (times) evolution in -CompositionalNetworks.jl}, title style={at={{(0.5,1)}}, anchor={south}, font={{\fontsize{14 pt}{18.2 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, legend style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid, fill={rgb,1:red,1.0;green,1.0;blue,1.0}, fill opacity={1.0}, text opacity={1.0}, font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, text={rgb,1:red,0.0;green,0.0;blue,0.0}, cells={anchor={center}}, at={(1.02, 1)}, anchor={north west}}, axis background/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, opacity={1.0}}, anchor={north west}, xshift={1.0mm}, yshift={-1.0mm}, width={145.4mm}, height={99.6mm}, scaled x ticks={false}, xlabel={version}, x tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, x tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, xlabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, xmajorgrids={true}, xmin={0.015999999999999986}, xmax={2.984}, xtick={{0.5,1.5,2.5}}, xticklabels={{$0.2.7$,$0.3.0$,$0.3.1$}}, xtick align={inside}, xticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, x grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis x line*={left}, x axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, scaled y ticks={false}, ylabel={time (ns)}, y tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, y tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, ylabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, ymode={log}, log basis y={10}, ymajorgrids={true}, ymin={1.4116568143308935e9}, ymax={3.6365846609092125e10}, ytick={{1.0e9,1.0e12,1.0e15}}, yticklabels={{$10^{9}$,$10^{12}$,$10^{15}$}}, ytick align={inside}, yticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, y grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis y line*={left}, y axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, colorbar={false}] - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid] - table[row sep={\\}] - { - \\ - 0.5 2.64568053e10 \\ - 0.3 2.64568053e10 \\ - 0.7 2.64568053e10 \\ - 0.5 2.64568053e10 \\ - 0.5 2.7364165075e10 \\ - } - ; - \addlegendentry {times} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 2.7364165075e10 \\ - 0.9 2.864199085e10 \\ - 0.09999999999999998 2.864199085e10 \\ - 0.09999999999999998 2.7364165075e10 \\ - 0.9 2.7364165075e10 \\ - 0.9 2.864199085e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 2.9656566425e10 \\ - 0.09999999999999998 2.9656566425e10 \\ - 0.09999999999999998 2.864199085e10 \\ - 0.9 2.864199085e10 \\ - 0.9 2.9656566425e10 \\ - 0.5 2.9656566425e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 3.03186626e10 \\ - 0.3 3.03186626e10 \\ - 0.7 3.03186626e10 \\ - 0.5 3.03186626e10 \\ - 0.5 2.9656566425e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 2.6517206e9 \\ - 1.3 2.6517206e9 \\ - 1.7 2.6517206e9 \\ - 1.5 2.6517206e9 \\ - 1.5 3.842907825e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 3.842907825e9 \\ - 1.9 4.4969485e9 \\ - 1.1 4.4969485e9 \\ - 1.1 3.842907825e9 \\ - 1.9 3.842907825e9 \\ - 1.9 4.4969485e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 5.003262775e9 \\ - 1.1 5.003262775e9 \\ - 1.1 4.4969485e9 \\ - 1.9 4.4969485e9 \\ - 1.9 5.003262775e9 \\ - 1.5 5.003262775e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 5.5702289e9 \\ - 1.3 5.5702289e9 \\ - 1.7 5.5702289e9 \\ - 1.5 5.5702289e9 \\ - 1.5 5.003262775e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 1.6829643e9 \\ - 2.3 1.6829643e9 \\ - 2.7 1.6829643e9 \\ - 2.5 1.6829643e9 \\ - 2.5 2.914744275e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 2.914744275e9 \\ - 2.9 3.7321002e9 \\ - 2.1 3.7321002e9 \\ - 2.1 2.914744275e9 \\ - 2.9 2.914744275e9 \\ - 2.9 3.7321002e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 4.452360425e9 \\ - 2.1 4.452360425e9 \\ - 2.1 3.7321002e9 \\ - 2.9 3.7321002e9 \\ - 2.9 4.452360425e9 \\ - 2.5 4.452360425e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={c7f5587c-46c6-47a8-b97b-b84566318080}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={2}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 6.2163534e9 \\ - 2.3 6.2163534e9 \\ - 2.7 6.2163534e9 \\ - 2.5 6.2163534e9 \\ - 2.5 4.452360425e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={311abb9a-cab6-46bc-817f-db16bbd13384}, only marks, draw opacity={0.5}, line width={0}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}, forget plot] - table[row sep={\\}] - { - \\ - 0.5 3.31711664e10 \\ - 1.5 1.547612e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 2.64568053e10 \\ - 0.3 2.64568053e10 \\ - 0.7 2.64568053e10 \\ - 0.5 2.64568053e10 \\ - 0.5 2.7364165075e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 2.7364165075e10 \\ - 0.9 2.864199085e10 \\ - 0.09999999999999998 2.864199085e10 \\ - 0.09999999999999998 2.7364165075e10 \\ - 0.9 2.7364165075e10 \\ - 0.9 2.864199085e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.9 2.9656566425e10 \\ - 0.09999999999999998 2.9656566425e10 \\ - 0.09999999999999998 2.864199085e10 \\ - 0.9 2.864199085e10 \\ - 0.9 2.9656566425e10 \\ - 0.5 2.9656566425e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 0.5 3.03186626e10 \\ - 0.3 3.03186626e10 \\ - 0.7 3.03186626e10 \\ - 0.5 3.03186626e10 \\ - 0.5 2.9656566425e10 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 2.6517206e9 \\ - 1.3 2.6517206e9 \\ - 1.7 2.6517206e9 \\ - 1.5 2.6517206e9 \\ - 1.5 3.842907825e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 3.842907825e9 \\ - 1.9 4.4969485e9 \\ - 1.1 4.4969485e9 \\ - 1.1 3.842907825e9 \\ - 1.9 3.842907825e9 \\ - 1.9 4.4969485e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.9 5.003262775e9 \\ - 1.1 5.003262775e9 \\ - 1.1 4.4969485e9 \\ - 1.9 4.4969485e9 \\ - 1.9 5.003262775e9 \\ - 1.5 5.003262775e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 1.5 5.5702289e9 \\ - 1.3 5.5702289e9 \\ - 1.7 5.5702289e9 \\ - 1.5 5.5702289e9 \\ - 1.5 5.003262775e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 1.6829643e9 \\ - 2.3 1.6829643e9 \\ - 2.7 1.6829643e9 \\ - 2.5 1.6829643e9 \\ - 2.5 2.914744275e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 2.914744275e9 \\ - 2.9 3.7321002e9 \\ - 2.1 3.7321002e9 \\ - 2.1 2.914744275e9 \\ - 2.9 2.914744275e9 \\ - 2.9 3.7321002e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.9 4.452360425e9 \\ - 2.1 4.452360425e9 \\ - 2.1 3.7321002e9 \\ - 2.9 3.7321002e9 \\ - 2.9 4.452360425e9 \\ - 2.5 4.452360425e9 \\ - } - ; - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={fde2425f-4400-4f3d-9e65-6a49d8b75e89}, draw opacity={0.5}, line width={0}, solid, forget plot] - table[row sep={\\}] - { - \\ - 2.5 6.2163534e9 \\ - 2.3 6.2163534e9 \\ - 2.7 6.2163534e9 \\ - 2.5 6.2163534e9 \\ - 2.5 4.452360425e9 \\ - } - ; -\end{axis} -\end{tikzpicture} diff --git a/perf/mallocs/mallocs-0.2.7.csv b/perf/mallocs/mallocs-0.2.7.csv deleted file mode 100644 index 6ce7164..0000000 --- a/perf/mallocs/mallocs-0.2.7.csv +++ /dev/null @@ -1,383 +0,0 @@ -bytes,ratio (%),filename: [C:\Users\jeanf\.julia\packages\CompositionalNetworks\DJEbb\src\,linenumber -9361130400,7.21,icn.jl,152 -9021743271,6.95,icn.jl,152 -8652717784,6.67,transformation.jl,33 -8111975249,6.25,transformation.jl,33 -6495193902,5.0,icn.jl,150 -6382603858,4.92,icn.jl,150 -6352836672,4.89,transformation.jl,26 -5833048252,4.49,transformation.jl,26 -4662327879,3.59,transformation.jl,73 -4593581148,3.54,transformation.jl,59 -4530148933,3.49,transformation.jl,80 -4374215070,3.37,transformation.jl,66 -4119440068,3.17,transformation.jl,59 -3986744168,3.07,transformation.jl,66 -3967924977,3.06,transformation.jl,73 -3871924166,2.98,transformation.jl,80 -3161194727,2.44,aggregation.jl,11 -3119507034,2.4,aggregation.jl,11 -2934291601,2.26,icn.jl,154 -2728244224,2.1,icn.jl,154 -2296076408,1.77,genetic.jl,23 -2052219289,1.58,genetic.jl,23 -1609208442,1.24,icn.jl,152 -1351604009,1.04,transformation.jl,33 -1186800096,0.91,icn.jl,150 -1102465794,0.85,icn.jl,155 -1046930504,0.81,icn.jl,155 -953467588,0.73,icn.jl,151 -914828687,0.7,transformation.jl,26 -785618903,0.61,icn.jl,151 -694568505,0.54,arithmetic.jl,5 -604023424,0.47,icn.jl,154 -593651875,0.46,arithmetic.jl,5 -544120564,0.42,aggregation.jl,11 -540540512,0.42,transformation.jl,66 -540392998,0.42,transformation.jl,80 -537326494,0.41,transformation.jl,73 -528562660,0.41,transformation.jl,59 -523021046,0.4,genetic.jl,23 -266081551,0.2,arithmetic.jl,11 -243429952,0.19,icn.jl,155 -241583144,0.19,arithmetic.jl,11 -211914164,0.16,comparison.jl,38 -202686832,0.16,comparison.jl,38 -182428880,0.14,icn.jl,141 -175813728,0.14,comparison.jl,5 -153406148,0.12,comparison.jl,5 -143637276,0.11,aggregation.jl,5 -135607168,0.1,utils.jl,46 -128583147,0.1,icn.jl,151 -122344550,0.09,icn.jl,141 -121678128,0.09,utils.jl,47 -121644676,0.09,comparison.jl,57 -118600514,0.09,aggregation.jl,5 -102468762,0.08,comparison.jl,57 -95742758,0.07,icn.jl,141 -86842739,0.07,utils.jl,46 -79795744,0.06,arithmetic.jl,5 -77271183,0.06,utils.jl,47 -70401407,0.05,utils.jl,46 -62578764,0.05,utils.jl,47 -62232656,0.05,composition.jl,25 -53739415,0.04,comparison.jl,51 -50737074,0.04,comparison.jl,45 -50409504,0.04,icn.jl,98 -47694768,0.04,arithmetic.jl,11 -47545808,0.04,icn.jl,59 -43298464,0.03,icn.jl,76 -42733920,0.03,icn.jl,77 -42210336,0.03,icn.jl,137 -41929344,0.03,comparison.jl,51 -41819734,0.03,comparison.jl,45 -40866048,0.03,layer.jl,32 -40399408,0.03,icn.jl,125 -38584560,0.03,layer.jl,20 -33666644,0.03,icn.jl,98 -31506352,0.02,comparison.jl,5 -30070378,0.02,icn.jl,59 -30038992,0.02,layer.jl,20 -29545536,0.02,icn.jl,145 -27902940,0.02,icn.jl,98 -27766032,0.02,icn.jl,65 -27355664,0.02,icn.jl,133 -27346986,0.02,icn.jl,59 -27170197,0.02,icn.jl,137 -27085552,0.02,icn.jl,63 -25843182,0.02,composition.jl,25 -25821473,0.02,icn.jl,76 -25510713,0.02,icn.jl,77 -24656384,0.02,comparison.jl,57 -24544886,0.02,layer.jl,20 -24341424,0.02,composition.jl,25 -24311276,0.02,icn.jl,76 -23721381,0.02,icn.jl,77 -22927121,0.02,icn.jl,137 -22863648,0.02,icn.jl,104 -22494576,0.02,comparison.jl,38 -20381451,0.02,icn.jl,104 -20214304,0.02,icn.jl,130 -19623323,0.02,icn.jl,125 -19153602,0.01,icn.jl,125 -18919392,0.01,genetic.jl,46 -18679819,0.01,icn.jl,63 -18489488,0.01,aggregation.jl,5 -17969136,0.01,layer.jl,32 -17867397,0.01,icn.jl,65 -16347936,0.01,icn.jl,101 -15977099,0.01,metrics.jl,5 -15866385,0.01,icn.jl,104 -15430417,0.01,layer.jl,32 -15183472,0.01,icn.jl,61 -14992068,0.01,icn.jl,65 -14893697,0.01,icn.jl,101 -14737168,0.01,icn.jl,63 -14717472,0.01,icn.jl,103 -14463472,0.01,icn.jl,145 -13848672,0.01,icn.jl,144 -13790741,0.01,icn.jl,145 -13606000,0.01,icn.jl,140 -13271952,0.01,icn.jl,127 -13256031,0.01,icn.jl,130 -12631882,0.01,icn.jl,103 -12498495,0.01,genetic.jl,46 -11947602,0.01,metrics.jl,5 -11493219,0.01,icn.jl,101 -11355355,0.01,icn.jl,133 -11168288,0.01,comparison.jl,51 -10973587,0.01,icn.jl,130 -10930000,0.01,genetic.jl,46 -10411552,0.01,composition.jl,24 -10183823,0.01,icn.jl,103 -10154624,0.01,comparison.jl,45 -10010659,0.01,icn.jl,61 -9588352,0.01,icn.jl,133 -8813648,0.01,icn.jl,127 -8317515,0.01,icn.jl,61 -7759584,0.01,icn.jl,132 -7441248,0.01,icn.jl,136 -7394960,0.01,icn.jl,120 -7165553,0.01,icn.jl,127 -7032272,0.01,genetic.jl,17 -6764256,0.01,icn.jl,135 -6694992,0.01,icn.jl,119 -5757451,0.0,composition.jl,24 -5663728,0.0,icn.jl,144 -5634470,0.0,composition.jl,24 -5293840,0.0,icn.jl,158 -4673558,0.0,icn.jl,140 -4596464,0.0,icn.jl,144 -4449365,0.0,icn.jl,132 -4310016,0.0,icn.jl,140 -4028256,0.0,icn.jl,102 -4026480,0.0,icn.jl,132 -3632575,0.0,icn.jl,102 -3327440,0.0,genetic.jl,17 -3223056,0.0,icn.jl,99 -3187520,0.0,utils.jl,49 -3162800,0.0,icn.jl,120 -3140352,0.0,icn.jl,136 -3081776,0.0,genetic.jl,17 -3030720,0.0,icn.jl,138 -2953376,0.0,icn.jl,131 -2807008,0.0,icn.jl,119 -2800576,0.0,icn.jl,99 -2792608,0.0,icn.jl,117 -2787408,0.0,icn.jl,135 -2733792,0.0,icn.jl,102 -2455296,0.0,icn.jl,117 -2336976,0.0,icn.jl,107 -2265387,0.0,icn.jl,99 -2257808,0.0,icn.jl,120 -2241264,0.0,icn.jl,158 -2203632,0.0,composition.jl,23 -2162576,0.0,icn.jl,129 -2160464,0.0,icn.jl,136 -2146304,0.0,icn.jl,117 -2039310,0.0,icn.jl,107 -2031856,0.0,utils.jl,49 -2014768,0.0,icn.jl,138 -1981488,0.0,icn.jl,139 -1945120,0.0,icn.jl,119 -1903712,0.0,icn.jl,135 -1832398,0.0,composition.jl,23 -1760624,0.0,icn.jl,158 -1678688,0.0,icn.jl,131 -1661707,0.0,utils.jl,49 -1640619,0.0,icn.jl,107 -1587792,0.0,composition.jl,23 -1576720,0.0,icn.jl,138 -1550576,0.0,genetic.jl,7 -1467183,0.0,icn.jl,131 -1359072,0.0,icn.jl,100 -1347008,0.0,icn.jl,129 -1172816,0.0,icn.jl,60 -1149472,0.0,genetic.jl,7 -1124432,0.0,genetic.jl,7 -1119360,0.0,icn.jl,139 -1093163,0.0,icn.jl,129 -1054704,0.0,icn.jl,100 -980640,0.0,icn.jl,139 -947488,0.0,icn.jl,126 -935728,0.0,genetic.jl,16 -889007,0.0,icn.jl,100 -818816,0.0,genetic.jl,16 -793147,0.0,icn.jl,60 -738128,0.0,icn.jl,78 -720432,0.0,genetic.jl,19 -648208,0.0,icn.jl,60 -606576,0.0,icn.jl,126 -578192,0.0,icn.jl,78 -566368,0.0,genetic.jl,19 -563664,0.0,genetic.jl,16 -560304,0.0,icn.jl,149 -517552,0.0,icn.jl,126 -512368,0.0,genetic.jl,19 -498704,0.0,metrics.jl,5 -493375,0.0,icn.jl,78 -373312,0.0,genetic.jl,59 -370736,0.0,genetic.jl,59 -368752,0.0,genetic.jl,59 -356416,0.0,icn.jl,149 -291888,0.0,icn.jl,149 -271632,0.0,icn.jl,67 -220080,0.0,genetic.jl,24 -176400,0.0,genetic.jl,24 -154304,0.0,icn.jl,67 -133632,0.0,genetic.jl,24 -132976,0.0,icn.jl,67 -38096,0.0,explore.jl,60 -38096,0.0,explore.jl,60 -38096,0.0,explore.jl,60 -7488,0.0,genetic.jl,43 -5984,0.0,genetic.jl,43 -5968,0.0,genetic.jl,43 -4640,0.0,genetic.jl,44 -4096,0.0,genetic.jl,44 -3504,0.0,genetic.jl,49 -3504,0.0,genetic.jl,44 -2912,0.0,explore.jl,60 -2560,0.0,genetic.jl,45 -2560,0.0,genetic.jl,49 -2528,0.0,genetic.jl,49 -2400,0.0,genetic.jl,45 -2288,0.0,genetic.jl,85 -2048,0.0,genetic.jl,85 -2048,0.0,genetic.jl,85 -2032,0.0,genetic.jl,45 -1168,0.0,genetic.jl,60 -672,0.0,learn.jl,36 -608,0.0,genetic.jl,60 -592,0.0,genetic.jl,60 -384,0.0,explore.jl,54 -384,0.0,explore.jl,53 -384,0.0,explore.jl,54 -384,0.0,explore.jl,53 -384,0.0,explore.jl,54 -384,0.0,explore.jl,53 -384,0.0,explore.jl,54 -384,0.0,explore.jl,53 -320,0.0,utils.jl,62 -288,0.0,utils.jl,29 -288,0.0,utils.jl,29 -288,0.0,utils.jl,29 -256,0.0,icn.jl,26 -256,0.0,icn.jl,26 -256,0.0,icn.jl,26 -240,0.0,explore.jl,58 -240,0.0,explore.jl,58 -240,0.0,explore.jl,58 -224,0.0,genetic.jl,104 -192,0.0,learn.jl,39 -176,0.0,genetic.jl,61 -144,0.0,learn.jl,34 -144,0.0,genetic.jl,81 -144,0.0,genetic.jl,81 -144,0.0,genetic.jl,81 -128,0.0,genetic.jl,82 -128,0.0,genetic.jl,82 -128,0.0,genetic.jl,82 -96,0.0,layer.jl,66 -96,0.0,layer.jl,66 -96,0.0,layer.jl,66 -80,0.0,icn.jl,27 -80,0.0,icn.jl,27 -80,0.0,icn.jl,27 -80,0.0,explore.jl,58 -32,0.0,explore.jl,59 -32,0.0,explore.jl,26 -32,0.0,explore.jl,59 -32,0.0,explore.jl,26 -32,0.0,explore.jl,59 -32,0.0,explore.jl,26 -32,0.0,explore.jl,59 -32,0.0,explore.jl,26 -0,0.0,utils.jl,62 -0,0.0,utils.jl,37 -0,0.0,utils.jl,35 -0,0.0,utils.jl,34 -0,0.0,utils.jl,33 -0,0.0,utils.jl,32 -0,0.0,utils.jl,31 -0,0.0,utils.jl,28 -0,0.0,utils.jl,62 -0,0.0,utils.jl,37 -0,0.0,utils.jl,35 -0,0.0,utils.jl,34 -0,0.0,utils.jl,33 -0,0.0,utils.jl,32 -0,0.0,utils.jl,31 -0,0.0,utils.jl,28 -0,0.0,utils.jl,37 -0,0.0,utils.jl,35 -0,0.0,utils.jl,34 -0,0.0,utils.jl,33 -0,0.0,utils.jl,32 -0,0.0,utils.jl,31 -0,0.0,utils.jl,28 -0,0.0,learn.jl,75 -0,0.0,learn.jl,39 -0,0.0,learn.jl,36 -0,0.0,learn.jl,35 -0,0.0,learn.jl,34 -0,0.0,learn.jl,21 -0,0.0,learn.jl,20 -0,0.0,learn.jl,39 -0,0.0,learn.jl,36 -0,0.0,learn.jl,35 -0,0.0,learn.jl,34 -0,0.0,learn.jl,21 -0,0.0,learn.jl,20 -0,0.0,learn.jl,35 -0,0.0,learn.jl,21 -0,0.0,learn.jl,20 -0,0.0,layer.jl,85 -0,0.0,layer.jl,71 -0,0.0,layer.jl,69 -0,0.0,layer.jl,68 -0,0.0,layer.jl,67 -0,0.0,layer.jl,85 -0,0.0,layer.jl,71 -0,0.0,layer.jl,69 -0,0.0,layer.jl,68 -0,0.0,layer.jl,67 -0,0.0,layer.jl,85 -0,0.0,layer.jl,71 -0,0.0,layer.jl,69 -0,0.0,layer.jl,68 -0,0.0,layer.jl,67 -0,0.0,genetic.jl,107 -0,0.0,genetic.jl,106 -0,0.0,genetic.jl,105 -0,0.0,genetic.jl,104 -0,0.0,genetic.jl,87 -0,0.0,genetic.jl,86 -0,0.0,genetic.jl,83 -0,0.0,genetic.jl,61 -0,0.0,genetic.jl,107 -0,0.0,genetic.jl,106 -0,0.0,genetic.jl,105 -0,0.0,genetic.jl,104 -0,0.0,genetic.jl,87 -0,0.0,genetic.jl,86 -0,0.0,genetic.jl,83 -0,0.0,genetic.jl,61 -0,0.0,genetic.jl,107 -0,0.0,genetic.jl,106 -0,0.0,genetic.jl,105 -0,0.0,genetic.jl,87 -0,0.0,genetic.jl,86 -0,0.0,genetic.jl,83 -0,0.0,explore.jl,63 -0,0.0,explore.jl,24 -0,0.0,explore.jl,23 -0,0.0,explore.jl,63 -0,0.0,explore.jl,24 -0,0.0,explore.jl,23 -0,0.0,explore.jl,63 -0,0.0,explore.jl,24 -0,0.0,explore.jl,23 -0,0.0,explore.jl,63 -0,0.0,explore.jl,24 -0,0.0,explore.jl,23 diff --git a/perf/mallocs/mallocs-0.2.7.pdf b/perf/mallocs/mallocs-0.2.7.pdf deleted file mode 100644 index 1b17c0d7b2c3b7856987a8f006ce666a7472ad2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12674 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 diff --git a/perf/mallocs/mallocs-0.2.7.png b/perf/mallocs/mallocs-0.2.7.png deleted file mode 100644 index 8b73db3b1521a6ff17b3f8469860b76048c41a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30759 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

=#?6NsxBbDAPC11qF@e) zdKXnyRUMrN?>jw5<((jrK^i$b-kK7<+-)1v_iemT!f|U1fPAbM*>m5F0V^i5 z=(QTKeNjq#7Z%pt+bfAr%gnq5t--^G5A$Yn&KSbKd|3%V!}ht@;zb}lSVEtrSCo}m zd|{N$87kJ_x^?T8N23owsMXHm#2{E<09{^QUh};u$j(8TKg(bDcA4x$TD^}W^W`2i z7X~}Cjj;6@&l@xfey?(s<>jsJEq3Z*<6&ddM9ap<$1jJ$hv?{Ngx`k`_yTEBDf-EI z#l^q6y2SMA0N&4eY!m^ma$W!PJCLkiSxaj?fm!Exb0TYOL(s<)ke`$7q~?V4#}}Vh zo$3JjJNZ{{G}O(R=e_AWMyF?{(??1MJiKe z;5XXcM~@!qsR1x&()qS|xHgRJ@7Hb8biQ67EiDa+WO+kNxY)wLfXZJCI;88PF?~gy zhmC91%X+xF6)I(EnJlhlXfbbOKsW=m%fD z`cx~4y@X*FlIe#%frCJ>Hz!n3x zL_0Y{j$~*V`5gX+uDw>#)&04+r_yUf5LW5BGfU}vIan!Eq(ZNI~o`mym)cC_`UNxRWRb6G5auV={40(Oxdu`_9C5z{Q zof4WLN>9JK_+Hd!qo`Veb*U+D`v$I1%$WWn&J>kBR=Bo1O zdtaZ;(fV&Mk>;7_O4#>UDyyrno3AfKhi_xcIXP9H?L%WTX4?O0YiDQ9q6I(-WEcZ0 zs|WXP4p->&A-!f+xoHrQl9GPc559xnwTo2kxbo|vu5hNxDQrk`QJ>3>$OjP0c{KGQ zAt6OY%pM8fA#>d(7l@0F9-N;3XG^8EqJrvSK(qw5}1~pKT4WWS`yS*~wItSeqW`Gb}sEEj`ticAr z1G&AQ;`PMETi~47*w_z9Ndb__%66Hhd%OHQKRQ1@hXx&bcodA=Kib=GdSOjXPj~ms zl1ks}i#dR-1tlekvb1KuK0=4i=ekW+w=pgKYE{*~Q>LJ}SjO(Do*p^HdpulRX|qPi zw}G*-FZA?gKz(D<@}c=VDm`}aBkg7=6B3Jn|P_kq(K*Zc6yrh)lNGb8vp*EKR*gMuLI<9*_loI@WG(mnT<6` z=?g49BLjonc{rnHG4z((GxdowSAT{@~1nV`6x?0vk=U zWNgE!PU*|35CyBC;8aJ4DZnJXf-cr~va~nF=1Ybcm5QdH*!i8^c$*w^puCq@+*{?N7rQKk)N zt}yGTKo8slSS*r0_p67TgKKwpmx>?^pgeRD+{6Ah$o@Do^AxE6k((ci{XFsiV>=-$ zBmSd6QP;8le}4hl8SREb{hvF#p;L#d=l_RT&9>s;Qcu*{ zZn5NljO`lM|C_4)@CkW~=;mwtMqNt|IjR$nKbv!r#>;Ire-`mLq-SH>mF{EWBa4Dk z)Y$kBS`Z^6qpO4TYd!&ilqPQF&15gaWQC5!y~}_92H)r8xh+Q^^91L5?RP(hHOP{QoUAazLx|B5 zwEy@a_4MgYYD~3jdiLyD%Yyw)^ibhitjgs}WU4U4GsMdkX%zfrh?gjOZpFn=q>(jf6)6)aUNB4@d`-a}&~C`4 zg%c*#VSw;gfORK)z>zFRJ@w&<8dkCbzy~$>`5fpXNh3|ItmHFQ3@QNClaNvH)tqQx z=K9(!1GxQWJL7S6=}sK(e7b80Aw(BjrEOziF#pYF3fk37H3qxchFZHhk%L7D;g*$j zUkU;Oz-S4!Jtg`1YxMZyA1HlJ{ku&Z_&&CW-wS#B)`=M?qcZ?Ou*?h$Jy16xvqC~e zK>#+$8XOPI!M=$b1j3IhRE@y~D!P@`-7qP@A2=AM5AHRCbj#eq-%7hM?8q7mhv?NjtHpXawhy{m}SfoT5qUCZ1>2DJfe2UmguMMBg z8(SU0D$>nSXZY(NofS}I*<1?5H{8e5&UcFrBoAH+tvKmWm0k6_qzt6N zx`o2#kgRQlTSYaG8O8Gp{^SzU7{z^kWYaVHjbkCOp-$KOmIU{QRa8y=1iOst#Q%

GKNKW}4WA^c;yO`zHXo_SeqtLNhKEiFw?O)ajX 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 diff --git a/perf/mallocs/mallocs-0.2.7.svg b/perf/mallocs/mallocs-0.2.7.svg deleted file mode 100644 index 7a37836..0000000 --- a/perf/mallocs/mallocs-0.2.7.svg +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/perf/mallocs/mallocs-0.2.7.tikz b/perf/mallocs/mallocs-0.2.7.tikz deleted file mode 100644 index ba74676..0000000 --- a/perf/mallocs/mallocs-0.2.7.tikz +++ /dev/null @@ -1,352 +0,0 @@ -\begin{tikzpicture}[/tikz/background rectangle/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, draw opacity={1.0}}, show background rectangle] -\begin{axis}[point meta max={nan}, point meta min={nan}, legend cell align={left}, legend columns={1}, title={Mallocs for CompositionalNetworks.jl@v0.2.7}, title style={at={{(0.5,1)}}, anchor={south}, font={{\fontsize{14 pt}{18.2 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, legend style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid, fill={rgb,1:red,1.0;green,1.0;blue,1.0}, fill opacity={1.0}, text opacity={1.0}, font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, text={rgb,1:red,0.0;green,0.0;blue,0.0}, cells={anchor={center}}, at={(1.02, 1)}, anchor={north west}}, axis background/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, opacity={1.0}}, anchor={north west}, xshift={1.0mm}, yshift={-1.0mm}, width={145.4mm}, height={99.6mm}, scaled x ticks={false}, xlabel={}, x tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, x tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, xlabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, xmajorticks={false}, xmajorgrids={false}, xmin={-1.5378071074071238}, xmax={1.5378394017790404}, x axis line style={{draw opacity = 0}}, scaled y ticks={false}, ylabel={}, y tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, y tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, ylabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, ymajorticks={false}, ymajorgrids={false}, ymin={-1.0599914819413592}, ymax={1.0599928147568383}, y axis line style={{draw opacity = 0}}, colorbar={false}] - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={328918ab-7fc6-43b9-95f2-fdfb821d5555}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - 1.0 0.0 \\ - 0.9999571601499329 0.009256233838966335 \\ - 0.9998286442702368 0.018511674606592973 \\ - 0.9996144633721139 0.027765529299490332 \\ - 0.9993146358065192 0.03701700505016324 \\ - 0.9989291872625888 0.04626530919494358 \\ - 0.9984581507654383 0.05550964934190547 \\ - 0.9979015666733334 0.06474923343875719 \\ - 0.9972594826742324 0.07398326984070393 \\ - 0.9965319537816997 0.08321096737827577 \\ - 0.9957190423301925 0.09243153542511474 \\ - 0.9948208179697205 0.10164418396571552 \\ - 0.9938373576598774 0.11084812366311372 \\ - 0.9927687456632476 0.12004256592651602 \\ - 0.9916150735381867 0.12922672297886637 \\ - 0.9903764401309763 0.13839980792434253 \\ - 0.9890529515673552 0.14756103481577706 \\ - 0.9876447212434268 0.1567096187219971 \\ - 0.986151869815943 0.16584477579507687 \\ - 0.9845745251919665 0.1749657233374976 \\ - 0.9829128225179116 0.18407167986920903 \\ - 0.9811669041679649 0.19316186519458603 \\ - 0.9793369197318875 0.20223550046927574 \\ - 0.977423026002197 0.21129180826692873 \\ - 0.9754253869607341 0.22033001264580854 \\ - 0.9733441737646129 0.22934933921527428 \\ - 0.9711795647315561 0.23834901520213003 \\ - 0.9689317453246165 0.24732826951683595 \\ - 0.9666009081362866 0.25628633281957486 \\ - 0.9641872528719981 0.2652224375861693 \\ - 0.9616909863330102 0.2741358181738424 \\ - 0.9591123223986913 0.2830257108868184 \\ - 0.9564514820081941 0.29189135404175515 \\ - 0.9537086931415253 0.3007319880330058 \\ - 0.9508841908000126 0.30954685539770105 \\ - 0.9479782169861697 0.31833520088064826 \\ - 0.9449910206829614 0.3270962714990418 \\ - 0.9419228578324713 0.3358293166069782 \\ - 0.9387739913139724 0.34453358795977135 \\ - 0.9355446909214039 0.35320833977806193 \\ - 0.9322352333402548 0.3618528288117154 \\ - 0.9288459021238585 0.3704663144035034 \\ - 0.9253769876690972 0.3790480585525635 \\ - 0.9218287871915211 0.3875973259776303 \\ - 0.9182016046998831 0.3961133841800344 \\ - 0.9144957509700916 0.4045955035064628 \\ - 0.9107115435185829 0.413042957211475 \\ - 0.9068493065751165 0.4214550215197707 \\ - 0.9029093710549957 0.42983097568820244 \\ - 0.8988920745307144 0.4381701020675288 \\ - } - ; - \addlegendentry {icn.jl line 152} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={f23dd8df-e285-4954-9965-661f4d8ea0ac}, area legend, fill={rgb,1:red,0.8889;green,0.4356;blue,0.2781}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - 0.8988920745307144 0.4381701020675288 \\ - 0.8949467409481047 0.44617298312018616 \\ - 0.8909301590783542 0.45414034355540195 \\ - 0.8868426486886235 0.4620715490775716 \\ - 0.882684535192818 0.469965968269447 \\ - 0.8784561496256805 0.4778229726424044 \\ - 0.8741578286164374 0.48564193668648015 \\ - 0.8697899143619988 0.49342223792016787 \\ - 0.8653527545997158 0.5011632569399757 \\ - 0.8608467025796962 0.5088643774697381 \\ - 0.8562721170366822 0.5165249864096785 \\ - 0.85162936216149 0.5241444738852198 \\ - 0.8469188075720169 0.5317222332955366 \\ - 0.8421408282838149 0.5392576613618486 \\ - 0.837295804680235 0.5467501581754484 \\ - 0.8323841224821441 0.5541991272454612 \\ - 0.8274061727172177 0.5616039755463327 \\ - 0.8223623516888087 0.5689641135650404 \\ - 0.8172530609443974 0.5762789553480269 \\ - 0.8120787072436237 0.583547918547847 \\ - 0.8068397025259043 0.5907704244695313 \\ - 0.801536463877637 0.5979458981166553 \\ - 0.7961694134989957 0.6050737682371176 \\ - 0.7907389786703195 0.6121534673686166 \\ - 0.7852455917180943 0.6191844318838289 \\ - 0.7796896899805362 0.6261661020352789 \\ - 0.7740717157727731 0.6330979219999029 \\ - 0.768392116351632 0.6399793399232979 \\ - 0.7626513438800312 0.6468098079636566 \\ - 0.756849855390984 0.6535887823353814 \\ - 0.7509881127512124 0.6603157233523766 \\ - 0.7450665826243774 0.6669900954710135 \\ - 0.7390857364339278 0.6736113673327659 \\ - 0.7330460503255684 0.6801790118065129 \\ - 0.7269480051293531 0.6866925060305041 \\ - 0.7207920863214066 0.6931513314539863 \\ - 0.714578783985273 0.6995549738784855 \\ - 0.7083085927729006 0.7059029234987438 \\ - 0.7019820118652611 0.7121946749433054 \\ - 0.6955995449326096 0.7184297273147503 \\ - 0.6891617000943859 0.7246075842295716 \\ - 0.6826689898787623 0.7307277538576937 \\ - 0.6761219311818409 0.7367897489616274 \\ - 0.6695210452265019 0.7427930869352598 \\ - 0.6628668575209082 0.7487372898422757 \\ - 0.6561598978166694 0.7546218844542066 \\ - 0.6494007000666666 0.7604464022881056 \\ - 0.6425898023825439 0.7662103796438438 \\ - 0.6357277469918683 0.7719133576410264 \\ - 0.6288150801949618 0.7775548822555253 \\ - } - ; - \addlegendentry {icn.jl line 152} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={76876ce7-2925-42b3-b6e7-3a9f701143ff}, area legend, fill={rgb,1:red,0.2422;green,0.6433;blue,0.3044}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - 0.6288150801949618 0.7775548822555253 \\ - 0.6221338259092176 0.7829109161709008 \\ - 0.6154069528779613 0.7882095421583417 \\ - 0.6086349543576212 0.7934503716894311 \\ - 0.6018183269135088 0.79863302047375 \\ - 0.5949575703834077 0.8037571084870556 \\ - 0.5880531878409221 0.8088222599991478 \\ - 0.5811056855585889 0.8138281036014193 \\ - 0.5741155729707536 0.8187742722340897 \\ - 0.5670833626362161 0.8236604032131215 \\ - 0.5600095702006468 0.8284861382568128 \\ - 0.5528947143587759 0.8332511235120704 \\ - 0.5457393168163592 0.8379550095803554 \\ - 0.5385439022519241 0.8425974515433037 \\ - 0.5313089982782963 0.8471781089880176 \\ - 0.5240351354039121 0.8516966460320268 \\ - 0.5167228469939183 0.8561527313479176 \\ - 0.5093726692310625 0.8605460381876281 \\ - 0.5019851410763763 0.8648762444064068 \\ - 0.49456080422965654 0.8691430324864345 \\ - 0.48710020308974317 0.8733460895601073 \\ - 0.4796038847146012 0.8774851074329773 \\ - 0.4720723987812069 0.8815597826063513 \\ - 0.4645062975452418 0.8855698162995458 \\ - 0.45690613580059836 0.8895149144717952 \\ - 0.44927247083869826 0.8933947878438127 \\ - 0.4416058624076294 0.8972091519190015 \\ - 0.4339068726711004 0.9009577270043171 \\ - 0.42617606616722004 0.904640238230775 \\ - 0.41841400976710164 0.9082564155736065 \\ - 0.4106212726332964 0.9118059938720583 \\ - 0.40279842617805894 0.915288712848836 \\ - 0.3949460440214477 0.9187043171291887 \\ - 0.38706470194926385 0.9220525562596351 \\ - 0.3791549778708306 0.9253331847263288 \\ - 0.3712174517766174 0.9285459619730596 \\ - 0.3632527056957116 0.9316906524188943 \\ - 0.3552613236531403 0.934767025475449 \\ - 0.34724389162704594 0.9377748555637991 \\ - 0.33920099750571875 0.9407139221310192 \\ - 0.3311332310444895 0.9435840096663555 \\ - 0.32304118382248415 0.9463849077170282 \\ - 0.31492544919924603 0.9491164109036642 \\ - 0.3067866222712272 0.9517783189353556 \\ - 0.29862529982815184 0.9543704366243468 \\ - 0.2904420803092561 0.9568925739003473 \\ - 0.28223756375940656 0.959344545824468 \\ - 0.2740123517851021 0.9617261726027827 \\ - 0.26576704751035884 0.9640372795995115 \\ - 0.2575022555324865 0.966277697349826 \\ - } - ; - \addlegendentry {transformation.jl line 33} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={b439cb1e-dc55-4aba-af1d-10692022ed92}, area legend, fill={rgb,1:red,0.7644;green,0.4441;blue,0.8243}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - 0.2575022555324865 0.966277697349826 \\ - 0.2497407379915745 0.9683127406925015 \\ - 0.24196314150362713 0.9702854415859777 \\ - 0.23416996681018562 0.9721956730227288 \\ - 0.22636171565575522 0.9740433120171725 \\ - 0.21853889075550292 0.9758282396135881 \\ - 0.21070199576289056 0.9775503408937746 \\ - 0.20285153523724836 0.9792095049844499 \\ - 0.1949880146112903 0.9808056250643892 \\ - 0.1871119401585733 0.9823385983713021 \\ - 0.17922381896090092 0.9838083262084492 \\ - 0.1713241588756777 0.9852147139509954 \\ - 0.16341346850321106 0.9865576710521033 \\ - 0.15549225715396642 0.9878371110487624 \\ - 0.14756103481577687 0.9890529515673552 \\ - 0.13962031212100784 0.9902051143289619 \\ - 0.1316706003136827 0.9912935251543987 \\ - 0.1237124112165666 0.9923181139689949 \\ - 0.11574625719821435 0.9932788148071038 \\ - 0.10777265113998268 0.9941755658163499 \\ - 0.09979210640300991 0.9950083092616113 \\ - 0.09180513679516362 0.9957769915287364 \\ - 0.08381225653796164 0.9964815631279963 \\ - 0.07581398023346426 0.9971219786972705 \\ - 0.06781082283114313 0.9976981970049676 \\ - 0.05980329959472766 0.9982101809526805 \\ - 0.051791926069030145 0.998657897577574 \\ - 0.04377721804675502 0.9990413180545071 \\ - 0.03575969153528991 0.9993604176978899 \\ - 0.02773986272348397 0.9996151759632715 \\ - 0.01971824794841457 0.9998055764486637 \\ - 0.01169536366214328 0.9999316068955968 \\ - 0.00367172639846672 0.9999932591899081 \\ - -0.004352147260340102 0.9999905293622656 \\ - -0.012375740716782456 0.9999234175884226 \\ - -0.020398537391405756 0.9997919281892065 \\ - -0.02842002075605405 0.999596069630241 \\ - -0.03643967436712629 0.9993358545214005 \\ - -0.044456981898825 0.9990112996159991 \\ - -0.052471427176399486 0.9986224258097111 \\ - -0.0604824942093783 0.9981692581392259 \\ - -0.06848966722478979 0.9976518257806365 \\ - -0.07649243070036979 0.9970701620475608 \\ - -0.08449026939775091 0.9964243043889964 \\ - -0.09248266839563575 0.9957142943869104 \\ - -0.10046911312294872 0.9949401777535613 \\ - -0.10844908939196536 0.9941020043285566 \\ - -0.11642208343141688 0.9931998280756437 \\ - -0.12438758191956893 0.9922337070792357 \\ - -0.13234507201726925 0.9912037035406717 \\ - } - ; - \addlegendentry {transformation.jl line 33} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={2b52df7d-7b46-4e9f-b3aa-d44903eecca9}, area legend, fill={rgb,1:red,0.6755;green,0.5557;blue,0.0942}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.13234507201726925 0.9912037035406717 \\ - -0.138704953754711 0.9903337497045648 \\ - -0.14505912016626898 0.9894229892500921 \\ - -0.15140730942905378 0.9884714597050613 \\ - -0.15774925996646394 0.9874792002771668 \\ - -0.16408471045896414 0.9864462518523743 \\ - -0.1704133998548529 0.9853726569932363 \\ - -0.17673506738101913 0.984258459937138 \\ - -0.18304945255368726 0.9831037065944749 \\ - -0.1893562951891507 0.9819084445467609 \\ - -0.1956553354144919 0.9806727230446672 \\ - -0.2019463136782915 0.9793965930059942 \\ - -0.2082289707613224 0.978080107013572 \\ - -0.2145030477872311 0.9767233193130943 \\ - -0.22076828623320455 0.9753262858108839 \\ - -0.22702442794062272 0.9738890640715877 \\ - -0.23327121512569587 0.972411713315806 \\ - -0.23950839039008653 0.9708942944176517 \\ - -0.2457356967315157 0.9693368699022422 \\ - -0.2519528775543525 0.9677395039431228 \\ - -0.258159676680187 0.9661022623596227 \\ - -0.26435583835838655 0.9644252126141428 \\ - -0.27054110727663333 0.962708423809376 \\ - -0.276715228571445 0.9609519666854598 \\ - -0.28287794783867587 0.9591559136170612 \\ - -0.2890290111440002 0.957320338610395 \\ - -0.29516816503337456 0.9554453173001742 \\ - -0.30129515654348255 0.9535309269464931 \\ - -0.3074097332121574 0.9515772464316442 \\ - -0.31351164308878476 0.949584356256868 \\ - -0.31960063474468453 0.9475523385390354 \\ - -0.32567645728347067 0.9454812770072646 \\ - -0.33173886035138955 0.9433712569994707 \\ - -0.33778759414763565 0.9412223654588495 \\ - -0.3438224094346447 0.9390346909302955 \\ - -0.3498430575483634 0.9368083235567521 \\ - -0.3558492904084956 0.934543355075499 \\ - -0.36184086052872455 0.9322398788143704 \\ - -0.3678175210269103 0.929897989687911 \\ - -0.3737790256352627 0.9275177841934642 \\ - -0.37972512871048886 0.9250993604071958 \\ - -0.38565558524391474 0.9226428179800532 \\ - -0.39157015087158037 0.9201482581336595 \\ - -0.39746858188430956 0.9176157836561422 \\ - -0.40335063523775155 0.9150454988978975 \\ - -0.40921606856239556 0.9124375097672919 \\ - -0.41506464017355776 0.9097919237262964 \\ - -0.42089610908133973 0.9071088497860601 \\ - -0.4267102350005583 0.9043883985024179 \\ - -0.43250677836064755 0.9016306819713344 \\ - } - ; - \addlegendentry {icn.jl line 150} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={4b89f4da-d9cd-4a0c-8ea5-f3ac751e4b24}, area legend, fill={rgb,1:red,0.0;green,0.6658;blue,0.681}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.43250677836064755 0.9016306819713344 \\ - -0.5092511373558424 0.8606179635016812 \\ - -0.5821395792899945 0.8130888698193256 \\ - -0.6506202118526301 0.7594032788504661 \\ - -0.7141745175185448 0.6999676839163033 \\ - -0.7723212796275412 0.635232115871417 \\ - -0.8246202260317271 0.5656867355872711 \\ - -0.8706753627216212 0.4918581225816785 \\ - -0.9101379721897213 0.4143052878957522 \\ - -0.9427092538287056 0.33361544140780586 \\ - -0.968142586371857 0.2503995456329969 \\ - -0.986245395245103 0.1652876896741875 \\ - -0.9968806106915656 0.07892431835126082 \\ - -0.9999677056280835 -0.008036647367314548 \\ - -0.9954833053753254 -0.09493676168385301 \\ - -0.9834613646447778 -0.18111803955164513 \\ - -0.963992910442508 -0.2659279387664686 \\ - -0.9372253528363667 -0.34872430084631056 \\ - -0.9033613688053229 -0.4288802132882484 \\ - -0.862657367622134 -0.5057887563867453 \\ - -0.8154215493890715 -0.5788675986716876 \\ - -0.7620115714269674 -0.6475634061707036 \\ - -0.7028318401870729 -0.7113560321099786 \\ - -0.6383304491906723 -0.7697624553302367 \\ - -0.5689957861815728 -0.8223404375972362 \\ - -0.49535283518122647 -0.8686918721145724 \\ - -0.41795920144636733 -0.9084657978847167 \\ - -0.3374008894271467 -0.9413610570943385 \\ - -0.2542878656939599 -0.9671285754028833 \\ - -0.1692494404293477 -0.9855732478686466 \\ - -0.08292950245508814 -0.9965554162326105 \\ - 0.004018356126359926 -0.9999919263744291 \\ - 0.0909357887611425 -0.9958567579337848 \\ - 0.17716467927275079 -0.984181221329783 \\ - 0.26205212494641733 -0.9650537206866089 \\ - 0.344955380138528 -0.9386190844605088 \\ - 0.4252467229793352 -0.9050774688364177 \\ - 0.5023182083195741 -0.8646828421974226 \\ - 0.5755862709328867 -0.8177410621422734 \\ - 0.6444961441198283 -0.7646075596112515 \\ - 0.708526060256911 -0.7056846476556085 \\ - 0.7671912014852457 -0.641418475227854 \\ - 0.8200473706251754 -0.5722956490580162 \\ - 0.8666943545217002 -0.49883954919414064 \\ - 0.9067789543543201 -0.4216063661047897 \\ - 0.9399976599665676 -0.34118088934959007 \\ - 0.9660989479659163 -0.2581720797048932 \\ - 0.9848851861934383 -0.17320845827128728 \\ - 0.9962141301430728 -0.08693334747541226 \\ - 1.0 -2.4492935982947064e-16 \\ - } - ; - \addlegendentry {others .< 5.0} -\end{axis} -\end{tikzpicture} diff --git a/perf/mallocs/mallocs-0.3.0.csv b/perf/mallocs/mallocs-0.3.0.csv deleted file mode 100644 index eeacf54..0000000 --- a/perf/mallocs/mallocs-0.3.0.csv +++ /dev/null @@ -1,121 +0,0 @@ -bytes,ratio (%),filename: [C:\Users\jeanf\.julia\packages\CompositionalNetworks\rxbIQ\src\,linenumber -1704019332,22.36,metrics.jl,5 -1164158391,15.27,icn.jl,157 -862757082,11.32,transformation.jl,44 -629515109,8.26,transformation.jl,34 -427140513,5.6,transformation.jl,98 -425397097,5.58,transformation.jl,108 -421012052,5.52,transformation.jl,79 -418539965,5.49,transformation.jl,89 -372953844,4.89,aggregation.jl,11 -280299686,3.68,icn.jl,158 -126481278,1.66,genetic.jl,34 -125916255,1.65,icn.jl,147 -91636053,1.2,utils.jl,65 -82368988,1.08,utils.jl,66 -47306582,0.62,arithmetic.jl,5 -40356848,0.53,icn.jl,156 -28183766,0.37,icn.jl,143 -24044662,0.32,comparison.jl,57 -21347003,0.28,layer.jl,20 -19718480,0.26,arithmetic.jl,11 -19702811,0.26,comparison.jl,38 -19305300,0.25,icn.jl,98 -18404060,0.24,icn.jl,65 -18366883,0.24,icn.jl,59 -17360216,0.23,icn.jl,63 -17148400,0.22,icn.jl,131 -14294336,0.19,icn.jl,76 -14057275,0.18,icn.jl,77 -13799152,0.18,comparison.jl,5 -13745392,0.18,icn.jl,136 -13502660,0.18,icn.jl,104 -12920896,0.17,icn.jl,151 -9786002,0.13,icn.jl,61 -9763120,0.13,layer.jl,32 -9418560,0.12,icn.jl,133 -9413339,0.12,icn.jl,101 -8441712,0.11,aggregation.jl,5 -7750880,0.1,icn.jl,103 -7627168,0.1,composition.jl,25 -5788944,0.08,comparison.jl,45 -5210096,0.07,comparison.jl,51 -4672384,0.06,icn.jl,138 -3560576,0.05,icn.jl,139 -3297296,0.04,icn.jl,146 -3149472,0.04,composition.jl,24 -2402512,0.03,icn.jl,150 -2303264,0.03,icn.jl,102 -2162848,0.03,utils.jl,68 -2145392,0.03,icn.jl,144 -1700928,0.02,icn.jl,99 -1668880,0.02,icn.jl,137 -1513888,0.02,genetic.jl,32 -1435056,0.02,icn.jl,135 -1273456,0.02,icn.jl,145 -1197552,0.02,icn.jl,107 -1196784,0.02,composition.jl,23 -1004096,0.01,icn.jl,117 -718000,0.01,icn.jl,100 -705312,0.01,icn.jl,60 -698400,0.01,genetic.jl,33 -677776,0.01,icn.jl,132 -660416,0.01,icn.jl,163 -651824,0.01,icn.jl,142 -640464,0.01,icn.jl,126 -626784,0.01,icn.jl,141 -615968,0.01,icn.jl,125 -590272,0.01,genetic.jl,31 -356016,0.0,icn.jl,78 -355408,0.0,icn.jl,155 -316752,0.0,genetic.jl,7 -178272,0.0,icn.jl,67 -154848,0.0,genetic.jl,27 -104496,0.0,genetic.jl,50 -44304,0.0,icn.jl,26 -26144,0.0,utils.jl,53 -17104,0.0,layer.jl,85 -15824,0.0,utils.jl,48 -10992,0.0,utils.jl,54 -8720,0.0,utils.jl,50 -5952,0.0,layer.jl,69 -2912,0.0,explore.jl,52 -2512,0.0,layer.jl,66 -2512,0.0,icn.jl,27 -2096,0.0,genetic.jl,40 -1936,0.0,utils.jl,52 -1760,0.0,genetic.jl,51 -1392,0.0,utils.jl,56 -1184,0.0,genetic.jl,38 -1040,0.0,layer.jl,71 -800,0.0,utils.jl,51 -768,0.0,utils.jl,47 -672,0.0,learn.jl,36 -656,0.0,layer.jl,67 -496,0.0,layer.jl,68 -448,0.0,genetic.jl,52 -384,0.0,explore.jl,46 -384,0.0,explore.jl,45 -272,0.0,genetic.jl,76 -192,0.0,learn.jl,39 -192,0.0,genetic.jl,30 -144,0.0,learn.jl,34 -144,0.0,genetic.jl,95 -144,0.0,genetic.jl,72 -128,0.0,genetic.jl,73 -96,0.0,utils.jl,81 -80,0.0,explore.jl,50 -32,0.0,explore.jl,51 -32,0.0,explore.jl,26 -0,0.0,learn.jl,35 -0,0.0,learn.jl,21 -0,0.0,learn.jl,20 -0,0.0,genetic.jl,98 -0,0.0,genetic.jl,97 -0,0.0,genetic.jl,96 -0,0.0,genetic.jl,78 -0,0.0,genetic.jl,77 -0,0.0,genetic.jl,74 -0,0.0,explore.jl,55 -0,0.0,explore.jl,24 -0,0.0,explore.jl,23 diff --git a/perf/mallocs/mallocs-0.3.0.pdf b/perf/mallocs/mallocs-0.3.0.pdf deleted file mode 100644 index 3d25bdd8c84707d3d4a91c45159798e7fa08d840..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14665 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 U2Aab$v$3+Uz>$-SD@wrqAN?|LO#lD@ diff --git a/perf/mallocs/mallocs-0.3.0.png b/perf/mallocs/mallocs-0.3.0.png deleted file mode 100644 index edd5025d5d77eb06b34d2b24eaf08819397df976..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38108 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 AJOBUy diff --git a/perf/mallocs/mallocs-0.3.0.svg b/perf/mallocs/mallocs-0.3.0.svg deleted file mode 100644 index 042c387..0000000 --- a/perf/mallocs/mallocs-0.3.0.svg +++ /dev/null @@ -1,503 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/perf/mallocs/mallocs-0.3.0.tikz b/perf/mallocs/mallocs-0.3.0.tikz deleted file mode 100644 index 1ac977f..0000000 --- a/perf/mallocs/mallocs-0.3.0.tikz +++ /dev/null @@ -1,526 +0,0 @@ -\begin{tikzpicture}[/tikz/background rectangle/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, draw opacity={1.0}}, show background rectangle] -\begin{axis}[point meta max={nan}, point meta min={nan}, legend cell align={left}, legend columns={1}, title={Mallocs for CompositionalNetworks.jl@v0.3.0}, title style={at={{(0.5,1)}}, anchor={south}, font={{\fontsize{14 pt}{18.2 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, legend style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid, fill={rgb,1:red,1.0;green,1.0;blue,1.0}, fill opacity={1.0}, text opacity={1.0}, font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, text={rgb,1:red,0.0;green,0.0;blue,0.0}, cells={anchor={center}}, at={(1.02, 1)}, anchor={north west}}, axis background/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, opacity={1.0}}, anchor={north west}, xshift={1.0mm}, yshift={-1.0mm}, width={145.4mm}, height={99.6mm}, scaled x ticks={false}, xlabel={}, x tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, x tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, xlabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, xmajorticks={false}, xmajorgrids={false}, xmin={-1.537800118696119}, xmax={1.537801730704409}, x axis line style={{draw opacity = 0}}, scaled y ticks={false}, ylabel={}, y tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, y tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, ylabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, ymajorticks={false}, ymajorgrids={false}, ymin={-1.0599946126903559}, ymax={1.0599589008720163}, y axis line style={{draw opacity = 0}}, colorbar={false}] - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={911dc2a9-0293-48ad-9ca7-31ce1b76ea9d}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - 1.0 0.0 \\ - 0.9995888264679378 0.028673646444966703 \\ - 0.9983556439990982 0.05732371320096164 \\ - 0.9963014666974637 0.08592663996970107 \\ - 0.9934279838097078 0.11445890521833132 \\ - 0.9897375583360469 0.14289704552229238 \\ - 0.9852332250870347 0.17121767486039616 \\ - 0.9799186881878944 0.19939750384625224 \\ - 0.9737983180324421 0.22741335888022665 \\ - 0.9668771476891065 0.25524220120618324 \\ - 0.9591608687619998 0.28286114585733724 \\ - 0.9506558267104436 0.3102474804756406 \\ - 0.9413690156307993 0.3373786839892228 \\ - 0.9313080725048933 0.36423244513252834 \\ - 0.9204812709197676 0.39078668079392026 \\ - 0.9088975142639195 0.4170195541756624 \\ - 0.8965663284056264 0.44290949275134567 \\ - 0.8834978538593763 0.4684352060059921 \\ - 0.8697028374468445 0.4935757029442469 \\ - 0.8551926234592778 0.5183103093522624 \\ - 0.8399791443285484 0.5426186847990766 \\ - 0.8240749108145546 0.5664808393635073 \\ - 0.807493001717034 0.5898771500728047 \\ - 0.7902470531202503 0.6127883770395456 \\ - 0.7723512471794003 0.6351956792834984 \\ - 0.7538203004579593 0.6570806302254479 \\ - 0.7346694518255595 0.6784252328402386 \\ - 0.714914449926349 0.6992119344565751 \\ - 0.6945715402281414 0.7194236411914106 \\ - 0.6736574516630027 0.7390437320070505 \\ - 0.6521893828702635 0.758056072379415 \\ - 0.6301849880532678 0.7764450275662165 \\ - 0.6076623624614913 0.7941954754641448 \\ - 0.5846400275099657 0.8112928190444845 \\ - 0.5611369155482475 0.8277229983569376 \\ - 0.5371723542914565 0.8434725020917836 \\ - 0.5127660509261851 0.8585283786908648 \\ - 0.48793807590435184 0.872878246998262 \\ - 0.46270884643832416 0.8865103064419022 \\ - 0.4370991097108835 0.8994133467377238 \\ - 0.41112992581384067 0.9115767571084213 \\ - 0.384822650429331 0.9229905350091868 \\ - 0.3581989172680323 0.9336452943532727 \\ - 0.3312806202787458 0.9435322732306137 \\ - 0.3040898956439717 0.9526433411131567 \\ - 0.2766491035762849 0.9609710055409778 \\ - 0.24898080993047947 0.9685084182836835 \\ - 0.2211077676466044 0.9752493809720338 \\ - 0.19305289803915002 0.9811883501951527 \\ - 0.16483927194777245 0.9863204420591354 \\ - } - ; - \addlegendentry {metrics.jl line 5} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={300a63e4-2500-414e-bb4b-d8e9db9b3133}, area legend, fill={rgb,1:red,0.8889;green,0.4356;blue,0.2781}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - 0.16483927194777245 0.9863204420591354 \\ - 0.14549242750407082 0.9893593652151743 \\ - 0.12608978155760542 0.9920188339879215 \\ - 0.10663877571080217 0.9942978283768407 \\ - 0.08714687011382197 0.9961954743068072 \\ - 0.06762154060333037 0.9977110439633472 \\ - 0.04807027583524782 0.9988439560717796 \\ - 0.028500574412585286 0.9995937761201561 \\ - 0.008919942009464887 0.9999602165259115 \\ - -0.01066411150757369 0.9999431367461622 \\ - -0.03024407495987143 0.9995425433316091 \\ - -0.04981243873745479 0.9987585899240253 \\ - -0.0693616976792366 0.9975915771973288 \\ - -0.0888843539515107 0.996041952742264 \\ - -0.10837291992363851 0.994110310894734 \\ - -0.12781992103981893 0.9917973925078521 \\ - -0.14721789868584723 0.9891040846677985 \\ - -0.1665594130497562 0.9860314203535914 \\ - -0.18583704597524917 0.982580578040902 \\ - -0.20504340380682545 0.9787528812500688 \\ - -0.22417112022550842 0.9745497980384792 \\ - -0.24321285907409146 0.9699729404375187 \\ - -0.2621613171708127 0.9650240638342986 \\ - -0.2810092271103854 0.9597050662984039 \\ - -0.299749360051305 0.9540179878539152 \\ - -0.3183745284883652 0.9479650096969883 \\ - -0.3368775890093227 0.9415484533592873 \\ - -0.35525144503464706 0.9347707798175953 \\ - -0.373489049539312 0.9276345885499426 \\ - -0.3915834077555789 0.9201426165386146 \\ - -0.4095275798557372 0.9122977372204224 \\ - -0.42731468361377556 0.9041029593846371 \\ - -0.4449378970449591 0.8955614260190137 \\ - -0.46239046102230175 0.8866764131043429 \\ - -0.4796656818689313 0.8774513283579968 \\ - -0.49675693392535303 0.8678897099269482 \\ - -0.5136576620906227 0.8579952250307665 \\ - -0.5303613843364615 0.8477716685551081 \\ - -0.5468616941933432 0.8372229615962443 \\ - -0.5631522632076035 0.8263531499571802 \\ - -0.579226843368624 0.8151664025959482 \\ - -0.5950792695051672 0.8036670100266631 \\ - -0.6107034616499392 0.7918593826739577 \\ - -0.6260934273714698 0.7797480491814303 \\ - -0.6412432640724247 0.7673376546747479 \\ - -0.6561471612534606 0.754632958980076 \\ - -0.6707994027417566 0.7416388347985173 \\ - -0.6851943688833695 0.7283602658372579 \\ - -0.6993265386985703 0.7148023448981383 \\ - -0.7131904919993366 0.7009702719243834 \\ - } - ; - \addlegendentry {icn.jl line 157} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={88fdd720-6af8-41fc-b6cd-7dfbbbeb2f4a}, area legend, fill={rgb,1:red,0.2422;green,0.6433;blue,0.3044}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.7131904919993366 0.7009702719243834 \\ - -0.7232918993826377 0.6905424159944531 \\ - -0.7332408523044593 0.6799690084936445 \\ - -0.7430352537383303 0.6692522780700975 \\ - -0.7526730392339261 0.6583944835813591 \\ - -0.7621521773522123 0.6473979136182645 \\ - -0.7714706700936288 0.636264886022549 \\ - -0.780626553319224 0.6249977473982995 \\ - -0.7896178971646545 0.6135988726173388 \\ - -0.7984428064469589 0.602070664318653 \\ - -0.8070994210640215 0.5904155524019681 \\ - -0.8155859163866424 0.5786359935155787 \\ - -0.8239005036431303 0.5667344705385374 \\ - -0.8320414302963367 0.5547134920573199 \\ - -0.8400069804130545 0.5425755918370657 \\ - -0.847795475025699 0.5303233282875169 \\ - -0.8554052724861979 0.5179592839237593 \\ - -0.8628347688120175 0.5054860648218825 \\ - -0.8700823980242458 0.4929063000696764 \\ - -0.8771466324776686 0.4802226412124753 \\ - -0.8840259831827644 0.4674377616942675 \\ - -0.8907190001195509 0.4545543562941924 \\ - -0.8972242725432182 0.44157514055853825 \\ - -0.9035404292814853 0.4285028502283613 \\ - -0.909666139023611 0.41534024066285274 \\ - -0.9156001106010082 0.4020900862585666 \\ - -0.9213410932593938 0.38875517986463537 \\ - -0.9268878769224205 0.3753383321940992 \\ - -0.9322392924467352 0.36184237123146656 \\ - -0.9373942118684104 0.3482701416366347 \\ - -0.9423515486406934 0.3346245041452984 \\ - -0.9471102578630277 0.32090833496596666 \\ - -0.9516693365012965 0.3071245251737186 \\ - -0.9560278235992393 0.2932759801008288 \\ - -0.9601848004810021 0.27936561872438465 \\ - -0.9641393909447743 0.2653963730510265 \\ - -0.9678907614474732 0.2513711874989465 \\ - -0.9714381212804369 0.2372930182772666 \\ - -0.9747807227360894 0.22316483276293167 \\ - -0.9779178612655404 0.20898960887525309 \\ - -0.9808488756270903 0.19477033444822336 \\ - -0.9835731480256046 0.18051000660074784 \\ - -0.9860901042427328 0.16621163110491477 \\ - -0.9883992137579412 0.15187822175244153 \\ - -0.9904999898603345 0.13751279971943442 \\ - -0.9923919897512452 0.1231183929295881 \\ - -0.9940748146375654 0.10869803541596264 \\ - -0.9955481098158041 0.09425476668147696 \\ - -0.9968115647468506 0.07979163105824524 \\ - -0.9978649131214306 0.0653116770658956 \\ - } - ; - \addlegendentry {transformation.jl line 44} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={186f52fa-34d7-4bfd-81a3-1907f14df257}, area legend, fill={rgb,1:red,0.7644;green,0.4441;blue,0.8243}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.9978649131214306 0.0653116770658956 \\ - -0.9985008036336814 0.054737054569024855 \\ - -0.9990246353985445 0.044156289096856725 \\ - -0.9994363496279536 0.03357056809693436 \\ - -0.9997359001164567 0.02298107957294356 \\ - -0.9999232532464021 0.012389011951388057 \\ - -0.9999983879917103 0.0017955539482172873 \\ - -0.9999612959202343 -0.00879810556458229 \\ - -0.9998119811947063 -0.01939077769240895 \\ - -0.9995504605722693 -0.029981273651472667 \\ - -0.9991767634025976 -0.040568404902206964 \\ - -0.9986909316246029 -0.05115098328265782 \\ - -0.9980930197617268 -0.061727821141826164 \\ - -0.9973830949158226 -0.07229773147295307 \\ - -0.9965612367596244 -0.0828595280467366 \\ - -0.9956275375278054 -0.09341202554445749 \\ - -0.9945821020066274 -0.10395403969100248 \\ - -0.9934250475221802 -0.1144843873877747 \\ - -0.9921565039272146 -0.12500188684546787 \\ - -0.9907766135865697 -0.13550535771669375 \\ - -0.9892855313611958 -0.1459936212284515 \\ - -0.9876834245907742 -0.1564655003144162 \\ - -0.9859704730749376 -0.1669198197470382 \\ - -0.9841468690530921 -0.17735540626943377 \\ - -0.982212817182842 -0.1877710887270588 \\ - -0.9801685345170219 -0.19816569819914248 \\ - -0.9780142504793381 -0.20853806812987075 \\ - -0.97575020683862 -0.2188870344593077 \\ - -0.9733766576816884 -0.22921143575403338 \\ - -0.9708938693848388 -0.23951011333748662 \\ - -0.9683021205839477 -0.24978191142000244 \\ - -0.965601702143202 -0.2600256772285211 \\ - -0.9627929171224555 -0.2702402611359612 \\ - -0.9598760807432186 -0.28042451679023733 \\ - -0.9568515203532807 -0.2905773012429141 \\ - -0.9537195753899737 -0.30069747507747446 \\ - -0.9504805973420779 -0.310783902537192 \\ - -0.9471349497103752 -0.3208354516525959 \\ - -0.9436830079668543 -0.3308509943685072 \\ - -0.9401251595125738 -0.3408294066706357 \\ - -0.9364618036341839 -0.35076956871172743 \\ - -0.9326933514591159 -0.3606703649372403 \\ - -0.9288202259094439 -0.37053068421053836 \\ - -0.9248428616544196 -0.38034941993759364 \\ - -0.9207617050616925 -0.3901254701911743 \\ - -0.9165772141472136 -0.3998577378345115 \\ - -0.9122898585238356 -0.40954513064442605 \\ - -0.9079001193486079 -0.4191865614339078 \\ - -0.9034084892687788 -0.42878094817412626 \\ - -0.8988154723665072 -0.4383272141158619 \\ - } - ; - \addlegendentry {transformation.jl line 34} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={9a36617e-4b4f-4f0e-a68d-5501a2290bb0}, area legend, fill={rgb,1:red,0.6755;green,0.5557;blue,0.0942}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.8988154723665072 -0.4383272141158619 \\ - -0.8956441548266424 -0.4447713434168949 \\ - -0.8924266363272968 -0.4511925296074246 \\ - -0.889163082841129 -0.45759044145661476 \\ - -0.8858536627154694 -0.4639647489342131 \\ - -0.8824985466636359 -0.4703151232275764 \\ - -0.8790979077561272 -0.4766412367586335 \\ - -0.875651921411696 -0.4829427632007802 \\ - -0.8721607653882996 -0.4892193774957157 \\ - -0.8686246197739304 -0.49547075587020756 \\ - -0.8650436669773273 -0.5016965758527946 \\ - -0.8614180917185642 -0.5078965162904223 \\ - -0.8577480810195237 -0.5140702573650071 \\ - -0.8540338241942484 -0.5202174806099344 \\ - -0.8502755128391752 -0.5263378689264887 \\ - -0.8464733408232531 -0.5324311066002069 \\ - -0.842627504277941 -0.5384968793171679 \\ - -0.8387382015870923 -0.5445348741802035 \\ - -0.8348056333767205 -0.5505447797250397 \\ - -0.8308300025046493 -0.5565262859363648 \\ - -0.8268115140500499 -0.5624790842638187 \\ - -0.8227503753028618 -0.5684028676379106 \\ - -0.8186467957530985 -0.5742973304858595 \\ - -0.8145009870800434 -0.5801621687473555 \\ - -0.8103131631413291 -0.5859970798902446 \\ - -0.8060835399619056 -0.5918017629261364 \\ - -0.8018123357228981 -0.5975759184259273 \\ - -0.7974997707503508 -0.6033192485352492 \\ - -0.793146067503863 -0.6090314569898321 \\ - -0.788751450565113 -0.6147122491307866 \\ - -0.7843161466262725 -0.6203613319198058 \\ - -0.7798403844783148 -0.6259784139542784 \\ - -0.7753243949992118 -0.6315632054823224 \\ - -0.7707684111420232 -0.6371154184177314 \\ - -0.7661726679228822 -0.6426347663548346 \\ - -0.7615374024088709 -0.6481209645832708 \\ - -0.756862853705791 -0.6535737301026766 \\ - -0.7521492629458316 -0.6589927816372818 \\ - -0.7473968732751286 -0.6643778396504216 \\ - -0.7426059298412236 -0.6697286263589541 \\ - -0.7377766797804179 -0.6750448657475906 \\ - -0.7329093722050234 -0.6803262835831336 \\ - -0.7280042581905135 -0.6855726074286225 \\ - -0.7230615907625714 -0.6907835666573864 \\ - -0.7180816248840366 -0.6959588924670062 \\ - -0.7130646174417555 -0.7010983178931774 \\ - -0.7080108272333273 -0.7062015778234849 \\ - -0.7029205149537564 -0.711268409011075 \\ - -0.6977939431820039 -0.7162985500882368 \\ - -0.6926313763674417 -0.7212917415798848 \\ - } - ; - \addlegendentry {transformation.jl line 98} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={9c4eee15-5e25-4cf0-abab-2af7f1c3bd33}, area legend, fill={rgb,1:red,0.0;green,0.6658;blue,0.681}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.6926313763674417 -0.7212917415798848 \\ - -0.6874517094139488 -0.7262300924802275 \\ - -0.6822368337554063 -0.7311312485917956 \\ - -0.6769870164782387 -0.7359949588957068 \\ - -0.6717025264584489 -0.7408209742909124 \\ - -0.6663836343478489 -0.7456090476069563 \\ - -0.6610306125601959 -0.7503589336166341 \\ - -0.6556437352572424 -0.7550703890485515 \\ - -0.6502232783346936 -0.7597431725995855 \\ - -0.6447695194080775 -0.7643770449472411 \\ - -0.6392827377985246 -0.7689717687619115 \\ - -0.6337632145184665 -0.7735271087190289 \\ - -0.6282112322572374 -0.7780428315111214 \\ - -0.6226270753666024 -0.7825187058597585 \\ - -0.6170110298461876 -0.7869545025273996 \\ - -0.6113633833288385 -0.791349994329131 \\ - -0.6056844250658825 -0.7957049561443057 \\ - -0.5999744459123202 -0.8000191649280687 \\ - -0.5942337383119243 -0.8042923997227845 \\ - -0.5884625962822635 -0.8085244416693522 \\ - -0.582661315399646 -0.8127150740184127 \\ - -0.5768301927839772 -0.8168640821414538 \\ - -0.5709695270835463 -0.8209712535417982 \\ - -0.5650796184597267 -0.8250363778654913 \\ - -0.5591607685716073 -0.8290592469120704 \\ - -0.5532132805605388 -0.8330396546452316 \\ - -0.5472374590346086 -0.8369773972033804 \\ - -0.5412336100530436 -0.8408722729100716 \\ - -0.5352020411105287 -0.844724082284342 \\ - -0.529143061121465 -0.8485326280509227 \\ - -0.5230569804041415 -0.8522977151503467 \\ - -0.5169441106648482 -0.8560191507489358 \\ - -0.5108047649819056 -0.8596967442486799 \\ - -0.5046392577896361 -0.8633303072969958 \\ - -0.4984479048622544 -0.8669196537963764 \\ - -0.49223102329769697 -0.8704645999139208 \\ - -0.4859889315013841 -0.8739649640907483 \\ - -0.4797219491699067 -0.8774205670513003 \\ - -0.47343039727465874 -0.8808312318125185 \\ - -0.4671145980453924 -0.8841967836929128 \\ - -0.4607748749537206 -0.8875170503215041 \\ - -0.45441155269654476 -0.8907918616466561 \\ - -0.4480249571794272 -0.8940210499447832 \\ - -0.44161541549990196 -0.8972044498289389 \\ - -0.43518325593071655 -0.90034189825729 \\ - -0.42872880790302537 -0.9034332345414634 \\ - -0.4222524019895109 -0.9064783003547787 \\ - -0.41575436988745995 -0.9094769397403549 \\ - -0.4092350444017683 -0.9124289991191001 \\ - -0.40269475942790245 -0.9153343272975748 \\ - } - ; - \addlegendentry {transformation.jl line 108} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={a71d56c8-88b9-4754-a48c-b09fd70e3a0f}, area legend, fill={rgb,1:red,0.9308;green,0.3675;blue,0.5758}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.40269475942790245 -0.9153343272975748 \\ - -0.3962045058567997 -0.918162289325133 \\ - -0.3896943942144911 -0.9209442323603535 \\ - -0.3831647507927255 -0.9236800169701348 \\ - -0.37661590286219726 -0.9263695060348716 \\ - -0.3700481786561452 -0.9290125647553265 \\ - -0.3634619073539038 -0.9316090606593853 \\ - -0.35685741906439983 -0.9341588636086987 \\ - -0.3502350448096091 -0.9366618458052036 \\ - -0.34359511650796837 -0.939117881797528 \\ - -0.33693796695773376 -0.9415268484872797 \\ - -0.3302639298203037 -0.9438886251352167 \\ - -0.3235733396034978 -0.9462030933672958 \\ - -0.3168665316447852 -0.9484701371806096 \\ - -0.3101438420944839 -0.9506896429491971 \\ - -0.3034056078989071 -0.9528614994297412 \\ - -0.2966521667834771 -0.9549855977671433 \\ - -0.2898838572358013 -0.9570618314999787 \\ - -0.28310101848870173 -0.9590900965658334 \\ - -0.2763039905032148 -0.9610702913065201 \\ - -0.26949311395155506 -0.9630023164731714 \\ - -0.26266873020003506 -0.9648860752312167 \\ - -0.2558311812919585 -0.9667214731652344 \\ - -0.24898080993047936 -0.9685084182836835 \\ - -0.24211795946142012 -0.9702468210235157 \\ - -0.23524297385606563 -0.9719365942546635 \\ - -0.2283561976939256 -0.9735776532844069 \\ - -0.22145797614545878 -0.9751699158616192 \\ - -0.21454865495477546 -0.976713302180889 \\ - -0.20762858042231097 -0.9782077348865199 \\ - -0.20069809938746375 -0.9796531390764078 \\ - -0.19375755921121407 -0.9810494423057957 \\ - -0.18680730775871657 -0.9823965745909032 \\ - -0.17984769338185985 -0.9836944684124357 \\ - -0.17287906490180946 -0.9849430587189677 \\ - -0.16590177159152722 -0.9861422829302031 \\ - -0.15891616315826018 -0.9872920809401123 \\ - -0.15192258972601574 -0.9883923951199446 \\ - -0.14492140181801574 -0.9894431703211162 \\ - -0.13791295033912176 -0.9904443538779748 \\ - -0.13089758655825467 -0.9913958956104388 \\ - -0.12387566209078249 -0.9922977478265131 \\ - -0.11684752888089985 -0.9931498653246786 \\ - -0.1098135391839909 -0.9939522053961579 \\ - -0.10277404554896877 -0.9947047278270564 \\ - -0.09572940080060811 -0.9954073949003778 \\ - -0.08867995802186399 -0.9960601713979134 \\ - -0.08162607053616969 -0.9966630246020087 \\ - -0.07456809188973065 -0.9972159242972028 \\ - -0.06750637583380703 -0.9977188427717424 \\ - } - ; - \addlegendentry {transformation.jl line 79} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={489c1bed-2270-4345-bfdc-54e6204bf991}, area legend, fill={rgb,1:red,0.777;green,0.5097;blue,0.1464}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.06750637583380703 -0.9977188427717424 \\ - -0.06047968209505271 -0.998169428530889 \\ - -0.05344998992773577 -0.9985705275926808 \\ - -0.04641764784608699 -0.9989221200716484 \\ - -0.03938300449571045 -0.9992241885367321 \\ - -0.03234640863630219 -0.9994767180121473 \\ - -0.025308209124357772 -0.9996796959781257 \\ - -0.018268754895880424 -0.9998331123715368 \\ - -0.011228394949076369 -0.999936959586387 \\ - -0.004187478327055034 -0.9999912324741954 \\ - 0.0028536458994729524 -0.999995928344251 \\ - 0.00989462864950712 -0.9999510469637443 \\ - 0.01693512084906016 -0.9998565905577798 \\ - 0.023974773448465887 -0.9997125638092655 \\ - 0.031013237439680694 -0.9995189738586807 \\ - 0.0380501638735918 -0.9992758303037219 \\ - 0.04508520387731461 -0.9989831451988271 \\ - 0.05211800867148624 -0.9986409330545784 \\ - 0.05914822958756251 -0.9982492108369818 \\ - 0.06617551808510039 -0.9978079979666271 \\ - 0.07319952576903963 -0.9973173163177242 \\ - 0.08021990440697166 -0.9967771902170195 \\ - 0.08723630594640945 -0.9961876464425888 \\ - 0.09424838253204036 -0.9955487142225107 \\ - 0.10125578652296932 -0.9948604252334168 \\ - 0.10825817050995921 -0.9941228135989217 \\ - 0.11525518733265108 -0.9933359158879314 \\ - 0.12224649009677716 -0.9924997711128293 \\ - 0.1292317321913555 -0.9916144207275436 \\ - 0.13621056730587938 -0.9906799086254906 \\ - 0.14318264944748382 -0.9896962811373997 \\ - 0.15014763295809636 -0.988663587029016 \\ - 0.15710517253157924 -0.9875818774986825 \\ - 0.16405492323084528 -0.9864512061748019 \\ - 0.17099654050496071 -0.9852716291131778 \\ - 0.1779296802062236 -0.9840432047942361 \\ - 0.18485399860723115 -0.9827659941201251 \\ - 0.19176915241791814 -0.9814400604116958 \\ - 0.19867479880257372 -0.9800654694053642 \\ - 0.20557059539684372 -0.9786422892498501 \\ - 0.21245620032470053 -0.9771705905028 \\ - 0.2193312722153943 -0.9756504461272882 \\ - 0.22619547022037373 -0.9740819314882009 \\ - 0.23304845403018964 -0.9724651243484974 \\ - 0.2398898838913641 -0.9708001048653568 \\ - 0.24671942062323193 -0.9690869555862037 \\ - 0.2535367256347616 -0.9673257614446147 \\ - 0.2603414609413382 -0.9655166097561085 \\ - 0.26713328918152174 -0.9636595902138169 \\ - 0.27391187363376895 -0.9617547948840381 \\ - } - ; - \addlegendentry {transformation.jl line 89} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={eda61845-812f-4840-b8b4-22b4e9370bc8}, area legend, fill={rgb,1:red,0.0;green,0.6643;blue,0.553}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - 0.27391187363376895 -0.9617547948840381 \\ - 0.2991987056893235 -0.9541908270958349 \\ - 0.32427710471129867 -0.9459621342104859 \\ - 0.3491296001468943 -0.9370744486439002 \\ - 0.3737388788162156 -0.9275339618909909 \\ - 0.3980877969732863 -0.9173473202124458 \\ - 0.4221593922490199 -0.9065216200046958 \\ - 0.4459368954678451 -0.8950644028562974 \\ - 0.46940374232974114 -0.8829836502941796 \\ - 0.4925435849495503 -0.8702877782234134 \\ - 0.5153403032455265 -0.8569856310643772 \\ - 0.5377780161691917 -0.8430864755914002 \\ - 0.5598410927686649 -0.8285999944771827 \\ - 0.581514163077772 -0.8135362795474818 \\ - 0.6027821288233403 -0.7979058247507672 \\ - 0.6236301739432204 -0.7817195188477442 \\ - 0.644043774907711 -0.7649886378258345 \\ - 0.6640087108371959 -0.7477248370438989 \\ - 0.6835110734089382 -0.7299401431126809 \\ - 0.7025372765461418 -0.7116469455166163 \\ - 0.7210740658825211 -0.6928579879828547 \\ - 0.7391085279957892 -0.6735863596035015 \\ - 0.756628099403632 -0.6538454857172661 \\ - 0.7736205753159022 -0.6336491185568655 \\ - 0.7900741181369312 -0.6130113276687068 \\ - 0.8059772657120433 -0.591946490111512 \\ - 0.8213189393125225 -0.5704692804407201 \\ - 0.8360884513534698 -0.5485946604856418 \\ - 0.850275512839175 -0.526337868926489 \\ - 0.8638702405308187 -0.5037144106785365 \\ - 0.8768631638315044 -0.48074004609082055 \\ - 0.8892452313838326 -0.45743077996688647 \\ - 0.9010078173754155 -0.43380285041524325 \\ - 0.9121427275479415 -0.4098727175372884 \\ - 0.9226422049056018 -0.3856570519605852 \\ - 0.9324989351189064 -0.3611727232254753 \\ - 0.9417060516201173 -0.3364367880331296 \\ - 0.9502571403867595 -0.3114664783632075 \\ - 0.9581462444098682 -0.28627918946941494 \\ - 0.9653678678438647 -0.2608924677613182 \\ - 0.9719169798351689 -0.23532399858085867 \\ - 0.9777890180268801 -0.209591593882077 \\ - 0.9829798917370859 -0.18371317982264335 \\ - 0.9874859848085844 -0.1577067842758208 \\ - 0.9913041581280351 -0.13159052427157378 \\ - 0.9944317518127829 -0.10538259337556592 \\ - 0.9968665870638318 -0.07910124901484113 \\ - 0.9986069676836785 -0.052764799759012056 \\ - 0.9996516812579466 -0.02639159256582947 \\ - 1.0 -2.4492935982947064e-16 \\ - } - ; - \addlegendentry {others .< 5.0} -\end{axis} -\end{tikzpicture} diff --git a/perf/mallocs/mallocs-0.3.1.csv b/perf/mallocs/mallocs-0.3.1.csv deleted file mode 100644 index 90331e2..0000000 --- a/perf/mallocs/mallocs-0.3.1.csv +++ /dev/null @@ -1,121 +0,0 @@ -bytes,ratio (%),filename: [C:\Users\jeanf\.julia\dev\CompositionalNetworks\src\,linenumber -1547005022,22.68,metrics.jl,5 -1064788102,15.61,icn.jl,157 -815071772,11.95,transformation.jl,44 -553822261,8.12,transformation.jl,34 -384883936,5.64,transformation.jl,98 -373037216,5.47,transformation.jl,89 -352800733,5.17,transformation.jl,79 -340952896,5.0,aggregation.jl,11 -331001408,4.85,transformation.jl,108 -264555469,3.88,icn.jl,158 -111246062,1.63,genetic.jl,34 -107733192,1.58,icn.jl,147 -77903329,1.14,utils.jl,65 -70441185,1.03,utils.jl,66 -39195390,0.57,icn.jl,156 -34157543,0.5,arithmetic.jl,5 -24695272,0.36,arithmetic.jl,11 -24037835,0.35,icn.jl,143 -18653111,0.27,layer.jl,20 -16921008,0.25,comparison.jl,38 -16823920,0.25,icn.jl,98 -15752786,0.23,icn.jl,59 -15409565,0.23,icn.jl,65 -14781248,0.22,icn.jl,131 -14546913,0.21,comparison.jl,57 -14392880,0.21,icn.jl,63 -13603520,0.2,comparison.jl,5 -12599520,0.18,icn.jl,76 -12292907,0.18,icn.jl,77 -11728965,0.17,icn.jl,136 -11418848,0.17,icn.jl,104 -10746352,0.16,icn.jl,151 -9172240,0.13,layer.jl,32 -8198784,0.12,icn.jl,101 -7995947,0.12,icn.jl,61 -7760065,0.11,icn.jl,133 -7484000,0.11,composition.jl,25 -7299792,0.11,aggregation.jl,5 -6967323,0.1,comparison.jl,51 -6613952,0.1,icn.jl,103 -4279808,0.06,comparison.jl,45 -4187403,0.06,icn.jl,138 -3488336,0.05,icn.jl,139 -3125552,0.05,icn.jl,146 -2851360,0.04,composition.jl,24 -2177264,0.03,icn.jl,150 -1903504,0.03,icn.jl,102 -1868432,0.03,icn.jl,144 -1802128,0.03,utils.jl,68 -1549984,0.02,icn.jl,99 -1449328,0.02,icn.jl,137 -1439328,0.02,genetic.jl,32 -1233407,0.02,icn.jl,135 -1135072,0.02,icn.jl,145 -1131408,0.02,icn.jl,107 -989120,0.01,composition.jl,23 -921824,0.01,icn.jl,117 -669968,0.01,icn.jl,142 -654800,0.01,icn.jl,163 -650368,0.01,icn.jl,60 -646720,0.01,icn.jl,126 -618304,0.01,genetic.jl,33 -606208,0.01,icn.jl,141 -603088,0.01,icn.jl,125 -577744,0.01,icn.jl,132 -570112,0.01,icn.jl,100 -532176,0.01,genetic.jl,31 -318352,0.0,icn.jl,155 -310416,0.0,icn.jl,78 -251440,0.0,genetic.jl,7 -165248,0.0,icn.jl,67 -86928,0.0,genetic.jl,50 -76288,0.0,genetic.jl,27 -37776,0.0,icn.jl,26 -16416,0.0,utils.jl,53 -13200,0.0,layer.jl,85 -9824,0.0,utils.jl,48 -4128,0.0,utils.jl,54 -3872,0.0,layer.jl,69 -3504,0.0,utils.jl,50 -3360,0.0,genetic.jl,52 -2912,0.0,explore.jl,52 -2784,0.0,icn.jl,27 -2688,0.0,utils.jl,52 -2320,0.0,genetic.jl,51 -2256,0.0,genetic.jl,40 -1248,0.0,layer.jl,66 -800,0.0,utils.jl,51 -624,0.0,layer.jl,67 -624,0.0,genetic.jl,38 -480,0.0,layer.jl,68 -448,0.0,utils.jl,47 -384,0.0,explore.jl,46 -384,0.0,explore.jl,45 -368,0.0,utils.jl,56 -336,0.0,learn.jl,36 -272,0.0,genetic.jl,76 -224,0.0,utils.jl,81 -208,0.0,layer.jl,71 -192,0.0,learn.jl,39 -160,0.0,genetic.jl,30 -144,0.0,learn.jl,34 -144,0.0,genetic.jl,72 -128,0.0,genetic.jl,73 -80,0.0,explore.jl,50 -32,0.0,genetic.jl,95 -32,0.0,explore.jl,26 -0,0.0,learn.jl,35 -0,0.0,learn.jl,21 -0,0.0,learn.jl,20 -0,0.0,genetic.jl,98 -0,0.0,genetic.jl,97 -0,0.0,genetic.jl,96 -0,0.0,genetic.jl,78 -0,0.0,genetic.jl,77 -0,0.0,genetic.jl,74 -0,0.0,explore.jl,55 -0,0.0,explore.jl,51 -0,0.0,explore.jl,24 -0,0.0,explore.jl,23 diff --git a/perf/mallocs/mallocs-0.3.1.pdf b/perf/mallocs/mallocs-0.3.1.pdf deleted file mode 100644 index 8535b39430abbcb766ae741c6c4d9659c40ddd1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14980 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 X&hCyTrqBQuHfBy}GBOc4QRx2zStws3?fN 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ⅈwLV49ciTB9 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/perf/mallocs/mallocs-0.3.1.tikz b/perf/mallocs/mallocs-0.3.1.tikz deleted file mode 100644 index e44a74d..0000000 --- a/perf/mallocs/mallocs-0.3.1.tikz +++ /dev/null @@ -1,526 +0,0 @@ -\begin{tikzpicture}[/tikz/background rectangle/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, draw opacity={1.0}}, show background rectangle] -\begin{axis}[point meta max={nan}, point meta min={nan}, legend cell align={left}, legend columns={1}, title={Mallocs for CompositionalNetworks.jl@v0.3.1}, title style={at={{(0.5,1)}}, anchor={south}, font={{\fontsize{14 pt}{18.2 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, legend style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid, fill={rgb,1:red,1.0;green,1.0;blue,1.0}, fill opacity={1.0}, text opacity={1.0}, font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, text={rgb,1:red,0.0;green,0.0;blue,0.0}, cells={anchor={center}}, at={(1.02, 1)}, anchor={north west}}, axis background/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, opacity={1.0}}, anchor={north west}, xshift={1.0mm}, yshift={-1.0mm}, width={145.4mm}, height={99.6mm}, scaled x ticks={false}, xlabel={}, x tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, x tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, xlabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, xmajorticks={false}, xmajorgrids={false}, xmin={-1.5378213433331034}, xmax={1.537821417353911}, x axis line style={{draw opacity = 0}}, scaled y ticks={false}, ylabel={}, y tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, y tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, ylabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, ymajorticks={false}, ymajorgrids={false}, ymin={-1.0599964977388252}, ymax={1.0599852151906226}, y axis line style={{draw opacity = 0}}, colorbar={false}] - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={e2068718-7540-4c6a-a83f-049613b18d91}, area legend, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - 1.0 0.0 \\ - 0.9995769742592671 0.029083887819349657 \\ - 0.998308254938623 0.05814316917232297 \\ - 0.9961949154399284 0.08715325841088091 \\ - 0.9932387437571972 0.11608961150604577 \\ - 0.989442240963861 0.14492774681341314 \\ - 0.9848086190967325 0.1736432657858835 \\ - 0.9793417984384567 0.20221187361608914 \\ - 0.9730464042007507 0.23060939979105194 \\ - 0.9659277626112357 0.25881181854168156 \\ - 0.9579918964071744 0.2867952691698131 \\ - 0.9492455197399257 0.3145360762355861 \\ - 0.939696032494426 0.3420107695880856 \\ - 0.929351514028507 0.3691961042222978 \\ - 0.9182207163373416 0.3960690799455813 \\ - 0.9063130566488063 0.42260696083701405 \\ - 0.8936386094560216 0.4487872944831529 \\ - 0.8802080979938114 0.47458793097393115 \\ - 0.8660328851662954 0.4999870416426232 \\ - 0.8511249639332863 0.5249631375340197 \\ - 0.8354969471636289 0.5494950875851906 \\ - 0.8191620569640635 0.5735621365034519 \\ - 0.8021341134926431 0.5971439223264117 \\ - 0.7844275232661679 0.6202204936492389 \\ - 0.7660572669715309 0.6427723265045787 \\ - 0.7470388867912847 0.6647803408808342 \\ - 0.7273884732541563 0.6862259168648379 \\ - 0.7071226516216302 0.707090910395258 \\ - 0.6862585678221214 0.727357668613407 \\ - 0.6648138739446381 0.7470090447984702 \\ - 0.6428067133042049 0.7660284128745132 \\ - 0.6202557050916846 0.7843996814769989 \\ - 0.5971799286209836 0.8021073075669096 \\ - 0.5735989071869713 0.8191363095809587 \\ - 0.5495325915477662 0.8354722801067644 \\ - 0.5250013430453685 0.8511013980722621 \\ - 0.5000259163789156 0.8660104404390433 \\ - 0.47462744204513907 0.8801867933897259 \\ - 0.4488274084608758 0.8936184629998947 \\ - 0.42264764378276193 0.906294085385577 \\ - 0.3961102974394874 0.9182029363176752 \\ - 0.3692378213922405 0.9293349402952156 \\ - 0.3420529511391913 0.9396806790697412 \\ - 0.314578686480091 0.9492313996136351 \\ - 0.28683827205725687 0.9579790215256319 \\ - 0.25885517768940736 0.9659161438672538 \\ - 0.23065307851498887 0.973036051424385 \\ - 0.2022558349617879 0.9793327203886889 \\ - 0.1736874725597826 0.9848008234540601 \\ - 0.14497216161430582 0.9894357343237992 \\ - } - ; - \addlegendentry {metrics.jl line 5} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={04ab93fc-480e-42fb-9d71-29f4adb2a67e}, area legend, fill={rgb,1:red,0.8889;green,0.4356;blue,0.2781}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - 0.14497216161430582 0.9894357343237992 \\ - 0.1251354960729875 0.9921396613494329 \\ - 0.1052486756590855 0.9944459343131775 \\ - 0.08531967110013366 0.9963536288504022 \\ - 0.06535647003126097 0.9978619803485114 \\ - 0.045367073793713034 0.9989703842534051 \\ - 0.02535949422787686 0.999678396311787 \\ - 0.0053417504620996495 0.9999857327492231 \\ - -0.014678134301413447 0.9998922703838797 \\ - -0.03469213600233637 0.9993980466758955 \\ - -0.054692232938301145 0.998503259712367 \\ - -0.0746704089800318 0.9972082681279547 \\ - -0.09461865678424676 0.9955135909611404 \\ - -0.11452898100303646 0.9934199074461947 \\ - -0.1343934014884365 0.9909280567409361 \\ - -0.15420395649090643 0.9880390375903934 \\ - -0.17395270585043407 0.9847540079265036 \\ - -0.19363173417898943 0.9810742844040085 \\ - -0.21323315403304594 0.9770013418727321 \\ - -0.2327491090749052 0.9725368127864559 \\ - -0.25217177722155193 0.967682486548622 \\ - -0.2714933737797796 0.962440308795134 \\ - -0.2907061545663321 0.9568123806145361 \\ - -0.30980241901180566 0.9508009577058879 \\ - -0.32877451324707363 0.9444084494746697 \\ - -0.34761483317099084 0.9376374180670821 \\ - -0.3663158274981512 0.9304905773431263 \\ - -0.38487000078547867 0.9229707917888765 \\ - -0.40326991643643334 0.9150810753683807 \\ - -0.42150819968163306 0.9068245903156511 \\ - -0.43957754053469517 0.8982046458672257 \\ - -0.4574706967221118 0.8892246969358114 \\ - -0.47518049658598455 0.8798883427255398 \\ - -0.4926998419584594 0.8701993252893897 \\ - -0.5100217110067035 0.8601615280293549 \\ - -0.5271391610472873 0.8497789741399596 \\ - -0.5440453313288439 0.8390558249957439 \\ - -0.5607334457818892 0.8279963784833657 \\ - -0.5771968157347004 0.8166050672789892 \\ - -0.593428842594167 0.8048864570716465 \\ - -0.6094230204905362 0.7928452447332907 \\ - -0.625172938884995 0.780486256436267 \\ - -0.6406722851390434 0.7678144457189616 \\ - -0.655914847044627 0.754834891500402 \\ - -0.6708945153140203 0.741552796044601 \\ - -0.6856052860284558 0.727973482875468 \\ - -0.7000412630445211 0.7141023946431153 \\ - -0.7141966603573613 0.6999450909424195 \\ - -0.7280658044197339 0.6855072460847119 \\ - -0.7416431364159944 0.670794646823487 \\ - } - ; - \addlegendentry {icn.jl line 157} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={a863ec82-fb4a-4375-b5ce-047676edfed5}, area legend, fill={rgb,1:red,0.2422;green,0.6433;blue,0.3044}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.7416431364159944 0.670794646823487 \\ - -0.7518364601566795 0.6593496319700752 \\ - -0.7618531833667648 0.6477497410218909 \\ - -0.7716909531959593 0.6359976987029998 \\ - -0.7813474588287288 0.6240962654766393 \\ - -0.7908204320270869 0.6120482368968084 \\ - -0.8001076476633866 0.5998564429516133 \\ - -0.8092069242429866 0.5875237473985246 \\ - -0.8181161244166661 0.5750530470917045 \\ - -0.826833155482673 0.5624472713015558 \\ - -0.8353559698782815 0.5497093810266618 \\ - -0.8436825656607497 0.5368423682982695 \\ - -0.8518109869775602 0.5238492554774844 \\ - -0.8597393245258345 0.5107330945453427 \\ - -0.8674657160008137 0.49749696638592245 \\ - -0.8749883465332989 0.4841439800626706 \\ - -0.8823054491159502 0.47067727208810656 \\ - -0.8894153050183427 0.45710000568708 \\ - -0.8963162441906828 0.4434153700537547 \\ - -0.9030066456560911 0.4296265796024899 \\ - -0.9094849378913555 0.4157368732128018 \\ - -0.9157495991960706 0.40174951346857435 \\ - -0.9217991580500732 0.38766778589170414 \\ - -0.9276321934590912 0.37349499817035736 \\ - -0.9332473352885239 0.35923447938201786 \\ - -0.9386432645852757 0.34488957921151525 \\ - -0.9438187138875681 0.3304636671642085 \\ - -0.9487724675226566 0.315960131774516 \\ - -0.953503361892383 0.3013823798099736 \\ - -0.9580102857464953 0.28673383547101405 \\ - -0.9622921804436713 0.2720179395866472 \\ - -0.9663480402001862 0.2572381488062365 \\ - -0.9701769123261623 0.24239793478755953 \\ - -0.9737778974493497 0.22750078338134055 \\ - -0.9771501497263806 0.21255019381245432 \\ - -0.9802928770414518 0.19754967785798347 \\ - -0.9832053411923867 0.18250275902232982 \\ - -0.9858868580640328 0.16741297170957115 \\ - -0.9883367977889559 0.15228386039325542 \\ - -0.9905545848953901 0.13711897878383414 \\ - -0.9925396984424119 0.12192188899392176 \\ - -0.9942916721423055 0.10669616070158348 \\ - -0.9958100944700898 0.09144537031184626 \\ - -0.997094608760183 0.07617310011662722 \\ - -0.9981449132901793 0.06088293745328389 \\ - -0.9989607613517226 0.045578473861974805 \\ - -0.9995419613084555 0.030263304242035143 \\ - -0.9998883766410335 0.014941026007563276 \\ - -0.9999999259791922 -0.00038476175758555225 \\ - -0.9998765831208606 -0.015710459145193326 \\ - } - ; - \addlegendentry {transformation.jl line 44} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={b1259437-983d-4e28-96f9-3b81339fee0d}, area legend, fill={rgb,1:red,0.7644;green,0.4441;blue,0.8243}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.9998765831208606 -0.015710459145193326 \\ - -0.9996587531333524 -0.026122352188715503 \\ - -0.9993325051891084 -0.03653141213340215 \\ - -0.9988978746713388 -0.04693651006500407 \\ - -0.9983549087178818 -0.057336517498972527 \\ - -0.9977036662160916 -0.06773030650284717 \\ - -0.9969442177964523 -0.07811674981858864 \\ - -0.9960766458249166 -0.08849472098483348 \\ - -0.9951010443939741 -0.09886309445906491 \\ - -0.9940175193124452 -0.10922074573968357 \\ - -0.9928261880940066 -0.11956655148796562 \\ - -0.9915271799444457 -0.12989938964989278 \\ - -0.9901206357476484 -0.14021813957784718 \\ - -0.9886067080503183 -0.15052168215214948 \\ - -0.9869855610454336 -0.16080889990243338 \\ - -0.9852573705544383 -0.17107867712884084 \\ - -0.9834223240081748 -0.18132990002302565 \\ - -0.981480620426555 -0.1915614567889498 \\ - -0.9794324703969761 -0.20177223776346587 \\ - -0.9772780960514812 -0.21196113553666376 \\ - -0.9750177310426681 -0.22212704507197523 \\ - -0.9726516205183485 -0.23226886382602066 \\ - -0.9701800210949604 -0.2423854918681857 \\ - -0.9676032008297368 -0.25247583199991247 \\ - -0.9649214391916338 -0.262538789873699 \\ - -0.9621350270310202 -0.2725732741117846 \\ - -0.9592442665481341 -0.28257819642451587 \\ - -0.9562494712603072 -0.29255247172837695 \\ - -0.9531509659679626 -0.30249501826367287 \\ - -0.9499490867193886 -0.31240475771184983 \\ - -0.9466441807742921 -0.32228061531244684 \\ - -0.9432366065661374 -0.33212151997965716 \\ - -0.9397267336632714 -0.34192640441849326 \\ - -0.9361149427288429 -0.3516942052405403 \\ - -0.9324016254795169 -0.3614238630792863 \\ - -0.9285871846429924 -0.37111432270501393 \\ - -0.9246720339143227 -0.3807645331392481 \\ - -0.9206565979110498 -0.39037344776873784 \\ - -0.9165413121271514 -0.3999400244589676 \\ - -0.91232662288581 -0.40946322566718135 \\ - -0.9080129872910064 -0.41894201855491003 \\ - -0.9036008731779457 -0.42837537509998636 \\ - -0.8990907590623167 -0.43776227220804115 \\ - -0.8944831340883954 -0.4471016918234616 \\ - -0.8897784979759947 -0.4563926210398047 \\ - -0.8849773609662672 -0.4656340522096522 \\ - -0.8800802437663672 -0.4748249830538951 \\ - -0.8750876774929774 -0.48396441677043434 \\ - -0.8700002036147066 -0.49305136214229145 \\ - -0.8648183738933645 -0.5020848336451091 \\ - } - ; - \addlegendentry {transformation.jl line 34} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={8cd01106-62ec-4690-ae19-8cfa4a3988c7}, area legend, fill={rgb,1:red,0.6755;green,0.5557;blue,0.0942}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.8648183738933645 -0.5020848336451091 \\ - -0.8611639390604885 -0.50832732570837 \\ - -0.8574644450291768 -0.5145432202554084 \\ - -0.8537200853702795 -0.5207321920482376 \\ - -0.8499310560021778 -0.5268939172575661 \\ - -0.8460975551805325 -0.5330280734797423 \\ - -0.8422197834879122 -0.5391343397536223 \\ - -0.8382979438232956 -0.5452123965773658 \\ - -0.8343322413914571 -0.5512619259251516 \\ - -0.8303228836922288 -0.5572826112638195 \\ - -0.8262700805096437 -0.5632741375694316 \\ - -0.8221740439009589 -0.5692361913437551 \\ - -0.81803498818556 -0.5751684606306667 \\ - -0.813853129933747 -0.5810706350324747 \\ - -0.8096286879554033 -0.5869424057261599 \\ - -0.8053618832885455 -0.5927834654795351 \\ - -0.8010529391877595 -0.5985935086673189 \\ - -0.7967020811125174 -0.6043722312871297 \\ - -0.7923095367153815 -0.6101193309753901 \\ - -0.7878755358300927 -0.6158345070231485 \\ - -0.7834003104595447 -0.621517460391813 \\ - -0.7788840947636447 -0.6271678937287987 \\ - -0.7743271250470612 -0.6327855113830854 \\ - -0.7697296397468599 -0.6383700194206877 \\ - -0.7650918794200279 -0.6439211256400348 \\ - -0.7604140867308861 -0.6494385395872596 \\ - -0.7556965064383938 -0.6549219725713947 \\ - -0.7509393853833403 -0.6603711376794804 \\ - -0.7461429724754298 -0.6657857497915751 \\ - -0.7413075186802585 -0.6711655255956747 \\ - -0.7364332770061816 -0.6765101836025358 \\ - -0.7315205024910763 -0.6818194441604049 \\ - -0.7265694521889965 -0.6870930294696501 \\ - -0.7215803851567234 -0.6923306635972978 \\ - -0.7165535624402104 -0.6975320724914686 \\ - -0.7114892470609236 -0.7026969839957191 \\ - -0.7063877040020816 -0.7078251278632791 \\ - -0.7012492001947881 -0.7129162357711949 \\ - -0.6960740045040665 -0.717970041334367 \\ - -0.6908623877147919 -0.7229862801194892 \\ - -0.6856146225175224 -0.7279646896588841 \\ - -0.6803309834942306 -0.7329050094642368 \\ - -0.6750117471039373 -0.7378069810402246 \\ - -0.6696571916682456 -0.742670347898042 \\ - -0.6642675973567781 -0.7474948555688214 \\ - -0.6588432461725175 -0.7522802516169486 \\ - -0.6533844219370526 -0.7570262856532682 \\ - -0.6478914102757234 -0.76173270934819 \\ - -0.6423644986026827 -0.7663992764446768 \\ - -0.6368039761058507 -0.7710257427711341 \\ - } - ; - \addlegendentry {transformation.jl line 98} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={7437d4a7-5bd0-487c-8126-d9b35ad1a5f5}, area legend, fill={rgb,1:red,0.0;green,0.6658;blue,0.681}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.6368039761058507 -0.7710257427711341 \\ - -0.6313792266762053 -0.7754742240215061 \\ - -0.6259234027234699 -0.7798845388408934 \\ - -0.6204367727663417 -0.7842564701673088 \\ - -0.6149196068396936 -0.7885898028278813 \\ - -0.6093721764812844 -0.7928843235494459 \\ - -0.6037947547183936 -0.7971398209690411 \\ - -0.5981876160543855 -0.8013560856443103 \\ - -0.5925510364551957 -0.805532910063812 \\ - -0.5868852933357531 -0.8096700886572302 \\ - -0.5811906655463239 -0.8137674178054938 \\ - -0.5754674333587879 -0.8178246958507972 \\ - -0.5697158784528445 -0.8218417231065259 \\ - -0.5639362839021492 -0.8258183018670842 \\ - -0.5581289341603818 -0.8297542364176251 \\ - -0.5522941150472461 -0.833649333043684 \\ - -0.5464321137344031 -0.8375034000407117 \\ - -0.5405432187313375 -0.8413162477235094 \\ - -0.5346277198711571 -0.8450876884355656 \\ - -0.5286859082963303 -0.8488175365582901 \\ - -0.5227180764443531 -0.8525056085201524 \\ - -0.5167245180333607 -0.8561517228057134 \\ - -0.510705528047669 -0.8597556999645606 \\ - -0.504661402723257 -0.8633173626201401 \\ - -0.49859243953318677 -0.8668365354784866 \\ - -0.4924989371729631 -0.8703130453368499 \\ - -0.48638119554583237 -0.8737467210922206 \\ - -0.4802395157480223 -0.8771373937497506 \\ - -0.47407420005392314 -0.8804848964310704 \\ - -0.46788555190121034 -0.8837890643825029 \\ - -0.4616738758759104 -0.8870497349831713 \\ - -0.4554394776974111 -0.8902667477530032 \\ - -0.44918266420341146 -0.8934399443606298 \\ - -0.4429037433348251 -0.8965691686311767 \\ - -0.4366030241206211 -0.8996542665539515 \\ - -0.43028081666261525 -0.9026950862900235 \\ - -0.42393743212020807 -0.9056914781796966 \\ - -0.4175731826950704 -0.9086432947498756 \\ - -0.4111883816157774 -0.9115503907213236 \\ - -0.4047833431223933 -0.9144126230158127 \\ - -0.3983583824510044 -0.9172298507631658 \\ - -0.39191381581820517 -0.9200019353081894 \\ - -0.38544996040553414 -0.9227287402174986 \\ - -0.37896713434386475 -0.925410131286231 \\ - -0.3724656566977443 -0.9280459765446527 \\ - -0.3659458474496954 -0.9306361462646529 \\ - -0.3594080274844645 -0.9331805129661284 \\ - -0.35285251857322947 -0.9356789514232586 \\ - -0.3462796433577632 -0.9381313386706684 \\ - -0.339689725334554 -0.9405375540094799 \\ - } - ; - \addlegendentry {transformation.jl line 89} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={7935cd50-9648-4026-9326-803bdeb493a2}, area legend, fill={rgb,1:red,0.9308;green,0.3675;blue,0.5758}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.339689725334554 -0.9405375540094799 \\ - -0.3334458550750532 -0.9427692515845363 \\ - -0.3271873244050821 -0.9449594989991071 \\ - -0.320914408489642 -0.9471081999559201 \\ - -0.314627383126198 -0.9492152599843519 \\ - -0.30832652473256006 -0.9512805864445789 \\ - -0.30201211033472336 -0.9533040885316536 \\ - -0.2956844175546949 -0.9552856772794937 \\ - -0.2893437245982815 -0.9572252655647958 \\ - -0.28299031024286114 -0.9591227681108656 \\ - -0.27662445382512807 -0.9609781014913658 \\ - -0.27024643522880587 -0.9627911841339859 \\ - -0.26385653487234845 -0.9645619363240274 \\ - -0.25745503369660455 -0.9662902802079095 \\ - -0.25104221315247244 -0.9679761397965906 \\ - -0.2446183551885195 -0.969619440968911 \\ - -0.23818374223858868 -0.9712201114748508 \\ - -0.23173865720938344 -0.9727780809387061 \\ - -0.2252833834680233 -0.9742932808621845 \\ - -0.21881820482959205 -0.975765644627415 \\ - -0.2123434055446527 -0.9771951074998785 \\ - -0.20585927028675674 -0.9785816066312528 \\ - -0.1993660841399221 -0.9799250810621767 \\ - -0.1928641325861017 -0.9812254717249296 \\ - -0.1863537014926342 -0.9824827214460283 \\ - -0.1798350770996697 -0.983696774948742 \\ - -0.1733085460075915 -0.9848675788555203 \\ - -0.1667743951644084 -0.9859950816903428 \\ - -0.16023291185314573 -0.9870792338809798 \\ - -0.15368438367920825 -0.9881199877611736 \\ - -0.14712909855773798 -0.9891172975727335 \\ - -0.14056734470095814 -0.9900711194675471 \\ - -0.13399941060549533 -0.9909814115095096 \\ - -0.1274255850397025 -0.9918481336763656 \\ - -0.12084615703095572 -0.9926712478614708 \\ - -0.11426141585295382 -0.9934507178754658 \\ - -0.10767165101299384 -0.9941865094478681 \\ - -0.10107715223924509 -0.9948785902285788 \\ - -0.0944782094680135 -0.9955269297893041 \\ - -0.087875112830988 -0.9961314996248944 \\ - -0.08126815264249158 -0.9966922731545964 \\ - -0.07465761938671003 -0.9972092257232226 \\ - -0.06804380370492762 -0.9976823346022347 \\ - -0.0614269963827423 -0.9981115789907432 \\ - -0.054807488337283744 -0.9984969400164221 \\ - -0.04818557060442527 -0.9988384007363383 \\ - -0.04156153432598193 -0.9991359461376966 \\ - -0.03493567073691713 -0.9993895631384999 \\ - -0.02830827115253096 -0.9995992405881243 \\ - -0.021679626955659243 -0.9997649692678092 \\ - } - ; - \addlegendentry {transformation.jl line 79} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={a93286c3-d079-4e60-aef3-dc478ee87a84}, area legend, fill={rgb,1:red,0.777;green,0.5097;blue,0.1464}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - -0.021679626955659243 -0.9997649692678092 \\ - -0.015268036198562589 -0.9998834367418231 \\ - -0.008855817581180477 -0.9999607864786343 \\ - -0.002443234790169972 -0.9999970152974258 \\ - 0.003969448472838792 -0.999992121708377 \\ - 0.01038196850208135 -0.9999461059127246 \\ - 0.016794061598506712 -0.9998589698027545 \\ - 0.023205464080620446 -0.9997307169617242 \\ - 0.029615912295327042 -0.9995613526637149 \\ - 0.036025142628775535 -0.9993508838734153 \\ - 0.042432891517194676 -0.9990993192458345 \\ - 0.04883889545773484 -0.9988066691259467 \\ - 0.05524289101930311 -0.9984729455482654 \\ - 0.061644614853395285 -0.9980981622363486 \\ - 0.06804380370492902 -0.9976823346022345 \\ - 0.07444019442306418 -0.9972254797458078 \\ - 0.0808335239720279 -0.996727616454096 \\ - 0.08722352944193026 -0.9961887652004979 \\ - 0.09360994805957508 -0.9956089481439405 \\ - 0.0999925171992692 -0.9949881891279684 \\ - 0.10637097439361715 -0.9943265136797632 \\ - 0.11274505734431788 -0.9936239490090939 \\ - 0.11911450393295035 -0.9928805240071975 \\ - 0.12547905223175157 -0.9920962692455916 \\ - 0.13183844051439128 -0.9912712169748162 \\ - 0.13819240726672943 -0.9904054011231089 \\ - 0.144540691197574 -0.9894988572950085 \\ - 0.15088303124942404 -0.9885516227698913 \\ - 0.15721916660920857 -0.9875637365004377 \\ - 0.1635488367190066 -0.9865352391110314 \\ - 0.16987178128676553 -0.9854661728960874 \\ - 0.176187740297004 -0.9843565818183142 \\ - 0.1824964540215036 -0.9832065115069047 \\ - 0.18879766302999304 -0.9820160092556603 \\ - 0.19509110820081133 -0.9807851240210463 \\ - 0.20137653073156694 -0.9795139064201785 \\ - 0.20765367214977967 -0.9782024087287415 \\ - 0.21392227432350874 -0.9768506848788393 \\ - 0.2201820794719713 -0.9754587904567771 \\ - 0.22643283017613786 -0.9740267827007758 \\ - 0.23267426938932143 -0.9725547204986182 \\ - 0.23890614044774713 -0.9710426643852273 \\ - 0.24512818708110592 -0.9694906765401772 \\ - 0.25134015342309657 -0.9678988207851347 \\ - 0.2575417840219424 -0.9662671625812372 \\ - 0.2637328238508994 -0.9645957690263992 \\ - 0.269913018318743 -0.9628847088525531 \\ - 0.27608211328023624 -0.9611340524228235 \\ - 0.2822398550465847 -0.9593438717286324 \\ - 0.28838599039586343 -0.9575142403867406 \\ - } - ; - \addlegendentry {aggregation.jl line 11} - \addplot[color={rgb,1:red,0.0;green,0.0;blue,0.0}, name path={8053102b-a774-4346-931a-7aa2a1ef44b7}, area legend, fill={rgb,1:red,0.0;green,0.6643;blue,0.553}, fill opacity={1.0}, draw opacity={0.5}, line width={1}, solid] - table[row sep={\\}] - { - \\ - 0.0 0.0 \\ - 0.28838599039586343 -0.9575142403867406 \\ - 0.31326356449974546 -0.9496662251322376 \\ - 0.3379279674354339 -0.9411719762216448 \\ - 0.36236241544578934 -0.9320372738642447 \\ - 0.3865502812545618 -0.922268334088306 \\ - 0.4104751053809963 -0.9118718045111714 \\ - 0.43412060734026997 -0.9008547598156514 \\ - 0.4574706967221121 -0.8892246969358112 \\ - 0.4805094841400928 -0.8769895299554162 \\ - 0.5032212920441106 -0.864157584722518 \\ - 0.5255906653887281 -0.8507375931838407 \\ - 0.5476023821501048 -0.8367386874428184 \\ - 0.5692414636843505 -0.8221703935453394 \\ - 0.5904931849202739 -0.8070426249974106 \\ - 0.6113430843795679 -0.7913656760191691 \\ - 0.6317769740176338 -0.7751502145398156 \\ - 0.6517809488783314 -0.7584072749382498 \\ - 0.6713413965560915 -0.7411482505343426 \\ - 0.6904450064589591 -0.7233848858359483 \\ - 0.7090787788662464 -0.7051292685469472 \\ - 0.7272300337746537 -0.6863938213417397 \\ - 0.7448864195268168 -0.6671912934118064 \\ - 0.7620359212164292 -0.6475347517900705 \\ - 0.7786668688642042 -0.6274375724589787 \\ - 0.7947679453591201 -0.6069134312483476 \\ - 0.8103281941595476 -0.5859762945291614 \\ - 0.8253370267490093 -0.5646404097096709 \\ - 0.8397842298415105 -0.5429202955402397 \\ - 0.8536599723315228 -0.5208307322335575 \\ - 0.8669548119839091 -0.49838675140692174 \\ - 0.8796597018592205 -0.4756036258534488 \\ - 0.8917659964700027 -0.45249685914916926 \\ - 0.9032654576639236 -0.42908217510307106 \\ - 0.9141502602297097 -0.4053755070572888 \\ - 0.9244129972220878 -0.3813929870446968 \\ - 0.9340466850020981 -0.35715093481130833 \\ - 0.943044767989358 -0.33266584671092697 \\ - 0.9514011231230358 -0.30795438447962714 \\ - 0.959110064028501 -0.2830333638976947 \\ - 0.9661663448868186 -0.25791974334673384 \\ - 0.9725651640044494 -0.23263061226974946 \\ - 0.9783021670807314 -0.2071831795420295 \\ - 0.983373450170915 -0.18159476176077013 \\ - 0.9877755623427408 -0.15588277146138416 \\ - 0.9915055080247459 -0.13006470526853398 \\ - 0.9945607490447055 -0.10415813198994286 \\ - 0.9969392063568222 -0.07818068066107806 \\ - 0.9986392614564845 -0.052150028548862984 \\ - 0.9996597574816355 -0.026083889122554525 \\ - 1.0 6.432490598706546e-16 \\ - } - ; - \addlegendentry {others .< 5.0} -\end{axis} -\end{tikzpicture} diff --git a/perf/mallocs/mallocs-evolutions.pdf b/perf/mallocs/mallocs-evolutions.pdf deleted file mode 100644 index 5a489a5ff0a2056e184af943180db6a886e18f86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36171 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 To*<+aN>>MT=#bfQbI`v5qlb>7 diff --git a/perf/mallocs/mallocs-evolutions.png b/perf/mallocs/mallocs-evolutions.png deleted file mode 100644 index c44fa925f63fae605301c9acd6c5d3f400975ae2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48755 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 UOgs_ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/perf/mallocs/mallocs-evolutions.tikz b/perf/mallocs/mallocs-evolutions.tikz deleted file mode 100644 index d8591fe..0000000 --- a/perf/mallocs/mallocs-evolutions.tikz +++ /dev/null @@ -1,135 +0,0 @@ -\begin{tikzpicture}[/tikz/background rectangle/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, draw opacity={1.0}}, show background rectangle] -\begin{axis}[point meta max={nan}, point meta min={nan}, legend cell align={left}, legend columns={1}, title={Mallocs evolution in -CompositionalNetworks.jl}, title style={at={{(0.5,1)}}, anchor={south}, font={{\fontsize{14 pt}{18.2 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, legend style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid, fill={rgb,1:red,1.0;green,1.0;blue,1.0}, fill opacity={1.0}, text opacity={1.0}, font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, text={rgb,1:red,0.0;green,0.0;blue,0.0}, cells={anchor={center}}, at={(1.02, 1)}, anchor={north west}}, axis background/.style={fill={rgb,1:red,1.0;green,1.0;blue,1.0}, opacity={1.0}}, anchor={north west}, xshift={1.0mm}, yshift={-1.0mm}, width={145.4mm}, height={99.6mm}, scaled x ticks={false}, xlabel={version}, x tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, x tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, xlabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, xmajorgrids={true}, xmin={0.44}, xmax={2.56}, xtick={{0.5,1.5,2.5}}, xticklabels={{$0.2.7$,$0.3.0$,$0.3.1$}}, xtick align={inside}, xticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, x grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis x line*={left}, x axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, scaled y ticks={false}, ylabel={bytes}, y tick style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}}, y tick label style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, opacity={1.0}, rotate={0}}, ylabel style={at={(ticklabel cs:0.5)}, anchor=near ticklabel, at={{(ticklabel cs:0.5)}}, anchor={near ticklabel}, font={{\fontsize{11 pt}{14.3 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, ymode={log}, log basis y={10}, ymajorgrids={true}, ymin={379.13287093338107}, ymax={2.3007789272602423e11}, ytick={{100000.0,1.0e10}}, yticklabels={{$10^{5}$,$10^{10}$}}, ytick align={inside}, yticklabel style={font={{\fontsize{8 pt}{10.4 pt}\selectfont}}, color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, rotate={0.0}}, y grid style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={0.1}, line width={0.5}, solid}, axis y line*={left}, y axis line style={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, line width={1}, solid}, colorbar={false}] - \addplot[color={rgb,1:red,0.0;green,0.6056;blue,0.9787}, name path={d3ec9e6b-7dfe-437f-ab71-eb7d21913812}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.0;green,0.6056;blue,0.9787}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 5.61261656e8 \\ - 1.5 1.76234561e8 \\ - 2.5 1.50185042e8 \\ - } - ; - \addlegendentry {utils.jl} - \addplot[color={rgb,1:red,0.8889;green,0.4356;blue,0.2781}, name path={c1791d01-fb81-4d0f-ac34-39679245f201}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.8889;green,0.4356;blue,0.2781}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 1.256140101e9 \\ - 1.5 6.8545665e7 \\ - 2.5 5.6318572e7 \\ - } - ; - \addlegendentry {comparison.jl} - \addplot[color={rgb,1:red,0.2422;green,0.6433;blue,0.3044}, name path={a066b385-9dff-4749-99ac-c1251d966ef2}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.2422;green,0.6433;blue,0.3044}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 1.29806684535e11 \\ - 1.5 7.621848028e9 \\ - 2.5 6.821476039e9 \\ - } - ; - \addlegendentry {Total} - \addplot[color={rgb,1:red,0.7644;green,0.4441;blue,0.8243}, name path={ecff463a-6b95-42ae-b614-fedd4c162a1a}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.7644;green,0.4441;blue,0.8243}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 6.7470139726e10 \\ - 1.5 3.184361818e9 \\ - 2.5 2.810617326e9 \\ - } - ; - \addlegendentry {transformation.jl} - \addplot[color={rgb,1:red,0.6755;green,0.5557;blue,0.0942}, name path={9c0c20d9-e7d4-4d20-bb08-6333c8e50124}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.6755;green,0.5557;blue,0.0942}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 4.6217645119e10 \\ - 1.5 1.867283593e9 \\ - 2.5 1.696810825e9 \\ - } - ; - \addlegendentry {icn.jl} - \addplot[color={rgb,1:red,0.0;green,0.6658;blue,0.681}, name path={db276158-2105-4849-8402-f5f60eb5a45b}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.0;green,0.6658;blue,0.681}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 1.39844557e8 \\ - 1.5 1.1973424e7 \\ - 2.5 1.132448e7 \\ - } - ; - \addlegendentry {composition.jl} - \addplot[color={rgb,1:red,0.9308;green,0.3675;blue,0.5758}, name path={f7b1586c-24db-40ec-a46d-f7a9d13b5021}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.9308;green,0.3675;blue,0.5758}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 4.936748118e9 \\ - 1.5 1.29866302e8 \\ - 2.5 1.14259822e8 \\ - } - ; - \addlegendentry {genetic.jl} - \addplot[color={rgb,1:red,0.777;green,0.5097;blue,0.1464}, name path={0b4be79a-4c4e-4d5e-b948-3b77fc35cdbe}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.777;green,0.5097;blue,0.1464}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 2.8423405e7 \\ - 1.5 1.704019332e9 \\ - 2.5 1.547005022e9 \\ - } - ; - \addlegendentry {metrics.jl} - \addplot[color={rgb,1:red,0.0;green,0.6643;blue,0.553}, name path={1cfc740e-562f-4571-9d91-89c114212604}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.0;green,0.6643;blue,0.553}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 1.67434327e8 \\ - 1.5 3.1137883e7 \\ - 2.5 2.7844983e7 \\ - } - ; - \addlegendentry {layer.jl} - \addplot[color={rgb,1:red,0.5585;green,0.5935;blue,0.1175}, name path={06e511c8-c5a8-4ab4-9ded-4687c3fe376b}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.5585;green,0.5935;blue,0.1175}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 121328.0 \\ - 1.5 3824.0 \\ - 2.5 3792.0 \\ - } - ; - \addlegendentry {explore.jl} - \addplot[color={rgb,1:red,0.0;green,0.6609;blue,0.7982}, name path={55d9c554-cee4-48a6-9ce9-93c112c11ed7}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.0;green,0.6609;blue,0.7982}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 1.923375587e9 \\ - 1.5 6.7025062e7 \\ - 2.5 5.8852815e7 \\ - } - ; - \addlegendentry {arithmetic.jl} - \addplot[color={rgb,1:red,0.6097;green,0.4992;blue,0.9118}, name path={c0f65066-9804-41a7-b8d8-c4cb63c902f1}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.6097;green,0.4992;blue,0.9118}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 1008.0 \\ - 1.5 1008.0 \\ - 2.5 672.0 \\ - } - ; - \addlegendentry {learn.jl} - \addplot[color={rgb,1:red,0.38;green,0.5511;blue,0.9665}, name path={6f618e09-797a-4078-8724-9ade81e5088f}, draw opacity={0.5}, line width={2}, solid, mark={*}, mark size={3.0 pt}, mark repeat={1}, mark options={color={rgb,1:red,0.0;green,0.0;blue,0.0}, draw opacity={1.0}, fill={rgb,1:red,0.38;green,0.5511;blue,0.9665}, fill opacity={1.0}, line width={0.75}, rotate={0}, solid}] - table[row sep={\\}] - { - \\ - 0.5 7.105549603e9 \\ - 1.5 3.81395556e8 \\ - 2.5 3.48252688e8 \\ - } - ; - \addlegendentry {aggregation.jl} -\end{axis} -\end{tikzpicture} From 6c9a2f73c4fe711b8fd2bf31fe48e1982e9eec42 Mon Sep 17 00:00:00 2001 From: Azzaare Date: Fri, 9 Aug 2024 01:56:19 +0000 Subject: [PATCH 3/6] Update julia version to 1.9 --- .github/workflows/CompatHelper.yml | 2 +- .github/workflows/ci.yml | 2 +- Project.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml index 5577817..f889647 100644 --- a/.github/workflows/CompatHelper.yml +++ b/.github/workflows/CompatHelper.yml @@ -14,7 +14,7 @@ jobs: run: which julia continue-on-error: true - name: Install Julia, but only if it is not already available in the PATH - uses: julia-actions/setup-julia@v1 + uses: julia-actions/setup-julia@v2 with: version: "1" arch: ${{ runner.arch }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18ae322..0749fd6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,7 +50,7 @@ jobs: fail-fast: false matrix: version: - - "1.8" + - "1.9" - "1" # automatically expands to the latest stable 1.x release of Julia - "pre" os: diff --git a/Project.toml b/Project.toml index ff76b74..a75af4b 100644 --- a/Project.toml +++ b/Project.toml @@ -24,7 +24,7 @@ OrderedCollections = "1" Random = "1" TestItems = "0.1, 1" Unrolled = "0.1" -julia = "1.8" +julia = "1.9" [extras] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" From df3f0e44669d18da9b8676494ad40bad58b0b211 Mon Sep 17 00:00:00 2001 From: pluto-azzaare Date: Mon, 12 Aug 2024 09:53:07 +0000 Subject: [PATCH 4/6] Fixes for learning ICNs with CBLS --- src/icn.jl | 19 ++++++++++--------- src/layer.jl | 7 ++++++- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/icn.jl b/src/icn.jl index a0047eb..79ef929 100644 --- a/src/icn.jl +++ b/src/icn.jl @@ -17,11 +17,11 @@ mutable struct ICN weights::BitVector function ICN(; - param = Vector{Symbol}(), - tr_layer = transformation_layer(param), - ar_layer = arithmetic_layer(), - ag_layer = aggregation_layer(), - co_layer = comparison_layer(param), + param=Vector{Symbol}(), + tr_layer=transformation_layer(param), + ar_layer=arithmetic_layer(), + ag_layer=aggregation_layer(), + co_layer=comparison_layer(param), ) w = generate_weights([tr_layer, ar_layer, ag_layer, co_layer]) return new(tr_layer, ar_layer, ag_layer, co_layer, w) @@ -107,7 +107,7 @@ function regularization(icn) return Σop / (Σmax + 1) end -max_icn_length(icn = ICN(; param = [:val])) = length(icn.transformation) +max_icn_length(icn=ICN(; param=[:val])) = length(icn.transformation) """ _compose(icn) @@ -116,7 +116,7 @@ Internal function called by `compose` and `show_composition`. function _compose(icn::ICN) !is_viable(icn) && ( return ( - (x; X = zeros(length(x), max_icn_length()), param = nothing, dom_size = 0) -> typemax(Float64) + (x; X=zeros(length(x), max_icn_length()), param=nothing, dom_size=0) -> typemax(Float64) ), [] ) @@ -133,6 +133,7 @@ function _compose(icn::ICN) if exclu(layer) f_id = as_int(@view weights(icn)[_start:_end]) + # @warn "debug" f_id _end _start weights(icn) (exclu(layer) ? "nbits_exclu(layer)" : "length(layer)") (@view weights(icn)[_start:_end]) s = symbol(layer, f_id + 1) push!(funcs, [functions(layer)[s]]) push!(symbols, [s]) @@ -151,11 +152,11 @@ function _compose(icn::ICN) end end - function composition(x; X = zeros(length(x), length(funcs[1])), dom_size, params...) + function composition(x; X=zeros(length(x), length(funcs[1])), dom_size, params...) tr_in(Tuple(funcs[1]), X, x; params...) X[1:length(x), 1] .= 1:length(x) .|> (i -> funcs[2][1](@view X[i, 1:length(funcs[1])])) - return (y -> funcs[4][1](y; dom_size, nvars = length(x), params...))( + return (y -> funcs[4][1](y; dom_size, nvars=length(x), params...))( funcs[3][1](@view X[:, 1]), ) end diff --git a/src/layer.jl b/src/layer.jl index 53646f0..18be36f 100644 --- a/src/layer.jl +++ b/src/layer.jl @@ -30,7 +30,12 @@ exclu(layer) = layer.exclusive symbol(layer, i) Return the i-th symbols of the operations in a given layer. """ -symbol(layer, i) = collect(keys(functions(layer)))[i] +symbol(layer, i) = begin + if i > length(layer) + @info layer i functions(layer) + end + collect(keys(functions(layer)))[i] +end """ nbits_exclu(layer) From a2c476018858a6748b2a633b9c9bbf63eac78f68 Mon Sep 17 00:00:00 2001 From: Azzaare Date: Mon, 12 Aug 2024 10:03:37 +0000 Subject: [PATCH 5/6] format fix --- src/icn.jl | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/icn.jl b/src/icn.jl index 79ef929..2c21632 100644 --- a/src/icn.jl +++ b/src/icn.jl @@ -17,11 +17,11 @@ mutable struct ICN weights::BitVector function ICN(; - param=Vector{Symbol}(), - tr_layer=transformation_layer(param), - ar_layer=arithmetic_layer(), - ag_layer=aggregation_layer(), - co_layer=comparison_layer(param), + param = Vector{Symbol}(), + tr_layer = transformation_layer(param), + ar_layer = arithmetic_layer(), + ag_layer = aggregation_layer(), + co_layer = comparison_layer(param), ) w = generate_weights([tr_layer, ar_layer, ag_layer, co_layer]) return new(tr_layer, ar_layer, ag_layer, co_layer, w) @@ -107,7 +107,7 @@ function regularization(icn) return Σop / (Σmax + 1) end -max_icn_length(icn=ICN(; param=[:val])) = length(icn.transformation) +max_icn_length(icn = ICN(; param = [:val])) = length(icn.transformation) """ _compose(icn) @@ -116,7 +116,7 @@ Internal function called by `compose` and `show_composition`. function _compose(icn::ICN) !is_viable(icn) && ( return ( - (x; X=zeros(length(x), max_icn_length()), param=nothing, dom_size=0) -> typemax(Float64) + (x; X = zeros(length(x), max_icn_length()), param = nothing, dom_size = 0) -> typemax(Float64) ), [] ) @@ -152,11 +152,11 @@ function _compose(icn::ICN) end end - function composition(x; X=zeros(length(x), length(funcs[1])), dom_size, params...) + function composition(x; X = zeros(length(x), length(funcs[1])), dom_size, params...) tr_in(Tuple(funcs[1]), X, x; params...) X[1:length(x), 1] .= 1:length(x) .|> (i -> funcs[2][1](@view X[i, 1:length(funcs[1])])) - return (y -> funcs[4][1](y; dom_size, nvars=length(x), params...))( + return (y -> funcs[4][1](y; dom_size, nvars = length(x), params...))( funcs[3][1](@view X[:, 1]), ) end From 4e77f88bec60f8c3b7a905b83466f455e7d4491c Mon Sep 17 00:00:00 2001 From: Jean-Francois Baffier Date: Mon, 12 Aug 2024 19:06:31 +0900 Subject: [PATCH 6/6] Update Project.toml --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index a75af4b..b50be0d 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "CompositionalNetworks" uuid = "4b67e4b5-442d-4ef5-b760-3f5df3a57537" authors = ["Jean-François Baffier"] -version = "0.5.8" +version = "0.5.9" [deps] ConstraintCommons = "e37357d9-0691-492f-a822-e5ea6a920954"