libflame  revision_anchor
Functions
FLA_Norm_inf.c File Reference

(r)

Functions

FLA_Error FLA_Norm_inf (FLA_Obj A, FLA_Obj norm)
 

Function Documentation

◆ FLA_Norm_inf()

FLA_Error FLA_Norm_inf ( FLA_Obj  A,
FLA_Obj  norm 
)
14 {
15  FLA_Obj AT, A0,
16  AB, a1t,
17  A2;
18 
19  FLA_Obj bT, b0,
20  bB, beta1,
21  b2;
22  FLA_Obj b;
23 
24  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
25  FLA_Norm_inf_check( A, norm );
26 
27  FLA_Obj_create( FLA_Obj_datatype( A ), FLA_Obj_length( A ), 1, 0, 0, &b );
28 
29  FLA_Part_2x1( A, &AT,
30  &AB, 0, FLA_TOP );
31 
32  FLA_Part_2x1( b, &bT,
33  &bB, 0, FLA_TOP );
34 
35  while ( FLA_Obj_length( AT ) < FLA_Obj_length( A ) ){
36 
37  FLA_Repart_2x1_to_3x1( AT, &A0,
38  /* ** */ /* *** */
39  &a1t,
40  AB, &A2, 1, FLA_BOTTOM );
41 
42  FLA_Repart_2x1_to_3x1( bT, &b0,
43  /* ** */ /* ***** */
44  &beta1,
45  bB, &b2, 1, FLA_BOTTOM );
46 
47  /*------------------------------------------------------------*/
48 
49  FLA_Asum( a1t, beta1 );
50 
51  /*------------------------------------------------------------*/
52 
53  FLA_Cont_with_3x1_to_2x1( &AT, A0,
54  a1t,
55  /* ** */ /* *** */
56  &AB, A2, FLA_TOP );
57 
58  FLA_Cont_with_3x1_to_2x1( &bT, b0,
59  beta1,
60  /* ** */ /* ***** */
61  &bB, b2, FLA_TOP );
62 
63  }
64 
65  FLA_Max_abs_value( b, norm );
66 
67  FLA_Obj_free( &b );
68 
69  return FLA_SUCCESS;
70 }
FLA_Error FLA_Norm_inf_check(FLA_Obj A, FLA_Obj norm)
Definition: FLA_Norm_inf_check.c:13
FLA_Error FLA_Asum(FLA_Obj x, FLA_Obj asum_x)
Definition: FLA_Asum.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_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_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
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
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
FLA_Error FLA_Max_abs_value(FLA_Obj A, FLA_Obj amax)
Definition: FLA_Max_abs_value.c:13
Definition: FLA_type_defs.h:159

References FLA_Asum(), FLA_Check_error_level(), FLA_Cont_with_3x1_to_2x1(), FLA_Max_abs_value(), FLA_Norm_inf_check(), FLA_Obj_create(), FLA_Obj_datatype(), FLA_Obj_free(), FLA_Obj_length(), FLA_Part_2x1(), and FLA_Repart_2x1_to_3x1().