Loading [MathJax]/extensions/TeX/AMSsymbols.js
Automatic Differentiation
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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})