@@ -82,7 +82,7 @@ unsafe fn vmod104976(a: __m256i) -> __m256i {
8282 _mm256_sub_epi32 ( a, c)
8383}
8484
85- static mut DONE : [ [ u16 ; 104976 ] ; 8 ] = [ [ 0u16 ; SEQUENCES ] ; 8 ] ;
85+ static mut DONE : [ [ u16 ; 8 ] ; 104976 ] = [ [ 0u16 ; 8 ] ; SEQUENCES ] ;
8686
8787#[ aoc( day22, part2) ]
8888pub fn part2 ( s : & str ) -> i32 {
@@ -91,9 +91,7 @@ pub fn part2(s: &str) -> i32 {
9191 let mut sequences = [ 0 ; SEQUENCES ] ;
9292 let done = unsafe { & mut DONE } ;
9393
94- for j in 0 ..8 {
95- done[ j] . fill ( 0 ) ;
96- }
94+ done. fill ( [ 0 ; 8 ] ) ;
9795
9896 let mut i = 0 ;
9997 let mut monky = 1 ;
@@ -166,67 +164,67 @@ pub fn part2(s: &str) -> i32 {
166164
167165 let diff_i = _mm256_extract_epi32 :: < 0 > ( diffs) as usize ;
168166 std:: hint:: assert_unchecked ( diff_i < SEQUENCES ) ;
169- if done[ 0 ] [ diff_i ] != monky + 0 {
167+ if done[ diff_i ] [ 0 ] != monky + 0 {
170168 let price = _mm256_extract_epi32 :: < 0 > ( price) ;
171169 sequences[ diff_i] += price;
172170
173- done[ 0 ] [ diff_i ] = monky + 0 ;
171+ done[ diff_i ] [ 0 ] = monky + 0 ;
174172 }
175173 let diff_i = _mm256_extract_epi32 :: < 1 > ( diffs) as usize ;
176174 std:: hint:: assert_unchecked ( diff_i < SEQUENCES ) ;
177- if done[ 1 ] [ diff_i ] != monky + 1 {
175+ if done[ diff_i ] [ 1 ] != monky + 1 {
178176 let price = _mm256_extract_epi32 :: < 1 > ( price) ;
179177 sequences[ diff_i] += price;
180178
181- done[ 1 ] [ diff_i ] = monky + 1 ;
179+ done[ diff_i ] [ 1 ] = monky + 1 ;
182180 }
183181 let diff_i = _mm256_extract_epi32 :: < 2 > ( diffs) as usize ;
184182 std:: hint:: assert_unchecked ( diff_i < SEQUENCES ) ;
185- if done[ 2 ] [ diff_i ] != monky + 2 {
183+ if done[ diff_i ] [ 2 ] != monky + 2 {
186184 let price = _mm256_extract_epi32 :: < 2 > ( price) ;
187185 sequences[ diff_i] += price;
188186
189- done[ 2 ] [ diff_i ] = monky + 2 ;
187+ done[ diff_i ] [ 2 ] = monky + 2 ;
190188 }
191189 let diff_i = _mm256_extract_epi32 :: < 3 > ( diffs) as usize ;
192190 std:: hint:: assert_unchecked ( diff_i < SEQUENCES ) ;
193- if done[ 3 ] [ diff_i ] != monky + 3 {
191+ if done[ diff_i ] [ 3 ] != monky + 3 {
194192 let price = _mm256_extract_epi32 :: < 3 > ( price) ;
195193 sequences[ diff_i] += price;
196194
197- done[ 3 ] [ diff_i ] = monky + 3 ;
195+ done[ diff_i ] [ 3 ] = monky + 3 ;
198196 }
199197 let diff_i = _mm256_extract_epi32 :: < 4 > ( diffs) as usize ;
200198 std:: hint:: assert_unchecked ( diff_i < SEQUENCES ) ;
201- if done[ 4 ] [ diff_i ] != monky + 4 {
199+ if done[ diff_i ] [ 4 ] != monky + 4 {
202200 let price = _mm256_extract_epi32 :: < 4 > ( price) ;
203201 sequences[ diff_i] += price;
204202
205- done[ 4 ] [ diff_i ] = monky + 4 ;
203+ done[ diff_i ] [ 4 ] = monky + 4 ;
206204 }
207205 let diff_i = _mm256_extract_epi32 :: < 5 > ( diffs) as usize ;
208206 std:: hint:: assert_unchecked ( diff_i < SEQUENCES ) ;
209- if done[ 5 ] [ diff_i ] != monky + 5 {
207+ if done[ diff_i ] [ 5 ] != monky + 5 {
210208 let price = _mm256_extract_epi32 :: < 5 > ( price) ;
211209 sequences[ diff_i] += price;
212210
213- done[ 5 ] [ diff_i ] = monky + 5 ;
211+ done[ diff_i ] [ 5 ] = monky + 5 ;
214212 }
215213 let diff_i = _mm256_extract_epi32 :: < 6 > ( diffs) as usize ;
216214 std:: hint:: assert_unchecked ( diff_i < SEQUENCES ) ;
217- if done[ 6 ] [ diff_i ] != monky + 6 {
215+ if done[ diff_i ] [ 6 ] != monky + 6 {
218216 let price = _mm256_extract_epi32 :: < 6 > ( price) ;
219217 sequences[ diff_i] += price;
220218
221- done[ 6 ] [ diff_i ] = monky + 6 ;
219+ done[ diff_i ] [ 6 ] = monky + 6 ;
222220 }
223221 let diff_i = _mm256_extract_epi32 :: < 7 > ( diffs) as usize ;
224222 std:: hint:: assert_unchecked ( diff_i < SEQUENCES ) ;
225- if done[ 7 ] [ diff_i ] != monky + 7 {
223+ if done[ diff_i ] [ 7 ] != monky + 7 {
226224 let price = _mm256_extract_epi32 :: < 7 > ( price) ;
227225 sequences[ diff_i] += price;
228226
229- done[ 7 ] [ diff_i ] = monky + 7 ;
227+ done[ diff_i ] [ 7 ] = monky + 7 ;
230228 }
231229
232230 prev = price;
0 commit comments