当前位置: 首页>>代码示例>>Java>>正文


Java ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads方法代码示例

本文整理汇总了Java中edu.emory.mathcs.utils.ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads方法的典型用法代码示例。如果您正苦于以下问题:Java ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads方法的具体用法?Java ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads怎么用?Java ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在edu.emory.mathcs.utils.ConcurrencyUtils的用法示例。


在下文中一共展示了ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: cftfsub

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void cftfsub(int n, double[] a, int offa, int[] ip, int nw, double[] w) {
    if (n > 8) {
        if (n > 32) {
            cftf1st(n, a, offa, w, nw - (n >> 2));
            if ((ConcurrencyUtils.getNumberOfThreads() > 1) && (n > ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
                cftrec4_th(n, a, offa, nw, w);
            } else if (n > 512) {
                cftrec4(n, a, offa, nw, w);
            } else if (n > 128) {
                cftleaf(n, 1, a, offa, nw, w);
            } else {
                cftfx41(n, a, offa, nw, w);
            }
            bitrv2(n, ip, a, offa);
        } else if (n == 32) {
            cftf161(a, offa, w, nw - 8);
            bitrv216(a, offa);
        } else {
            cftf081(a, offa, w, 0);
            bitrv208(a, offa);
        }
    } else if (n == 8) {
        cftf040(a, offa);
    } else if (n == 4) {
        cftxb020(a, offa);
    }
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:28,代码来源:DoubleFFT_1D.java

示例2: cftbsub

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void cftbsub(int n, double[] a, int offa, int[] ip, int nw, double[] w) {
    if (n > 8) {
        if (n > 32) {
            cftb1st(n, a, offa, w, nw - (n >> 2));
            if ((ConcurrencyUtils.getNumberOfThreads() > 1) && (n > ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
                cftrec4_th(n, a, offa, nw, w);
            } else if (n > 512) {
                cftrec4(n, a, offa, nw, w);
            } else if (n > 128) {
                cftleaf(n, 1, a, offa, nw, w);
            } else {
                cftfx41(n, a, offa, nw, w);
            }
            bitrv2conj(n, ip, a, offa);
        } else if (n == 32) {
            cftf161(a, offa, w, nw - 8);
            bitrv216neg(a, offa);
        } else {
            cftf081(a, offa, w, 0);
            bitrv208neg(a, offa);
        }
    } else if (n == 8) {
        cftb040(a, offa);
    } else if (n == 4) {
        cftxb020(a, offa);
    }
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:28,代码来源:DoubleFFT_1D.java

示例3: scale

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void scale(final double m, final double[] a, int offa, boolean complex) {
    final double norm = (1.0 / m);
    int n2;
    if (complex) {
        n2 = 2 * n;
    } else {
        n2 = n;
    }
    int nthreads = ConcurrencyUtils.getNumberOfThreads();
    if ((nthreads > 1) && (n2 >= ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
        final int k = n2 / nthreads;
        Future<?>[] futures = new Future[nthreads];
        for (int i = 0; i < nthreads; i++) {
            final int firstIdx = offa + i * k;
            final int lastIdx = (i == (nthreads - 1)) ? offa + n2 : firstIdx + k;
            futures[i] = ConcurrencyUtils.submit(new Runnable() {

                @Override
	public void run() {
                    for (int i = firstIdx; i < lastIdx; i++) {
                        a[i] *= norm;
                    }
                }
            });
        }
        ConcurrencyUtils.waitForCompletion(futures);
    } else {
        for (int i = offa; i < offa + n2; i++) {
            a[i] *= norm;
        }

    }
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:34,代码来源:DoubleFFT_1D.java

示例4: cftfsub

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void cftfsub(int n, float[] a, int offa, int[] ip, int nw, float[] w) {
    if (n > 8) {
        if (n > 32) {
            cftf1st(n, a, offa, w, nw - (n >> 2));
            if ((ConcurrencyUtils.getNumberOfThreads() > 1) && (n > ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
                cftrec4_th(n, a, offa, nw, w);
            } else if (n > 512) {
                cftrec4(n, a, offa, nw, w);
            } else if (n > 128) {
                cftleaf(n, 1, a, offa, nw, w);
            } else {
                cftfx41(n, a, offa, nw, w);
            }
            bitrv2(n, ip, a, offa);
        } else if (n == 32) {
            cftf161(a, offa, w, nw - 8);
            bitrv216(a, offa);
        } else {
            cftf081(a, offa, w, 0);
            bitrv208(a, offa);
        }
    } else if (n == 8) {
        cftf040(a, offa);
    } else if (n == 4) {
        cftxb020(a, offa);
    }
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:28,代码来源:FloatFFT_1D.java

示例5: cftbsub

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void cftbsub(int n, float[] a, int offa, int[] ip, int nw, float[] w) {
    if (n > 8) {
        if (n > 32) {
            cftb1st(n, a, offa, w, nw - (n >> 2));
            if ((ConcurrencyUtils.getNumberOfThreads() > 1) && (n > ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
                cftrec4_th(n, a, offa, nw, w);
            } else if (n > 512) {
                cftrec4(n, a, offa, nw, w);
            } else if (n > 128) {
                cftleaf(n, 1, a, offa, nw, w);
            } else {
                cftfx41(n, a, offa, nw, w);
            }
            bitrv2conj(n, ip, a, offa);
        } else if (n == 32) {
            cftf161(a, offa, w, nw - 8);
            bitrv216neg(a, offa);
        } else {
            cftf081(a, offa, w, 0);
            bitrv208neg(a, offa);
        }
    } else if (n == 8) {
        cftb040(a, offa);
    } else if (n == 4) {
        cftxb020(a, offa);
    }
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:28,代码来源:FloatFFT_1D.java

示例6: scale

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void scale(final float m, final float[] a, int offa, boolean complex) {
    final float norm = (float)(1.0 / m);
    int n2;
    if (complex) {
        n2 = 2 * n;
    } else {
        n2 = n;
    }
    int nthreads = ConcurrencyUtils.getNumberOfThreads();
    if ((nthreads > 1) && (n2 >= ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
        final int k = n2 / nthreads;
        Future<?>[] futures = new Future[nthreads];
        for (int i = 0; i < nthreads; i++) {
            final int firstIdx = offa + i * k;
            final int lastIdx = (i == (nthreads - 1)) ? offa + n2 : firstIdx + k;
            futures[i] = ConcurrencyUtils.submit(new Runnable() {

                @Override
	public void run() {
                    for (int i = firstIdx; i < lastIdx; i++) {
                        a[i] *= norm;
                    }
                }
            });
        }
        ConcurrencyUtils.waitForCompletion(futures);
    } else {
        for (int i = offa; i < offa + n2; i++) {
            a[i] *= norm;
        }

    }
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:34,代码来源:FloatFFT_1D.java

示例7: cftfsub

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void cftfsub(int n, float[] a, int offa, int[] ip, int nw, float[] w) {
    if (n > 8) {
        if (n > 32) {
            cftf1st(n, a, offa, w, nw - (n >> 2));
            if ((ConcurrencyUtils.getNumberOfThreads() > 1) && (n > ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
                cftrec4_th(n, a, offa, nw, w);
            } else if (n > 512) {
                cftrec4(n, a, offa, nw, w);
            } else if (n > 128) {
                cftleaf(n, 1, a, offa, nw, w);
            } else {
                cftfx41(n, a, offa, nw, w);
            }
            bitrv2(n, ip, a, offa);
        } else if (n == 32) {
            cftf161(a, offa, w, nw - 8);
            bitrv216(a, offa);
        } else {
            cftf081(a, offa, w, 0);
            bitrv208(a, offa);
        }
    } else if (n == 8) {
        cftf040(a, offa);
    } else if (n == 4) {
        cftx020(a, offa);
    }
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:28,代码来源:FloatDCT_1D.java

示例8: cftbsub

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void cftbsub(int n, float[] a, int offa, int[] ip, int nw, float[] w) {
    if (n > 8) {
        if (n > 32) {
            cftb1st(n, a, offa, w, nw - (n >> 2));
            if ((ConcurrencyUtils.getNumberOfThreads() > 1) && (n > ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
                cftrec4_th(n, a, offa, nw, w);
            } else if (n > 512) {
                cftrec4(n, a, offa, nw, w);
            } else if (n > 128) {
                cftleaf(n, 1, a, offa, nw, w);
            } else {
                cftfx41(n, a, offa, nw, w);
            }
            bitrv2conj(n, ip, a, offa);
        } else if (n == 32) {
            cftf161(a, offa, w, nw - 8);
            bitrv216neg(a, offa);
        } else {
            cftf081(a, offa, w, 0);
            bitrv208neg(a, offa);
        }
    } else if (n == 8) {
        cftb040(a, offa);
    } else if (n == 4) {
        cftx020(a, offa);
    }
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:28,代码来源:FloatDCT_1D.java

示例9: cftfsub

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void cftfsub(int n, double[] a, int offa, int[] ip, int nw, double[] w) {
    if (n > 8) {
        if (n > 32) {
            cftf1st(n, a, offa, w, nw - (n >> 2));
            if ((ConcurrencyUtils.getNumberOfThreads() > 1) && (n > ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
                cftrec4_th(n, a, offa, nw, w);
            } else if (n > 512) {
                cftrec4(n, a, offa, nw, w);
            } else if (n > 128) {
                cftleaf(n, 1, a, offa, nw, w);
            } else {
                cftfx41(n, a, offa, nw, w);
            }
            bitrv2(n, ip, a, offa);
        } else if (n == 32) {
            cftf161(a, offa, w, nw - 8);
            bitrv216(a, offa);
        } else {
            cftf081(a, offa, w, 0);
            bitrv208(a, offa);
        }
    } else if (n == 8) {
        cftf040(a, offa);
    } else if (n == 4) {
        cftx020(a, offa);
    }
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:28,代码来源:DoubleDCT_1D.java

示例10: cftbsub

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void cftbsub(int n, double[] a, int offa, int[] ip, int nw, double[] w) {
    if (n > 8) {
        if (n > 32) {
            cftb1st(n, a, offa, w, nw - (n >> 2));
            if ((ConcurrencyUtils.getNumberOfThreads() > 1) && (n > ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
                cftrec4_th(n, a, offa, nw, w);
            } else if (n > 512) {
                cftrec4(n, a, offa, nw, w);
            } else if (n > 128) {
                cftleaf(n, 1, a, offa, nw, w);
            } else {
                cftfx41(n, a, offa, nw, w);
            }
            bitrv2conj(n, ip, a, offa);
        } else if (n == 32) {
            cftf161(a, offa, w, nw - 8);
            bitrv216neg(a, offa);
        } else {
            cftf081(a, offa, w, 0);
            bitrv208neg(a, offa);
        }
    } else if (n == 8) {
        cftb040(a, offa);
    } else if (n == 4) {
        cftx020(a, offa);
    }
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:28,代码来源:DoubleDCT_1D.java

示例11: forward

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
/**
 * Computes 1D real, forward DHT leaving the result in <code>a</code>.
 * 
 * @param a
 *            data to transform
 * @param offa
 *            index of the first element in array <code>a</code>
 */
public void forward(final double[] a, final int offa) {
    if (n == 1)
        return;
    fft.realForward(a, offa);
    final double[] b = new double[n];
    System.arraycopy(a, offa, b, 0, n);
    int nd2 = n / 2;
    int nthreads = ConcurrencyUtils.getNumberOfThreads();
    if ((nthreads > 1) && (nd2 > ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
        nthreads = 2;
        final int k1 = nd2 / nthreads;
        Future<?>[] futures = new Future[nthreads];
        for (int i = 0; i < nthreads; i++) {
            final int firstIdx = 1 + i * k1;
            final int lastIdx = (i == (nthreads - 1)) ? nd2 : firstIdx + k1;
            futures[i] = ConcurrencyUtils.submit(new Runnable() {

                @Override
	public void run() {
                    int idx1, idx2;
                    for (int i = firstIdx; i < lastIdx; i++) {
                        idx1 = 2 * i;
                        idx2 = idx1 + 1;
                        a[offa + i] = b[idx1] - b[idx2];
                        a[offa + n - i] = b[idx1] + b[idx2];
                    }
                }

            });
        }
        ConcurrencyUtils.waitForCompletion(futures);
    } else {
        int idx1, idx2;
        for (int i = 1; i < nd2; i++) {
            idx1 = 2 * i;
            idx2 = idx1 + 1;
            a[offa + i] = b[idx1] - b[idx2];
            a[offa + n - i] = b[idx1] + b[idx2];
        }
    }
    if ((n % 2) == 0) {
        a[offa + nd2] = b[1];
    } else {
        a[offa + nd2] = b[n - 1] - b[1];
        a[offa + nd2 + 1] = b[n - 1] + b[1];
    }

}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:57,代码来源:DoubleDHT_1D.java

示例12: forward

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
/**
 * Computes 1D real, forward DHT leaving the result in <code>a</code>.
 * 
 * @param a
 *            data to transform
 * @param offa
 *            index of the first element in array <code>a</code>
 */
public void forward(final float[] a, final int offa) {
    if (n == 1)
        return;
    fft.realForward(a, offa);
    final float[] b = new float[n];
    System.arraycopy(a, offa, b, 0, n);
    int nd2 = n / 2;
    int nthreads = ConcurrencyUtils.getNumberOfThreads();
    if ((nthreads > 1) && (nd2 > ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads())) {
        nthreads = 2;
        final int k1 = nd2 / nthreads;
        Future<?>[] futures = new Future[nthreads];
        for (int i = 0; i < nthreads; i++) {
            final int firstIdx = 1 + i * k1;
            final int lastIdx = (i == (nthreads - 1)) ? nd2 : firstIdx + k1;
            futures[i] = ConcurrencyUtils.submit(new Runnable() {

                @Override
	public void run() {
                    int idx1, idx2;
                    for (int i = firstIdx; i < lastIdx; i++) {
                        idx1 = 2 * i;
                        idx2 = idx1 + 1;
                        a[offa + i] = b[idx1] - b[idx2];
                        a[offa + n - i] = b[idx1] + b[idx2];
                    }
                }

            });
        }
        ConcurrencyUtils.waitForCompletion(futures);
    } else {
        int idx1, idx2;
        for (int i = 1; i < nd2; i++) {
            idx1 = 2 * i;
            idx2 = idx1 + 1;
            a[offa + i] = b[idx1] - b[idx2];
            a[offa + n - i] = b[idx1] + b[idx2];
        }
    }
    if ((n % 2) == 0) {
        a[offa + nd2] = b[1];
    } else {
        a[offa + nd2] = b[n - 1] - b[1];
        a[offa + nd2 + 1] = b[n - 1] + b[1];
    }

}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:57,代码来源:FloatDHT_1D.java


注:本文中的edu.emory.mathcs.utils.ConcurrencyUtils.getThreadsBeginN_1D_FFT_2Threads方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。