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


Java ConcurrencyUtils.waitForCompletion方法代码示例

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


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

示例1: ddxt2d0_subth

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void ddxt2d0_subth(final int isgn, final float[][] a, final boolean scale) {
    final int nthreads = ConcurrencyUtils.getNumberOfThreads() > rows ? rows : ConcurrencyUtils.getNumberOfThreads();

    Future<?>[] futures = new Future[nthreads];

    for (int i = 0; i < nthreads; i++) {
        final int n0 = i;
        futures[i] = ConcurrencyUtils.submit(new Runnable() {

            @Override
public void run() {
                if (isgn == -1) {
                    for (int r = n0; r < rows; r += nthreads) {
                        dhtColumns.forward(a[r]);
                    }
                } else {
                    for (int r = n0; r < rows; r += nthreads) {
                        dhtColumns.inverse(a[r], scale);
                    }
                }
            }
        });
    }
    ConcurrencyUtils.waitForCompletion(futures);
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:26,代码来源:FloatDHT_2D.java

示例2: ddxt2d0_subth

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void ddxt2d0_subth(final int isgn, final double[][] a, final boolean scale) {
    final int nthreads = ConcurrencyUtils.getNumberOfThreads() > rows ? rows : ConcurrencyUtils.getNumberOfThreads();

    Future<?>[] futures = new Future[nthreads];

    for (int i = 0; i < nthreads; i++) {
        final int n0 = i;
        futures[i] = ConcurrencyUtils.submit(new Runnable() {

            @Override
public void run() {
                if (isgn == -1) {
                    for (int r = n0; r < rows; r += nthreads) {
                        dhtColumns.forward(a[r]);
                    }
                } else {
                    for (int r = n0; r < rows; r += nthreads) {
                        dhtColumns.inverse(a[r], scale);
                    }
                }
            }
        });
    }
    ConcurrencyUtils.waitForCompletion(futures);
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:26,代码来源:DoubleDHT_2D.java

示例3: ddxt2d0_subth

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void ddxt2d0_subth(final int isgn, final double[] a, final boolean scale) {
    final int nthreads = ConcurrencyUtils.getNumberOfThreads() > rows ? rows : ConcurrencyUtils.getNumberOfThreads();

    Future<?>[] futures = new Future[nthreads];

    for (int i = 0; i < nthreads; i++) {
        final int n0 = i;
        futures[i] = ConcurrencyUtils.submit(new Runnable() {

            @Override
public void run() {
                if (isgn == -1) {
                    for (int r = n0; r < rows; r += nthreads) {
                        dstColumns.forward(a, r * columns, scale);
                    }
                } else {
                    for (int r = n0; r < rows; r += nthreads) {
                        dstColumns.inverse(a, r * columns, scale);
                    }
                }
            }
        });
    }
    ConcurrencyUtils.waitForCompletion(futures);
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:26,代码来源:DoubleDST_2D.java

示例4: ddxt2d0_subth

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void ddxt2d0_subth(final int isgn, final float[] a, final boolean scale) {
    final int nthreads = ConcurrencyUtils.getNumberOfThreads() > rows ? rows : ConcurrencyUtils.getNumberOfThreads();

    Future<?>[] futures = new Future[nthreads];

    for (int i = 0; i < nthreads; i++) {
        final int n0 = i;
        futures[i] = ConcurrencyUtils.submit(new Runnable() {

            @Override
public void run() {
                if (isgn == -1) {
                    for (int r = n0; r < rows; r += nthreads) {
                        dstColumns.forward(a, r * columns, scale);
                    }
                } else {
                    for (int r = n0; r < rows; r += nthreads) {
                        dstColumns.inverse(a, r * columns, scale);
                    }
                }
            }
        });
    }
    ConcurrencyUtils.waitForCompletion(futures);
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:26,代码来源:FloatDST_2D.java

示例5: ddxt2d0_subth

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void ddxt2d0_subth(final int isgn, final double[] a, final boolean scale) {
    final int nthreads = ConcurrencyUtils.getNumberOfThreads() > rows ? rows : ConcurrencyUtils.getNumberOfThreads();

    Future<?>[] futures = new Future[nthreads];

    for (int i = 0; i < nthreads; i++) {
        final int n0 = i;
        futures[i] = ConcurrencyUtils.submit(new Runnable() {

            @Override
public void run() {
                if (isgn == -1) {
                    for (int r = n0; r < rows; r += nthreads) {
                        dctColumns.forward(a, r * columns, scale);
                    }
                } else {
                    for (int r = n0; r < rows; r += nthreads) {
                        dctColumns.inverse(a, r * columns, scale);
                    }
                }
            }
        });
    }
    ConcurrencyUtils.waitForCompletion(futures);
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:26,代码来源:DoubleDCT_2D.java

示例6: ddxt2d0_subth

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void ddxt2d0_subth(final int isgn, final float[] a, final boolean scale) {
    final int nthreads = ConcurrencyUtils.getNumberOfThreads() > rows ? rows : ConcurrencyUtils.getNumberOfThreads();

    Future<?>[] futures = new Future[nthreads];

    for (int i = 0; i < nthreads; i++) {
        final int n0 = i;
        futures[i] = ConcurrencyUtils.submit(new Runnable() {

            @Override
public void run() {
                if (isgn == -1) {
                    for (int r = n0; r < rows; r += nthreads) {
                        dctColumns.forward(a, r * columns, scale);
                    }
                } else {
                    for (int r = n0; r < rows; r += nthreads) {
                        dctColumns.inverse(a, r * columns, scale);
                    }
                }
            }
        });
    }
    ConcurrencyUtils.waitForCompletion(futures);
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:26,代码来源:FloatDCT_2D.java

示例7: xdft2d0_subth1

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void xdft2d0_subth1(final int icr, final int isgn, final float[] a, final boolean scale) {
    final int nthreads = ConcurrencyUtils.getNumberOfThreads() > rows ? rows : ConcurrencyUtils.getNumberOfThreads();

    Future<?>[] futures = new Future[nthreads];
    for (int i = 0; i < nthreads; i++) {
        final int n0 = i;
        futures[i] = ConcurrencyUtils.submit(new Runnable() {
            @Override
public void run() {
                if (icr == 0) {
                    if (isgn == -1) {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.complexForward(a, r * columns);
                        }
                    } else {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.complexInverse(a, r * columns, scale);
                        }
                    }
                } else {
                    if (isgn == 1) {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.realForward(a, r * columns);
                        }
                    } else {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.realInverse(a, r * columns, scale);
                        }
                    }
                }
            }
        });
    }
    ConcurrencyUtils.waitForCompletion(futures);
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:36,代码来源:FloatFFT_2D.java

示例8: xdft2d0_subth2

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void xdft2d0_subth2(final int icr, final int isgn, final float[][] a, final boolean scale) {
    final int nthreads = ConcurrencyUtils.getNumberOfThreads() > rows ? rows : ConcurrencyUtils.getNumberOfThreads();

    Future<?>[] futures = new Future[nthreads];
    for (int i = 0; i < nthreads; i++) {
        final int n0 = i;
        futures[i] = ConcurrencyUtils.submit(new Runnable() {
            @Override
public void run() {
                if (icr == 0) {
                    if (isgn == -1) {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.complexForward(a[r]);
                        }
                    } else {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.complexInverse(a[r], scale);
                        }
                    }
                } else {
                    if (isgn == 1) {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.realForward(a[r]);
                        }
                    } else {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.realInverse2(a[r], 0, scale);
                        }
                    }
                }
            }
        });
    }
    ConcurrencyUtils.waitForCompletion(futures);
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:36,代码来源:FloatFFT_2D.java

