libflame revision_anchor
Functions
FLA_Hess_UT.h File Reference

(r)

Go to the source code of this file.

Functions

FLA_Error FLA_Hess_UT (FLA_Obj A, FLA_Obj T)
 
FLA_Error FLA_Hess_UT_internal (FLA_Obj A, FLA_Obj T, fla_hessut_t *cntl)
 
FLA_Error FLA_Hess_UT_create_T (FLA_Obj A, FLA_Obj *T)
 
FLA_Error FLA_Hess_UT_recover_tau (FLA_Obj T, FLA_Obj t)
 

Function Documentation

◆ FLA_Hess_UT()

FLA_Error FLA_Hess_UT ( FLA_Obj  A,
FLA_Obj  T 
)
16{
18
19 // Check parameters.
22
23 // Invoke FLA_Hess_UT_internal() with the standard control tree.
25
26 return r_val;
27}
fla_hessut_t * fla_hessut_cntl_leaf
Definition FLA_Hess_UT_cntl_init.c:13
FLA_Error FLA_Hess_UT_internal(FLA_Obj A, FLA_Obj T, fla_hessut_t *cntl)
Definition FLA_Hess_UT_internal.c:13
FLA_Error FLA_Hess_UT_check(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_check.c:13
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18
int FLA_Error
Definition FLA_type_defs.h:47
int i
Definition bl1_axmyv2.c:145

◆ FLA_Hess_UT_create_T()

FLA_Error FLA_Hess_UT_create_T ( FLA_Obj  A,
FLA_Obj T 
)
14{
15 FLA_Datatype datatype;
16 dim_t b_alg, k;
18
19 // Query the datatype of A.
20 datatype = FLA_Obj_datatype( A );
21
22 // Query the blocksize from the library.
24
25 // Scale the blocksize by a pre-set global constant.
26 b_alg = ( dim_t )( ( ( double ) b_alg ) * FLA_HESS_INNER_TO_OUTER_B_RATIO );
27
28 // Query the minimum dimension of A.
29 k = FLA_Obj_min_dim( A );
30
31 // Figure out whether T should be row-major or column-major.
32 if ( FLA_Obj_row_stride( A ) == 1 )
33 {
34 rs_T = 1;
35 cs_T = b_alg;
36 }
37 else // if ( FLA_Obj_col_stride( A ) == 1 )
38 {
39 rs_T = k;
40 cs_T = 1;
41 }
42
43 // Create a b_alg x k matrix to hold the block Householder transforms that
44 // will be accumulated within the Hessenberg reduction algorithm.
45 FLA_Obj_create( datatype, b_alg, k, rs_T, cs_T, T );
46
47 return FLA_SUCCESS;
48}
FLA_Error FLA_Obj_create(FLA_Datatype datatype, dim_t m, dim_t n, dim_t rs, dim_t cs, FLA_Obj *obj)
Definition FLA_Obj.c:55
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition FLA_Query.c:167
dim_t FLA_Query_blocksize(FLA_Datatype dt, FLA_Dimension dim)
Definition FLA_Blocksize.c:161
dim_t FLA_Obj_min_dim(FLA_Obj obj)
Definition FLA_Query.c:153
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition FLA_Query.c:13
int FLA_Datatype
Definition FLA_type_defs.h:49
unsigned long dim_t
Definition FLA_type_defs.h:71

References FLA_Obj_create(), FLA_Obj_datatype(), FLA_Obj_min_dim(), FLA_Obj_row_stride(), FLA_Query_blocksize(), and i.

◆ FLA_Hess_UT_internal()

FLA_Error FLA_Hess_UT_internal ( FLA_Obj  A,
FLA_Obj  T,
fla_hessut_t cntl 
)
14{
16
19
20 {
22 {
24 }
25 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT2 )
26 {
28 }
29 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT3 )
30 {
32 }
33 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT4 )
34 {
36 }
37 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT5 )
38 {
40 }
41 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT1 )
42 {
44 }
45 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT2 )
46 {
48 }
49 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT3 )
50 {
52 }
53 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT4 )
54 {
56 }
57 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT5 )
58 {
60 }
61 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 )
62 {
64 }
65 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 )
66 {
68 }
69 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 )
70 {
72 }
73 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 )
74 {
76 }
77 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT5 )
78 {
80 }
81 else if ( FLA_Cntl_variant( cntl ) == FLA_BLK_FUS_VARIANT2 )
82 {
84 }
85 else if ( FLA_Cntl_variant( cntl ) == FLA_BLK_FUS_VARIANT3 )
86 {
88 }
89 else if ( FLA_Cntl_variant( cntl ) == FLA_BLK_FUS_VARIANT4 )
90 {
92 }
93 else
94 {
96 }
97 }
98
99 return r_val;
100}
FLA_Error FLA_Hess_UT_blf_var2(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_blf_var2.c:13
FLA_Error FLA_Hess_UT_blf_var3(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_blf_var3.c:13
FLA_Error FLA_Hess_UT_blf_var4(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_blf_var4.c:13
FLA_Error FLA_Hess_UT_blk_var1(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_blk_var1.c:13
FLA_Error FLA_Hess_UT_blk_var2(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_blk_var2.c:13
FLA_Error FLA_Hess_UT_blk_var3(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_blk_var3.c:13
FLA_Error FLA_Hess_UT_blk_var4(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_blk_var4.c:13
FLA_Error FLA_Hess_UT_blk_var5(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_blk_var5.c:13
FLA_Error FLA_Hess_UT_internal_check(FLA_Obj A, FLA_Obj T, fla_hessut_t *cntl)
Definition FLA_Hess_UT_internal_check.c:13
FLA_Error FLA_Hess_UT_opt_var1(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_opt_var1.c:13
FLA_Error FLA_Hess_UT_opt_var2(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_opt_var2.c:13
FLA_Error FLA_Hess_UT_opt_var3(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_opt_var3.c:13
FLA_Error FLA_Hess_UT_opt_var4(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_opt_var4.c:13
FLA_Error FLA_Hess_UT_opt_var5(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_opt_var5.c:13
FLA_Error FLA_Hess_UT_unb_var1(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_unb_var1.c:13
FLA_Error FLA_Hess_UT_unb_var2(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_unb_var2.c:13
FLA_Error FLA_Hess_UT_unb_var3(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_unb_var3.c:13
FLA_Error FLA_Hess_UT_unb_var4(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_unb_var4.c:13
FLA_Error FLA_Hess_UT_unb_var5(FLA_Obj A, FLA_Obj T)
Definition FLA_Hess_UT_unb_var5.c:13

References FLA_Check_error_level(), FLA_Hess_UT_blf_var2(), FLA_Hess_UT_blf_var3(), FLA_Hess_UT_blf_var4(), FLA_Hess_UT_blk_var1(), FLA_Hess_UT_blk_var2(), FLA_Hess_UT_blk_var3(), FLA_Hess_UT_blk_var4(), FLA_Hess_UT_blk_var5(), FLA_Hess_UT_internal_check(), FLA_Hess_UT_opt_var1(), FLA_Hess_UT_opt_var2(), FLA_Hess_UT_opt_var3(), FLA_Hess_UT_opt_var4(), FLA_Hess_UT_opt_var5(), FLA_Hess_UT_unb_var1(), FLA_Hess_UT_unb_var2(), FLA_Hess_UT_unb_var3(), FLA_Hess_UT_unb_var4(), FLA_Hess_UT_unb_var5(), and i.

Referenced by FLA_Hess_UT().

◆ FLA_Hess_UT_recover_tau()

FLA_Error FLA_Hess_UT_recover_tau ( FLA_Obj  T,
FLA_Obj  t 
)
16{
17 FLA_Obj TL, TR, T0, T1, T2;
18
19 FLA_Obj tT, t0,
20 tB, t1,
21 t2;
22
23 dim_t b_alg, b;
24
27
29
30 FLA_Part_1x2( T, &TL, &TR, 0, FLA_LEFT );
31
32 FLA_Part_2x1( t, &tT,
33 &tB, 0, FLA_TOP );
34
35 while ( FLA_Obj_length( tT ) < FLA_Obj_length( t ) ){
36
37 b = min( FLA_Obj_length( tB ), b_alg );
38
39 FLA_Repart_1x2_to_1x3( TL, /**/ TR, &T0, /**/ &T1, &T2,
40 b, FLA_RIGHT );
41
43 /* ** */ /* ** */
44 &t1,
45 tB, &t2, b, FLA_BOTTOM );
46
47 /*------------------------------------------------------------*/
48
50
51 /*------------------------------------------------------------*/
52
53 FLA_Cont_with_1x3_to_1x2( &TL, /**/ &TR, T0, T1, /**/ T2,
54 FLA_LEFT );
55
57 t1,
58 /* ** */ /* ** */
59 &tB, t2, FLA_TOP );
60 }
61
62 return FLA_SUCCESS;
63}
FLA_Error FLA_Hess_UT_recover_tau_submatrix(FLA_Obj T, FLA_Obj t)
Definition FLA_Hess_UT_recover_tau.c:66
FLA_Error FLA_Hess_UT_recover_tau_check(FLA_Obj T, FLA_Obj tau)
Definition FLA_Hess_UT_recover_tau_check.c:13
FLA_Error FLA_Cont_with_3x1_to_2x1(FLA_Obj *AT, FLA_Obj A0, FLA_Obj A1, FLA_Obj *AB, FLA_Obj A2, FLA_Side side)
Definition FLA_View.c:428
FLA_Error FLA_Repart_2x1_to_3x1(FLA_Obj AT, FLA_Obj *A0, FLA_Obj *A1, FLA_Obj AB, FLA_Obj *A2, dim_t mb, FLA_Side side)
Definition FLA_View.c:226
FLA_Error FLA_Cont_with_1x3_to_1x2(FLA_Obj *AL, FLA_Obj *AR, FLA_Obj A0, FLA_Obj A1, FLA_Obj A2, FLA_Side side)
Definition FLA_View.c:475
FLA_Error FLA_Part_1x2(FLA_Obj A, FLA_Obj *A1, FLA_Obj *A2, dim_t nb, FLA_Side side)
Definition FLA_View.c:110
FLA_Error FLA_Part_2x1(FLA_Obj A, FLA_Obj *A1, FLA_Obj *A2, dim_t mb, FLA_Side side)
Definition FLA_View.c:76
dim_t FLA_Obj_length(FLA_Obj obj)
Definition FLA_Query.c:116
FLA_Error FLA_Repart_1x2_to_1x3(FLA_Obj AL, FLA_Obj AR, FLA_Obj *A0, FLA_Obj *A1, FLA_Obj *A2, dim_t nb, FLA_Side side)
Definition FLA_View.c:267
Definition FLA_type_defs.h:159

References FLA_Check_error_level(), FLA_Cont_with_1x3_to_1x2(), FLA_Cont_with_3x1_to_2x1(), FLA_Hess_UT_recover_tau_check(), FLA_Hess_UT_recover_tau_submatrix(), FLA_Obj_length(), FLA_Part_1x2(), FLA_Part_2x1(), FLA_Repart_1x2_to_1x3(), FLA_Repart_2x1_to_3x1(), and i.