1 #ifndef DYNAMITEgenestretch6HEADERFILE 2 #define DYNAMITEgenestretch6HEADERFILE 3 #ifdef _cplusplus 4 extern "C" { 5 #endif 6 #include "dyna.h" 7 #include "geneparser4.h" 8 #include "genewisemodel.h" 9 #include "genewisemodeldb.h" 10 #include "genestats.h" 11 12 struct Wise2_GeneStretch6 { 13 int dynamite_hard_link; 14 #ifdef PTHREAD 15 pthread_mutex_t dynamite_mutex; 16 #endif 17 BaseMatrix * basematrix; 18 ShatterMatrix * shatter; 19 int leni; 20 int lenj; 21 GeneWiseScore* query; 22 ComplexSequence* target; 23 GeneParser4Score * gp; 24 GeneralGeneModelScore * general_model; 25 } ; 26 /* GeneStretch6 defined */ 27 #ifndef DYNAMITE_DEFINED_GeneStretch6 28 typedef struct Wise2_GeneStretch6 Wise2_GeneStretch6; 29 #define GeneStretch6 Wise2_GeneStretch6 30 #define DYNAMITE_DEFINED_GeneStretch6 31 #endif 32 33 34 #ifdef PTHREAD 35 struct thread_pool_holder_GeneStretch6 { 36 GeneWiseScore* query; /* Query object placeholder */ 37 GeneWiseDB* querydb;/* Query database object */ 38 boolean query_init; 39 ComplexSequence* target;/* Target object placeholder */ 40 GenomicDB* targetdb;/* Target database object */ 41 boolean target_init; 42 GeneParser4Score * gp; 43 GeneralGeneModelScore * general_model; 44 pthread_mutex_t input_lock; 45 pthread_mutex_t output_lock; 46 Hscore * out; 47 pthread_t * pool; 48 int number_of_threads; 49 boolean search_has_ended; 50 DBSearchImpl * dbsi; 51 } ; 52 #endif /* PTHREAD */ 53 struct Wise2_GeneStretch6_access_func_holder { 54 int dynamite_hard_link; 55 #ifdef PTHREAD 56 pthread_mutex_t dynamite_mutex; 57 #endif 58 int (*access_main)(GeneStretch6*,int,int,int); 59 int (*access_special)(GeneStretch6*,int,int,int); 60 } ; 61 /* GeneStretch6_access_func_holder defined */ 62 #ifndef DYNAMITE_DEFINED_GeneStretch6_access_func_holder 63 typedef struct Wise2_GeneStretch6_access_func_holder Wise2_GeneStretch6_access_func_holder; 64 #define GeneStretch6_access_func_holder Wise2_GeneStretch6_access_func_holder 65 #define DYNAMITE_DEFINED_GeneStretch6_access_func_holder 66 #endif 67 68 69 70 71 /***************************************************/ 72 /* Callable functions */ 73 /* These are the functions you are expected to use */ 74 /***************************************************/ 75 76 77 78 /* Function: PackAln_read_Shatter_GeneStretch6(mat) 79 * 80 * Descrip: Reads off PackAln from shatter matrix structure 81 * 82 * 83 * Arg: mat [UNKN ] Undocumented argument [GeneStretch6 *] 84 * 85 * Return [UNKN ] Undocumented return value [PackAln *] 86 * 87 */ 88 PackAln * Wise2_PackAln_read_Shatter_GeneStretch6(GeneStretch6 * mat); 89 #define PackAln_read_Shatter_GeneStretch6 Wise2_PackAln_read_Shatter_GeneStretch6 90 91 92 /* Function: calculate_shatter_GeneStretch6(mat,dpenv) 93 * 94 * Descrip: This function calculates the GeneStretch6 matrix when in shatter mode 95 * 96 * 97 * Arg: mat [UNKN ] (null) [GeneStretch6 *] 98 * Arg: dpenv [UNKN ] Undocumented argument [DPEnvelope *] 99 * 100 * Return [UNKN ] Undocumented return value [boolean] 101 * 102 */ 103 boolean Wise2_calculate_shatter_GeneStretch6(GeneStretch6 * mat,DPEnvelope * dpenv); 104 #define calculate_shatter_GeneStretch6 Wise2_calculate_shatter_GeneStretch6 105 106 107 /* Function: search_GeneStretch6(dbsi,out,querydb,targetdb,gp,general_model) 108 * 109 * Descrip: This function makes a database search of GeneStretch6 110 * It uses the dbsi structure to choose which implementation 111 * to use of the database searching. This way at run time you 112 * can switch between single threaded/multi-threaded or hardware 113 * 114 * 115 * Arg: dbsi [UNKN ] Undocumented argument [DBSearchImpl *] 116 * Arg: out [UNKN ] Undocumented argument [Hscore *] 117 * Arg: querydb [UNKN ] Undocumented argument [GeneWiseDB*] 118 * Arg: targetdb [UNKN ] Undocumented argument [GenomicDB*] 119 * Arg: gp [UNKN ] Undocumented argument [GeneParser4Score *] 120 * Arg: general_model [UNKN ] Undocumented argument [GeneralGeneModelScore *] 121 * 122 * Return [UNKN ] Undocumented return value [Search_Return_Type] 123 * 124 */ 125 Search_Return_Type Wise2_search_GeneStretch6(DBSearchImpl * dbsi,Hscore * out,GeneWiseDB* querydb,GenomicDB* targetdb ,GeneParser4Score * gp,GeneralGeneModelScore * general_model); 126 #define search_GeneStretch6 Wise2_search_GeneStretch6 127 128 129 /* Function: serial_search_GeneStretch6(out,querydb,targetdb,gp,general_model) 130 * 131 * Descrip: This function makes a database search of GeneStretch6 132 * It is a single processor implementation 133 * 134 * 135 * Arg: out [UNKN ] Undocumented argument [Hscore *] 136 * Arg: querydb [UNKN ] Undocumented argument [GeneWiseDB*] 137 * Arg: targetdb [UNKN ] Undocumented argument [GenomicDB*] 138 * Arg: gp [UNKN ] Undocumented argument [GeneParser4Score *] 139 * Arg: general_model [UNKN ] Undocumented argument [GeneralGeneModelScore *] 140 * 141 * Return [UNKN ] Undocumented return value [Search_Return_Type] 142 * 143 */ 144 Search_Return_Type Wise2_serial_search_GeneStretch6(Hscore * out,GeneWiseDB* querydb,GenomicDB* targetdb ,GeneParser4Score * gp,GeneralGeneModelScore * general_model); 145 #define serial_search_GeneStretch6 Wise2_serial_search_GeneStretch6 146 147 148 /* Function: PackAln_bestmemory_GeneStretch6(query,target,gp,general_model,dpenv,dpri) 149 * 150 * Descrip: This function chooses the best memory set-up for the alignment 151 * using calls to basematrix, and then implements either a large 152 * or small memory model. 153 * 154 * It is the best function to use if you just want an alignment 155 * 156 * If you want a label alignment, you will need 157 * /convert_PackAln_to_AlnBlock_GeneStretch6 158 * 159 * 160 * Arg: query [UNKN ] query data structure [GeneWiseScore*] 161 * Arg: target [UNKN ] target data structure [ComplexSequence*] 162 * Arg: gp [UNKN ] Resource [GeneParser4Score *] 163 * Arg: general_model [UNKN ] Resource [GeneralGeneModelScore *] 164 * Arg: dpenv [UNKN ] Undocumented argument [DPEnvelope *] 165 * Arg: dpri [UNKN ] Undocumented argument [DPRunImpl *] 166 * 167 * Return [UNKN ] Undocumented return value [PackAln *] 168 * 169 */ 170 PackAln * Wise2_PackAln_bestmemory_GeneStretch6(GeneWiseScore* query,ComplexSequence* target ,GeneParser4Score * gp,GeneralGeneModelScore * general_model,DPEnvelope * dpenv,DPRunImpl * dpri); 171 #define PackAln_bestmemory_GeneStretch6 Wise2_PackAln_bestmemory_GeneStretch6 172 173 174 /* Function: allocate_Expl_GeneStretch6(query,target,gp,general_model,dpri) 175 * 176 * Descrip: This function allocates the GeneStretch6 structure 177 * and the basematrix area for explicit memory implementations 178 * It calls /allocate_GeneStretch6_only 179 * 180 * 181 * Arg: query [UNKN ] query data structure [GeneWiseScore*] 182 * Arg: target [UNKN ] target data structure [ComplexSequence*] 183 * Arg: gp [UNKN ] Resource [GeneParser4Score *] 184 * Arg: general_model [UNKN ] Resource [GeneralGeneModelScore *] 185 * Arg: dpri [UNKN ] Undocumented argument [DPRunImpl *] 186 * 187 * Return [UNKN ] Undocumented return value [GeneStretch6 *] 188 * 189 */ 190 GeneStretch6 * Wise2_allocate_Expl_GeneStretch6(GeneWiseScore* query,ComplexSequence* target ,GeneParser4Score * gp,GeneralGeneModelScore * general_model,DPRunImpl * dpri); 191 #define allocate_Expl_GeneStretch6 Wise2_allocate_Expl_GeneStretch6 192 193 194 /* Function: recalculate_PackAln_GeneStretch6(pal,mat) 195 * 196 * Descrip: This function recalculates the PackAln structure produced by GeneStretch6 197 * For example, in linear space methods this is used to score them 198 * 199 * 200 * Arg: pal [UNKN ] Undocumented argument [PackAln *] 201 * Arg: mat [UNKN ] Undocumented argument [GeneStretch6 *] 202 * 203 */ 204 void Wise2_recalculate_PackAln_GeneStretch6(PackAln * pal,GeneStretch6 * mat); 205 #define recalculate_PackAln_GeneStretch6 Wise2_recalculate_PackAln_GeneStretch6 206 207 208 /* Function: allocate_Small_GeneStretch6(query,target,gp,general_model) 209 * 210 * Descrip: This function allocates the GeneStretch6 structure 211 * and the basematrix area for a small memory implementations 212 * It calls /allocate_GeneStretch6_only 213 * 214 * 215 * Arg: query [UNKN ] query data structure [GeneWiseScore*] 216 * Arg: target [UNKN ] target data structure [ComplexSequence*] 217 * Arg: gp [UNKN ] Resource [GeneParser4Score *] 218 * Arg: general_model [UNKN ] Resource [GeneralGeneModelScore *] 219 * 220 * Return [UNKN ] Undocumented return value [GeneStretch6 *] 221 * 222 */ 223 GeneStretch6 * Wise2_allocate_Small_GeneStretch6(GeneWiseScore* query,ComplexSequence* target ,GeneParser4Score * gp,GeneralGeneModelScore * general_model); 224 #define allocate_Small_GeneStretch6 Wise2_allocate_Small_GeneStretch6 225 226 227 /* Function: PackAln_calculate_Small_GeneStretch6(mat,dpenv) 228 * 229 * Descrip: This function calculates an alignment for GeneStretch6 structure in linear space 230 * If you want only the start/end points 231 * use /AlnRangeSet_calculate_Small_GeneStretch6 232 * 233 * The function basically 234 * finds start/end points 235 * foreach start/end point 236 * calls /full_dc_GeneStretch6 237 * 238 * 239 * Arg: mat [UNKN ] Undocumented argument [GeneStretch6 *] 240 * Arg: dpenv [UNKN ] Undocumented argument [DPEnvelope *] 241 * 242 * Return [UNKN ] Undocumented return value [PackAln *] 243 * 244 */ 245 PackAln * Wise2_PackAln_calculate_Small_GeneStretch6(GeneStretch6 * mat,DPEnvelope * dpenv); 246 #define PackAln_calculate_Small_GeneStretch6 Wise2_PackAln_calculate_Small_GeneStretch6 247 248 249 /* Function: AlnRangeSet_calculate_Small_GeneStretch6(mat) 250 * 251 * Descrip: This function calculates an alignment for GeneStretch6 structure in linear space 252 * If you want the full alignment, use /PackAln_calculate_Small_GeneStretch6 253 * If you have already got the full alignment, but want the range set, use /AlnRangeSet_from_PackAln_GeneStretch6 254 * If you have got the small matrix but not the alignment, use /AlnRangeSet_from_GeneStretch6 255 * 256 * 257 * Arg: mat [UNKN ] Undocumented argument [GeneStretch6 *] 258 * 259 * Return [UNKN ] Undocumented return value [AlnRangeSet *] 260 * 261 */ 262 AlnRangeSet * Wise2_AlnRangeSet_calculate_Small_GeneStretch6(GeneStretch6 * mat); 263 #define AlnRangeSet_calculate_Small_GeneStretch6 Wise2_AlnRangeSet_calculate_Small_GeneStretch6 264 265 266 /* Function: AlnRangeSet_from_GeneStretch6(mat) 267 * 268 * Descrip: This function reads off a start/end structure 269 * for GeneStretch6 structure in linear space 270 * If you want the full alignment use 271 * /PackAln_calculate_Small_GeneStretch6 272 * If you have not calculated the matrix use 273 * /AlnRange_calculate_Small_GeneStretch6 274 * 275 * 276 * Arg: mat [UNKN ] Undocumented argument [GeneStretch6 *] 277 * 278 * Return [UNKN ] Undocumented return value [AlnRangeSet *] 279 * 280 */ 281 AlnRangeSet * Wise2_AlnRangeSet_from_GeneStretch6(GeneStretch6 * mat); 282 #define AlnRangeSet_from_GeneStretch6 Wise2_AlnRangeSet_from_GeneStretch6 283 284 285 /* Function: convert_PackAln_to_AlnBlock_GeneStretch6(pal) 286 * 287 * Descrip: Converts a path alignment to a label alignment 288 * The label alignment is probably much more useful than the path 289 * 290 * 291 * Arg: pal [UNKN ] Undocumented argument [PackAln *] 292 * 293 * Return [UNKN ] Undocumented return value [AlnBlock *] 294 * 295 */ 296 AlnBlock * Wise2_convert_PackAln_to_AlnBlock_GeneStretch6(PackAln * pal); 297 #define convert_PackAln_to_AlnBlock_GeneStretch6 Wise2_convert_PackAln_to_AlnBlock_GeneStretch6 298 299 300 /* Function: PackAln_read_Expl_GeneStretch6(mat) 301 * 302 * Descrip: Reads off PackAln from explicit matrix structure 303 * 304 * 305 * Arg: mat [UNKN ] Undocumented argument [GeneStretch6 *] 306 * 307 * Return [UNKN ] Undocumented return value [PackAln *] 308 * 309 */ 310 PackAln * Wise2_PackAln_read_Expl_GeneStretch6(GeneStretch6 * mat); 311 #define PackAln_read_Expl_GeneStretch6 Wise2_PackAln_read_Expl_GeneStretch6 312 313 314 /* Function: PackAln_read_generic_GeneStretch6(mat,h) 315 * 316 * Descrip: Reads off PackAln from explicit matrix structure 317 * 318 * 319 * Arg: mat [UNKN ] Undocumented argument [GeneStretch6 *] 320 * Arg: h [UNKN ] Undocumented argument [GeneStretch6_access_func_holder] 321 * 322 * Return [UNKN ] Undocumented return value [PackAln *] 323 * 324 */ 325 PackAln * Wise2_PackAln_read_generic_GeneStretch6(GeneStretch6 * mat,GeneStretch6_access_func_holder h); 326 #define PackAln_read_generic_GeneStretch6 Wise2_PackAln_read_generic_GeneStretch6 327 328 329 /* Function: calculate_GeneStretch6(mat) 330 * 331 * Descrip: This function calculates the GeneStretch6 matrix when in explicit mode 332 * To allocate the matrix use /allocate_Expl_GeneStretch6 333 * 334 * 335 * Arg: mat [UNKN ] GeneStretch6 which contains explicit basematrix memory [GeneStretch6 *] 336 * 337 * Return [UNKN ] Undocumented return value [boolean] 338 * 339 */ 340 boolean Wise2_calculate_GeneStretch6(GeneStretch6 * mat); 341 #define calculate_GeneStretch6 Wise2_calculate_GeneStretch6 342 343 344 /* Function: calculate_dpenv_GeneStretch6(mat,dpenv) 345 * 346 * Descrip: This function calculates the GeneStretch6 matrix when in explicit mode, subject to the envelope 347 * 348 * 349 * Arg: mat [UNKN ] GeneStretch6 which contains explicit basematrix memory [GeneStretch6 *] 350 * Arg: dpenv [UNKN ] Undocumented argument [DPEnvelope *] 351 * 352 * Return [UNKN ] Undocumented return value [boolean] 353 * 354 */ 355 boolean Wise2_calculate_dpenv_GeneStretch6(GeneStretch6 * mat,DPEnvelope * dpenv); 356 #define calculate_dpenv_GeneStretch6 Wise2_calculate_dpenv_GeneStretch6 357 358 359 /* Function: GeneStretch6_alloc(void) 360 * 361 * Descrip: Allocates structure: assigns defaults if given 362 * 363 * 364 * 365 * Return [UNKN ] Undocumented return value [GeneStretch6 *] 366 * 367 */ 368 GeneStretch6 * Wise2_GeneStretch6_alloc(void); 369 #define GeneStretch6_alloc Wise2_GeneStretch6_alloc 370 371 372 /* Function: free_GeneStretch6(obj) 373 * 374 * Descrip: Free Function: removes the memory held by obj 375 * Will chain up to owned members and clear all lists 376 * 377 * 378 * Arg: obj [UNKN ] Object that is free'd [GeneStretch6 *] 379 * 380 * Return [UNKN ] Undocumented return value [GeneStretch6 *] 381 * 382 */ 383 GeneStretch6 * Wise2_free_GeneStretch6(GeneStretch6 * obj); 384 #define free_GeneStretch6 Wise2_free_GeneStretch6 385 386 387 /* Unplaced functions */ 388 /* There has been no indication of the use of these functions */ 389 390 391 /***************************************************/ 392 /* Internal functions */ 393 /* you are not expected to have to call these */ 394 /***************************************************/ 395 int Wise2_GeneStretch6_shatter_access_main(GeneStretch6 * mat,int i,int j,int state); 396 #define GeneStretch6_shatter_access_main Wise2_GeneStretch6_shatter_access_main 397 int Wise2_GeneStretch6_shatter_access_special(GeneStretch6 * mat,int i,int j,int state); 398 #define GeneStretch6_shatter_access_special Wise2_GeneStretch6_shatter_access_special 399 void * Wise2_thread_loop_GeneStretch6(void * ptr); 400 #define thread_loop_GeneStretch6 Wise2_thread_loop_GeneStretch6 401 int Wise2_score_only_GeneStretch6(GeneWiseScore* query,ComplexSequence* target ,GeneParser4Score * gp,GeneralGeneModelScore * general_model); 402 #define score_only_GeneStretch6 Wise2_score_only_GeneStretch6 403 GeneStretch6 * Wise2_allocate_GeneStretch6_only(GeneWiseScore* query,ComplexSequence* target ,GeneParser4Score * gp,GeneralGeneModelScore * general_model); 404 #define allocate_GeneStretch6_only Wise2_allocate_GeneStretch6_only 405 void Wise2_init_GeneStretch6(GeneStretch6 * mat); 406 #define init_GeneStretch6 Wise2_init_GeneStretch6 407 AlnRange * Wise2_AlnRange_build_GeneStretch6(GeneStretch6 * mat,int stopj,int stopspecstate,int * startj,int * startspecstate); 408 #define AlnRange_build_GeneStretch6 Wise2_AlnRange_build_GeneStretch6 409 boolean Wise2_read_hidden_GeneStretch6(GeneStretch6 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,PackAln * out); 410 #define read_hidden_GeneStretch6 Wise2_read_hidden_GeneStretch6 411 int Wise2_max_hidden_GeneStretch6(GeneStretch6 * mat,int hiddenj,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore); 412 #define max_hidden_GeneStretch6 Wise2_max_hidden_GeneStretch6 413 boolean Wise2_read_special_strip_GeneStretch6(GeneStretch6 * mat,int stopi,int stopj,int stopstate,int * startj,int * startstate,PackAln * out); 414 #define read_special_strip_GeneStretch6 Wise2_read_special_strip_GeneStretch6 415 int Wise2_max_special_strip_GeneStretch6(GeneStretch6 * mat,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore); 416 #define max_special_strip_GeneStretch6 Wise2_max_special_strip_GeneStretch6 417 int Wise2_max_matrix_to_special_GeneStretch6(GeneStretch6 * mat,int i,int j,int state,int cscore,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore); 418 #define max_matrix_to_special_GeneStretch6 Wise2_max_matrix_to_special_GeneStretch6 419 void Wise2_calculate_hidden_GeneStretch6(GeneStretch6 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,DPEnvelope * dpenv); 420 #define calculate_hidden_GeneStretch6 Wise2_calculate_hidden_GeneStretch6 421 void Wise2_init_hidden_GeneStretch6(GeneStretch6 * mat,int starti,int startj,int stopi,int stopj); 422 #define init_hidden_GeneStretch6 Wise2_init_hidden_GeneStretch6 423 boolean Wise2_full_dc_GeneStretch6(GeneStretch6 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,PackAln * out,int * donej,int totalj,DPEnvelope * dpenv); 424 #define full_dc_GeneStretch6 Wise2_full_dc_GeneStretch6 425 boolean Wise2_do_dc_single_pass_GeneStretch6(GeneStretch6 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,DPEnvelope * dpenv,int perc_done); 426 #define do_dc_single_pass_GeneStretch6 Wise2_do_dc_single_pass_GeneStretch6 427 void Wise2_push_dc_at_merge_GeneStretch6(GeneStretch6 * mat,int starti,int stopi,int startj,int * stopj,DPEnvelope * dpenv); 428 #define push_dc_at_merge_GeneStretch6 Wise2_push_dc_at_merge_GeneStretch6 429 void Wise2_follow_on_dc_GeneStretch6(GeneStretch6 * mat,int starti,int stopi,int startj,int stopj,DPEnvelope * dpenv,int perc_done); 430 #define follow_on_dc_GeneStretch6 Wise2_follow_on_dc_GeneStretch6 431 void Wise2_run_up_dc_GeneStretch6(GeneStretch6 * mat,int starti,int stopi,int startj,int stopj,DPEnvelope * dpenv,int perc_done); 432 #define run_up_dc_GeneStretch6 Wise2_run_up_dc_GeneStretch6 433 void Wise2_init_dc_GeneStretch6(GeneStretch6 * mat); 434 #define init_dc_GeneStretch6 Wise2_init_dc_GeneStretch6 435 int Wise2_start_end_find_end_GeneStretch6(GeneStretch6 * mat,int * endj); 436 #define start_end_find_end_GeneStretch6 Wise2_start_end_find_end_GeneStretch6 437 boolean Wise2_dc_optimised_start_end_calc_GeneStretch6(GeneStretch6 *mat,DPEnvelope * dpenv); 438 #define dc_optimised_start_end_calc_GeneStretch6 Wise2_dc_optimised_start_end_calc_GeneStretch6 439 void Wise2_init_start_end_linear_GeneStretch6(GeneStretch6 * mat); 440 #define init_start_end_linear_GeneStretch6 Wise2_init_start_end_linear_GeneStretch6 441 AlnConvertSet * Wise2_AlnConvertSet_GeneStretch6(void); 442 #define AlnConvertSet_GeneStretch6 Wise2_AlnConvertSet_GeneStretch6 443 int Wise2_GeneStretch6_explicit_access_main(GeneStretch6 * mat,int i,int j,int state); 444 #define GeneStretch6_explicit_access_main Wise2_GeneStretch6_explicit_access_main 445 int Wise2_GeneStretch6_explicit_access_special(GeneStretch6 * mat,int i,int j,int state); 446 #define GeneStretch6_explicit_access_special Wise2_GeneStretch6_explicit_access_special 447 int Wise2_find_end_GeneStretch6(GeneStretch6 * mat,int * ri,int * rj,int * state,boolean * isspecial,GeneStretch6_access_func_holder h); 448 #define find_end_GeneStretch6 Wise2_find_end_GeneStretch6 449 void Wise2_GeneStretch6_debug_show_matrix(GeneStretch6 * mat,int starti,int stopi,int startj,int stopj,FILE * ofp); 450 #define GeneStretch6_debug_show_matrix Wise2_GeneStretch6_debug_show_matrix 451 int Wise2_max_calc_GeneStretch6(GeneStretch6 * mat,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore,GeneStretch6_access_func_holder h); 452 #define max_calc_GeneStretch6 Wise2_max_calc_GeneStretch6 453 int Wise2_max_calc_special_GeneStretch6(GeneStretch6 * mat,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore,GeneStretch6_access_func_holder h); 454 #define max_calc_special_GeneStretch6 Wise2_max_calc_special_GeneStretch6 455 456 #ifdef _cplusplus 457 } 458 #endif 459 460 #endif 461