00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 FLA_Error FLASH_Obj_blocksizes_check( FLA_Obj H, dim_t* b_m, dim_t* b_n );
00036
00037 FLA_Error FLASH_Obj_create_helper_check( FLA_Bool without_buffer, FLA_Datatype datatype, dim_t m, dim_t n, dim_t depth, dim_t* b_m, dim_t* b_n, FLA_Obj* H );
00038 FLA_Error FLASH_Obj_create_hierarchy_check( FLA_Datatype datatype, dim_t m, dim_t n, dim_t depth, dim_t* elem_sizes_m, dim_t* elem_sizes_n, FLA_Obj flat_matrix, FLA_Obj* H, unsigned long id, dim_t depth_overall, dim_t* depth_sizes_m, dim_t* depth_sizes_n, dim_t* m_offsets, dim_t* n_offsets );
00039
00040 FLA_Error FLASH_Obj_create_conf_to_check( FLA_Trans trans, FLA_Obj H_cur, FLA_Obj* H_new );
00041
00042 FLA_Error FLASH_Obj_create_hier_conf_to_flat_check( FLA_Trans trans, FLA_Obj F, dim_t depth, dim_t* blocksizes, FLA_Obj* H );
00043 FLA_Error FLASH_Obj_create_hier_conf_to_flat_ext_check( FLA_Trans trans, FLA_Obj F, dim_t depth, dim_t* b_m, dim_t* b_n, FLA_Obj* H );
00044 FLA_Error FLASH_Obj_create_flat_conf_to_hier_check( FLA_Trans trans, FLA_Obj H, FLA_Obj* F );
00045 FLA_Error FLASH_Obj_create_hier_copy_of_flat_check( FLA_Obj F, dim_t depth, dim_t* blocksizes, FLA_Obj* H );
00046 FLA_Error FLASH_Obj_create_hier_copy_of_flat_ext_check( FLA_Obj F, dim_t depth, dim_t* b_m, dim_t* b_n, FLA_Obj* H );
00047 FLA_Error FLASH_Obj_create_flat_copy_of_hier_check( FLA_Obj H, FLA_Obj* F );
00048
00049 FLA_Error FLASH_Obj_free_check( FLA_Obj* H );
00050 FLA_Error FLASH_Obj_free_without_buffer_check( FLA_Obj* H );
00051 FLA_Error FLASH_Obj_free_hierarchy_check( FLA_Obj* H );
00052
00053 FLA_Error FLASH_Obj_attach_buffer_check( void *buffer, dim_t ldim, FLA_Obj* H );
00054 FLA_Error FLASH_Obj_attach_buffer_hierarchy_check( FLA_Obj F, FLA_Obj* H );
00055
00056
00057
00058 FLA_Error FLASH_Axpy_submatrix_to_global( FLA_Obj alpha, dim_t m, dim_t n, void* buffer, dim_t ldim, dim_t i, dim_t j, FLA_Obj H );
00059 FLA_Error FLASH_Axpy_global_to_submatrix( FLA_Obj alpha, dim_t i, dim_t j, FLA_Obj H, dim_t m, dim_t n, void* buffer, dim_t ldim );
00060 FLA_Error FLASH_Axpy_subobject_to_global( FLA_Obj alpha, FLA_Obj F, dim_t i, dim_t j, FLA_Obj H );
00061 FLA_Error FLASH_Axpy_global_to_subobject( FLA_Obj alpha, dim_t i, dim_t j, FLA_Obj H, FLA_Obj F );
00062
00063 FLA_Error FLASH_Axpy_hierarchy( int direction, FLA_Obj alpha, FLA_Obj F, dim_t i, dim_t j, FLA_Obj* H );
00064 FLA_Error FLASH_Axpy_hierarchy_r( int direction, FLA_Obj alpha, FLA_Obj F, dim_t i, dim_t j, FLA_Obj* H, FLASH_Obj_queue* queue );
00065
00066
00067
00068 FLA_Error FLASH_Copy_submatrix_to_global( dim_t m, dim_t n, void* buffer, dim_t ldim, dim_t i, dim_t j, FLA_Obj H );
00069 FLA_Error FLASH_Copy_global_to_submatrix( dim_t i, dim_t j, FLA_Obj H, dim_t m, dim_t n, void* buffer, dim_t ldim );
00070 FLA_Error FLASH_Copy_subobject_to_global( FLA_Obj F, dim_t i, dim_t j, FLA_Obj H );
00071 FLA_Error FLASH_Copy_global_to_subobject( dim_t i, dim_t j, FLA_Obj H, FLA_Obj F );
00072
00073 FLA_Error FLASH_Copy_hierarchy( int direction, FLA_Obj F, dim_t i, dim_t j, FLA_Obj* H );
00074 FLA_Error FLASH_Copy_hierarchy_r( int direction, FLA_Obj F, dim_t i, dim_t j, FLA_Obj* H, FLASH_Obj_queue* queue );
00075
00076
00077
00078 FLA_Datatype FLASH_Obj_datatype( FLA_Obj H );
00079 dim_t FLASH_Obj_scalar_length( FLA_Obj H );
00080 dim_t FLASH_Obj_scalar_width( FLA_Obj H );
00081 dim_t FLASH_Obj_depth( FLA_Obj H );
00082 dim_t FLASH_Obj_blocksizes( FLA_Obj H, dim_t* b_m, dim_t* b_n );
00083
00084 FLA_Error FLASH_Obj_create( FLA_Datatype datatype, dim_t m, dim_t n, dim_t depth, dim_t* blocksizes, FLA_Obj* H );
00085 FLA_Error FLASH_Obj_create_ext( FLA_Datatype datatype, dim_t m, dim_t n, dim_t depth, dim_t* b_m, dim_t* b_n, FLA_Obj* H );
00086 FLA_Error FLASH_Obj_create_without_buffer( FLA_Datatype datatype, dim_t m, dim_t n, dim_t depth, dim_t* blocksizes, FLA_Obj* H );
00087 FLA_Error FLASH_Obj_create_without_buffer_ext( FLA_Datatype datatype, dim_t m, dim_t n, dim_t depth, dim_t* b_m, dim_t* b_n, FLA_Obj* H );
00088
00089 FLA_Error FLASH_Obj_create_helper( FLA_Bool without_buffer, FLA_Datatype datatype, dim_t m, dim_t n, dim_t depth, dim_t* b_m, dim_t* b_n, FLA_Obj* H );
00090 FLA_Error FLASH_Obj_create_hierarchy( FLA_Datatype datatype, dim_t m, dim_t n, dim_t depth, dim_t* elem_sizes_m, dim_t* elem_sizes_n, FLA_Obj flat_matrix, FLA_Obj* H, unsigned long id, dim_t depth_overall, dim_t* depth_sizes_m, dim_t* depth_sizes_n, dim_t* m_offsets, dim_t* n_offsets );
00091
00092 FLA_Error FLASH_Obj_create_conf_to( FLA_Trans trans, FLA_Obj H_cur, FLA_Obj* H_new );
00093 FLA_Error FLASH_Obj_create_hier_conf_to_flat( FLA_Trans trans, FLA_Obj F, dim_t depth, dim_t* blocksizes, FLA_Obj* H );
00094 FLA_Error FLASH_Obj_create_hier_conf_to_flat_ext( FLA_Trans trans, FLA_Obj F, dim_t depth, dim_t* b_m, dim_t* b_n, FLA_Obj* H );
00095 FLA_Error FLASH_Obj_create_flat_conf_to_hier( FLA_Trans trans, FLA_Obj H, FLA_Obj* F );
00096 FLA_Error FLASH_Obj_create_hier_copy_of_flat( FLA_Obj F, dim_t depth, dim_t* blocksizes, FLA_Obj* H );
00097 FLA_Error FLASH_Obj_create_hier_copy_of_flat_ext( FLA_Obj F, dim_t depth, dim_t* b_m, dim_t* b_n, FLA_Obj* H );
00098 FLA_Error FLASH_Obj_create_flat_copy_of_hier( FLA_Obj H, FLA_Obj* F );
00099
00100 void FLASH_Obj_free( FLA_Obj* H );
00101 void FLASH_Obj_free_hierarchy( FLA_Obj* H );
00102 void FLASH_Obj_free_without_buffer( FLA_Obj* H );
00103
00104 FLA_Error FLASH_Obj_attach_buffer( void* buffer, dim_t ldim, FLA_Obj* H );
00105 FLA_Error FLASH_Obj_attach_buffer_hierarchy( FLA_Obj F, FLA_Obj* H );
00106
00107 FLA_Error FLASH_Obj_flatten( FLA_Obj H, FLA_Obj F );
00108 FLA_Error FLASH_Obj_hierarchify( FLA_Obj F, FLA_Obj H );
00109
00110 void* FLASH_Obj_extract_buffer( FLA_Obj H );
00111
00112 FLA_Error FLASH_Obj_show( char* header, FLA_Obj H, char* elem_format, char* footer );
00113
00114 void FLASH_print_struct( FLA_Obj H );
00115 void FLASH_print_struct_helper( FLA_Obj H, int indent );
00116
00117
00118
00119 void FLASH_Obj_exec( void* func, FLASH_Obj_queue* queue );
00120 void* FLASH_Obj_exec_parallel( void* arg );
00121 void FLASH_Obj_push( int direction, FLA_Obj alpha, FLA_Obj F, FLA_Obj H, FLASH_Obj_queue* queue );
00122