File tree Expand file tree Collapse file tree 1 file changed +13
-10
lines changed Expand file tree Collapse file tree 1 file changed +13
-10
lines changed Original file line number Diff line number Diff line change @@ -96,9 +96,8 @@ pub fn bit_reverse<F: FieldExtension>(
9696 let n = 1 << nbits;
9797 let ris = BRs ( 0 , n, nbits) ; // move it outside the loop. obtain it from cache.
9898
99- // todo parallel. Does the buffdst
10099 let len = n * n_pols;
101- assert_eq ! ( len, buffdst. len( ) ) ; // is ok?
100+ assert_eq ! ( len, buffdst. len( ) ) ;
102101 for j in 0 ..len {
103102 let i = j / n_pols;
104103 let k = j % n_pols;
@@ -113,9 +112,10 @@ pub fn interpolate_bit_reverse<F: FieldExtension>(
113112 nbits : usize ,
114113) {
115114 let n = 1 << nbits;
115+ let ris = BRs ( 0 , n, nbits) ; // move it outside the loop. obtain it from cache.
116+
116117 for i in 0 ..n {
117- let ri = BR ( i, nbits) ;
118- let rii = ( n - ri) % n;
118+ let rii = ( n - ris[ i] ) % n;
119119 for k in 0 ..n_pols {
120120 buffdst[ i * n_pols + k] = buffsrc[ rii * n_pols + k] ;
121121 }
@@ -130,12 +130,15 @@ pub fn inv_bit_reverse<F: FieldExtension>(
130130) {
131131 let n = 1 << nbits;
132132 let n_inv = F :: inv ( & F :: from ( n) ) ;
133- for i in 0 ..n {
134- let ri = BR ( i, nbits) ;
135- let rii = ( n - ri) % n;
136- for p in 0 ..n_pols {
137- buffdst[ i * n_pols + p] = buffsrc[ rii * n_pols + p] * n_inv;
138- }
133+ let ris = BRs ( 0 , n, nbits) ; // move it outside the loop. obtain it from cache.
134+
135+ let len = n * n_pols;
136+ assert_eq ! ( len, buffdst. len( ) ) ;
137+ for j in 0 ..len {
138+ let i = j / n_pols;
139+ let k = j % n_pols;
140+ let rii = ( n - ris[ i] ) % n;
141+ buffdst[ j] = buffsrc[ rii * n_pols + k] * n_inv;
139142 }
140143}
141144
You can’t perform that action at this time.
0 commit comments