Skylark (Sketching Library)  0.1
Public Types | Public Member Functions | Public Attributes
skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > > Struct Template Reference

#include <linearl2_regression_solver_Krylov.hpp>

Collaboration diagram for skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef utility::typer_t
< MatrixType >::value_type 
value_type
typedef MatrixType matrix_type
typedef RhsType rhs_type
typedef SolType sol_type
typedef regression_problem_t
< matrix_type, linear_tag,
l2_tag, no_reg_tag
problem_type

Public Member Functions

 regression_solver_t (const problem_type &problem, nla::iter_params_t iter_params=nla::iter_params_t())
 regression_solver_t (const problem_type &problem, const nla::precond_t< sol_type > &R, nla::iter_params_t iter_params=nla::iter_params_t())
int solve (const rhs_type &b, sol_type &x)

Public Attributes

const int m
const int n
const matrix_typeA
const nla::precond_t< sol_type > & R
const nla::iter_params_t iter_params

Detailed Description

template<typename MatrixType, typename RhsType, typename SolType, typename KrylovMethod>
struct skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >

l2 linear regression solver using Krylov method. We have not specialized this for any type of matrix because it accepts any matrix type and only works if the required base functions have been implemented.

Definition at line 19 of file linearl2_regression_solver_Krylov.hpp.


Member Typedef Documentation

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
typedef MatrixType skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::matrix_type

Definition at line 27 of file linearl2_regression_solver_Krylov.hpp.

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
typedef regression_problem_t<matrix_type, linear_tag, l2_tag, no_reg_tag> skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::problem_type

Definition at line 32 of file linearl2_regression_solver_Krylov.hpp.

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
typedef RhsType skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::rhs_type

Definition at line 28 of file linearl2_regression_solver_Krylov.hpp.

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
typedef SolType skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::sol_type

Definition at line 29 of file linearl2_regression_solver_Krylov.hpp.

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
typedef utility::typer_t<MatrixType>::value_type skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::value_type

Definition at line 25 of file linearl2_regression_solver_Krylov.hpp.


Constructor & Destructor Documentation

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::regression_solver_t ( const problem_type problem,
nla::iter_params_t  iter_params = nla::iter_params_t() 
) [inline]

Definition at line 44 of file linearl2_regression_solver_Krylov.hpp.

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::regression_solver_t ( const problem_type problem,
const nla::precond_t< sol_type > &  R,
nla::iter_params_t  iter_params = nla::iter_params_t() 
) [inline]

Definition at line 50 of file linearl2_regression_solver_Krylov.hpp.


Member Function Documentation

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
int skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::solve ( const rhs_type b,
sol_type x 
) [inline]

Solve using the right iterative solver that is specified for us. The reason we are using tag-based dispatching to different solve implementations is because different iterative solvers might have different initialization requirements. This technique gives us an opportunity to handle each iterative algorithm in a different func.

Definition at line 59 of file linearl2_regression_solver_Krylov.hpp.

References skylark::base::Height(), m, n, and skylark::base::Width().

Here is the call graph for this function:


Member Data Documentation

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
const matrix_type& skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::A

Definition at line 40 of file linearl2_regression_solver_Krylov.hpp.

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
const nla::iter_params_t skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::iter_params

Definition at line 42 of file linearl2_regression_solver_Krylov.hpp.

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
const int skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::m

Definition at line 38 of file linearl2_regression_solver_Krylov.hpp.

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
const int skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::n

Definition at line 39 of file linearl2_regression_solver_Krylov.hpp.

template<typename MatrixType , typename RhsType , typename SolType , typename KrylovMethod >
const nla::precond_t<sol_type>& skylark::algorithms::regression_solver_t< regression_problem_t< MatrixType, linear_tag, l2_tag, no_reg_tag >, RhsType, SolType, iterative_l2_solver_tag< KrylovMethod > >::R

Definition at line 41 of file linearl2_regression_solver_Krylov.hpp.


The documentation for this struct was generated from the following file: