libflame revision_anchor
Functions
FLA_QR_UT_piv.h File Reference

(r)

Go to the source code of this file.

Functions

FLA_Error FLA_QR_UT_piv (FLA_Obj A, FLA_Obj T, FLA_Obj w, FLA_Obj p)
 
FLA_Error FLA_QR_UT_piv_internal (FLA_Obj A, FLA_Obj T, FLA_Obj w, FLA_Obj p, fla_qrut_t *cntl)
 
FLA_Error FLA_QR_UT_piv_colnorm (FLA_Obj alpha, FLA_Obj A, FLA_Obj b)
 
FLA_Error FLA_QR_UT_piv_check (FLA_Obj A, FLA_Obj T, FLA_Obj w, FLA_Obj p)
 
FLA_Error FLA_QR_UT_piv_internal_check (FLA_Obj A, FLA_Obj T, FLA_Obj w, FLA_Obj p, fla_qrut_t *cntl)
 
FLA_Error FLA_QR_UT_piv_colnorm_check (FLA_Obj alpha, FLA_Obj A, FLA_Obj b)
 

Function Documentation

◆ FLA_QR_UT_piv()

FLA_Error FLA_QR_UT_piv ( FLA_Obj  A,
FLA_Obj  T,
FLA_Obj  w,
FLA_Obj  p 
)
16{
18
19 // Check parameters.
22
23 FLA_Set( FLA_ZERO, w );
25
27
28 return r_val;
29}
fla_qrut_t * fla_qrut_piv_cntl_leaf
Definition FLA_QR_UT_cntl_init.c:19
FLA_Error FLA_QR_UT_piv_internal(FLA_Obj A, FLA_Obj T, FLA_Obj w, FLA_Obj p, fla_qrut_t *cntl)
Definition FLA_QR_UT_piv_internal.c:13
FLA_Error FLA_QR_UT_piv_colnorm(FLA_Obj alpha, FLA_Obj A, FLA_Obj b)
Definition FLA_QR_UT_piv_colnorm.c:13
FLA_Error FLA_QR_UT_piv_check(FLA_Obj A, FLA_Obj T, FLA_Obj w, FLA_Obj p)
Definition FLA_QR_UT_piv_check.c:13
FLA_Obj FLA_ZERO
Definition FLA_Init.c:20
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18
int FLA_Error
Definition FLA_type_defs.h:47
FLA_Error FLA_Set(FLA_Obj alpha, FLA_Obj A)
Definition FLA_Set.c:13
int i
Definition bl1_axmyv2.c:145

◆ FLA_QR_UT_piv_check()

FLA_Error FLA_QR_UT_piv_check ( FLA_Obj  A,
FLA_Obj  T,
FLA_Obj  w,
FLA_Obj  p 
)
14{
16
19
22
25
28
31
34
37
40
41 return FLA_SUCCESS;
42}
FLA_Error FLA_Check_object_width_equals(FLA_Obj A, dim_t n)
Definition FLA_Check.c:1049
dim_t FLA_Obj_width(FLA_Obj obj)
Definition FLA_Query.c:123
FLA_Error FLA_Check_identical_object_precision(FLA_Obj A, FLA_Obj B)
Definition FLA_Check.c:298
FLA_Error FLA_Check_object_length_equals(FLA_Obj A, dim_t m)
Definition FLA_Check.c:1039
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition FLA_Check.c:954
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition FLA_Check.c:967
FLA_Error FLA_Check_int_object(FLA_Obj A)
Definition FLA_Check.c:245
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition FLA_Check.c:232

References FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_identical_object_precision(), FLA_Check_int_object(), FLA_Check_nonconstant_object(), FLA_Check_object_length_equals(), FLA_Check_object_width_equals(), and FLA_Obj_width().

Referenced by FLA_QR_UT_piv().

◆ FLA_QR_UT_piv_colnorm()

FLA_Error FLA_QR_UT_piv_colnorm ( FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  b 
)
14{
15 FLA_Obj AL, AR, A0, a1, A2;
16 FLA_Obj bT, b0,
17 bB, beta1,
18 b2;
19
21
22 // A and b has matching dimensions.
25
26 FLA_Obj_create( FLA_Obj_datatype( A ), 1, 1, 0, 0, &val2_a1 );
28
29 FLA_Part_1x2( A, &AL, &AR, 0, FLA_LEFT );
30
31 FLA_Part_2x1( b, &bT,
32 &bB, 0, FLA_TOP );
33
34 while ( FLA_Obj_width( AL ) < FLA_Obj_width( A ) ){
35
36 FLA_Repart_1x2_to_1x3( AL, /**/ AR, &A0, /**/ &a1, &A2,
37 1, FLA_RIGHT );
38
40 /* ** */ /* ** */
41 &beta1,
42 bB, &b2, 1, FLA_BOTTOM );
43
44 /*------------------------------------------------------------*/
45 // Using dot product is a bit dangerous when a1 is close to
46 // under/over flow limits.
47 // The matrix should be properly scaled before using QR_UT_piv.
48 FLA_Dot( a1, a1, val2_a1 );
51 /*------------------------------------------------------------*/
52 FLA_Cont_with_1x3_to_1x2( &AL, /**/ &AR, A0, a1, /**/ A2,
53 FLA_LEFT );
54
56 beta1,
57 /* ** */ /* ** */
58 &bB, b2, FLA_TOP );
59 }
60
63
64 return FLA_SUCCESS;
65}
FLA_Error FLA_QR_UT_piv_colnorm_check(FLA_Obj alpha, FLA_Obj A, FLA_Obj b)
Definition FLA_QR_UT_piv_colnorm_check.c:13
FLA_Error FLA_Dot(FLA_Obj x, FLA_Obj y, FLA_Obj rho)
Definition FLA_Dot.c:13
FLA_Error FLA_Axpy(FLA_Obj alpha, FLA_Obj A, FLA_Obj B)
Definition FLA_Axpy.c:15
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
void FLA_Obj_extract_real_part(FLA_Obj alpha, FLA_Obj beta)
Definition FLA_Misc.c:65
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
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
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
FLA_Error FLA_Obj_free(FLA_Obj *obj)
Definition FLA_Obj.c:588
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition FLA_Query.c:13
Definition FLA_type_defs.h:159

