libflame  revision_anchor
FLA_util_base_prototypes.h
Go to the documentation of this file.
00001 /*
00002    libflame
00003    An object-based infrastructure for developing high-performance
00004    dense linear algebra libraries.
00005 
00006    Copyright (C) 2011, The University of Texas
00007 
00008    libflame is free software; you can redistribute it and/or modify
00009    it under the terms of the GNU Lesser General Public License as
00010    published by the Free Software Foundation; either version 2.1 of
00011    the License, or (at your option) any later version.
00012 
00013    libflame is distributed in the hope that it will be useful, but
00014    WITHOUT ANY WARRANTY; without even the implied warranty of
00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00016    Lesser General Public License for more details.
00017 
00018    You should have received a copy of the GNU Lesser General Public
00019    License along with libflame; if you did not receive a copy, see
00020    http://www.gnu.org/licenses/.
00021 
00022    For more information, please contact us at flame@cs.utexas.edu or
00023    send mail to:
00024 
00025    Field G. Van Zee and/or
00026    Robert A. van de Geijn
00027    The University of Texas at Austin
00028    Department of Computer Sciences
00029    1 University Station C0500
00030    Austin TX 78712
00031 */
00032 
00033 float     FLA_random_float( void );
00034 double    FLA_random_double( void );
00035 scomplex  FLA_random_scomplex( void );
00036 dcomplex  FLA_random_dcomplex( void );
00037 
00038 FLA_Error FLA_Absolute_square( FLA_Obj alpha );
00039 FLA_Error FLA_Absolute_value( FLA_Obj alpha );
00040 double    FLA_Clock( void );
00041 FLA_Error FLA_Conjugate( FLA_Obj A );
00042 FLA_Error FLA_Conjugate_r( FLA_Uplo uplo, FLA_Obj A );
00043 FLA_Error FLA_Fill_with_linear_dist( FLA_Obj shift, FLA_Obj delta, FLA_Obj x );
00044 FLA_Error FLA_Fill_with_inverse_dist( FLA_Obj alpha, FLA_Obj x );
00045 FLA_Error FLA_Fill_with_geometric_dist( FLA_Obj alpha, FLA_Obj x );
00046 FLA_Error FLA_Fill_with_random_dist( FLA_Obj shift, FLA_Obj max, FLA_Obj x );
00047 FLA_Error FLA_Fill_with_logarithmic_dist( FLA_Obj max, FLA_Obj x );
00048 FLA_Error FLA_Fill_with_cluster_dist( FLA_Obj n_clusters, FLA_Obj cluster_width, FLA_Obj x );
00049 FLA_Error FLA_Hermitianize( FLA_Uplo uplo, FLA_Obj A );
00050 FLA_Error FLA_Invert( FLA_Conj conj, FLA_Obj x );
00051 FLA_Error FLA_Inv_scal_elemwise( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00052 FLA_Error FLA_Max_abs_value( FLA_Obj A, FLA_Obj amax );
00053 FLA_Error FLA_Max_abs_value_herm( FLA_Uplo uplo, FLA_Obj A, FLA_Obj maxabs );
00054 double    FLA_Max_elemwise_diff( FLA_Obj A, FLA_Obj B );
00055 FLA_Error FLA_Mult_add( FLA_Obj alpha, FLA_Obj beta, FLA_Obj gamma );
00056 FLA_Error FLA_Negate( FLA_Obj x );
00057 FLA_Error FLA_Norm1( FLA_Obj A, FLA_Obj norm );
00058 FLA_Error FLA_Norm_inf( FLA_Obj A, FLA_Obj norm );
00059 FLA_Error FLA_Norm_frob( FLA_Obj A, FLA_Obj norm );
00060 FLA_Error FLA_Pow( FLA_Obj base, FLA_Obj exp, FLA_Obj btoe );
00061 FLA_Error FLA_Random_matrix( FLA_Obj A );
00062 FLA_Error FLA_Random_herm_matrix( FLA_Uplo uplo, FLA_Obj A );
00063 FLA_Error FLA_Random_symm_matrix( FLA_Uplo uplo, FLA_Obj A );
00064 FLA_Error FLA_Random_spd_matrix( FLA_Uplo uplo, FLA_Obj A );
00065 FLA_Error FLA_Random_tri_matrix( FLA_Uplo uplo, FLA_Diag diag, FLA_Obj A );
00066 FLA_Error FLA_Random_unitary_matrix( FLA_Obj A );
00067 FLA_Error FLA_Scal_elemwise( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00068 FLA_Error FLA_Setr( FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A );
00069 FLA_Error FLA_Shift_pivots_to_check( FLA_Pivot_type ptype, FLA_Obj p );
00070 FLA_Error FLA_Sqrt( FLA_Obj alpha );
00071 FLA_Error FLA_Symmetrize( FLA_Uplo uplo, FLA_Obj A );
00072 FLA_Error FLA_Triangularize( FLA_Uplo uplo, FLA_Diag diag, FLA_Obj A );
00073 FLA_Error FLA_Transpose( FLA_Obj A );
00074 
00075 FLA_Error FLA_Set( FLA_Obj alpha, FLA_Obj A );
00076 FLA_Error FLA_Set_diag( FLA_Obj alpha, FLA_Obj A );
00077 FLA_Error FLA_Set_offdiag( int offset, FLA_Obj alpha, FLA_Obj A );
00078 FLA_Error FLA_Set_to_identity( FLA_Obj A );
00079 FLA_Error FLA_Add_to_diag( void *diag_value, FLA_Obj A );
00080 FLA_Error FLA_Shift_diag( FLA_Conj conj, FLA_Obj sigma, FLA_Obj A );
00081 FLA_Error FLA_Scale_diag( FLA_Conj conj, FLA_Obj alpha, FLA_Obj A );
00082 
00083 // -----------------------------------------------------------------------------
00084 
00085 FLA_Error FLA_Absolute_square_check( FLA_Obj alpha );
00086 FLA_Error FLA_Absolute_value_check( FLA_Obj alpha );
00087 FLA_Error FLA_Conjugate_check( FLA_Obj A );
00088 FLA_Error FLA_Conjugate_r_check( FLA_Uplo uplo, FLA_Obj A );
00089 FLA_Error FLA_Fill_with_linear_dist_check( FLA_Obj shift, FLA_Obj delta, FLA_Obj x );
00090 FLA_Error FLA_Fill_with_inverse_dist_check( FLA_Obj alpha, FLA_Obj x );
00091 FLA_Error FLA_Fill_with_geometric_dist_check( FLA_Obj alpha, FLA_Obj x );
00092 FLA_Error FLA_Fill_with_random_dist_check( FLA_Obj shift, FLA_Obj max, FLA_Obj x );
00093 FLA_Error FLA_Fill_with_logarithmic_dist_check( FLA_Obj alpha, FLA_Obj x );
00094 FLA_Error FLA_Fill_with_cluster_dist_check( FLA_Obj n_clusters, FLA_Obj cluster_width, FLA_Obj x );
00095 FLA_Error FLA_Hermitianize_check( FLA_Uplo uplo, FLA_Obj A );
00096 FLA_Error FLA_Invert_check( FLA_Conj conj, FLA_Obj x );
00097 FLA_Error FLA_Inv_scal_elemwise_check( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00098 FLA_Error FLA_Max_abs_value_check( FLA_Obj A, FLA_Obj amax );
00099 FLA_Error FLA_Max_abs_value_herm_check( FLA_Uplo uplo, FLA_Obj A, FLA_Obj maxabs );
00100 FLA_Error FLA_Max_elemwise_diff_check( FLA_Obj A, FLA_Obj B );
00101 FLA_Error FLA_Mult_add_check( FLA_Obj alpha, FLA_Obj beta, FLA_Obj gamma );
00102 FLA_Error FLA_Negate_check( FLA_Obj x );
00103 FLA_Error FLA_Norm1_check( FLA_Obj A, FLA_Obj norm );
00104 FLA_Error FLA_Norm_inf_check( FLA_Obj A, FLA_Obj norm );
00105 FLA_Error FLA_Norm_frob_check( FLA_Obj A, FLA_Obj norm );
00106 FLA_Error FLA_Pow_check( FLA_Obj base, FLA_Obj exp, FLA_Obj btoe );
00107 FLA_Error FLA_Random_matrix_check( FLA_Obj A );
00108 FLA_Error FLA_Random_herm_matrix_check( FLA_Uplo uplo, FLA_Obj A );
00109 FLA_Error FLA_Random_symm_matrix_check( FLA_Uplo uplo, FLA_Obj A );
00110 FLA_Error FLA_Random_spd_matrix_check( FLA_Uplo uplo, FLA_Obj A );
00111 FLA_Error FLA_Random_tri_matrix_check( FLA_Uplo uplo, FLA_Diag diag, FLA_Obj A );
00112 FLA_Error FLA_Random_unitary_matrix_check( FLA_Obj A );
00113 FLA_Error FLA_Scal_elemwise_check( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00114 FLA_Error FLA_Setr_check( FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A );
00115 FLA_Error FLA_Sort_check( FLA_Direct direct, FLA_Obj x );
00116 FLA_Error FLA_Sqrt_check( FLA_Obj alpha );
00117 FLA_Error FLA_Symmetrize_check( FLA_Uplo uplo, FLA_Obj A );
00118 FLA_Error FLA_Triangularize_check( FLA_Uplo uplo, FLA_Diag diag, FLA_Obj A );
00119 FLA_Error FLA_Transpose_check( FLA_Obj A );
00120 
00121 FLA_Error FLA_Set_check( FLA_Obj alpha, FLA_Obj A );
00122 FLA_Error FLA_Set_diag_check( FLA_Obj alpha, FLA_Obj A );
00123 FLA_Error FLA_Set_to_identity_check( FLA_Obj A );
00124 FLA_Error FLA_Add_to_diag_check( void *diag_value, FLA_Obj A );
00125 FLA_Error FLA_Shift_diag_check( FLA_Conj conj, FLA_Obj sigma, FLA_Obj A );
00126 FLA_Error FLA_Scale_diag_check( FLA_Conj conj, FLA_Obj alpha, FLA_Obj A );
00127 
00128 // -----------------------------------------------------------------------------
00129 
00130 FLA_Error FLA_Transpose_blk_var1( FLA_Obj A, fla_tpose_t* cntl );
00131 FLA_Error FLA_Transpose_blk_var2( FLA_Obj A, fla_tpose_t* cntl );
00132 FLA_Error FLA_Transpose_unb_var1( FLA_Obj A );
00133 FLA_Error FLA_Transpose_unb_var2( FLA_Obj A );
00134 FLA_Error FLA_Swap_t_blk_var1( FLA_Obj A, FLA_Obj B, fla_swap_t* cntl );
00135 FLA_Error FLA_Swap_t_blk_var2( FLA_Obj A, FLA_Obj B, fla_swap_t* cntl );
00136 
00137 FLA_Error FLA_Sort( FLA_Direct direct, FLA_Obj x );
00138 FLA_Error FLA_Sort_f_ops( int     m_x,
00139                           float*  x, int inc_x );
00140 FLA_Error FLA_Sort_b_ops( int     m_x,
00141                           float*  x, int inc_x );
00142 FLA_Error FLA_Sort_f_opd( int     m_x,
00143                           double* x, int inc_x );
00144 FLA_Error FLA_Sort_b_opd( int     m_x,
00145                           double* x, int inc_x );
00146