MCPcopy Create free account
hub / github.com/numpy/numpy / radf4

Function radf4

numpy/fft/_pocketfft.c:1155–1194  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1153 }
1154
1155NOINLINE static void radf4(size_t ido, size_t l1, const double * restrict cc,
1156 double * restrict ch, const double * restrict wa)
1157 {
1158 const size_t cdim=4;
1159 static const double hsqt2=0.70710678118654752440;
1160
1161 for (size_t k=0; k<l1; k++)
1162 {
1163 double tr1,tr2;
1164 PM (tr1,CH(0,2,k),CC(0,k,3),CC(0,k,1))
1165 PM (tr2,CH(ido-1,1,k),CC(0,k,0),CC(0,k,2))
1166 PM (CH(0,0,k),CH(ido-1,3,k),tr2,tr1)
1167 }
1168 if ((ido&1)==0)
1169 for (size_t k=0; k<l1; k++)
1170 {
1171 double ti1=-hsqt2*(CC(ido-1,k,1)+CC(ido-1,k,3));
1172 double tr1= hsqt2*(CC(ido-1,k,1)-CC(ido-1,k,3));
1173 PM (CH(ido-1,0,k),CH(ido-1,2,k),CC(ido-1,k,0),tr1)
1174 PM (CH( 0,3,k),CH( 0,1,k),ti1,CC(ido-1,k,2))
1175 }
1176 if (ido<=2) return;
1177 for (size_t k=0; k<l1; k++)
1178 for (size_t i=2; i<ido; i+=2)
1179 {
1180 size_t ic=ido-i;
1181 double ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2, tr3, tr4;
1182 MULPM(cr2,ci2,WA(0,i-2),WA(0,i-1),CC(i-1,k,1),CC(i,k,1))
1183 MULPM(cr3,ci3,WA(1,i-2),WA(1,i-1),CC(i-1,k,2),CC(i,k,2))
1184 MULPM(cr4,ci4,WA(2,i-2),WA(2,i-1),CC(i-1,k,3),CC(i,k,3))
1185 PM(tr1,tr4,cr4,cr2)
1186 PM(ti1,ti4,ci2,ci4)
1187 PM(tr2,tr3,CC(i-1,k,0),cr3)
1188 PM(ti2,ti3,CC(i ,k,0),ci3)
1189 PM(CH(i-1,0,k),CH(ic-1,3,k),tr2,tr1)
1190 PM(CH(i ,0,k),CH(ic ,3,k),ti1,ti2)
1191 PM(CH(i-1,2,k),CH(ic-1,1,k),tr3,ti4)
1192 PM(CH(i ,2,k),CH(ic ,1,k),tr4,ti3)
1193 }
1194 }
1195
1196NOINLINE static void radf5(size_t ido, size_t l1, const double * restrict cc,
1197 double * restrict ch, const double * restrict wa)

Callers 1

rfftp_forwardFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected