FLA_main_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) 2009, 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 // -----------------------------------------------------------------------------
00034 
00035 fla_blocksize_t* FLA_Blocksize_create( dim_t b_s, dim_t b_d, dim_t b_c, dim_t b_z );
00036 fla_blocksize_t* FLA_Blocksize_create_copy( fla_blocksize_t* bp );
00037 void             FLA_Blocksize_set( fla_blocksize_t* bp, dim_t b_s, dim_t b_d, dim_t b_c, dim_t b_z );
00038 void             FLA_Blocksize_scale( fla_blocksize_t* bp, double factor );
00039 void             FLA_Blocksize_free( fla_blocksize_t* bp );
00040 dim_t            FLA_Blocksize_extract( FLA_Datatype dt, fla_blocksize_t* bp );
00041 
00042 fla_blocksize_t* FLA_Query_blocksizes( FLA_Dimension dim );
00043 dim_t            FLA_Query_blocksize( FLA_Datatype dt, FLA_Dimension dim );
00044 
00045 dim_t            FLA_Determine_blocksize( FLA_Obj A_unproc, FLA_Quadrant to_dir, fla_blocksize_t* cntl_blocksizes );
00046 dim_t            FLA_determine_matrix_size( FLA_Obj A_unproc, FLA_Quadrant to_dir );
00047 F_INT            FLA_F2C( fla_query_blocksize_f ) ( F_INT *dt, F_INT *dim );
00048 
00049 
00050 // -----------------------------------------------------------------------------
00051 
00052 unsigned int  FLA_Check_error_level( void );
00053 unsigned int  FLA_Check_error_level_set( unsigned int level );
00054 void          FLA_Check_error_code_helper( int code, char* file, int line );
00055 FLA_Error     FLA_Check_valid_side( FLA_Side side );
00056 FLA_Error     FLA_Check_valid_uplo( FLA_Uplo uplo );
00057 FLA_Error     FLA_Check_valid_trans( FLA_Trans trans );
00058 FLA_Error     FLA_Check_valid_diag( FLA_Diag diag );
00059 FLA_Error     FLA_Check_valid_conj( FLA_Conj conj );
00060 FLA_Error     FLA_Check_valid_direct( FLA_Conj direct );
00061 FLA_Error     FLA_Check_valid_storev( FLA_Conj storev );
00062 FLA_Error     FLA_Check_valid_datatype( FLA_Datatype datatype );
00063 FLA_Error     FLA_Check_valid_object_datatype( FLA_Obj A );
00064 FLA_Error     FLA_Check_floating_datatype( FLA_Datatype datatype );
00065 FLA_Error     FLA_Check_int_datatype( FLA_Datatype datatype );
00066 FLA_Error     FLA_Check_real_datatype( FLA_Datatype datatype );
00067 FLA_Error     FLA_Check_complex_datatype( FLA_Datatype datatype );
00068 FLA_Error     FLA_Check_floating_object( FLA_Obj A );
00069 FLA_Error     FLA_Check_int_object( FLA_Obj A );
00070 FLA_Error     FLA_Check_real_object( FLA_Obj A );
00071 FLA_Error     FLA_Check_complex_object( FLA_Obj A );
00072 FLA_Error     FLA_Check_consistent_datatype( FLA_Datatype datatype, FLA_Obj A );
00073 FLA_Error     FLA_Check_consistent_object_datatype( FLA_Obj A, FLA_Obj B );
00074 FLA_Error     FLA_Check_identical_object_precision( FLA_Obj A, FLA_Obj B );
00075 FLA_Error     FLA_Check_square( FLA_Obj A );
00076 FLA_Error     FLA_Check_if_scalar( FLA_Obj A );
00077 FLA_Error     FLA_Check_if_vector( FLA_Obj A );
00078 FLA_Error     FLA_Check_conformal_dims( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00079 FLA_Error     FLA_Check_matrix_matrix_dims( FLA_Trans transa, FLA_Trans transb, FLA_Obj A, FLA_Obj B, FLA_Obj C );
00080 FLA_Error     FLA_Check_matrix_vector_dims( FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y );
00081 FLA_Error     FLA_Check_equal_vector_lengths( FLA_Obj x, FLA_Obj y );
00082 FLA_Error     FLA_Check_conj_trans_and_datatype( FLA_Trans trans, FLA_Obj A );
00083 FLA_Error     FLA_Check_hess_indices( FLA_Obj A, int ilo, int ihi );
00084 FLA_Error     FLA_Check_vector_length( FLA_Obj x, dim_t expected_length );
00085 FLA_Error     FLA_Check_null_pointer( void* ptr );
00086 FLA_Error     FLA_Check_object_dims( FLA_Trans trans, dim_t m, dim_t n, FLA_Obj A );
00087 FLA_Error     FLA_Check_valid_pivot_type( FLA_Pivot_type ptype );
00088 FLA_Error     FLA_Check_malloc_pointer( void* ptr );
00089 FLA_Error     FLA_Check_base_buffer_mismatch( FLA_Obj A, FLA_Obj B );
00090 FLA_Error     FLA_Check_adjacent_objects_2x2( FLA_Obj A11, FLA_Obj A12,
00091                                               FLA_Obj A21, FLA_Obj A22 );
00092 FLA_Error     FLA_Check_adjacent_objects_2x1( FLA_Obj AT,
00093                                               FLA_Obj AB );
00094 FLA_Error     FLA_Check_adjacent_objects_1x2( FLA_Obj AL, FLA_Obj AR );
00095 FLA_Error     FLA_Check_blocksize_value( dim_t b );
00096 FLA_Error     FLA_Check_blocksize_object( FLA_Datatype datatype, fla_blocksize_t* bp );
00097 FLA_Error     FLA_Check_file_descriptor( int fd );
00098 FLA_Error     FLA_Check_lseek_result( int requested_offset, int lseek_r_val );
00099 FLA_Error     FLA_Check_close_result( int close_r_val );
00100 FLA_Error     FLA_Check_unlink_result( int unlink_r_val );
00101 FLA_Error     FLA_Check_read_result( int requested_size, int read_r_val );
00102 FLA_Error     FLA_Check_write_result( int requested_size, int write_r_val );
00103 FLA_Error     FLA_Check_valid_quadrant( FLA_Quadrant quad );
00104 FLA_Error     FLA_Check_vector_length_min( FLA_Obj x, dim_t min_length );
00105 FLA_Error     FLA_Check_pthread_create_result( int pthread_create_r_val );
00106 FLA_Error     FLA_Check_pthread_join_result( int pthread_join_r_val );
00107 FLA_Error     FLA_Check_valid_isgn_value( FLA_Obj isgn );
00108 FLA_Error     FLA_Check_sylv_matrix_dims( FLA_Obj A, FLA_Obj B, FLA_Obj C );
00109 FLA_Error     FLA_Check_chol_failure( FLA_Error r_val );
00110 FLA_Error     FLA_Check_valid_elemtype( FLA_Elemtype elemtype );
00111 FLA_Error     FLA_Check_posix_memalign_failure( int r_val );
00112 FLA_Error     FLA_Check_submatrix_dims_and_offset( dim_t m, dim_t n, dim_t i, dim_t j, FLA_Obj A );
00113 FLA_Error     FLA_Check_object_scalar_elemtype( FLA_Obj A );
00114 FLA_Error     FLA_Check_object_matrix_elemtype( FLA_Obj A );
00115 FLA_Error     FLA_Check_num_threads( unsigned int n_threads );
00116 FLA_Error     FLA_Check_conj_and_datatype( FLA_Conj conj, FLA_Obj A );
00117 FLA_Error     FLA_Check_valid_complex_trans( FLA_Trans trans );
00118 FLA_Error     FLA_Check_valid_real_trans( FLA_Trans trans );
00119 FLA_Error     FLA_Check_valid_blas_trans( FLA_Trans trans );
00120 FLA_Error     FLA_Check_nonconstant_datatype( FLA_Datatype datatype );
00121 FLA_Error     FLA_Check_nonconstant_object( FLA_Obj A );
00122 FLA_Error     FLA_Check_m_against_ldim( dim_t m, dim_t ldim );
00123 FLA_Error     FLA_Check_identical_object_datatype( FLA_Obj A, FLA_Obj B );
00124 FLA_Error     FLA_Check_divide_by_zero( FLA_Obj alpha );
00125 FLA_Error     FLA_Check_identical_object_elemtype( FLA_Obj A, FLA_Obj B );
00126 FLA_Error     FLA_Check_pivot_index_range( FLA_Obj p, dim_t k1, dim_t k2 );
00127 FLA_Error     FLA_Check_householder_panel_dims( FLA_Obj A, FLA_Obj T );
00128 FLA_Error     FLA_Check_object_length_equals( FLA_Obj A, dim_t m );
00129 FLA_Error     FLA_Check_object_width_equals( FLA_Obj A, dim_t n );
00130 FLA_Error     FLA_Check_valid_error_level( unsigned int level );
00131 FLA_Error     FLA_Check_attempted_repart_2x2( FLA_Obj A_quad, dim_t b_m, dim_t b_n );
00132 FLA_Error     FLA_Check_attempted_repart_2x1( FLA_Obj A_side, dim_t b_m );
00133 FLA_Error     FLA_Check_attempted_repart_1x2( FLA_Obj A_side, dim_t b_n );
00134 
00135 
00136 
00137 // -----------------------------------------------------------------------------
00138 
00139 char*         FLA_Error_string_for_code( int code );
00140 void          FLA_Error_messages_init( void );
00141 void          FLA_Print_message( char *str, char *file, int line );
00142 void          FLA_Abort( void );
00143 
00144 void          FLA_F2C( fla_abort_f )( void );
00145 
00146 
00147 
00148 // -----------------------------------------------------------------------------
00149 
00150 FLA_Bool      FLA_Initialized( void );
00151 void          FLA_Init( void );
00152 void          FLA_Init_constants( void );
00153 void          FLA_Init_memcounter( void );
00154 void          FLA_Finalize( void );
00155 void          FLA_Finalize_constants( void );
00156 void          FLA_Finalize_memcounter( void );
00157 
00158 F_INT         FLA_F2C( fla_initialized_f )( void );
00159 void          FLA_F2C( fla_init_fortran )( FLA_Obj* minus_one, FLA_Obj* zero, FLA_Obj* one, FLA_Obj* two );
00160 void          FLA_F2C( fla_finalize_fortran )( void );
00161 void          FLA_F2C( fla_init_f )( void );
00162 void          FLA_F2C( fla_finalize_f )( void );
00163 
00164 
00165 
00166 //------------------------------------------------------------------------------
00167 
00168 void          FLA_Lock_init( FLA_Lock* fla_lock_ptr );
00169 void          FLA_Lock_destroy( FLA_Lock* fla_lock_ptr );
00170 void          FLA_Lock_acquire( FLA_Lock* fla_lock_ptr );
00171 void          FLA_Lock_release( FLA_Lock* fla_lock_ptr );
00172 
00173 
00174 
00175 // -----------------------------------------------------------------------------
00176 
00177 void*         FLA_malloc( size_t size );
00178 void*         FLA_realloc( void* old_ptr, size_t size );
00179 void          FLA_free( void *ptr );
00180  
00181 
00182 
00183 // -----------------------------------------------------------------------------
00184 
00185 FLA_Bool      FLA_Obj_is_int( FLA_Obj A );
00186 FLA_Bool      FLA_Obj_is_floating_point( FLA_Obj A );
00187 FLA_Bool      FLA_Obj_is_constant( FLA_Obj A );
00188 FLA_Bool      FLA_Obj_is_real( FLA_Obj A );
00189 FLA_Bool      FLA_Obj_is_complex( FLA_Obj A );
00190 FLA_Bool      FLA_Obj_is_single_precision( FLA_Obj A );
00191 FLA_Bool      FLA_Obj_is_double_precision( FLA_Obj A );
00192 FLA_Bool      FLA_Obj_is_scalar( FLA_Obj A );
00193 FLA_Bool      FLA_Obj_is_vector( FLA_Obj A );
00194 FLA_Bool      FLA_Obj_has_zero_dim( FLA_Obj A );
00195 FLA_Bool      FLA_Obj_is_conformal_to( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00196 FLA_Bool      FLA_Obj_is( FLA_Obj A, FLA_Obj B );
00197 FLA_Bool      FLA_Obj_equals( FLA_Obj A, FLA_Obj B );
00198 FLA_Error     FLA_Obj_set_to_scalar( FLA_Obj alpha, FLA_Obj A );
00199 FLA_Error     FLA_Obj_set_diagonal_to_scalar( FLA_Obj alpha, FLA_Obj A );
00200 FLA_Error     FLA_Obj_set_to_identity( FLA_Obj A );
00201 FLA_Error     FLA_Obj_add_to_diagonal( void *diag_value, FLA_Obj A );
00202 FLA_Error     FLA_Obj_shift_diagonal( FLA_Obj sigma, FLA_Obj A );
00203 FLA_Error     FLA_Obj_show( char *s1, FLA_Obj A, char *format, char *s2 );
00204 
00205 FLA_Error     FLA_Copy_submatrix_to_global( FLA_Trans trans, dim_t m, dim_t n, void* buffer, dim_t ldim, dim_t i, dim_t j, FLA_Obj obj );
00206 FLA_Error     FLA_Copy_global_to_submatrix( FLA_Trans trans, dim_t i, dim_t j, FLA_Obj obj, dim_t m, dim_t n, void* buffer, dim_t ldim );
00207 FLA_Error     FLA_Axpy_submatrix_to_global( FLA_Trans trans, FLA_Obj alpha, dim_t m, dim_t n, void* buffer, dim_t ldim, dim_t i, dim_t j, FLA_Obj C );
00208 FLA_Error     FLA_Axpy_global_to_submatrix( FLA_Trans trans, FLA_Obj alpha, dim_t i, dim_t j, FLA_Obj C, dim_t m, dim_t n, void* buffer, dim_t ldim );
00209 
00210 void          FLA_F2C( fla_obj_is_f                     ) ( F_INT *A, F_INT *B, F_INT *IERROR );
00211 void          FLA_F2C( fla_obj_equals_f                 ) ( F_INT *A, F_INT *B, F_INT *IERROR );
00212 void          FLA_F2C( fla_obj_set_to_scalar_f          ) ( F_INT *alpha, F_INT *A, F_INT *IERROR );
00213 void          FLA_F2C( fla_obj_set_diagonal_to_scalar_f ) ( F_INT *alpha, F_INT* A, F_INT *IERROR );
00214 void          FLA_F2C( fla_obj_set_to_identity_f        ) ( F_INT *A, F_INT *IERROR );
00215 void          FLA_F2C( fla_obj_add_to_diagonal_f        ) ( F_INT *value, F_INT *A, F_INT *IERROR );
00216 void          FLA_F2C( fla_obj_shift_diagonal_f         ) ( F_INT *sigma, F_INT *A, F_INT *IERROR );
00217 void          FLA_F2C( fla_obj_show_f                   ) ( F_INT *s1, F_INT *A, F_INT *format, F_INT *s2, F_INT *IERROR );
00218 
00219 FLA_Error     FLA_Obj_equals_check( FLA_Obj A, FLA_Obj B );
00220 FLA_Error     FLA_Obj_set_to_scalar_check( FLA_Obj alpha, FLA_Obj A );
00221 FLA_Error     FLA_Obj_set_diagonal_to_scalar_check( FLA_Obj alpha, FLA_Obj A );
00222 FLA_Error     FLA_Obj_set_to_identity_check( FLA_Obj A );
00223 FLA_Error     FLA_Obj_add_to_diagonal_check( void *diag_value, FLA_Obj A );
00224 FLA_Error     FLA_Obj_shift_diagonal_check( FLA_Obj sigma, FLA_Obj A );
00225 FLA_Error     FLA_Obj_scale_diagonal_check( FLA_Obj alpha, FLA_Obj A );
00226 
00227 FLA_Error     FLA_Copy_submatrix_to_global_check( FLA_Trans trans, dim_t m, dim_t n, void* buffer, dim_t ldim, dim_t i, dim_t j, FLA_Obj obj );
00228 FLA_Error     FLA_Copy_global_to_submatrix_check( FLA_Trans trans, dim_t i, dim_t j, FLA_Obj obj, dim_t m, dim_t n, void* buffer, dim_t ldim );
00229 FLA_Error     FLA_Axpy_submatrix_to_global_check( FLA_Trans trans, FLA_Obj alpha, dim_t m, dim_t n, void* buffer, dim_t ldim, dim_t i, dim_t j, FLA_Obj C );
00230 FLA_Error     FLA_Axpy_global_to_submatrix_check( FLA_Trans trans, FLA_Obj alpha, dim_t i, dim_t j, FLA_Obj C, dim_t m, dim_t n, void* buffer, dim_t ldim );
00231 
00232 
00233 
00234 // -----------------------------------------------------------------------------
00235 
00236 FLA_Error     FLA_Obj_create( FLA_Datatype datatype, dim_t m, dim_t n, FLA_Obj *obj );
00237 FLA_Error     FLA_Obj_create_ext( FLA_Datatype datatype, FLA_Elemtype elemtype, dim_t m, dim_t n, dim_t m_global, dim_t n_global, FLA_Obj *obj );
00238 FLA_Error     FLA_Obj_create_conf_to( FLA_Trans trans, FLA_Obj old, FLA_Obj *obj );
00239 FLA_Error     FLA_Obj_create_without_buffer( FLA_Datatype datatype, dim_t m, dim_t n, FLA_Obj *obj );
00240 FLA_Error     FLA_Obj_constant_create( double const_real, FLA_Obj *obj );
00241 FLA_Error     FLA_Obj_complex_constant_create( double const_real, double const_imag, FLA_Obj *obj );
00242 FLA_Error     FLA_Obj_attach_buffer( void *buffer, dim_t lda, FLA_Obj *obj );
00243 FLA_Error     FLA_Obj_free( FLA_Obj *obj );
00244 FLA_Error     FLA_Obj_free_without_buffer( FLA_Obj *obj );
00245 FLA_Datatype  FLA_Obj_datatype( FLA_Obj obj );
00246 FLA_Elemtype  FLA_Obj_elemtype( FLA_Obj obj );
00247 dim_t         FLA_Obj_datatype_size( FLA_Datatype datatype );
00248 dim_t         FLA_Obj_elem_size( FLA_Obj obj );
00249 dim_t         FLA_Obj_length( FLA_Obj obj );
00250 dim_t         FLA_Obj_width( FLA_Obj obj );
00251 dim_t         FLA_Obj_vector_dim( FLA_Obj obj );
00252 dim_t         FLA_Obj_vector_inc( FLA_Obj obj );
00253 dim_t         FLA_Obj_min_dim( FLA_Obj obj );
00254 dim_t         FLA_Obj_max_dim( FLA_Obj obj );
00255 dim_t         FLA_Obj_ldim( FLA_Obj obj );
00256 void*         FLA_Obj_buffer( FLA_Obj obj );
00257 
00258 void          FLA_F2C( fla_obj_create_f                  ) ( F_INT *datatype, F_INT *m, F_INT *n, F_INT *obj, F_INT *IERROR );
00259 void          FLA_F2C( fla_obj_create_conf_to_f          ) ( F_INT *trans, F_INT *old, F_INT *obj, F_INT *IERROR );
00260 void          FLA_F2C( fla_obj_create_w_out_buff_f       ) ( F_INT *datatype, F_INT *m, F_INT *n, F_INT *obj, F_INT *IERROR );
00261 void          FLA_F2C( fla_obj_constant_create_f         ) ( F_DOUBLE* const_real, F_INT* obj, F_INT *IERROR );
00262 void          FLA_F2C( fla_obj_complex_constant_create_f ) ( F_DOUBLE* const_real, F_DOUBLE* const_imag, F_INT* obj, F_INT *IERROR );
00263 void          FLA_F2C( fla_obj_attach_buff_f             ) ( F_INT *buffer, F_INT *lda, F_INT *obj, F_INT *IERROR );
00264 void          FLA_F2C( fla_obj_free_f                    ) ( F_INT *obj, F_INT *IERROR );
00265 void          FLA_F2C( fla_obj_free_w_out_buff_f         ) ( F_INT *obj, F_INT *IERROR );
00266 F_INT         FLA_F2C( fla_obj_datatype_f                ) ( F_INT *obj );
00267 F_INT         FLA_F2C( fla_obj_datatype_size_f           ) ( F_INT *datatype );
00268 F_INT         FLA_F2C( fla_obj_elem_size_f               ) ( F_INT *obj );
00269 F_INT         FLA_F2C( fla_obj_length_f                  ) ( F_INT *obj );
00270 F_INT         FLA_F2C( fla_obj_width_f                   ) ( F_INT *obj );
00271 F_INT         FLA_F2C( fla_obj_vector_dim_f              ) ( F_INT *obj );
00272 F_INT         FLA_F2C( fla_obj_vector_inc_f              ) ( F_INT *obj );
00273 F_INT         FLA_F2C( fla_obj_min_dim_f                 ) ( F_INT *obj );
00274 F_INT         FLA_F2C( fla_obj_max_dim_f                 ) ( F_INT *obj );
00275 F_INT         FLA_F2C( fla_obj_ldim_f                    ) ( F_INT *obj );
00276 
00277 FLA_Error     FLA_Obj_free_task( FLA_Obj A, void* cntl );
00278 
00279 FLA_Error     FLA_Obj_create_ext_check( FLA_Datatype datatype, FLA_Elemtype elemtype, dim_t m, dim_t n, dim_t m_inner, dim_t n_inner, FLA_Obj *obj );
00280 FLA_Error     FLA_Obj_create_conf_to_check( FLA_Trans trans, FLA_Obj obj_old, FLA_Obj *obj );
00281 FLA_Error     FLA_Obj_create_without_buffer_check( FLA_Datatype datatype, dim_t m, dim_t n, FLA_Obj *obj );
00282 FLA_Error     FLA_Obj_constant_create_check( double const_real, FLA_Obj *obj );
00283 FLA_Error     FLA_Obj_complex_constant_create_check( double const_real, double const_imag, FLA_Obj *obj );
00284 FLA_Error     FLA_Obj_attach_buffer_check( void *buffer, dim_t ldim, FLA_Obj *obj );
00285 FLA_Error     FLA_Obj_free_check( FLA_Obj *obj );
00286 FLA_Error     FLA_Obj_free_without_buffer_check( FLA_Obj *obj );
00287 FLA_Error     FLA_Obj_elem_size_check( FLA_Obj obj );
00288 FLA_Error     FLA_Obj_buffer_check( FLA_Obj obj );
00289 
00290 
00291 
00292 
00293 // -----------------------------------------------------------------------------
00294 
00295 void          FLA_Param_map_to_blas_trans( FLA_Trans trans, void* blas_trans );
00296 void          FLA_Param_map_to_blas_uplo( FLA_Uplo uplo, void* blas_uplo );
00297 void          FLA_Param_map_to_blas_side( FLA_Uplo side, void* blas_side );
00298 void          FLA_Param_map_to_blas_diag( FLA_Diag diag, void* blas_diag );
00299 void          FLA_Param_map_to_lapack_direct( FLA_Direct direct, void* lapack_direct );
00300 void          FLA_Param_map_to_lapack_storev( FLA_Store storev, void* lapack_storev );
00301 
00302 
00303 
00304 // -----------------------------------------------------------------------------
00305 
00306 FLA_Error     FLA_Merge_2x2( FLA_Obj A11, FLA_Obj A12,
00307                              FLA_Obj A21, FLA_Obj A22,  FLA_Obj *A );
00308  
00309 FLA_Error     FLA_Merge_2x1( FLA_Obj AT,
00310                              FLA_Obj AB,  FLA_Obj *A );
00311 
00312 FLA_Error     FLA_Merge_1x2( FLA_Obj AL, FLA_Obj AR,  FLA_Obj *A );
00313 
00314 FLA_Error     FLA_Part_2x2( FLA_Obj A,  FLA_Obj *A11, FLA_Obj *A12,
00315                                         FLA_Obj *A21, FLA_Obj *A22,
00316                             dim_t  mb,  dim_t     nb, FLA_Quadrant quadrant );
00317 
00318 FLA_Error     FLA_Part_2x1 ( FLA_Obj A,  FLA_Obj *A1,
00319                                          FLA_Obj *A2,
00320                              dim_t  mb,  FLA_Side side );
00321 
00322 FLA_Error     FLA_Part_1x2( FLA_Obj A,  FLA_Obj *A1, FLA_Obj *A2,
00323                                         dim_t    nb, FLA_Side side );
00324  
00325 FLA_Error     FLA_Repart_2x2_to_3x3( FLA_Obj ATL, FLA_Obj ATR,  FLA_Obj *A00, FLA_Obj *A01, FLA_Obj *A02,
00326                                                                 FLA_Obj *A10, FLA_Obj *A11, FLA_Obj *A12,
00327                                      FLA_Obj ABL, FLA_Obj ABR,  FLA_Obj *A20, FLA_Obj *A21, FLA_Obj *A22,
00328                                      dim_t   mb,  dim_t    nb,  FLA_Quadrant quadrant );
00329 
00330 FLA_Error     FLA_Repart_2x1_to_3x1( FLA_Obj AT,  FLA_Obj *A0,
00331                                                   FLA_Obj *A1,
00332                                      FLA_Obj AB,  FLA_Obj *A2,
00333                                      dim_t   mb,  FLA_Side side );
00334 
00335 FLA_Error     FLA_Repart_1x2_to_1x3( FLA_Obj  AL,              FLA_Obj  AR,
00336                                      FLA_Obj *A0, FLA_Obj *A1, FLA_Obj *A2,
00337                                                   dim_t    nb, FLA_Side side );
00338 
00339 FLA_Error     FLA_Cont_with_3x3_to_2x2( FLA_Obj *ATL, FLA_Obj *ATR,  FLA_Obj A00, FLA_Obj A01, FLA_Obj A02,
00340                                                                      FLA_Obj A10, FLA_Obj A11, FLA_Obj A12,
00341                                         FLA_Obj *ABL, FLA_Obj *ABR,  FLA_Obj A20, FLA_Obj A21, FLA_Obj A22,
00342                                                                      FLA_Quadrant quadrant );
00343 
00344 FLA_Error     FLA_Cont_with_3x1_to_2x1( FLA_Obj *AT,  FLA_Obj A0,
00345                                                       FLA_Obj A1,
00346                                         FLA_Obj *AB,  FLA_Obj A2,
00347                                                       FLA_Side side );
00348 
00349 FLA_Error     FLA_Cont_with_1x3_to_1x2( FLA_Obj *AL,              FLA_Obj *AR,
00350                                         FLA_Obj  A0, FLA_Obj  A1, FLA_Obj  A2,
00351                                                                   FLA_Side side );
00352 
00353 
00354 
00355 
00356 
00357 FLA_Error     FLA_Part_2x2_check( FLA_Obj A,  FLA_Obj *A11, FLA_Obj *A12,
00358                                               FLA_Obj *A21, FLA_Obj *A22,
00359                                   dim_t  mb,  dim_t     nb, FLA_Quadrant quadrant );
00360 
00361 FLA_Error     FLA_Part_2x1_check( FLA_Obj A,  FLA_Obj *A1,
00362                                                FLA_Obj *A2,
00363                                    dim_t  mb,  FLA_Side side );
00364 
00365 FLA_Error     FLA_Part_1x2_check( FLA_Obj A,  FLA_Obj *A1, FLA_Obj *A2,
00366                                               dim_t    nb, FLA_Side side );
00367  
00368 FLA_Error     FLA_Repart_2x2_to_3x3_check( FLA_Obj ATL, FLA_Obj ATR,  FLA_Obj *A00, FLA_Obj *A01, FLA_Obj *A02,
00369                                                                       FLA_Obj *A10, FLA_Obj *A11, FLA_Obj *A12,
00370                                            FLA_Obj ABL, FLA_Obj ABR,  FLA_Obj *A20, FLA_Obj *A21, FLA_Obj *A22,
00371                                            dim_t   mb,  dim_t    nb,  FLA_Quadrant quadrant );
00372 
00373 FLA_Error     FLA_Repart_2x1_to_3x1_check( FLA_Obj AT,  FLA_Obj *A0,
00374                                                         FLA_Obj *A1,
00375                                            FLA_Obj AB,  FLA_Obj *A2,
00376                                            dim_t   mb,  FLA_Side side );
00377 
00378 FLA_Error     FLA_Repart_1x2_to_1x3_check( FLA_Obj  AL,              FLA_Obj  AR,
00379                                            FLA_Obj *A0, FLA_Obj *A1, FLA_Obj *A2,
00380                                                         dim_t    nb, FLA_Side side );
00381 
00382 FLA_Error     FLA_Cont_with_3x3_to_2x2_check( FLA_Obj *ATL, FLA_Obj *ATR,  FLA_Obj A00, FLA_Obj A01, FLA_Obj A02,
00383                                                                            FLA_Obj A10, FLA_Obj A11, FLA_Obj A12,
00384                                               FLA_Obj *ABL, FLA_Obj *ABR,  FLA_Obj A20, FLA_Obj A21, FLA_Obj A22,
00385                                                                            FLA_Quadrant quadrant );
00386 
00387 FLA_Error     FLA_Cont_with_3x1_to_2x1_check( FLA_Obj *AT,  FLA_Obj A0,
00388                                                             FLA_Obj A1,
00389                                               FLA_Obj *AB,  FLA_Obj A2,
00390                                                             FLA_Side side );
00391 
00392 FLA_Error     FLA_Cont_with_1x3_to_1x2_check( FLA_Obj *AL,              FLA_Obj *AR,
00393                                               FLA_Obj  A0, FLA_Obj  A1, FLA_Obj  A2,
00394                                                                         FLA_Side side );
00395 
00396 FLA_Error     FLA_Merge_2x2_check( FLA_Obj A11, FLA_Obj A12,
00397                                    FLA_Obj A21, FLA_Obj A22,  FLA_Obj *A );
00398  
00399 FLA_Error     FLA_Merge_2x1_check( FLA_Obj AT,
00400                                    FLA_Obj AB,  FLA_Obj *A );
00401 
00402 FLA_Error     FLA_Merge_1x2_check( FLA_Obj AL, FLA_Obj AR,  FLA_Obj *A );
00403 

Generated on Mon Jul 6 05:45:48 2009 for libflame by  doxygen 1.5.9