1 #ifndef STAN_MATH_OPENCL_KERNELS_CHECK_SYMMETRIC_HPP 2 #define STAN_MATH_OPENCL_KERNELS_CHECK_SYMMETRIC_HPP 10 namespace opencl_kernels {
12 static const char *is_symmetric_kernel_code =
STRINGIFY(
29 unsigned int rows,
unsigned int cols,
31 const int i = get_global_id(0);
32 const int j = get_global_id(1);
33 if (i < rows && j < cols) {
34 double diff =
fabs(A(i, j) - A(j, i));
35 if (diff > tolerance) {
int rows(const Eigen::Matrix< T, R, C > &m)
Return the number of rows in the specified matrix, vector, or row vector.
fvar< T > fabs(const fvar< T > &x)
static const char * indexing_helpers
__kernel void is_symmetric(__global double *A, __global int *flag, unsigned int rows, unsigned int cols, double tolerance)
Check if the matrix_cl is symmetric.
int cols(const Eigen::Matrix< T, R, C > &m)
Return the number of columns in the specified matrix, vector, or row vector.
const kernel_cl< in_buffer, out_buffer, int, int, const double > check_symmetric("is_symmetric", {indexing_helpers, is_symmetric_kernel_code})
See the docs for check_symmetric() .
Creates functor for kernels.