Index-> contents reference index search external Previous Next Up-> ckbs utility ckbs_blkbidiag_mul ckbs-> license ckbs_t_general ckbs_nonlinear ckbs_L1_nonlinear ckbs_affine ckbs_affine_singular ckbs_L1_affine utility all_ok.m whatsnew wishlist bib utility-> ckbs_t_obj ckbs_t_grad ckbs_t_hess ckbs_diag_solve ckbs_bidiag_solve ckbs_bidiag_solve_t ckbs_blkbidiag_symm_mul ckbs_blkdiag_mul ckbs_blkdiag_mul_t ckbs_blkbidiag_mul_t ckbs_blkbidiag_mul ckbs_blktridiag_mul ckbs_sumsq_obj ckbs_L2L1_obj ckbs_sumsq_grad ckbs_process_grad ckbs_sumsq_hes ckbs_process_hes ckbs_tridiag_solve ckbs_tridiag_solve_b ckbs_tridiag_solve_pcg ckbs_newton_step ckbs_newton_step_L1 ckbs_kuhn_tucker ckbs_kuhn_tucker_L1 ckbs_blkbidiag_mul-> blkbidiag_mul_ok.m Headings-> Syntax Purpose Bdia Boffdia B V W Example

Packed Lower Block Bidiagonal Matrix Times a Vector

Syntax
[w] = ckbs_blkbidiag_mul(Bdia, Boffdia, v)

Purpose
This routine enables one to used the packed form of a lower block bidiagonal matrix and returns the matrix times a vector or matrix; i.e.,   $W = B * V$ 

Bdia
The argument Bdia is an   m \times n \times N array. For   k = 1 , \ldots , N we define   B_k \in \B{R}^{m \times n} by   $B_k = Bdia(:, :, k)$ 

Boffdia
The argument Boffdia is an   m \times n \times N array. For   k = 2 , \ldots , N we define   C_k \in \B{R}^{m \times n} by   $C_k = Boffdia(:, :, k)$ 

B
The matrix   B is defined by   $B = \left( \begin{array}{cccc} B_1 & 0 & 0 & \\ C_2^T & 0 & \ddots & 0 \\ 0 & \ddots & \ddots & 0 \\ & 0 & C_N^T & B_N \end{array} \right)$ 

V
The argument V is a matrix of size   n * N \times k , with no restriction on   k .

W
The result W is a matrix of size   m * N \times k .

Example
The file blkbidiag_mul_ok.m contains an example and test of ckbs_blkbidiag_mul. It returns true if ckbs_blkbidiag_mul passes the test and false otherwise.
Input File: src/ckbs_blkbidiag_mul.m