libflame
revision_anchor
|
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