From dd8ea500ae2ec41c1a97f006f388385487353dea Mon Sep 17 00:00:00 2001 From: "Dr. Matthias Ratajczak" Date: Thu, 18 Aug 2022 18:11:12 +0200 Subject: [PATCH] performance optimization in 54 --- lib/primes/Cargo.toml | 1 - src/euler54/Cargo.toml | 4 ++-- src/euler54/src/card.rs | 5 +---- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/primes/Cargo.toml b/lib/primes/Cargo.toml index 0bdd18b..7a66359 100644 --- a/lib/primes/Cargo.toml +++ b/lib/primes/Cargo.toml @@ -11,7 +11,6 @@ num = "*" [dev-dependencies] criterion = "*" - [[bench]] name = "benchmark" harness = false diff --git a/src/euler54/Cargo.toml b/src/euler54/Cargo.toml index bda6e5d..45649ff 100644 --- a/src/euler54/Cargo.toml +++ b/src/euler54/Cargo.toml @@ -11,8 +11,6 @@ path = "src/lib.rs" name = "euler54" path = "src/main.rs" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [dependencies] rstest = "*" @@ -21,6 +19,8 @@ criterion = "*" [profile.release] debug = true +lto = true +codegen-units = 1 [[bench]] name = "benchmark" diff --git a/src/euler54/src/card.rs b/src/euler54/src/card.rs index 087be29..cd07939 100644 --- a/src/euler54/src/card.rs +++ b/src/euler54/src/card.rs @@ -51,10 +51,7 @@ impl Cards { } pub fn have_matching_suits(&self) -> bool { - self.array[1..] - .iter() - .zip(self.array[..4].iter()) - .all(|(c1, c2)| c1.suit == c2.suit) + self.suit_hashset.len() == 1 } pub fn contain_all_values_of(&self, values: &Values) -> bool {