示例9: xdft2d0_subth1

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void xdft2d0_subth1(final int icr, final int isgn, final double[] a, final boolean scale) {
    final int nthreads = ConcurrencyUtils.getNumberOfThreads() > rows ? rows : ConcurrencyUtils.getNumberOfThreads();

    Future<?>[] futures = new Future[nthreads];
    for (int i = 0; i < nthreads; i++) {
        final int n0 = i;
        futures[i] = ConcurrencyUtils.submit(new Runnable() {
            @Override
public void run() {
                if (icr == 0) {
                    if (isgn == -1) {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.complexForward(a, r * columns);
                        }
                    } else {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.complexInverse(a, r * columns, scale);
                        }
                    }
                } else {
                    if (isgn == 1) {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.realForward(a, r * columns);
                        }
                    } else {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.realInverse(a, r * columns, scale);
                        }
                    }
                }
            }
        });
    }
    ConcurrencyUtils.waitForCompletion(futures);
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:36,代码来源:DoubleFFT_2D.java

示例10: xdft2d0_subth2

import edu.emory.mathcs.utils.ConcurrencyUtils; //导入方法依赖的package包/类
private void xdft2d0_subth2(final int icr, final int isgn, final double[] a, final boolean scale) {
    final int nthreads = ConcurrencyUtils.getNumberOfThreads() > rows ? rows : ConcurrencyUtils.getNumberOfThreads();

    Future<?>[] futures = new Future[nthreads];
    for (int i = 0; i < nthreads; i++) {
        final int n0 = i;
        futures[i] = ConcurrencyUtils.submit(new Runnable() {
            @Override
public void run() {
                if (icr == 0) {
                    if (isgn == -1) {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.complexForward(a, r * columns);
                        }
                    } else {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.complexInverse(a, r * columns, scale);
                        }
                    }
                } else {
                    if (isgn == 1) {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.realForward(a, r * columns);
                        }
                    } else {
                        for (int r = n0; r < rows; r += nthreads) {
                            fftColumns.realInverse2(a, r * columns, scale);
                        }
                    }
                }
            }
        });
    }
    ConcurrencyUtils.waitForCompletion(futures);
}
 
开发者ID:openimaj,项目名称:openimaj,代码行数:36,代码来源:DoubleFFT_2D.java

示例11: 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

示例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

示例13: 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


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