libflame revision_anchor
|
Functions | |
FLA_Error | FLASH_LU_incpiv_opt1 (FLA_Obj A, FLA_Obj p, FLA_Obj L) |
Variables | |
fla_lu_t * | flash_lu_incpiv_cntl |
References FLASH_LU_incpiv_var2(), FLASH_Obj_create_diag_panel(), FLASH_Obj_free(), FLASH_Obj_scalar_width_tl(), FLASH_Queue_begin(), and FLASH_Queue_end().
Referenced by FLASH_LU_incpiv().
{ dim_t nb_alg; FLA_Error r_val; FLA_Obj U; // Inspect the width of a the top-left element of L to get the algorithmic // blocksize we'll use throughout the LU_incpiv algorithm. nb_alg = FLASH_Obj_scalar_width_tl( L ); // Create a temporary matrix to hold copies of all of the blocks along the // diagonal of A. FLASH_Obj_create_diag_panel( A, &U ); // Begin a parallel region. FLASH_Queue_begin(); // Enqueue tasks via a SuperMatrix-aware control tree. r_val = FLASH_LU_incpiv_var2( A, p, L, U, nb_alg, flash_lu_incpiv_cntl ); // End the parallel region. FLASH_Queue_end(); // Free the temporary matrix. FLASH_Obj_free( &U ); return r_val; }