References FLA_Axpy(), FLA_Check_error_level(), FLA_Cont_with_1x3_to_1x2(), FLA_Cont_with_3x1_to_2x1(), FLA_Dot(), FLA_Obj_create(), FLA_Obj_datatype(), FLA_Obj_extract_real_part(), FLA_Obj_free(), FLA_Obj_width(), FLA_Part_1x2(), FLA_Part_2x1(), FLA_QR_UT_piv_colnorm_check(), FLA_Repart_1x2_to_1x3(), FLA_Repart_2x1_to_3x1(), and i.

Referenced by FLA_QR_UT_piv(), FLA_QR_UT_piv_unb_var1(), and FLA_QR_UT_piv_unb_var2().

◆ FLA_QR_UT_piv_colnorm_check()

FLA_Error FLA_QR_UT_piv_colnorm_check ( FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  b 
)

◆ FLA_QR_UT_piv_internal()

FLA_Error FLA_QR_UT_piv_internal ( FLA_Obj  A,
FLA_Obj  T,
FLA_Obj  w,
FLA_Obj  p,
fla_qrut_t cntl 
)
14{
16
19
20 // Blocked blas2 oriented version
21 // ------------ Variant 1 set -------------
23 {
25 }
26 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT1 )
27 {
28 //r_val = FLA_QR_UT_piv_opt_var1( A, T );
30 }
31 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 )
32 {
33 r_val = FLA_QR_UT_piv_blk_var1( A, T, w, p, cntl );
34 }
35 // ----------------------------------------
36 // ------------ Variant 2 set -------------
37 else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT2 )
38 {
40 }
41
42 else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT2 )
43 {
44 //r_val = FLA_QR_UT_opt_var2( A, T );
46 }
47 else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 )
48 {
49 r_val = FLA_QR_UT_piv_blk_var2( A, T, w, p, cntl );
50 }
51 // ----------------------------------------
52 else
53 {
55 }
56
57 return r_val;
58}
FLA_Error FLA_QR_UT_piv_blk_var1(FLA_Obj A, FLA_Obj T, FLA_Obj w, FLA_Obj p, fla_qrut_t *cntl)
Definition FLA_QR_UT_piv_blk_var1.c:13
FLA_Error FLA_QR_UT_piv_blk_var2(FLA_Obj A, FLA_Obj T, FLA_Obj w, FLA_Obj p, fla_qrut_t *cntl)
Definition FLA_QR_UT_piv_blk_var2.c:13
FLA_Error FLA_QR_UT_piv_internal_check(FLA_Obj A, FLA_Obj T, FLA_Obj w, FLA_Obj p, fla_qrut_t *cntl)
Definition FLA_QR_UT_piv_internal_check.c:13
FLA_Error FLA_QR_UT_piv_unb_var1(FLA_Obj A, FLA_Obj T, FLA_Obj w, FLA_Obj p)
Definition FLA_QR_UT_piv_unb_var1.c:14
FLA_Error FLA_QR_UT_piv_unb_var2(FLA_Obj A, FLA_Obj T, FLA_Obj w, FLA_Obj p)
Definition FLA_QR_UT_piv_unb_var2.c:13

References FLA_Check_error_level(), FLA_QR_UT_piv_blk_var1(), FLA_QR_UT_piv_blk_var2(), FLA_QR_UT_piv_internal_check(), FLA_QR_UT_piv_unb_var1(), FLA_QR_UT_piv_unb_var2(), and i.

Referenced by FLA_QR_UT_piv(), FLA_QR_UT_piv_blk_var1(), and FLA_QR_UT_piv_blk_var2().

◆ FLA_QR_UT_piv_internal_check()

FLA_Error FLA_QR_UT_piv_internal_check ( FLA_Obj  A,
FLA_Obj  T,
FLA_Obj  w,
FLA_Obj  p,
fla_qrut_t cntl 
)
14{
16
17 // Abort if the control structure is NULL.
18 e_val = FLA_Check_null_pointer( ( void* ) cntl );
20
21 // Verify that the object element types are identical.
24
25 return FLA_SUCCESS;
26}
FLA_Error FLA_Check_null_pointer(void *ptr)
Definition FLA_Check.c:518
FLA_Error FLA_Check_identical_object_elemtype(FLA_Obj A, FLA_Obj B)
Definition FLA_Check.c:987

References FLA_Check_identical_object_elemtype(), and FLA_Check_null_pointer().

Referenced by FLA_QR_UT_piv_internal().