diff --git a/2023/day1/Cargo.toml b/2023/day01/Cargo.toml similarity index 94% rename from 2023/day1/Cargo.toml rename to 2023/day01/Cargo.toml index cdf0b0d..8db4669 100644 --- a/2023/day1/Cargo.toml +++ b/2023/day01/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "day1" +name = "day01" version = "0.1.0" edition = "2021" diff --git a/2023/day1/README.md b/2023/day01/README.md similarity index 52% rename from 2023/day1/README.md rename to 2023/day01/README.md index 7b6bbe3..d70de8f 100644 --- a/2023/day1/README.md +++ b/2023/day01/README.md @@ -4,27 +4,27 @@ benchmarks: Ensure that `input.txt` contains many, many copies of the actual input, the actual input is way too small. -`cargo build --release && hyperfine 'target/release/day1 part2 naive' 'target/release/day1 part2 zero_alloc' 'target/release/day1 part2 branchless' 'target/release/day1 part2 vectorized'` +`cargo build --release && hyperfine 'target/release/day01 part2 naive' 'target/release/day01 part2 zero_alloc' 'target/release/day01 part2 branchless' 'target/release/day01 part2 vectorized'` ``` -Benchmark 1: target/release/day1 part2 naive +Benchmark 1: target/release/day01 part2 naive Time (mean ± σ): 1.066 s ± 0.017 s [User: 1.048 s, System: 0.018 s] Range (min … max): 1.049 s … 1.099 s 10 runs -Benchmark 2: target/release/day1 part2 zero_alloc +Benchmark 2: target/release/day01 part2 zero_alloc Time (mean ± σ): 212.7 ms ± 3.5 ms [User: 195.0 ms, System: 17.6 ms] Range (min … max): 206.9 ms … 219.0 ms 14 runs -Benchmark 3: target/release/day1 part2 branchless +Benchmark 3: target/release/day01 part2 branchless Time (mean ± σ): 137.2 ms ± 1.8 ms [User: 117.5 ms, System: 19.6 ms] Range (min … max): 133.5 ms … 142.2 ms 21 runs -Benchmark 4: target/release/day1 part2 vectorized +Benchmark 4: target/release/day01 part2 vectorized Time (mean ± σ): 87.9 ms ± 0.9 ms [User: 68.6 ms, System: 19.1 ms] Range (min … max): 86.5 ms … 90.6 ms 33 runs Summary - target/release/day1 part2 vectorized ran - 1.56 ± 0.03 times faster than target/release/day1 part2 branchless - 2.42 ± 0.05 times faster than target/release/day1 part2 zero_alloc - 12.13 ± 0.22 times faster than target/release/day1 part2 naive + target/release/day01 part2 vectorized ran + 1.56 ± 0.03 times faster than target/release/day01 part2 branchless + 2.42 ± 0.05 times faster than target/release/day01 part2 zero_alloc + 12.13 ± 0.22 times faster than target/release/day01 part2 naive ``` diff --git a/2023/day01/benches/benches.rs b/2023/day01/benches/benches.rs new file mode 100644 index 0000000..d1611ba --- /dev/null +++ b/2023/day01/benches/benches.rs @@ -0,0 +1,3 @@ +fn main() { + day01::bench(); +} diff --git a/2023/day1/input.txt b/2023/day01/input.txt similarity index 100% rename from 2023/day1/input.txt rename to 2023/day01/input.txt diff --git a/2023/day1/input_small1.txt b/2023/day01/input_small1.txt similarity index 100% rename from 2023/day1/input_small1.txt rename to 2023/day01/input_small1.txt diff --git a/2023/day1/input_small2.txt b/2023/day01/input_small2.txt similarity index 100% rename from 2023/day1/input_small2.txt rename to 2023/day01/input_small2.txt diff --git a/2023/day1/src/branchless.rs b/2023/day01/src/branchless.rs similarity index 100% rename from 2023/day1/src/branchless.rs rename to 2023/day01/src/branchless.rs diff --git a/2023/day1/src/lib.rs b/2023/day01/src/lib.rs similarity index 92% rename from 2023/day1/src/lib.rs rename to 2023/day01/src/lib.rs index d1941de..94ee6de 100644 --- a/2023/day1/src/lib.rs +++ b/2023/day01/src/lib.rs @@ -9,13 +9,13 @@ mod vectorized; mod zero_alloc; pub fn main() { - helper::main::(include_str!("../input.txt")); + helper::main::(include_str!("../input.txt")); } -struct Day1; +struct Day01; helper::define_variants! { - day => crate::Day1; + day => crate::Day01; part1 { basic => crate::part1; } @@ -28,7 +28,7 @@ helper::define_variants! { } } -impl Day for Day1 { +impl Day for Day01 { fn pad_input(input: &str) -> std::borrow::Cow { let mut input = input.to_owned(); input.reserve(10); // enough to read u64 @@ -69,7 +69,7 @@ fn part1(input: &str) -> u64 { } helper::tests! { - day1 Day1; + day01 Day01; part1 { "../input_small1.txt" => 142; "../input.txt" => 54632; diff --git a/2023/day01/src/main.rs b/2023/day01/src/main.rs new file mode 100644 index 0000000..68153ea --- /dev/null +++ b/2023/day01/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + day01::main(); +} diff --git a/2023/day1/src/naive.rs b/2023/day01/src/naive.rs similarity index 100% rename from 2023/day1/src/naive.rs rename to 2023/day01/src/naive.rs diff --git a/2023/day1/src/no_lines.rs b/2023/day01/src/no_lines.rs similarity index 100% rename from 2023/day1/src/no_lines.rs rename to 2023/day01/src/no_lines.rs diff --git a/2023/day1/src/vectorized.rs b/2023/day01/src/vectorized.rs similarity index 100% rename from 2023/day1/src/vectorized.rs rename to 2023/day01/src/vectorized.rs diff --git a/2023/day1/src/zero_alloc.rs b/2023/day01/src/zero_alloc.rs similarity index 100% rename from 2023/day1/src/zero_alloc.rs rename to 2023/day01/src/zero_alloc.rs diff --git a/2023/day2/Cargo.toml b/2023/day02/Cargo.toml similarity index 94% rename from 2023/day2/Cargo.toml rename to 2023/day02/Cargo.toml index 7238c2a..a0e5bc7 100644 --- a/2023/day2/Cargo.toml +++ b/2023/day02/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "day2" +name = "day02" version = "0.1.0" edition = "2021" diff --git a/2023/day02/benches/benches.rs b/2023/day02/benches/benches.rs new file mode 100644 index 0000000..3c72aa0 --- /dev/null +++ b/2023/day02/benches/benches.rs @@ -0,0 +1,3 @@ +fn main() { + day02::bench(); +} diff --git a/2023/day2/input.txt b/2023/day02/input.txt similarity index 100% rename from 2023/day2/input.txt rename to 2023/day02/input.txt diff --git a/2023/day2/input_small.txt b/2023/day02/input_small.txt similarity index 100% rename from 2023/day2/input_small.txt rename to 2023/day02/input_small.txt diff --git a/2023/day2/src/lib.rs b/2023/day02/src/lib.rs similarity index 94% rename from 2023/day2/src/lib.rs rename to 2023/day02/src/lib.rs index f125185..a3854a9 100644 --- a/2023/day2/src/lib.rs +++ b/2023/day02/src/lib.rs @@ -9,13 +9,13 @@ use nom::{ }; pub fn main() { - helper::main::(include_str!("../input.txt")); + helper::main::(include_str!("../input.txt")); } -struct Day2; +struct Day02; helper::define_variants! { - day => crate::Day2; + day => crate::Day02; part1 { basic => crate::part1; } @@ -24,7 +24,7 @@ helper::define_variants! { } } -impl Day for Day2 { +impl Day for Day02 { fn part1() -> helper::Variants { part1_variants!(construct_variants) } @@ -99,7 +99,7 @@ fn part2(input: &str) -> u64 { } helper::tests! { - day2 Day2; + day02 Day02; part1 { small => 8; default => 1931; diff --git a/2023/day02/src/main.rs b/2023/day02/src/main.rs new file mode 100644 index 0000000..ebb9184 --- /dev/null +++ b/2023/day02/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + day02::main(); +} diff --git a/2023/day3/Cargo.toml b/2023/day03/Cargo.toml similarity index 94% rename from 2023/day3/Cargo.toml rename to 2023/day03/Cargo.toml index b7639d6..f671947 100644 --- a/2023/day3/Cargo.toml +++ b/2023/day03/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "day3" +name = "day03" version = "0.1.0" edition = "2021" diff --git a/2023/day03/benches/benches.rs b/2023/day03/benches/benches.rs new file mode 100644 index 0000000..c4135ca --- /dev/null +++ b/2023/day03/benches/benches.rs @@ -0,0 +1,3 @@ +fn main() { + day03::bench(); +} diff --git a/2023/day3/input.txt b/2023/day03/input.txt similarity index 100% rename from 2023/day3/input.txt rename to 2023/day03/input.txt diff --git a/2023/day3/input_small.txt b/2023/day03/input_small.txt similarity index 100% rename from 2023/day3/input_small.txt rename to 2023/day03/input_small.txt diff --git a/2023/day3/src/lib.rs b/2023/day03/src/lib.rs similarity index 96% rename from 2023/day3/src/lib.rs rename to 2023/day03/src/lib.rs index 0938779..24fc45e 100644 --- a/2023/day3/src/lib.rs +++ b/2023/day03/src/lib.rs @@ -3,13 +3,13 @@ use std::collections::HashMap; use helper::Day; pub fn main() { - helper::main::(include_str!("../input.txt")); + helper::main::(include_str!("../input.txt")); } -struct Day3; +struct Day03; helper::define_variants! { - day => crate::Day3; + day => crate::Day03; part1 { basic => crate::part1; } @@ -18,7 +18,7 @@ helper::define_variants! { } } -impl Day for Day3 { +impl Day for Day03 { fn part1() -> helper::Variants { part1_variants!(construct_variants) } @@ -128,7 +128,7 @@ fn part2(input: &str) -> u64 { } helper::tests! { - day3 Day3; + day03 Day03; part1 { small => 4361; default => 537832; diff --git a/2023/day03/src/mainrs b/2023/day03/src/mainrs new file mode 100644 index 0000000..da46503 --- /dev/null +++ b/2023/day03/src/mainrs @@ -0,0 +1,3 @@ +fn main() { + day03::main(); +} diff --git a/2023/day1/benches/benches.rs b/2023/day1/benches/benches.rs deleted file mode 100644 index 0c2dbb5..0000000 --- a/2023/day1/benches/benches.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - day1::bench(); -} diff --git a/2023/day1/src/main.rs b/2023/day1/src/main.rs deleted file mode 100644 index 424c64a..0000000 --- a/2023/day1/src/main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - day1::main(); -} diff --git a/2023/day2/benches/benches.rs b/2023/day2/benches/benches.rs deleted file mode 100644 index 96855df..0000000 --- a/2023/day2/benches/benches.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - day2::bench(); -} diff --git a/2023/day2/src/main.rs b/2023/day2/src/main.rs deleted file mode 100644 index 4192bc2..0000000 --- a/2023/day2/src/main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - day2::main(); -} diff --git a/2023/day3/benches/benches.rs b/2023/day3/benches/benches.rs deleted file mode 100644 index 423f516..0000000 --- a/2023/day3/benches/benches.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - day3::bench(); -} diff --git a/2023/day3/src/mainrs b/2023/day3/src/mainrs deleted file mode 100644 index 3b5b9bb..0000000 --- a/2023/day3/src/mainrs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - day3::main(); -} diff --git a/Cargo.lock b/Cargo.lock index 96d1c39..176ee3d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,7 +97,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf0a07a401f374238ab8e2f11a104d2851bf9ce711ec69804834de8af45c7af" [[package]] -name = "day1" +name = "day01" version = "0.1.0" dependencies = [ "divan", @@ -105,7 +105,7 @@ dependencies = [ ] [[package]] -name = "day2" +name = "day02" version = "0.1.0" dependencies = [ "divan", @@ -114,7 +114,7 @@ dependencies = [ ] [[package]] -name = "day3" +name = "day03" version = "0.1.0" dependencies = [ "divan",