| 1748 | } |
| 1749 | |
| 1750 | WARN_UNUSED_RESULT |
| 1751 | static int rfftp_backward(rfftp_plan plan, double c[], double fct) |
| 1752 | { |
| 1753 | if (plan->length==1) return 0; |
| 1754 | size_t n=plan->length; |
| 1755 | size_t l1=1, nf=plan->nfct; |
| 1756 | double *ch = RALLOC(double, n); |
| 1757 | if (!ch) return -1; |
| 1758 | double *p1=c, *p2=ch; |
| 1759 | |
| 1760 | for(size_t k=0; k<nf; k++) |
| 1761 | { |
| 1762 | size_t ip = plan->fct[k].fct, |
| 1763 | ido= n/(ip*l1); |
| 1764 | if(ip==4) |
| 1765 | radb4(ido, l1, p1, p2, plan->fct[k].tw); |
| 1766 | else if(ip==2) |
| 1767 | radb2(ido, l1, p1, p2, plan->fct[k].tw); |
| 1768 | else if(ip==3) |
| 1769 | radb3(ido, l1, p1, p2, plan->fct[k].tw); |
| 1770 | else if(ip==5) |
| 1771 | radb5(ido, l1, p1, p2, plan->fct[k].tw); |
| 1772 | else |
| 1773 | radbg(ido, ip, l1, p1, p2, plan->fct[k].tw, plan->fct[k].tws); |
| 1774 | SWAP (p1,p2,double *); |
| 1775 | l1*=ip; |
| 1776 | } |
| 1777 | copy_and_norm(c,p1,n,fct); |
| 1778 | DEALLOC(ch); |
| 1779 | return 0; |
| 1780 | } |
| 1781 | |
| 1782 | WARN_UNUSED_RESULT |
| 1783 | static int rfftp_factorize (rfftp_plan plan) |
no test coverage detected