Index-> contents reference index search external Previous Next Up-> ckbs utility ckbs_blkdiag_mul_t blkdiag_mul_t_ok.m 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_blkdiag_mul_t-> blkdiag_mul_t_ok.m blkdiag_mul_t_ok.m Headings-> Source Code

blkdiag_mul_t Example and Test

Source Code ``` function [ok] = blkdiag_mul_t_ok() ok = true; % ------------------------------------------------------------- % You can change these parameters m = 2; n = 3; N = 2; p = 5; % ------------------------------------------------------------- % Define the problem rand('seed', 123); v = rand(m * N, p); Bdiag = zeros(m, n, N); B = zeros(m * N , n * N); blk_m = 1 : m; blk_n = 1 : n; for k = 1 : N Bdiag(:, :, k) = rand(m, n); B(blk_m, blk_n) = Bdiag(:, :, k); blk_m = blk_m + m; blk_n = blk_n + n; end % ------------------------------------- w = ckbs_blkdiag_mul_t(Bdiag, v); % ------------------------------------- check = B' * v; ok = ok & ( max(max(abs(w - check))) < 1e-10 ); return end ```
Input File: example/blkdiag_mul_t_ok.m