rayon go brrrr

This commit is contained in:
kageru 2022-12-08 17:43:05 +01:00
parent 9a26ae4a4d
commit 7a085154e7
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
2 changed files with 4 additions and 1 deletions

View File

@ -6,6 +6,7 @@ edition = "2021"
[dependencies]
itertools = "0.10.5"
paste = "1.0"
rayon = "1.6.0"
[profile.bench]
lto = true

View File

@ -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());