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

Function pass4b

numpy/fft/_pocketfft.c:444–485  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

442 }
443
444NOINLINE static void pass4b (size_t ido, size_t l1, const cmplx * restrict cc,
445 cmplx * restrict ch, const cmplx * restrict wa)
446 {
447 const size_t cdim=4;
448
449 if (ido==1)
450 for (size_t k=0; k<l1; ++k)
451 {
452 cmplx t1, t2, t3, t4;
453 PMC(t2,t1,CC(0,0,k),CC(0,2,k))
454 PMC(t3,t4,CC(0,1,k),CC(0,3,k))
455 ROT90(t4)
456 PMC(CH(0,k,0),CH(0,k,2),t2,t3)
457 PMC(CH(0,k,1),CH(0,k,3),t1,t4)
458 }
459 else
460 for (size_t k=0; k<l1; ++k)
461 {
462 {
463 cmplx t1, t2, t3, t4;
464 PMC(t2,t1,CC(0,0,k),CC(0,2,k))
465 PMC(t3,t4,CC(0,1,k),CC(0,3,k))
466 ROT90(t4)
467 PMC(CH(0,k,0),CH(0,k,2),t2,t3)
468 PMC(CH(0,k,1),CH(0,k,3),t1,t4)
469 }
470 for (size_t i=1; i<ido; ++i)
471 {
472 cmplx c2, c3, c4, t1, t2, t3, t4;
473 cmplx cc0=CC(i,0,k), cc1=CC(i,1,k),cc2=CC(i,2,k),cc3=CC(i,3,k);
474 PMC(t2,t1,cc0,cc2)
475 PMC(t3,t4,cc1,cc3)
476 ROT90(t4)
477 cmplx wa0=WA(0,i), wa1=WA(1,i),wa2=WA(2,i);
478 PMC(CH(i,k,0),c3,t2,t3)
479 PMC(c2,c4,t1,t4)
480 A_EQ_B_MUL_C (CH(i,k,1),wa0,c2)
481 A_EQ_B_MUL_C (CH(i,k,2),wa1,c3)
482 A_EQ_B_MUL_C (CH(i,k,3),wa2,c4)
483 }
484 }
485 }
486NOINLINE static void pass4f (size_t ido, size_t l1, const cmplx * restrict cc,
487 cmplx * restrict ch, const cmplx * restrict wa)
488 {

Callers 1

pass_allFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected