From 7a085154e7bc4650446957f270756bb7fdadc4ca Mon Sep 17 00:00:00 2001 From: kageru Date: Thu, 8 Dec 2022 17:43:05 +0100 Subject: [PATCH] rayon go brrrr --- 2022/Cargo.toml | 1 + 2022/src/bin/day08.rs | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/2022/Cargo.toml b/2022/Cargo.toml index c258814..80d6ede 100644 --- a/2022/Cargo.toml +++ b/2022/Cargo.toml @@ -6,6 +6,7 @@ edition = "2021" [dependencies] itertools = "0.10.5" paste = "1.0" +rayon = "1.6.0" [profile.bench] lto = true diff --git a/2022/src/bin/day08.rs b/2022/src/bin/day08.rs index c33dc72..f356a7f 100644 --- a/2022/src/bin/day08.rs +++ b/2022/src/bin/day08.rs @@ -1,6 +1,7 @@ #![feature(test, get_many_mut)] extern crate test; use itertools::Itertools; +use rayon::prelude::*; use std::iter::repeat; use aoc2022::{boilerplate, common::*}; @@ -53,7 +54,8 @@ fn part2(parsed: &Parsed) -> usize { let size = parsed.len(); // input is always square let transposed = transpose(parsed); (1..size - 1) - .flat_map(|i| repeat(i).zip(1..size - 1)) + .into_par_iter() + .flat_map(|i| rayon::iter::repeat(i).zip(1..size - 1)) .map(|(i, j)| { let tree = parsed[i][j]; let a = visible_trees(tree, transposed[j][(i + 1)..size].iter());