如何在FFT函数上设置线程

2022-09-28
前端之家小编收集整理的如何在FFT函数上设置线程内容,希望整理的这个开发编程问题如何在FFT函数上设置线程能够快速解决!

代码问题

我有一个代码必须使用Posix标准进行多线程快速傅里叶变换,但是我无法为正确的输出设置正确的条件         我使用posix标准和Linux操作系统         我注意到顺序解决方案有效。
    我已经在main函数上创建了线程。     谢谢您的帮助!

 void* transform()
    {
        pthread_mutex_lock(&lock);
         int thread_part = part++;
    int start=thread_part * (N / NumThreads);
    int stop=(thread_part + 1) * (N / NumThreads);
     int logstart=thread_part * (Log2N / NumThreads);
     int logstop=(thread_part + 1) * (Log2N / NumThreads);

        for (int j = start; j < stop; j++)
            AlfaVec[j] = BetaVec[j];

         if(start==0)
        {

                for (int i = start+2; i < stop / 2; i++)
                    W[i] = cpow(W[1],(double)i);

        }
        else
        {
            for (int i = start/2; i < stop / 2; i++)
                    W[i] = cpow(W[1],(double)i);
        }

        int n = 1;
        int a = N / 2;

        for (int j = logstart; j < logstop; j++) {//This is the bad code section,where the function doesn't do the right operations
            for (int i = start ; i < stop; i++) {
                if (!(i & n)) {
                    double complex temp = AlfaVec[i];
                    double complex Temp = W[(i * a) % (n * a)] * AlfaVec[i + n];
                    AlfaVec[i] = temp + Temp;
                    AlfaVec[i + n]  = temp - Temp;
                }
            }
            n *= 2;
            a = a / 2;
        }

     pthread_mutex_unlock(&lock);
    }

问题答案

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:starryrocklee#gmail.com (将#修改为@)

如果觉得前端之家所整理的内容很不错的话,欢迎点击下方分享按钮,转发给身边开发程序员好友。

编程问答


我正在尝试使用node.js,react和MongoDB将我的应用程序部署到Heroku;部署成功;但是,该网站无法从MongoDB获
里面的箱子有问题吗 <pre><code>case&#39;usal&#39;: d= (while(s2&gt;0)
我正在尝试从Wikipedia中查找页面列表的Wiki ID。这是我的想法,但是在打印“简介”时出现错误:“类型
我正在学习ES6,并且正在学习免费的在线课程。在课程中,我们涵盖了Promises,所以我有: <pre><code>i
当我尝试运行此代码时,它显示“ com.mysql.jdbc.JDBC4ResultSet@7e2d773b”,当前该表只有一条记录。 <pre><co