Skip to content

Commit 3b5b05d

Browse files
committed
feat: add passb3
1 parent 2f134a6 commit 3b5b05d

File tree

1 file changed

+35
-1
lines changed
  • lib/node_modules/@stdlib/fft/base/fftpack/lib

1 file changed

+35
-1
lines changed

lib/node_modules/@stdlib/fft/base/fftpack/lib/passb3.js

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,41 @@ function passb3( ido, l1, cc, ch, wa1, wa2 ) {
106106

107107
// Function body:
108108
if ( ido == 2 ) {
109-
109+
for ( k = 1; k <= l1; ++k ) {
110+
tr2 = cc[ ccRef( 1, 2, k, 3, ido ) - cc_offset ] + cc[ ccRef( 1, 3, k, 3, ido ) - cc_offset ]; // eslint-disable-line max-len
111+
cr2 = cc[ ccRef( 1, 1, k, 3, ido ) - cc_offset ] + ( taur * tr2 );
112+
ch[ chRef( 1, k, 1, l1, ido ) - ch_offset ] = cc[ ccRef( 1, 1, k, 3, ido ) - cc_offset ] + tr2; // eslint-disable-line max-len
113+
ti2 = cc[ ccRef( 2, 2, k, 3, ido ) - cc_offset ] + cc[ ccRef( 2, 3, k, 3, ido ) - cc_offset ]; // eslint-disable-line max-len
114+
ci2 = cc[ ccRef( 2, 1, k, 3, ido ) - cc_offset ] + ( taur * ti2 );
115+
ch[ chRef( 2, k, 1, l1, ido ) - ch_offset ] = cc[ ccRef( 2, 1, k, 3, ido ) - cc_offset ] + ti2; // eslint-disable-line max-len
116+
cr3 = taui * ( cc[ ccRef( 1, 2, k, 3, ido ) - cc_offset ] - cc[ ccRef( 1, 3, k, 3, ido ) - cc_offset ] ); // eslint-disable-line max-len
117+
ci3 = taui * ( cc[ ccRef( 2, 2, k, 3, ido ) - cc_offset ] - cc[ ccRef( 2, 3, k, 3, ido ) - cc_offset ] ); // eslint-disable-line max-len
118+
ch[ chRef( 1, k, 2, l1, ido ) - ch_offset ] = cr2 - ci3;
119+
ch[ chRef( 1, k, 3, l1, ido ) - ch_offset ] = cr2 + ci3;
120+
ch[ chRef( 2, k, 2, l1, ido ) - ch_offset ] = ci2 + ci3;
121+
ch[ chRef( 2, k, 3, l1, ido ) - ch_offset ] = ci2 - cr3;
122+
}
123+
} else {
124+
for ( k = 1; k <= l1; ++k ) {
125+
for ( i = 2; i <= ido; i += 2 ) {
126+
tr2 = cc[ ccRef( i - 1, 2, k, 3, ido ) - cc_offset ] + cc[ ccRef( i - 1, 3, k, 3, ido ) - cc_offset ]; // eslint-disable-line max-len
127+
cr2 = cc[ ccRef( i - 1, 1, k, 3, ido ) - cc_offset ] + ( taur * tr2 );
128+
ch[ chRef( i - 1, k, 1, l1, ido ) - ch_offset ] = cc[ ccRef( i - 1, 1, k, 3, ido ) - cc_offset ] + tr2; // eslint-disable-line max-len
129+
ti2 = cc[ ccRef( i, 2, k, 3, ido ) - cc_offset ] + cc[ ccRef( i, 3, k, 3, ido ) - cc_offset ]; // eslint-disable-line max-len
130+
ci2 = cc[ ccRef( i, 1, k, 3, ido ) - cc_offset ] + ( taur * ti2 );
131+
ch[ chRef( i, k, 1, l1, ido ) - ch_offset ] = cc[ ccRef( i, 1, k, 3, ido ) - cc_offset ] + ti2; // eslint-disable-line max-len
132+
cr3 = taui * ( cc[ ccRef( i - 1, 2, k, 3, ido ) - cc_offset ] - cc[ ccRef( i - 1, 3, k, 3, ido ) - cc_offset ] ); // eslint-disable-line max-len
133+
ci3 = taui * ( cc[ ccRef( i, 2, k, 3, ido ) - cc_offset ] - cc[ ccRef( i, 3, k, 3, ido ) - cc_offset ] ); // eslint-disable-line max-len
134+
dr2 = cr2 - ci3;
135+
dr3 = cr2 + ci3;
136+
di2 = ci2 + ci3;
137+
di3 = ci2 - cr3;
138+
ch[ chRef( i, k, 2, l1, ido) - ch_offset ] = ( wa1[ i - 1 - 1 ] * di2 ) + ( wa1[ i - 1 ] * dr2 );
139+
ch[ chRef( i - 1, k, 2, l1, ido) - ch_offset ] = ( wa1[ i - 1 - 1 ] * dr2 ) - ( wa1[ i - 1 ] * di2 );
140+
ch[ chRef( i, k, 3, l1, ido) - ch_offset ] = ( wa2[ i - 1 - 1 ] * dr3 ) - ( wa2[ i - 1 ] * di3 );
141+
ch[ chRef( i - 1, k, 3, l1, ido) - ch_offset ] = ( wa2[ i - 1 - 1 ] * dr3 ) - ( wa2[ i - 1 ] * di3 );
142+
}
143+
}
110144
}
111145
}
112146

0 commit comments

Comments
 (0)