Automatic Differentiation
 
Loading...
Searching...
No Matches
mrrr.hpp File Reference

Go to the source code of this file.

Namespaces

namespace  stan
 The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation from C or the boost::math::lgamma implementation.
 
namespace  stan::math
 Matrices and templated mathematical functions.
 
namespace  stan::math::opencl_kernels
 

Functions

int stan::math::opencl_kernels::get_sturm_count_tri (const __global double *diagonal, const __global double *subdiagonal_squared, const double shift, const int n)
 Calculates lower Sturm count of a tridiagonal matrix T - number of eigenvalues lower than shift.
 
void stan::math::opencl_kernels::eigenvals_bisect (const __global double *diagonal, const __global double *subdiagonal_squared, double *low_res, double *high_res, const double min_eigval, const double max_eigval, const int n, const int i)
 Calculates i-th largest eigenvalue of tridiagonal matrix represented by a LDL decomposition using bisection.
 
int stan::math::opencl_kernels::get_sturm_count_ldl (const __global double_d *l, const __global double_d *d, const double_d shift, const int n)
 Calculates Sturm count of a LDL decomposition of a tridiagonal matrix - number of eigenvalues larger or equal to shift.
 
void stan::math::opencl_kernels::eigenvals_bisect_refine (const __global double_d *l, const __global double_d *d, double_d *low_res, double_d *high_res, const int n, const int i)
 Refines bounds on the i-th largest eigenvalue of a LDL decomposition using bisection.
 
__kernel void stan::math::opencl_kernels::eigenvals (const __global double *diagonal, const __global double *subdiagonal_squared, const __global double_d *l, const __global double_d *d, __global double *eigval_global, __global double_d *shifted_low_global, __global double_d *shifted_high_global, const double min_eigval, const double max_eigval, const double shift, const char do_refine)
 Calculates eigenvalues of a tridiagonal matrix T and refines shifted eigenvalues using shifted LDL decomposition of T.
 
int stan::math::opencl_kernels::get_twisted_factorization (const __global double_d *l, const __global double_d *d, double_d shift, __global double_d *l_plus, __global double_d *u_minus, __global double_d *s)
 Calculates shifted LDL and UDU factorizations.
 
void stan::math::opencl_kernels::calculate_eigenvector (const __global double_d *l_plus, const __global double_d *u_minus, const __global double *subdiag, int twist_idx, __global double *eigenvectors)
 Calculates an eigenvector from twisted factorization T - shift * I = L+.
 
__kernel void stan::math::opencl_kernels::get_eigenvectors (const __global double_d *l, const __global double_d *d, const __global double *subdiag, const __global double_d *shifted_eigvals, __global double_d *l_plus, __global double_d *u_minus, __global double_d *temp, __global double *eigenvectors)
 Calculates eigenvectors for (shifted) eigenvalues.
 

Variables

const kernel_cl< in_buffer, in_buffer, in_buffer, in_buffer, out_buffer, out_buffer, out_buffer, double, double, double, char > stan::math::opencl_kernels::eigenvals ("eigenvals", {stan::math::internal::double_d_src, eigenvals_bisect_kernel_code})
 
const kernel_cl< in_buffer, in_buffer, in_buffer, in_buffer, in_out_buffer, in_out_buffer, in_out_buffer, out_bufferstan::math::opencl_kernels::get_eigenvectors ("get_eigenvectors", {stan::math::internal::double_d_src, get_eigenvectors_kernel_code})