From 068755efd3b4d436ea063da4173ba892883e3cf2 Mon Sep 17 00:00:00 2001 From: Patrick Stevens Date: Tue, 13 Dec 2022 20:18:01 +0000 Subject: [PATCH] Day 13 (#22) --- AdventOfCode2022.App/Program.fs | 44 +- .../AdventOfCode2022.Test.fsproj | 2 +- AdventOfCode2022.Test/Day13.fs | 32 +- AdventOfCode2022.Test/Inputs/Day13.txt | 449 ++++++++++++++++++ AdventOfCode2022/Day1.fs | 3 +- AdventOfCode2022/Day11.fs | 7 +- AdventOfCode2022/Day13.fs | 96 +++- AdventOfCode2022/Day4.fs | 6 +- AdventOfCode2022/EfficientString.fs | 1 + ...e2022.App.Benchmark11To15-report-github.md | 18 + ...tOfCode2022.App.Benchmark11To15-report.csv | 7 + ...OfCode2022.App.Benchmark11To15-report.html | 35 ++ ...ode2022.App.Benchmark1To5-report-github.md | 22 + ...entOfCode2022.App.Benchmark1To5-report.csv | 11 + ...ntOfCode2022.App.Benchmark1To5-report.html | 39 ++ ...de2022.App.Benchmark6To10-report-github.md | 22 + ...ntOfCode2022.App.Benchmark6To10-report.csv | 11 + ...tOfCode2022.App.Benchmark6To10-report.html | 39 ++ ...OfCode2022.App.Benchmarks-report-github.md | 36 -- ...AdventOfCode2022.App.Benchmarks-report.csv | 25 - ...dventOfCode2022.App.Benchmarks-report.html | 53 --- README.md | 5 +- 22 files changed, 829 insertions(+), 134 deletions(-) create mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report-github.md create mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report.csv create mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report.html create mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report-github.md create mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report.csv create mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report.html create mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report-github.md create mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report.csv create mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report.html delete mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report-github.md delete mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report.csv delete mode 100644 BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report.html diff --git a/AdventOfCode2022.App/Program.fs b/AdventOfCode2022.App/Program.fs index b5ecbf2..5cb6049 100644 --- a/AdventOfCode2022.App/Program.fs +++ b/AdventOfCode2022.App/Program.fs @@ -8,11 +8,11 @@ open BenchmarkDotNet.Attributes open BenchmarkDotNet.Configs open BenchmarkDotNet.Running -type Benchmarks () = +type Benchmark1To5 () = [] member _.Setup () = Run.shouldWrite <- false - [] + [] member val Day = 0 with get, set [] @@ -25,6 +25,42 @@ type Benchmarks () = [] member _.Cleanup () = Run.shouldWrite <- true + +type Benchmark6To10 () = + [] + member _.Setup () = Run.shouldWrite <- false + + [] + member val Day = 0 with get, set + + [] + member val IsPartOne = false with get, set + + [] + member this.Benchmark () : unit = + Run.allRuns.[this.Day - 1] this.IsPartOne (Inputs.day this.Day) + + [] + member _.Cleanup () = Run.shouldWrite <- true + +type Benchmark11To15 () = + [] + member _.Setup () = Run.shouldWrite <- false + + [] + member val Day = 0 with get, set + + [] + member val IsPartOne = false with get, set + + [] + member this.Benchmark () : unit = + Run.allRuns.[this.Day - 1] this.IsPartOne (Inputs.day this.Day) + + [] + member _.Cleanup () = Run.shouldWrite <- true + + module Program = [] @@ -36,7 +72,9 @@ module Program = .Create(DefaultConfig.Instance) .WithOptions ConfigOptions.DisableOptimizationsValidator - let _summary = BenchmarkRunner.Run config + let _summary = BenchmarkRunner.Run config + let _summary = BenchmarkRunner.Run config + let _summary = BenchmarkRunner.Run config 0 | _ -> diff --git a/AdventOfCode2022.Test/AdventOfCode2022.Test.fsproj b/AdventOfCode2022.Test/AdventOfCode2022.Test.fsproj index 69a5b2f..4283081 100644 --- a/AdventOfCode2022.Test/AdventOfCode2022.Test.fsproj +++ b/AdventOfCode2022.Test/AdventOfCode2022.Test.fsproj @@ -20,7 +20,7 @@ - + diff --git a/AdventOfCode2022.Test/Day13.fs b/AdventOfCode2022.Test/Day13.fs index 866c904..1bd6eba 100644 --- a/AdventOfCode2022.Test/Day13.fs +++ b/AdventOfCode2022.Test/Day13.fs @@ -8,25 +8,47 @@ open AdventOfCode2022 module TestDay13 = let input = - """ + """[1,1,3,1,1] +[1,1,5,1,1] + +[[1],[2,3,4]] +[[1],4] + +[9] +[[8,7,6]] + +[[4,4],4,4] +[[4,4],4,4,4] + +[7,7,7,7] +[7,7,7] + +[] +[3] + +[[[]]] +[[]] + +[1,[2,[3,[4,[5,6,7]]]],8,9] +[1,[2,[3,[4,[5,6,0]]]],8,9] """ [] let ``Part 1, given`` () = - Day13.part1 (StringSplitEnumerator.make '\n' input) |> shouldEqual 31 + Day13.part1 (StringSplitEnumerator.make '\n' input) |> shouldEqual 13 [] let ``Part 1`` () = let input = Assembly.readResource "Day13.txt" - Day13.part1 (StringSplitEnumerator.make '\n' input) |> shouldEqual 456 + Day13.part1 (StringSplitEnumerator.make '\n' input) |> shouldEqual 5185 [] let ``Part 2, given`` () = - Day13.part2 (StringSplitEnumerator.make '\n' input) |> shouldEqual 29 + Day13.part2 (StringSplitEnumerator.make '\n' input) |> shouldEqual 140 [] let ``Part 2`` () = let input = Assembly.readResource "Day13.txt" - Day13.part2 (StringSplitEnumerator.make '\n' input) |> shouldEqual 454 + Day13.part2 (StringSplitEnumerator.make '\n' input) |> shouldEqual 23751 diff --git a/AdventOfCode2022.Test/Inputs/Day13.txt b/AdventOfCode2022.Test/Inputs/Day13.txt index e69de29..a700ca8 100644 --- a/AdventOfCode2022.Test/Inputs/Day13.txt +++ b/AdventOfCode2022.Test/Inputs/Day13.txt @@ -0,0 +1,449 @@ +[[[[2],9,1,[2,2,4,8]],[1,8,8],9,[7,2,[7,0,1],0,[10,9,10,3]]]] +[[1,6,[[0,0,10,9]],[[10,6,0,2],[7,4],[2]],[[],3]],[[2,7,2],5,[[7,0,5],[8],1,[],3],2]] + +[[10,10,10,4,[8,[8],6,[]]]] +[[],[[[8,2,6],0,4,10]],[8,[10,[10,4],[6]],2,7,[[8]]]] + +[[7,2,[5],[[0,5,10],[4,10,10,6,1],5],4],[],[[2],4,8],[]] +[[1,3,[10,10,[3,5,8]],5,[6,[3,5,2,2],[1,2,10,2,10]]],[9,[[9,3,0,10],1,2],[[8,7],[0,3,9],[3],8],[5,[],8,[1,1,6],[]],2],[3,0]] + +[[4,10,8,5,[[2,3],[8,0,2],[8,8,0,4,7],2]],[[5,[7],0,8]],[],[[],[[5,8],[1,6],[7]],[[],5],[4,6]]] +[[[[9,0,10],10]],[[7,5,1],7]] + +[[1,[6,6,[7,3]]],[[],[],8],[2],[0,5,[[1,1,0,0,10]],8]] +[[[],[2,10,[10],[8,5]],[[10,6,5],[],1],[]],[[[],2,[7,1,4,8,4],7,[10,10]],1,[1],[5,8]],[],[2,5,[9,[8,2,0],8]],[[[]],1,[4,0,5],2,9]] + +[[],[2,4,[[9,1,2,0,0]]],[[[0,8,2,5,5],2,1],[4]]] +[[9,4],[],[[[4,7],4],[[10,8]],[5,[6,2],[8],[]],[[2,9,7,7],8],[[5,8,9,7,5]]],[2,[9,[],[8,8,3,7,2],1,[10,9,8,1,8]],[],5,0],[[],9,[5,0,[2,5,2,10,8],2],[[1,4,7,7],10],7]] + +[[[4,[4]],0,[9,6,[3,10],[],[1,9,2]]],[8,9,[6,3],[[],2,[5,6,1,0]]]] +[[6,6,[[9],10]],[7,[[7,5],6],9]] + +[[],[],[[],3,[[9,3,3],1]]] +[[],[[[4,1,4,10],[7,10,8,8],[7]]],[7,9,0]] + +[[[9,[0],7,[6,6,10],7],[2,9,9]]] +[[[5,5,9,[8,5,9,10,2]]],[8],[8,3,[[]],6],[2,4,[[5,10,7,9,1],[3,4,5],[5,0,0]],[7,0],[1,[]]]] + +[3,3,9,9,9] +[3,3,9,9] + +[[[[9]],3],[]] +[[],[10,[[6,7],[4]],7,[[10,4,3],7],1],[],[[10,10,[4,3,8,3,3]],[[9],[9,4,4]],5,0,[]],[]] + +[[[],8,4],[[[2,9,0]],[[],[7,2],2,[8,7,2]],9,4],[4,1,5]] +[[[[10,10,6,0],[5,6,3],[],6,[6,9]]]] + +[[[8,[],5,[8,0,4],[6]]],[8,9,4,[],[[7,2],10,0,[0,9,6,1],[5,6]]],[[]],[1,[],6,[5,[0,8,6,8,4]]],[[[3,8,8,4,9],9,[1],5],[7],7]] +[[2],[[[4,0],5],3]] + +[[[9],[[5,0,5,8],[8,6,2,4,2]],[[]],2],[4,[10,10,4,3],[[9,9],[1,0,9,10]],10],[[],3]] +[[[],9,[[],8],[]],[[[2,3,10,5],9]]] + +[[[8,6],[1,[]],10],[[8,[5,9],5,7],10,4,1]] +[[],[]] + +[[],[[2,[8],2],7],[8,8,3,5],[[5],[2,[],8,[5,3,0,2],2]],[[[3,5,1,2],[0,10],[9,10],2],[[9],0],10,[[0,0,2,7,2]],5]] +[[[7,[6,7,8,5,3]],5,0,7],[5,[[7,4,2],2,[]]]] + +[[[1,[4,8,1,6,2],2],5,10,2,9],[0,7,0,[],7],[2,[3],[1,1,[9],8],[1,5],[[0,10],[2,9,4,5],[],[5,5,4]]]] +[[[[]],7,[[3,9,10,2,8],[7,0,5,6,3]]],[[[9,2,3,9,2],[5,6,3,5,5]]]] + +[[[],2,[6],6,2]] +[[[[9],8,[4,1,2,3]],[]]] + +[[[[9,1,4],8],8,[10,2,10],[[8],[10,5,0],[8,10,10,0,6]],[8,2,8]],[1]] +[[10,[],[[2]]],[[],0,1,10]] + +[[[2],2,[4],[9,4,10,9]],[0,[[4],6,[0],10,6],0,1,[6]]] +[[[3,8]],[2],[[9,[3],7],7,[[8,1,6,10],9,8],6,[9,[5,2]]],[1,5,[[],0,0,3]],[4,3]] + +[[9,0,10,6],[9,3,[],[6,[3,0,1,10,9],[10,10,4,0],5]],[],[[5,10]],[8,[[10,2,0],[8,9,2,10,5],[9,4,9,1]]]] +[[3,[9],[[8,7,2,5]],[3,0,[],4]]] + +[[9,5,10,[[]]],[7,1,8,1]] +[[8,[[3],[9,10],[8,0,7],0]],[0],[4,2,[[5,2,10]]]] + +[[[6],[6,5,10,1]],[3,4,[],9],[[[10,4],7,[],[0,1]],[[],6],[1,3,[3,7,1,6,5]]],[[9],7,5,5]] +[[4,[[2],[8,3,5],[8,1]],4,[],[]],[[[8,5,10,2,10],[9,7,5,9],[10,5,1,5]],[3,[3]]],[[[6,6,2,6],3,[],[0,7,10]]],[9],[[2,[0,6,9],8,[],[10,2]],2,[]]] + +[[[0,8]]] +[[2,6,[[4,9],[5,0,7,10,5],4],6],[[[7],8],2,[]],[[],6],[3]] + +[[[],[1],[],[]],[]] +[[[[],[6],2,[1,1,0]],10,[0,[2,4,5,2],[],[7,2,7],8]],[],[],[0]] + +[[10,[[10,7],[7,1,6,7,4],[1,7,5,10,2]]],[0,[[1,0,7,5],[6,6,1,9]]],[5,8,[9]]] +[[],[[1,[1,3],[3,9],6]],[]] + +[[[[10,8,9],[1],1,9],10,3,4,[]]] +[[4]] + +[[[1,[]],[]],[8,[[],[4,7],0,[5,9,10,6]],[],[9],1]] +[[2,5],[],[[[8,2,2],[],[4,1,1,0]]]] + +[[1,3,[],[[]],[[6,3,5,5],[4],[0],7,10]],[],[[[6],4,7,6]]] +[[0,4,0,[8,[]],3],[6,[[8,5,7],[4,8,2,5,6],7],3]] + +[[[],[[3,2,3,1,5],[9,1],[2,4,3,9],10,[5]],6],[8,10,9,5,3],[5,1],[]] +[[[],[0]],[2]] + +[[7,[[5,8,9,10,4],[8,9,1]]],[[4,3,[]],[[5,10],[7,7,3,6,6]],[7,5,[5,7,8,7],[7,3,1,7]]],[3,[[9,7,7,9,0],1],8],[0,8,[3,[0,8,0],[8],[1,5],[1,1,10,4,3]]],[[6,[5,2],[],4,2],3]] +[[[[],[],[1,7,7,8,4],10]],[3,[]],[[[],6,0,9],[]]] + +[[[1,[6],[]]],[0,10,[4,[9,3],[5,10,3],9,10]],[[6,6,2,[2,2,7],[8,6,5,2,9]],10,[[4,2,5,0],[7,9],[2]]],[7,5,[]],[[],6]] +[[4,[[0,9,9,8,7],[3,1,0,4],[6]],9,[[9]],0],[[],[[0],3,[0,3,1,6,5],[0,6,10]]]] + +[[0,[[9,4],[1,9,10,2],6,1],4,[]],[3,[[10,4,3]],5,[9,6,10]],[5,[3,2,[10,2,10,2]],10,1],[10,[5,2,[7,2,5,7,8]],[10,[8,0,3]],[6],[]],[6,0,5]] +[[9,8,4,[],[]],[6],[10],[[[4,10,8,1],4,[1,1,0,8],[]]],[]] + +[[3,2],[4,8]] +[[[[3],10,0,[6,6,2,10],0],[4,[],[8,1,3,3],[10,4,10]]],[[],3,[0,[],[10,8,9,5,3],8,1]],[9,[]]] + +[[4,7,[[8,10,6],[2,7,5],[8,10,3,9],[0,5,10],5]],[],[],[0],[0,4,9]] +[[],[9,3,[],[[]],5],[7,[[2,5,6,8,6],[],10,2,2],[1],[[],0,10,[7,7]],[9,0,9,7,[1,0]]],[4]] + +[[[]],[[[5,2,4,0,4],0,[2,5,1,6]],9,7,[10],[7,[6,7,3,2],[10,6],4]],[3,10],[[[10,10,1,3,3]],[[10],1,4,[]],0,[4,9,[7,7,1,9],[]]],[8,[[]],[[3,10,8,9],[9,2,5],0]]] +[[7],[[[4,7,10,5,9],8]]] + +[4,7,5,9] +[4,7,5,9,8] + +[[[[7,0,9],[6],1,[4,4,6,1],6]]] +[[0,1,[7,[1,3,8,7,5],[],2,[1,7,9,7]]],[],[8],[4,[[0,3],2,6,[7,1]],[[7],[],6,4,9],1,0]] + +[[[[],[9,8],4],[[9,6,3,4],8,9,[7,3]],4,[],[2,9,0,[5,4,2]]],[1,1,2]] +[[[[2,6,8,2,9],[3,9],6,[1,3,10,5,1],10],[[10,8,1],0,[1,9,8,10],3,6],7,[[0,2,1],4,9,[]]],[[7,[10,7,5,2,6]],9,3,4],[[[5,4,2,1],10,7,[8]],[10,[]],9,[0,[3,10]],3],[]] + +[[1,4,[[2,8,4,2,2],4,[1,7,5],8,[6,6]],[[4,2,8,5],8,2,4],[]],[],[4,4,3],[[4,[1],[5,4,3],[10],[2,5,10,2]]],[2,10]] +[[7,7,[[1,3,10],2,10,4,[0,5]]],[]] + +[[1,[[10,1,9],[7,3,3,10],6],[10,[2,9,3,0],3]]] +[[4,5,[[5,9,8],2,3,[8,3,10,1,0]]]] + +[[0,10]] +[[7,[6],[]],[[],[[7,4,7,6],[],7,2],2],[[1,[1,5,5,0],[9,9,8,1],4,4],1,6,[],4]] + +[[3,[[],[9],8],[4,[5,10,10,5],0,10,4],3,10],[[3,[6,5],8],0,9,8,[5]]] +[[6,8,[],[]],[[[]],[8,3,[7],9,[9,5,0]],[[3,6,8,6,10],[8],9,4],[3]]] + +[[[4,[10,7,7,6],8,[2,1]],9,[5,[6,8,1,10,5],[7],4,[10,6,10]]],[[[8,8,8],5,10,7,[6,9,4,9]],[8]],[9,7,9,0,[[9,9,1,8],6,8,2,[4,1]]],[3,[4,[10,2,3,8]],8,[[5,6,8,6,10],5,2,[2,9],[5,6,3,4,4]],6],[10,[8,[7]],[]]] +[[[[6],[6],2,3,4],9],[[[7,3,1,5],[3,0,1,3]],[7,2],[8,3]],[3]] + +[[[7,0,7],7,1,[[5,1,1,9,4],5,[3,5,7],7],0]] +[[[10,10,[5,2,2],[7,1,0,6,0],2],[[7,0,8,2],[],4,[2,4,4,2],5]]] + +[[[5,3]]] +[[6,1],[[[7,0]],9,[[6],[],[8,10,7],3],[[1]],8],[6,10],[8,4,[[9,0],[6],10,[7,9,10,2,2],[7,9,2,8,6]],[[3,9,3,7,6],1],7]] + +[[4,[],0,[[0],6,10,3],5],[[[1,1,10,10,2],[]],9,9,7],[[[4,1,5,5],5,[4]],[5],1,[4,8,1]]] +[[[],[3,10],[4,[8,3,2,6],5,5,3],[8]],[[5,2,9],[9]]] + +[[4,[[3,4],3,2]]] +[[3,3]] + +[[],[0],[9,1,0,6],[[[0,3],[],[6,3,5]],[6],5]] +[[[7,7,7],0,4,[5,8,[2],8,[5,5,4]],9],[[[4,3,1],[8,9]],[],[5,5,[10],[10,5]],[4,7,8]]] + +[[7],[7,8],[5],[7,7],[9,3,[6,[],[8],1]]] +[[[1,[7,1,0,0,1],2,[3,6,1,6,5]],[]],[2,1,[5,10,[10,0,5,0],[6,5]],1,8]] + +[[[[5,5,9,6,1]],9,9],[[3,8],[1,8],1,[]]] +[[5,[],[[2,0],5]],[[],9,[8,5]],[[[7,0]]],[]] + +[[[],[],8,[2,4,[1],9]]] +[[[[3,2,0],[7,7,2,3,7],8,5],[[8],2,3],[8],[5,3,[4,7],[9,2,4,4,9],6],1],[[2],[6],[[0,7]],10,2]] + +[[],[],[10]] +[[],[[[3,5,9,7,3],[],0,[0,4,2,7]],2,[],[[8],4,4,[],[9]],2]] + +[[9,1]] +[[[5,[1,8,1,0,9],[7,4,1,3]],[[6],[3],7],[[],0,[8],[10,6,8,10]]],[2,7,4],[4,[[],8,5,[8,3,3]],[],4,[[9,9,4],2,[],5,8]],[[],8],[[[1,3,10],[2,7,8]],[],[9],10,4]] + +[[],[[3]],[[[9,8,2]],0,6,2],[[[],0],6,9,8,5]] +[[3]] + +[[10,[10,[2,7,3,7,7],[7,0,0],10,[8,2,7,0]]]] +[[[7,[7],8],2,5,[5,4]]] + +[[9,3,[5],5,0]] +[[7,5]] + +[[7],[]] +[[9,[[],0,9],[7,[8,0,0,7],0,[],4],[]]] + +[[[[8,5,0],[3,3],[4],8],10,[5,[9,8,4,6],0,7],[[5,7,10],[10,10,6,3],5],5],[[],9,[8]],[],[]] +[[0,[[0,2,10,4],[7,3],6],9],[3,[0,[8,8,3,9,7]],[],[[4,9],6,[10,1,2,0],10,[]],[7,7,[9,8,1],1,2]]] + +[[[0,5,[],[9,1,4],[4,5,8,8]],9,[[],4,[0,8,6],4,8]],[[[9],7,[],[2,0,5,1,5]],8,1],[5,2],[6]] +[[[]],[],[]] + +[[[[5,9,2,3],1,0,0],7,5,[1,8,5]],[[0,4],[[0,0]],8,[[5,2],5,[5,6,8],2],3],[0,[[3],[0,0,2,0],1],[10,[6],[6,7,2,1],[1,1,1,2,7],8],[[3,1,8],9,9]]] +[[2,[8,0,7],8],[6,[],[5,[6],0,0,[7,2,7,2]],[]],[5,[[6,9,1,9],[0,9],[10]]],[[[3,7,5],[]]],[]] + +[[1,[[8]]]] +[[[0,9,[5,8,4],[]],3,[0,8,[0,0,10],[0,8]],4,9],[1]] + +[[[],[[8,4,6,7],5,8,7,1],3,[[5,10,3,4]],[9]],[[],8,8,[[7,9,8,6,0],1,4,[1,4],6]],[3,6,0],[8,6,[],[[7,5],[5,1],10,8,[]],[[5,2,4,3,7],[5,0,10],1]],[[]]] +[[],[],[6,4,[0,8,[]]],[[7,[7,0,7,4],10]]] + +[[[[4,2,8],6],[[2,4,1],1,[0,4,7]]],[[],[],2,3]] +[[3,[[0,9],8,4,[3,4,7],6]],[0,7,[],2],[[[1,2,7,7],3,[5]]],[[],[1],[0],[[7,1,1],9,9,8,[]]]] + +[[[4,0],9,[[7,5,10],9,[9,0],[7],8],[5]],[],[0,3,1],[9,10,2,0,[[4,5,3,1],[4,8,6,0]]]] +[[[8],9],[]] + +[[0,[[0,9,8,8],3,6,[2,4,6]],7,5],[[6,[7,8],6],[],[],[10,7,[3,8,3]],[[5,9,5]]]] +[[[10,[0,8,6,10]],[[9,2,8,10],3]]] + +[[2,[[2,5,2],8]],[[],8,0,7,5],[4,2,6,5],[[0,4],[[0,3,0],[1,5,1],1]]] +[[[[8],[2,5],5,[3,10]]],[]] + +[[[[5,1,4],10],[2],4,[7]],[[[],[4,5],2,1],8,7,[7,[0,9,6,7,9],9,4],[3,5,5,[6,10,2,4],10]]] +[[[0,6,6,[3]],10,[5,10]],[],[[6,1],4],[[4,[2,6,5],[],[0],[7,1,10,9,3]],[[5,0],[1,7,3],[6,5,9,8],[0,4,8,1,1]],[],[]],[[[7,8,1,3],8,9],4,[1,[1,1,0,0],8]]] + +[[],[[[8,9,5,8],[6,4],1,[4,8,9,2],6]],[[4,6,[5],[0,8,6,9,6],[7,8,8]],[3,5,[0],7,8]]] +[[[0,[3,1,8,1],[5],[10,6]],10,0]] + +[[1],[[4,[6,4]],1,6]] +[[[5,3]],[[9,6,2,[3,6,8,6,0]],0],[[[2],[10,4,9,10,4],[2,9,6,1],9,10],[6]],[8,4,[[],[2,0,0,6],[1],[3,4,8],4]],[[],[[6,10],[3,10,5]],[6,0,10,8,6],6]] + +[[[7],[4,[3,9]],[1],6,[[9,0],6,[2,7],10,[2,5]]],[7],[7]] +[[[5,6,[3,4,5]],[[7,4,1],10,9,[4,8],[7,5,5,10]],[4,4,[1,0,1,5,1]],5,2],[[6,1,[2,3,7,4],7]]] + +[[[6,[0,9,1],[7,8],[6,2,2,1]],[[4,1]],[3,6]],[]] +[[6,[[3,9],7,3],2,10,[7,3,[6],[],[0,4,9,10,1]]],[3],[[[10],4,[6,7,1,0,0],0],1,[[6,0,5,4,0],6,[1,3,6,4]],0],[[[0,5],[5,5,7,9],[0,2,2]]]] + +[[[[],10,7,[0]],[4,2,[],[1,1,5],5],3,6,5],[],[[2,9,[8]],6,[1,[1,9,0,2]]],[]] +[[[3],0,0,[[1,5],5,[8,4,1,5],5,10],[[1,10],7,9,[4,8,7,2],[]]],[],[],[],[]] + +[[]] +[[[7,8,[10,7,9,2],[4,2,9,1],[10]],2,3],[[]],[[[3,1,9,1,10],10,5,[],4],[[5,8,2,6,3]],1,[],0],[4,[6,2,[8,9,8,1]],1],[6,[],8]] + +[[10,8,9],[[4,4,[6,10,3],[6,3,9,9,3]],[7,5]],[8,9,[[],2,1,9,[8,0,7,2,6]],[1,[1]]]] +[[5,[9],[],0,3],[[],7,0],[[6]]] + +[[5],[9,3,10,4,[7,5,[],[]]],[[9,9,2,10,[10,2,6,4]],[],[]],[[],2],[[6]]] +[[1,[[8,0],6],8,0]] + +[[6,0,[]]] +[[10,[6,2,8,[4],3],[[],5,[2,10,0,1,2],[0],[9,0,7,2]],[[6,6,0,0],1,5,3],[[6,2,3,8],6,2,7]],[8,6,[5,1,10,[10,7],3],[],8]] + +[[4],[7,2],[[[9,10,1],7],[],[[3],[5,4],7],[[3,10,2]],[3,[5,4,4,5,9]]],[5,[1,10]],[5]] +[[[[4,9,5],8,[4]],[1],10,[2,[6,7,7,3],8,9],5],[4,0,6],[2]] + +[[[2],[[]]],[[6,[9],6],4,0,[1,3,[0,6,6],8,[1,4,9]],[[4,0,9],[0]]],[1,4,[1,[7,8,6,6]],1,1],[3,2,9]] +[[5,[3,[],[8,0,3],4],4,7,0],[[]]] + +[[[[9,2,2],0,7],[[],[],[6,2,4,0,0],[2,6,2,6],8],0],[]] +[[[8,[6,9,0,8],5,[1,1,3,3,1]],[8,[],[3,8,9,0],[]]],[[7,[7,7,3,1]],5,4,0,3]] + +[[[[8,0],[4,2,1],[5,1,2,1],5,[5,0,10,1,8]],[7,4,[7,2,7]]],[8,6,[[8],[9,4,6],[6,7,4,7]],[[3],[3,5],[4,4,9],10,[2,1,8]],1],[[2,[9,5,6,7,9],7,5,[]],[[5,3,1,0],[7],8,[1,9,7],[]]]] +[[1,2,[[9,3],10,6],6],[[],[1,7],[5,[10,5,10],[0,5,3],8],3]] + +[[[[2,5,0],[9,0,8,8,7],10],3,9],[[[0,0,5]],[],[],[],[[3,1,8,0]]],[[[8],5],[[1,3,8,7],[0],1],1,[3,[4]],[9,5,[7,3,2,8],6]],[6,2,[[1,8],[],[0,6,7]]],[[],3,2]] +[[[[2,6,2,3,10],[]],8,7],[[[9,5,9],[0,4,4]],[[]],[[],7,10,[1,5],[7,10]],10,3],[[[10,2,0,1,6],4],1,2,10],[]] + +[[7,1,[[6,1,0,2,7],[3,9,3],9,[],[7,4]],[[]],4],[[[5,5,8,2],[10],[3,6,5,10,3]],[[],[1],[]],7,[[6,3,4],[3,2,9,4,7]]],[8,[4,[5,8]],7,0,4]] +[[5,[4,[8,7,7,3],[9,7,9,10]],[[4,4,5,10,0]],[[7,3],[4,3,6,1]],3],[10,2,1,[[9,7,4,9,8],[],[],8]]] + +[[[[0,3],5,9,[4,3,7,3,5],9],6,[],[10,1,[8,1,8,8,3]]],[1,8,0],[2,[[]]]] +[[3],[4,10,0,[1,2,9,8,7],2],[[5,[7,8,3,9]]]] + +[[5,6,[[0,2],[5,10,1,9,6],10,10,[2,7,9,1,1]],4],[],[[],[2,7],1]] +[[0],[[0,[4,4,4,2],[8,3,4,10,9]],8]] + +[[10,[[],[8,7]]],[[[2,10,3,8,6],7,6],1,[3,2,[6,5,6,3,7],10],3,[3,[],6,[6,2,8,8,2]]],[],[[8,[3]]],[5]] +[[[]],[],[[],[],5,[[5,4,7,1],8,8,1,0]],[6,[[8],6,6,[3,3,5,8,3]],7],[[3],10]] + +[[1,[[5,2,1]]],[[[10,0,3,7,3],[10,2,9,5],[0],8],8,[[4,4,8],[6,10,0],[0,10,10],[10,2,8],[10,4,2]],[2]]] +[[8,[]],[[1,[7,5,7,10,4],4,[10,6,10,5]],1,7,0,[[10,10,0,7],10,0]],[10]] + +[[1],[],[[[1,1,10,9,4]],[],4,2],[4]] +[[[],[[],3,[9,8,2],[9]],[0,[1,2]],2,9],[],[],[9],[[[3,2,5,3]],[10,[10,2]]]] + +[[[],[2,[7,9],[5,9,4]],[[1,1,10,4],6,10,[7,3,3,6,9]]],[[[10,0,3,2]],5,[3,1,10,[3,1,7,3,1],10]],[1,[[0,5,4,3,9],0,5,6,[8,1,2,0,0]],6,4,[2,[6,2,6,4]]]] +[[9,[1,[2,9,3,1]],[1,6,7],[7,[9,2,6,0,5],8],4],[8,8,10]] + +[[[]]] +[[1,[[3],8,[9,7,7,8,0],[7,10,4,9,0],[]]],[0,[[1],5,6,[1,3]],[[8],[2,9,1,3,4],[9,8,3]],2,8],[],[4,2],[2,[[7],[1,5],[]],6]] + +[[9,[9],0,[6,[1,10,8,8,6],[],6,2]],[[[2,1,9],6,[]]],[[],[[2,3,5,8],[2,9,5,7,7],7],[],[8,[7,3,3],[8],3]],[7,[[5,9,5],4]]] +[[[6,[10,7,6],[10,3,6,3],[]],[]]] + +[[5,2,8],[[],[[1,10,6,1],1],[2,[8,0,4,10,7],[10],8]],[[[10,1],[6],[2,5,4,8]],[3,5,4,[],1]]] +[[[],[[],5,[0],5,2],2,10,7],[7,9,[[2,6,8,1],[],6],[],[[0,0,3,10],1,[9,8],7,[]]],[[[3,7],[8],[3],4,[2,9,2,4]],[[8,2,6,2,10],[10,8,3],[5,5,7,7],[6]],[],8],[],[]] + +[[],[],[6,9,[[10,2],[],6],[[9,10,7]],[[4,5],3]],[[7],9,[[],3,4,[5,2,1],[]],[[10],6,9,[4],[10,1,9,3,6]],[[]]]] +[[[10,2],[[7,5,4,9,4],10,[7],7,8]]] + +[[4,[9,[],5,7],4,2],[6],[9,8,[2,3]],[]] +[[],[[5],4,9,[],[7,2,0,[7,2,1,9,6],0]],[10,3,[[],[],5,0]]] + +[[[[1,0,2],[10]]]] +[[],[],[4]] + +[[7],[[9],[0,[],2]]] +[[[],2],[7,4,3],[]] + +[[2],[[[5,10,3,3],5,10,[10,8,6,8,9],5]]] +[[9],[5,[8,[6,4,4,10],8,1]],[9,[8,[4,5,0,5],10,6],[7],9,4],[],[4,[0,10,5]]] + +[[[0,[10,0],[6,10]],[],9,[]],[8,[2,[1,9,7],0],4,4]] +[[],[],[[[0,5,5,6]],[8,[3,7,7],3,[4,2,0,3,0],[]],[],[[7,0,8,0],10,3,[2,2,7,1,4],5],[2,[10],1,[8,4,7]]],[8]] + +[[[],5]] +[[2,7,[9,[8,4,4,10,0],4,7],[[0,7,5,1],3,[7],[2],8],[[10,4,0,7],8,4,4]],[8,[],[2,[]],[]],[1,8,5,1]] + +[[[[3]],10],[6,9,[9,[],6],[[9,3,8],[3,3,2,10,2],2,[7,0]]]] +[[[[8,0,8,6],[],[3,2]]],[[[5],1,4,[3,6,3]],3,1,[3,9,[6,2,3],5]],[],[[],0],[[],[[10,4,1]]]] + +[[[1,10,[1,7,3,4]],[[8,4],[],[7],[0,2,3,6],5],[8],0],[],[[[],[4]]]] +[[8,[],[[9,3]],4],[6]] + +[[1,8,10,[],[]],[9,1,[[3,5,7],5,[6,4,5,3],1]],[[],[10,[7,6,0,3],[8,0],[7,7,4,4,0]]],[10,4],[[[0,3],2,5,0,[9,4]],6]] +[[[9,[5],1,[3,7,10]],1,0,[1,0,4]],[10,[[],[],[6,4,8,2,10]],[7,2,1],6,5]] + +[[[],[[4,3,7,9,5]],2,[],[9,5,4,[0,0,5,4,7]]],[[[],[3,9]],10,1,[10,[],9,6,[2,10,10,3]]]] +[[9,8,[4,[6,1,6,6,3],[3,9],9,[5,0,0]],[]],[[[2,4,8,7,1],5,5,1,9],[[],6],[[4,7,7,7,9],6,[10],7],[[],4,9,[3,10,7]],9]] + +[[10,[[1]],2,[]]] +[[3,10,[8],1,[[9],3,[7,5,6,2,9],8]],[[],7,1,0,[]],[[4,[3,7,9,7,4]],2,[[5,1,10],[3],6],9,5]] + +[[],[1],[],[6,[3,1,6],[[6,6,5],6,[],8,9]],[[7,8,[10],4]]] +[[[[8,2,8]],3,2,[],6],[7,5,[2,6]],[[[5,1,4],[8,5,5,0],4,[6,9],8],[[8,9]],[[8,4,9],3,9,7],7],[6]] + +[[],[8,[[9,0],[5],[1]],2,6,[5,6,[8,9,6,7,9],[9,1],7]]] +[[6,5,9],[]] + +[[2,10,[9,[3,2,9,4,8],[7],[9,4,6,5,0]]],[[[1]],[4],[5,[9]],1]] +[[7,10],[7,[8,[7,1,9,8],3,[1],[6,7,9]],2]] + +[[[[8,1,2,5,9],[],6,[]],[[3,1,8]],[],0],[[0],6,[[2,6],[8],[],3]],[3,[[3],7,[8],[],4],[[7,9,7],[],[7,10,3,2],[2,3],[1,9,9]]],[[0,10,10],3,[],0]] +[[7],[[1,[],7,4,4],[[2,5],[6]]],[[[2,5,7,5],4],10,10,[2,[1]]],[[[9,7,10,0,0],10,[10,8]]]] + +[[[5,9,[5,5,1,6,5]]]] +[[5],[6,5]] + +[[[],3]] +[[[10,[5,0,2,5],[7,5,10,4,0],10],[],[[6,7],[]],3],[[4,[6],7],2,6,1],[],[]] + +[[[7,[6]],[[8,10],0,[3],1,3]],[[[3,2,6,8,3],[2,6,0,5,3],[1,3,8]]],[10,3,0],[5,[1,[4,6],[],3,[7,7]],0,[5,[1,6,0]],[[],10]],[[[0,7,9,9],6,2],3]] +[[[9,5,10,5],[2]],[],[]] + +[[],[9,[[8],[0],[6,10,7,4]]]] +[[[[8,4],[3,5,5,4,1],[4],9],[6,2],9,10,[[1]]],[[[6,2,3],[1,1,6,0]],[],9,[[0,6],[10]],1],[[],[8,[3],[0,8,6,10],[0,5,5,8],[]],8,7,3],[[[6],6,5,1]]] + +[[4,[1,[7]],7,[3]],[8,[6,[]],[[6],8,[1,3]],[[6,10,5,3,4],7,[],[4,10,2]],[5,1,6,2]],[[[2,4],8,4],[[2,2]],[[4,6,10,8,6],[3,2,6,6,8],0],[[7,6,0,8],2],7]] +[[[2,5,1,2]],[10,[4,[4,10,6,8]],2,[[7,0],[10,2,8,8],5],5],[[[10],[6,8,5],9,9],[[5,2,1],[10,7,9,1,2]]]] + +[[8,[[0],[7,2,9,10]],[[2],1,7,[10,9,7,9]]],[[[],4,[]]]] +[[[[0,6,8,3,6],7,2,[8,0,3,9],1],6,5,[4,[1,9],3,[]]]] + +[[9,8,[4],6],[8,4,7],[[[9,1,9,5,6],10,0]]] +[[[[],4,[5,9,7,7,9],[]],[[10,3,6,3],0,10,[7,2,2,5,3],[8,6,1,9]]],[],[3,5]] + +[[[[9,8,2,7],3,[8,10]],5,0,[5,8,5],[8,[5,4]]]] +[[[[5]],1,6,[5,3,[8,2,3,0,5],8,2]],[]] + +[[[5,[2,8,6,5],[10,9,10],[]],[3,[4,9,5,3],[],5],4],[2,1],[[0,6,9,[1,2]]]] +[[[1],4,[[2,5,6,0]]],[4],[6,[[1,3,7,9,9],3],4,0],[[10,9,1],[[9,8,1],[],[9,8,8,9]],[6,7,5,[]]],[[[6,2,4],2,[2,3,2,1,10],3],0]] + +[[],[9,[[8,0,0,5,5],3,[0,6,8,9],[7,4,1,2],[]]],[[9,[2,2,10,3,10],6]],[10,[6,[9,8,2],[4,6,6,2],4,[9]],[4]],[]] +[[[[5,9,8,10,10]]],[[]],[[[6],[2,10,6],6,[6],6],10,[6,6,[]],[5]],[[[8,8,7,1,7]],[4,[5,7],[7,5,5],8],4,[3,[10,6,9],[0,2,0,1,9],8]]] + +[[],[[[9,2,5,5,8]]],[7,[[]],[3,1,[10],3]],[[[7,2,0,2],10,8,10],4,[7,[7,6,6,10,3],0,1,1],0],[3,7,[6,1,6,[0,10,0,0,4]]]] +[[2,1,2,2],[[[1]],2,[[]]],[[[4,4,6,10],[8,10,10,7,10],[1],6],[1,2,[5]],3],[[[5,8]],[[9],10],10,8,[[4,4,9,4]]],[]] + +[[[],3,[0,[],[7,10,8,7]],[2,6,[6,10],[6,10,4],3],[[10],[1,2],1]],[[[8,0],[10,5,7,8,0],[8,3,3,9,5],0,[5]],[8],4,5],[],[[[2,6],0,[3,8,10,8,6]],3,[]]] +[[],[[],[[7,0,3],[],[10,5,10,4,9],[3],[7,1,0,8,3]],[4,9],[1,8,[1,0,9,1,3],[5,0,5]]],[[]],[[],[]]] + +[[0,[4,8,6,2],[[6,2,8,9],7],6],[[2,[],[8,2,3],[10]],10,9,4],[],[]] +[[[[9],7],[10,3,9,[3,1,0,9,7]],[[5],[0,4,10],[3],6,7],6]] + +[[7]] +[[9,8,5,[9,[4,7,6,8,10]]],[7,6,5,[3]],[[[6,10,7,1,9],[],0,[]],[[3,1],8,6],[7],7,7]] + +[[[[10,3,8,0],5,[10],10,[10,6,6,3]]]] +[[[[4,5,5,3],0,6,[7,7],[2,10,9,1,4]],7],[],[[[6],[3,2,1],4]],[[[7],[0,8,4,7,6],6,0],[5,0,2,[6,4,0,2],4]],[[[6,3],5,4,8,2]]] + +[[[2,[1,1],[2,10,8,10,9],1],[8],[6,[],3,[9,0,3]]],[8,[[10,8,5,4],0],[]],[[[8,0,0,9,9],[8,4,9,6,2],[1,8,1]],[]],[],[[[],[2,1,0,4]]]] +[[5,4,8],[4],[[5,[3,9,3,0,3]],4,[[],10,[8,1,4]],8,[[9,8],[10,2,1],[4],0,[5,7]]]] + +[[7,[],5,10],[[5],4],[[7,[3,10,2,9,7],[7,3,6,6],6],[[0,7,10,1],[],[7,9],9,3]]] +[[[[0,9,10],5,[]],[],[4]],[[],[5,[1]],9],[9]] + +[[8,[8],7,6]] +[[[[1,0,7,7],6,6],3]] + +[[[[5,10,9,2]],5,1,[5,[7,9,10,3,7]],[[4,10,3,4]]],[],[4,1,[[1,8,8],7,[8,3],[4,10,9]],[[6,7,1,7,1],7]],[[[7,1,1,2],2],[],[6,5,[9,8,10,9,1]],[[2]],3]] +[[[[],[7],[],1,[1,6]],[7,7,[2]],10,[6],[6,7]],[8],[[0,[0,1,0]]],[[[],[8],7,[],10]]] + +[[],[4,[4,7,[]]],[]] +[[],[7,[9,[],7],[9,9],[10],0],[8,[6,[],4],[[8,3,8,9],0],6],[1,[[4,3],[10,6,7,10,6],4,0]]] + +[[[[5,0,4,5],[7,7,2,6]],[],10],[[[]],8,[[9,5,6],[],[9,5],5],5],[6,4]] +[[[],[4,[8],0,[5,7,8]],[6,9,[8,7,10],2],8],[]] + +[[9,6,5,4,[[4],[5,0,7,0,0]]],[[10,[3,1,5,2],6,[]],9,[[8]],[[7,8]]],[],[[8,[0,6,4,6],[9],[7],6],[5,7,8,[0,2,3],4]]] +[[[],3],[4,3,3,[4,10,[7,10]]]] + +[[[0,1]]] +[[],[[10,4,[],0],2,4,[3,[10,6,8,5],2]],[1,7,4,[],[[1,7],10,1,10]],[[[7,9],9,[],7,[2,10,6,7]],2],[[[2]],4,6,1]] + +[[],[[],2,[1,4,10,2,[1]],[4,5,10],2],[6,4,6,3]] +[[],[7,[2,6],[[6,6,9,5]],5,10]] + +[[8,[6,[10],3,10,10],[]]] +[[0,9],[7,[[5],10,[1,9,10,0,3],3],[[8,2],8,2],[[2,2],9,9,2,[1,7,4]],4],[[[2,7,2],1,2],6],[[8,10],[3,2,5,[3,0],[0]]]] + +[[7,[10,10,[2,8,8,1],10,9]],[1,[[4,0,3],1,0,[2,4],0]],[[[],[7,3,10],[10,9,6,5],[0,2,3]],2,[10,6,3],4,[[1,8,4,5],[],[3,10],[9,2,7]]],[5,3]] +[[1,3,0],[4,9,1],[]] + +[[9,7,9,[[2,4,9,5,10],9],1],[7],[[],0,[[5,10,10]],0],[5,[0,[],10],[2,[6,6,2,6],6,[4,9,2,1]],[[],3,9,[5]]],[[7,[0,0],8,[7,5,4,8,0]],3,0,1,[[7,2],1]]] +[[[[3],9,[0,5,5,0,2]],[],9,[1,[6,4,6,0],[10,8,6,4],10,7]],[[[5,10,9,1],[],10,[],[8,2,3,4]],6],[],[1,[],[[10,8,4],[3],4,9,[]],[6]],[]] + +[[9,[5,[6,8,3,1,9]],5],[[[10,1,1,5,7],2,1,10,4],7],[],[[[0,6,10,7,9]],9,[],[8,[9],9],[[7,2,9,5,9],[],8,8,[4,4,0]]]] +[[5,[1,[],[5]],[[1,1,0,6,5],[5,0,2,1,5],[],3,3],9],[10,[7,[7,6,2],[2,6,5,9],[4,0]],7]] + +[[[9,[3,6,6,8,5],0,[]],[],7,[[5,9,1,4,4]]]] +[[1,6],[5,8,8,[[10,10,10],8,[6,1,8,9,2],[2,4,4],[10]]],[[],[],0]] + +[[0,0,6],[2,8],[7,[[5,8,2,7,8],7,[9,2,6]],[[6,2,1,7,7],10,6,[8]]],[]] +[[[2,10,5,[],[6]]],[[],4,[5],3,3]] + +[[9,4],[]] +[[[3,[]],7,10,[[5,3],[8,7],2,9],7],[],[[3,[9,8,8],8],7,[[7],0]],[[],[[3,2,0]],[[5,8]],10,[[],[9,0,0]]],[8,[],4,4,[[4,7],3,[2,9,10,1],[2,1,6]]]] + +[[[2,[0,4]],5,2],[[1,8],[[1,7],[8,2,5,1,2],[1],[],3]],[]] +[[[[5,0,0,0,1],5],[4,[9,5,10,0],[9,9,6,3],[]],[[5,1,5,8,0],[10],[5,9,6],7],[[],9,[0,8,8,1,2]],8],[],[6,[[1,4],1,7,[7,3,0]],9],[],[]] + +[[3,[2,[9,8],5],8],[[],4,3],[[[]],3,[]],[0,[[],6],[[8]],[1,[9],1,9,1],[5,[6,6],0]],[[]]] +[[0],[[[8],[6,2,1,4,10]]],[2]] + +[[9],[[]],[9,9,5,[5]]] +[[9,[[6,6],9]],[[],0,2,[[4,2],[5,3,0,3,7],0],[[5,7,3]]],[[1,5,[0,8,3,0],[],[7,4]]],[7,6,[[5,0],0]],[]] + +[[[[0,7,5,5,3],3,3,[10,9,2,10]],2],[[[0,3,8,7,1],[]]],[],[10,9]] +[[[3,[2,5,3,10],[10,0,2]],1],[7,[[6,5,10,5],5,[7,8]],[[],[6,7,7],[],[0,6,8,9,8],[7,9]],8],[],[[5,[0,1,3],1,[10,0,7]],2],[[[2,1],[10],3]]] + +[[[0,3,5,[],6],[[5,5,0,7,2],[9,6,7],2],1]] +[] + +[[3,2,[[0],[3,10,7],[8,9],10,[5,4]],[8,8,[4,2,9,4]],[[2,1,5],0,0,6]],[[[4]],[]],[]] +[[],[2],[[9,[2,3,2,5],6,[10,2,10,10]],9,[]],[[7,5,[],1,8],[3,[],3,[7,1,3,3]],[1,[],7],[5,4]]] + +[[1,[9,4]],[0,9],[4,[[],[9,0],4,2,[1]]],[[],[4,[9,1,0,9],[1,9,5],3,[]],[[9,0,8],4,3],[7,5,4,6]],[[],[10,[0,1],[]],[1,[],[],1],[[9],2,0],5]] +[[6,[7]],[[[]]],[9,[2,[3,1,9,5]]],[8,[[2,4,10]],[9,1,[3,0,6,7,10],2,4],[]],[3]] + +[[[6,10,[]],0,[7],6,2],[9,[10,[5,4,6,5],[0],0],2,6]] +[[[[],[10,0],[2,1,7],[]],[8,1,10]],[],[4,[0,[0,9,4,3],[4,10],[8,2,5,4,1]],2]] + +[[[[7,5,8,9],6],[8,6,[10,7,9,5,2],[10,1,8]],3,10,8],[[[4,9,10,3,9],8],[[10,0,10,1],3,[8,0,4],[7,10,1,8],[9,9]],[3]],[[10,[10,2,6],1],[[8],[9,6,9,4],[2,9]],0]] +[[],[7,[[3,0,3,7,3],[6,6,10,8,5],[],10],0,10,[[],3,[],5,[5,5,5,0]]],[[[0,8,6,7],[0,4,5,5,9]],[4,2],[[10,1,1,1,0],4,[],[3,6],[0,9]],0],[[8,2,2,6],[[1,9],9,[4]],6]] + +[[1,[[7,10]],10,6]] +[[],[7],[5,7,10,[0,[9],[2],[4],6]],[9,3,6],[]] + +[[[2,[0,1,6,5],4,8]]] +[[[[3],4]]] diff --git a/AdventOfCode2022/Day1.fs b/AdventOfCode2022/Day1.fs index 2036470..895da0f 100644 --- a/AdventOfCode2022/Day1.fs +++ b/AdventOfCode2022/Day1.fs @@ -2,6 +2,7 @@ open System open System.Collections.Generic +open System.Globalization [] module Day1 = @@ -15,7 +16,7 @@ module Day1 = counts.Add acc acc <- 0 else - acc <- acc + Int32.Parse line + acc <- acc + Int32.Parse (line, NumberStyles.None) if acc <> 0 then counts.Add acc diff --git a/AdventOfCode2022/Day11.fs b/AdventOfCode2022/Day11.fs index 6204190..c8b15e9 100644 --- a/AdventOfCode2022/Day11.fs +++ b/AdventOfCode2022/Day11.fs @@ -2,6 +2,7 @@ namespace AdventOfCode2022 open System.Collections.Generic open System +open System.Globalization open Microsoft.FSharp.NativeInterop #if DEBUG @@ -130,7 +131,7 @@ module Day11 = if not (line.StartsWith "Test: divisible by ") then failwith "bad formatting on test line" - Int32.Parse (line.Slice 19) + Int32.Parse (line.Slice 19, NumberStyles.None) if not (enum.MoveNext ()) then failwith "Ran out of rows" @@ -141,7 +142,7 @@ module Day11 = if not (line.StartsWith "If true: throw to monkey ") then failwith "bad formatting for ifTrue line" - Int32.Parse (line.Slice 24) * 1 + Int32.Parse (line.Slice 25, NumberStyles.None) * 1 if not (enum.MoveNext ()) then failwith "Ran out of rows" @@ -152,7 +153,7 @@ module Day11 = if not (line.StartsWith "If false: throw to monkey ") then failwith "bad formatting for ifFalse line" - Int32.Parse (line.Slice 25) * 1 + Int32.Parse (line.Slice 26, NumberStyles.None) * 1 // We may be at the end, in which case there's no empty row. enum.MoveNext () |> ignore diff --git a/AdventOfCode2022/Day13.fs b/AdventOfCode2022/Day13.fs index 2a91920..64e7f40 100644 --- a/AdventOfCode2022/Day13.fs +++ b/AdventOfCode2022/Day13.fs @@ -1,27 +1,113 @@ namespace AdventOfCode2022 open System +open System.Collections.Generic +open System.Globalization #if DEBUG open Checked #endif +[] +type Day13Packet = + | PacketList of leaf : Day13Packet[] + | Int of int : int + [] module Day13 = - let parse (lines : StringSplitEnumerator) : int = + /// True if they're in the right order. + let rec cmp (packet1 : Day13Packet) (packet2 : Day13Packet) : bool option = + match packet1, packet2 with + | Day13Packet.Int i1, Day13Packet.Int i2 -> + if i1 < i2 then Some true + elif i1 > i2 then Some false + else None + | PacketList [||], PacketList [||] -> None + | PacketList [||], PacketList _ -> Some true + | PacketList _, PacketList [||] -> Some false + | PacketList arr1, PacketList arr2 -> + match cmp arr1.[0] arr2.[0] with + | Some v -> Some v + | None -> cmp (PacketList arr1.[1..]) (PacketList arr2.[1..]) + | PacketList _, Int _ -> cmp packet1 (PacketList [| packet2 |]) + | Int _, PacketList _ -> cmp (PacketList [| packet1 |]) packet2 + + let parse (lines : StringSplitEnumerator) : Day13Packet ResizeArray = use mutable enum = lines let output = ResizeArray () + let mutable stack = Stack<_> () while enum.MoveNext () do - output.Add () + if not (enum.Current.IsWhiteSpace ()) then + let line = enum.Current.TrimEnd () + assert (line.[0] = '[') + let mutable elements = StringSplitEnumerator.make' ',' line - 0 + while elements.MoveNext () do + let mutable curr = elements.Current + + while curr.[0] = '[' do + stack.Push (ResizeArray ()) + curr <- curr.Slice 1 + + if curr.[0] <> ']' then + stack + .Peek() + .Add (Day13Packet.Int (Int32.Parse (curr.TrimEnd ']', NumberStyles.None))) + + while curr.Length > 0 && curr.[curr.Length - 1] = ']' do + let closed = Day13Packet.PacketList (stack.Pop().ToArray ()) + + if stack.Count = 0 then + output.Add closed + else + stack.Peek().Add closed + + curr <- curr.Slice (0, curr.Length - 1) + + output let part1 (lines : StringSplitEnumerator) : int = let data = parse lines - -1 + + let mutable sum = 0 + + for i in 0..2 .. data.Count - 1 do + match cmp data.[i] data.[i + 1] with + | None -> failwith "should have decided" + | Some false -> () + | Some true -> sum <- sum + (i / 2 + 1) + + sum + let part2 (lines : StringSplitEnumerator) : int = let data = parse lines - -1 + + let marker1 = + Day13Packet.PacketList [| Day13Packet.PacketList [| Day13Packet.Int 2 |] |] + + data.Add marker1 + + let marker2 = + Day13Packet.PacketList [| Day13Packet.PacketList [| Day13Packet.Int 6 |] |] + + data.Add marker2 + let data = data.ToArray () |> Array.indexed + Array.sortInPlaceWith (fun (_, a) (_, b) -> if Option.get (cmp a b) then -1 else 1) data + + let mutable answer = 1 + let mutable keepGoing = true + let mutable i = 0 + + while keepGoing do + if answer = 1 && fst data.[i] = data.Length - 2 then + answer <- answer * (i + 1) + elif fst data.[i] = data.Length - 1 then + answer <- answer * (i + 1) + keepGoing <- false + + i <- i + 1 + + answer diff --git a/AdventOfCode2022/Day4.fs b/AdventOfCode2022/Day4.fs index 03991ef..9556d9b 100644 --- a/AdventOfCode2022/Day4.fs +++ b/AdventOfCode2022/Day4.fs @@ -1,6 +1,7 @@ namespace AdventOfCode2022 open System +open System.Globalization [] module Day4 = @@ -10,6 +11,9 @@ module Day4 = let inline overlaps (a, b) (c, d) : bool = b >= c && a <= d + let inline private parseInt (c : ReadOnlySpan) : int = + Int32.Parse (c, NumberStyles.AllowTrailingWhite) + let parse (s : ReadOnlySpan) : (int * int) * (int * int) = let commaIndex = s.IndexOf ',' let firstElf = s.Slice (0, commaIndex) @@ -20,7 +24,7 @@ module Day4 = let secondDashIndex = secondElf.IndexOf '-' let secondElf1 = secondElf.Slice (0, secondDashIndex) let secondElf2 = secondElf.Slice (secondDashIndex + 1) - (Int32.Parse firstElf1, Int32.Parse firstElf2), (Int32.Parse secondElf1, Int32.Parse secondElf2) + (parseInt firstElf1, parseInt firstElf2), (parseInt secondElf1, parseInt secondElf2) let part1 (lines : StringSplitEnumerator) : int = let mutable count = 0 diff --git a/AdventOfCode2022/EfficientString.fs b/AdventOfCode2022/EfficientString.fs index 7b4a2e8..41fd040 100644 --- a/AdventOfCode2022/EfficientString.fs +++ b/AdventOfCode2022/EfficientString.fs @@ -1,6 +1,7 @@ namespace AdventOfCode2022 open System +open System.Globalization open System.Runtime.CompilerServices type EfficientString = System.ReadOnlySpan diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report-github.md b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report-github.md new file mode 100644 index 0000000..846eab8 --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report-github.md @@ -0,0 +1,18 @@ +``` ini + +BenchmarkDotNet=v0.13.2, OS=macOS 13.0.1 (22A400) [Darwin 22.1.0] +Apple M1 Max, 1 CPU, 10 logical and 10 physical cores +.NET SDK=7.0.100 + [Host] : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD DEBUG + DefaultJob : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD + + +``` +| Method | Day | IsPartOne | Mean | Error | StdDev | +|---------- |---- |---------- |--------------:|------------:|------------:| +| **Benchmark** | **11** | **False** | **7.318 μs** | **0.0677 μs** | **0.0634 μs** | +| **Benchmark** | **11** | **True** | **2,928.997 μs** | **16.3883 μs** | **15.3296 μs** | +| **Benchmark** | **12** | **False** | **18,825.857 μs** | **166.2955 μs** | **155.5529 μs** | +| **Benchmark** | **12** | **True** | **22,745.934 μs** | **156.3040 μs** | **146.2068 μs** | +| **Benchmark** | **13** | **False** | **345.806 μs** | **2.1535 μs** | **2.0144 μs** | +| **Benchmark** | **13** | **True** | **637.357 μs** | **11.2223 μs** | **10.4973 μs** | diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report.csv b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report.csv new file mode 100644 index 0000000..cc9e31f --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report.csv @@ -0,0 +1,7 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Day,IsPartOne,Mean,Error,StdDev +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,11,False,7.318 μs,0.0677 μs,0.0634 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,11,True,"2,928.997 μs",16.3883 μs,15.3296 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,12,False,"18,825.857 μs",166.2955 μs,155.5529 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,12,True,"22,745.934 μs",156.3040 μs,146.2068 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,13,False,345.806 μs,2.1535 μs,2.0144 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,13,True,637.357 μs,11.2223 μs,10.4973 μs diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report.html b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report.html new file mode 100644 index 0000000..8409225 --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report.html @@ -0,0 +1,35 @@ + + + + +AdventOfCode2022.App.Benchmark11To15-20221213-200602 + + + + +

+BenchmarkDotNet=v0.13.2, OS=macOS 13.0.1 (22A400) [Darwin 22.1.0]
+Apple M1 Max, 1 CPU, 10 logical and 10 physical cores
+.NET SDK=7.0.100
+  [Host]     : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD DEBUG
+  DefaultJob : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD
+
+
+ + + + + + + + + + +
MethodDayIsPartOne MeanErrorStdDev
Benchmark11False7.318 μs0.0677 μs0.0634 μs
Benchmark11True2,928.997 μs16.3883 μs15.3296 μs
Benchmark12False18,825.857 μs166.2955 μs155.5529 μs
Benchmark12True22,745.934 μs156.3040 μs146.2068 μs
Benchmark13False345.806 μs2.1535 μs2.0144 μs
Benchmark13True637.357 μs11.2223 μs10.4973 μs
+ + diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report-github.md b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report-github.md new file mode 100644 index 0000000..86a8afc --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report-github.md @@ -0,0 +1,22 @@ +``` ini + +BenchmarkDotNet=v0.13.2, OS=macOS 13.0.1 (22A400) [Darwin 22.1.0] +Apple M1 Max, 1 CPU, 10 logical and 10 physical cores +.NET SDK=7.0.100 + [Host] : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD DEBUG + DefaultJob : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD + + +``` +| Method | Day | IsPartOne | Mean | Error | StdDev | +|---------- |---- |---------- |---------:|---------:|---------:| +| **Benchmark** | **1** | **False** | **32.24 μs** | **0.046 μs** | **0.043 μs** | +| **Benchmark** | **1** | **True** | **32.81 μs** | **0.370 μs** | **0.346 μs** | +| **Benchmark** | **2** | **False** | **83.36 μs** | **1.135 μs** | **1.061 μs** | +| **Benchmark** | **2** | **True** | **81.54 μs** | **1.379 μs** | **1.290 μs** | +| **Benchmark** | **3** | **False** | **33.58 μs** | **0.662 μs** | **0.906 μs** | +| **Benchmark** | **3** | **True** | **70.99 μs** | **1.382 μs** | **1.357 μs** | +| **Benchmark** | **4** | **False** | **65.90 μs** | **0.479 μs** | **0.448 μs** | +| **Benchmark** | **4** | **True** | **54.70 μs** | **0.489 μs** | **0.458 μs** | +| **Benchmark** | **5** | **False** | **93.13 μs** | **1.223 μs** | **1.084 μs** | +| **Benchmark** | **5** | **True** | **81.07 μs** | **0.257 μs** | **0.228 μs** | diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report.csv b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report.csv new file mode 100644 index 0000000..83ad7ba --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report.csv @@ -0,0 +1,11 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Day,IsPartOne,Mean,Error,StdDev +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1,False,32.24 μs,0.046 μs,0.043 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1,True,32.81 μs,0.370 μs,0.346 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,2,False,83.36 μs,1.135 μs,1.061 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,2,True,81.54 μs,1.379 μs,1.290 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,3,False,33.58 μs,0.662 μs,0.906 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,3,True,70.99 μs,1.382 μs,1.357 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,4,False,65.90 μs,0.479 μs,0.448 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,4,True,54.70 μs,0.489 μs,0.458 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,5,False,93.13 μs,1.223 μs,1.084 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,5,True,81.07 μs,0.257 μs,0.228 μs diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report.html b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report.html new file mode 100644 index 0000000..3f93b11 --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report.html @@ -0,0 +1,39 @@ + + + + +AdventOfCode2022.App.Benchmark1To5-20221213-195941 + + + + +

+BenchmarkDotNet=v0.13.2, OS=macOS 13.0.1 (22A400) [Darwin 22.1.0]
+Apple M1 Max, 1 CPU, 10 logical and 10 physical cores
+.NET SDK=7.0.100
+  [Host]     : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD DEBUG
+  DefaultJob : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD
+
+
+ + + + + + + + + + + + + + +
MethodDayIsPartOneMeanErrorStdDev
Benchmark1False32.24 μs0.046 μs0.043 μs
Benchmark1True32.81 μs0.370 μs0.346 μs
Benchmark2False83.36 μs1.135 μs1.061 μs
Benchmark2True81.54 μs1.379 μs1.290 μs
Benchmark3False33.58 μs0.662 μs0.906 μs
Benchmark3True70.99 μs1.382 μs1.357 μs
Benchmark4False65.90 μs0.479 μs0.448 μs
Benchmark4True54.70 μs0.489 μs0.458 μs
Benchmark5False93.13 μs1.223 μs1.084 μs
Benchmark5True81.07 μs0.257 μs0.228 μs
+ + diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report-github.md b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report-github.md new file mode 100644 index 0000000..a5eaa23 --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report-github.md @@ -0,0 +1,22 @@ +``` ini + +BenchmarkDotNet=v0.13.2, OS=macOS 13.0.1 (22A400) [Darwin 22.1.0] +Apple M1 Max, 1 CPU, 10 logical and 10 physical cores +.NET SDK=7.0.100 + [Host] : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD DEBUG + DefaultJob : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD + + +``` +| Method | Day | IsPartOne | Mean | Error | StdDev | +|---------- |---- |---------- |-----------:|----------:|-----------:| +| **Benchmark** | **6** | **False** | **88.040 μs** | **0.2647 μs** | **0.2476 μs** | +| **Benchmark** | **6** | **True** | **170.379 μs** | **1.2751 μs** | **1.1304 μs** | +| **Benchmark** | **7** | **False** | **461.797 μs** | **8.9784 μs** | **12.2898 μs** | +| **Benchmark** | **7** | **True** | **461.118 μs** | **5.6912 μs** | **5.3236 μs** | +| **Benchmark** | **8** | **False** | **762.252 μs** | **5.8910 μs** | **5.5104 μs** | +| **Benchmark** | **8** | **True** | **376.716 μs** | **3.3130 μs** | **3.0990 μs** | +| **Benchmark** | **9** | **False** | **505.652 μs** | **2.9322 μs** | **2.5993 μs** | +| **Benchmark** | **9** | **True** | **938.780 μs** | **8.5721 μs** | **8.0183 μs** | +| **Benchmark** | **10** | **False** | **7.479 μs** | **0.0655 μs** | **0.0547 μs** | +| **Benchmark** | **10** | **True** | **8.653 μs** | **0.0773 μs** | **0.0723 μs** | diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report.csv b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report.csv new file mode 100644 index 0000000..4b6327c --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report.csv @@ -0,0 +1,11 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Day,IsPartOne,Mean,Error,StdDev +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,6,False,88.040 μs,0.2647 μs,0.2476 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,6,True,170.379 μs,1.2751 μs,1.1304 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7,False,461.797 μs,8.9784 μs,12.2898 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7,True,461.118 μs,5.6912 μs,5.3236 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,8,False,762.252 μs,5.8910 μs,5.5104 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,8,True,376.716 μs,3.3130 μs,3.0990 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,9,False,505.652 μs,2.9322 μs,2.5993 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,9,True,938.780 μs,8.5721 μs,8.0183 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,False,7.479 μs,0.0655 μs,0.0547 μs +Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,True,8.653 μs,0.0773 μs,0.0723 μs diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report.html b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report.html new file mode 100644 index 0000000..aba35c0 --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report.html @@ -0,0 +1,39 @@ + + + + +AdventOfCode2022.App.Benchmark6To10-20221213-200239 + + + + +

+BenchmarkDotNet=v0.13.2, OS=macOS 13.0.1 (22A400) [Darwin 22.1.0]
+Apple M1 Max, 1 CPU, 10 logical and 10 physical cores
+.NET SDK=7.0.100
+  [Host]     : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD DEBUG
+  DefaultJob : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD
+
+
+ + + + + + + + + + + + + + +
MethodDayIsPartOneMeanErrorStdDev
Benchmark6False88.040 μs0.2647 μs0.2476 μs
Benchmark6True170.379 μs1.2751 μs1.1304 μs
Benchmark7False461.797 μs8.9784 μs12.2898 μs
Benchmark7True461.118 μs5.6912 μs5.3236 μs
Benchmark8False762.252 μs5.8910 μs5.5104 μs
Benchmark8True376.716 μs3.3130 μs3.0990 μs
Benchmark9False505.652 μs2.9322 μs2.5993 μs
Benchmark9True938.780 μs8.5721 μs8.0183 μs
Benchmark10False7.479 μs0.0655 μs0.0547 μs
Benchmark10True8.653 μs0.0773 μs0.0723 μs
+ + diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report-github.md b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report-github.md deleted file mode 100644 index aa00816..0000000 --- a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report-github.md +++ /dev/null @@ -1,36 +0,0 @@ -``` ini - -BenchmarkDotNet=v0.13.2, OS=macOS 13.0.1 (22A400) [Darwin 22.1.0] -Apple M1 Max, 1 CPU, 10 logical and 10 physical cores -.NET SDK=7.0.100 - [Host] : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD DEBUG - DefaultJob : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD - - -``` -| Method | Day | IsPartOne | Mean | Error | StdDev | -|---------- |---- |---------- |--------------:|-----------:|-----------:| -| **Benchmark** | **1** | **False** | **33.244 μs** | **0.2642 μs** | **0.2471 μs** | -| **Benchmark** | **1** | **True** | **32.513 μs** | **0.1846 μs** | **0.1726 μs** | -| **Benchmark** | **2** | **False** | **81.554 μs** | **0.2173 μs** | **0.1815 μs** | -| **Benchmark** | **2** | **True** | **79.599 μs** | **0.1147 μs** | **0.1073 μs** | -| **Benchmark** | **3** | **False** | **31.007 μs** | **0.5214 μs** | **0.4877 μs** | -| **Benchmark** | **3** | **True** | **68.288 μs** | **0.7579 μs** | **0.7089 μs** | -| **Benchmark** | **4** | **False** | **67.351 μs** | **0.3972 μs** | **0.3521 μs** | -| **Benchmark** | **4** | **True** | **55.999 μs** | **0.1689 μs** | **0.1580 μs** | -| **Benchmark** | **5** | **False** | **92.782 μs** | **1.0320 μs** | **0.9654 μs** | -| **Benchmark** | **5** | **True** | **79.805 μs** | **0.6187 μs** | **0.5167 μs** | -| **Benchmark** | **6** | **False** | **84.490 μs** | **0.2784 μs** | **0.2468 μs** | -| **Benchmark** | **6** | **True** | **166.730 μs** | **0.5719 μs** | **0.5350 μs** | -| **Benchmark** | **7** | **False** | **453.619 μs** | **2.1378 μs** | **1.9997 μs** | -| **Benchmark** | **7** | **True** | **452.451 μs** | **1.4309 μs** | **1.3385 μs** | -| **Benchmark** | **8** | **False** | **755.448 μs** | **0.7892 μs** | **0.7382 μs** | -| **Benchmark** | **8** | **True** | **375.527 μs** | **3.0205 μs** | **2.5223 μs** | -| **Benchmark** | **9** | **False** | **501.875 μs** | **2.1927 μs** | **1.9438 μs** | -| **Benchmark** | **9** | **True** | **933.000 μs** | **9.1963 μs** | **8.6022 μs** | -| **Benchmark** | **10** | **False** | **7.636 μs** | **0.0413 μs** | **0.0386 μs** | -| **Benchmark** | **10** | **True** | **8.521 μs** | **0.0276 μs** | **0.0258 μs** | -| **Benchmark** | **11** | **False** | **7.342 μs** | **0.0088 μs** | **0.0083 μs** | -| **Benchmark** | **11** | **True** | **2,892.387 μs** | **4.6952 μs** | **4.3919 μs** | -| **Benchmark** | **12** | **False** | **18,577.038 μs** | **65.5871 μs** | **51.2061 μs** | -| **Benchmark** | **12** | **True** | **20,108.906 μs** | **54.5080 μs** | **48.3199 μs** | diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report.csv b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report.csv deleted file mode 100644 index e4840e4..0000000 --- a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report.csv +++ /dev/null @@ -1,25 +0,0 @@ -Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Day,IsPartOne,Mean,Error,StdDev -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1,False,33.244 μs,0.2642 μs,0.2471 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1,True,32.513 μs,0.1846 μs,0.1726 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,2,False,81.554 μs,0.2173 μs,0.1815 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,2,True,79.599 μs,0.1147 μs,0.1073 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,3,False,31.007 μs,0.5214 μs,0.4877 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,3,True,68.288 μs,0.7579 μs,0.7089 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,4,False,67.351 μs,0.3972 μs,0.3521 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,4,True,55.999 μs,0.1689 μs,0.1580 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,5,False,92.782 μs,1.0320 μs,0.9654 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,5,True,79.805 μs,0.6187 μs,0.5167 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,6,False,84.490 μs,0.2784 μs,0.2468 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,6,True,166.730 μs,0.5719 μs,0.5350 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7,False,453.619 μs,2.1378 μs,1.9997 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7,True,452.451 μs,1.4309 μs,1.3385 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,8,False,755.448 μs,0.7892 μs,0.7382 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,8,True,375.527 μs,3.0205 μs,2.5223 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,9,False,501.875 μs,2.1927 μs,1.9438 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,9,True,933.000 μs,9.1963 μs,8.6022 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,False,7.636 μs,0.0413 μs,0.0386 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,True,8.521 μs,0.0276 μs,0.0258 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,11,False,7.342 μs,0.0088 μs,0.0083 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,11,True,"2,892.387 μs",4.6952 μs,4.3919 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,12,False,"18,577.038 μs",65.5871 μs,51.2061 μs -Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,12,True,"20,108.906 μs",54.5080 μs,48.3199 μs diff --git a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report.html b/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report.html deleted file mode 100644 index e4f0165..0000000 --- a/BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -AdventOfCode2022.App.Benchmarks-20221212-171935 - - - - -

-BenchmarkDotNet=v0.13.2, OS=macOS 13.0.1 (22A400) [Darwin 22.1.0]
-Apple M1 Max, 1 CPU, 10 logical and 10 physical cores
-.NET SDK=7.0.100
-  [Host]     : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD DEBUG
-  DefaultJob : .NET 7.0.0 (7.0.22.51805), Arm64 RyuJIT AdvSIMD
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDayIsPartOne MeanErrorStdDev
Benchmark1False33.244 μs0.2642 μs0.2471 μs
Benchmark1True32.513 μs0.1846 μs0.1726 μs
Benchmark2False81.554 μs0.2173 μs0.1815 μs
Benchmark2True79.599 μs0.1147 μs0.1073 μs
Benchmark3False31.007 μs0.5214 μs0.4877 μs
Benchmark3True68.288 μs0.7579 μs0.7089 μs
Benchmark4False67.351 μs0.3972 μs0.3521 μs
Benchmark4True55.999 μs0.1689 μs0.1580 μs
Benchmark5False92.782 μs1.0320 μs0.9654 μs
Benchmark5True79.805 μs0.6187 μs0.5167 μs
Benchmark6False84.490 μs0.2784 μs0.2468 μs
Benchmark6True166.730 μs0.5719 μs0.5350 μs
Benchmark7False453.619 μs2.1378 μs1.9997 μs
Benchmark7True452.451 μs1.4309 μs1.3385 μs
Benchmark8False755.448 μs0.7892 μs0.7382 μs
Benchmark8True375.527 μs3.0205 μs2.5223 μs
Benchmark9False501.875 μs2.1927 μs1.9438 μs
Benchmark9True933.000 μs9.1963 μs8.6022 μs
Benchmark10False7.636 μs0.0413 μs0.0386 μs
Benchmark10True8.521 μs0.0276 μs0.0258 μs
Benchmark11False7.342 μs0.0088 μs0.0083 μs
Benchmark11True2,892.387 μs4.6952 μs4.3919 μs
Benchmark12False18,577.038 μs65.5871 μs51.2061 μs
Benchmark12True20,108.906 μs54.5080 μs48.3199 μs
- - diff --git a/README.md b/README.md index db236c9..acf2d38 100644 --- a/README.md +++ b/README.md @@ -5,4 +5,7 @@ Just `dotnet build` and `dotnet test`. ## Perf -See [BenchmarkDotNet report](./BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmarks-report-github.md). +BenchmarkDotNet reports: +* [Day 1 through Day 5](./BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark1To5-report-github.md). +* [Day 6 through Day 10](./BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark6To10-report-github.md). +* [Day 11 through Day 15](./BenchmarkDotNet.Artifacts/results/AdventOfCode2022.App.Benchmark11To15-report-github.md).