Пример #1
0
Array<T> cholesky(int *info, const Array<T> &in, const bool is_upper) {
    in.eval();

    Array<T> out = copyArray<T>(in);
    *info        = cholesky_inplace(out, is_upper);

    if (is_upper)
        triangle<T, true, false>(out, out);
    else
        triangle<T, false, false>(out, out);

    return out;
}
Пример #2
0
Array<T> cholesky(int *info, const Array<T> &in, const bool is_upper)
{
    if(OpenCLCPUOffload()) {
        return cpu::cholesky(info, in, is_upper);
    }

    Array<T> out = copyArray<T>(in);
    *info = cholesky_inplace(out, is_upper);

    if (is_upper) triangle<T, true , false>(out, out);
    else          triangle<T, false, false>(out, out);

    return out;
}
Пример #3
0
Array<T> cholesky(int *info, const Array<T> &in, const bool is_upper)
{
    try {

        Array<T> out = copyArray<T>(in);
        *info = cholesky_inplace(out, is_upper);

        if (is_upper) triangle<T, true , false>(out, out);
        else          triangle<T, false, false>(out, out);

        return out;

    } catch (cl::Error &err) {
        CL_TO_AF_ERROR(err);
    }
}