1 #ifndef DYNAMITEsywise20HEADERFILE
2 #define DYNAMITEsywise20HEADERFILE
3 #ifdef _cplusplus
4 extern "C" {
5 #endif
6 #include "dyna.h"
7 #include "pairbaseseq.h"
8 #include "pairbase.h"
9 #include "syexonmodel.h"
10 
11 
12 struct Wise2_SyWise20 {
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     SyExonScore* exonmodel;
22     ComplexSequence* seq;
23     PairBaseCodonModelScore* codon;
24     PairBaseModelScore* nonc;
25     PairBaseCodonModelScore* start;
26     PairBaseCodonModelScore* stop;
27     Score intron_open;
28     Score gene_open;
29     Score nonc_cost;
30     } ;
31 /* SyWise20 defined */
32 #ifndef DYNAMITE_DEFINED_SyWise20
33 typedef struct Wise2_SyWise20 Wise2_SyWise20;
34 #define SyWise20 Wise2_SyWise20
35 #define DYNAMITE_DEFINED_SyWise20
36 #endif
37 
38 
39 #ifdef PTHREAD
40 struct thread_pool_holder_SyWise20 {
41     SyExonScore* exonmodel; /* Static query data: never free'd */
42     ComplexSequence* seq;   /* Static target data: never free'd */
43     PairBaseCodonModelScore* codon;
44     PairBaseModelScore* nonc;
45     PairBaseCodonModelScore* start;
46     PairBaseCodonModelScore* stop;
47     Score intron_open;
48     Score gene_open;
49     Score nonc_cost;
50     pthread_mutex_t input_lock;
51     pthread_mutex_t output_lock;
52     Hscore * out;
53     pthread_t * pool;
54     int number_of_threads;
55     boolean search_has_ended;
56     DBSearchImpl * dbsi;
57     } ;
58 #endif /* PTHREAD */
59 struct Wise2_SyWise20_access_func_holder {
60     int dynamite_hard_link;
61 #ifdef PTHREAD
62     pthread_mutex_t dynamite_mutex;
63 #endif
64     int (*access_main)(SyWise20*,int,int,int);
65     int (*access_special)(SyWise20*,int,int,int);
66     } ;
67 /* SyWise20_access_func_holder defined */
68 #ifndef DYNAMITE_DEFINED_SyWise20_access_func_holder
69 typedef struct Wise2_SyWise20_access_func_holder Wise2_SyWise20_access_func_holder;
70 #define SyWise20_access_func_holder Wise2_SyWise20_access_func_holder
71 #define DYNAMITE_DEFINED_SyWise20_access_func_holder
72 #endif
73 
74 
75 
76 
77     /***************************************************/
78     /* Callable functions                              */
79     /* These are the functions you are expected to use */
80     /***************************************************/
81 
82 
83 
84 /* Function:  PackAln_read_Shatter_SyWise20(mat)
85  *
86  * Descrip:    Reads off PackAln from shatter matrix structure
87  *
88  *
89  * Arg:        mat [UNKN ] Undocumented argument [SyWise20 *]
90  *
91  * Return [UNKN ]  Undocumented return value [PackAln *]
92  *
93  */
94 PackAln * Wise2_PackAln_read_Shatter_SyWise20(SyWise20 * mat);
95 #define PackAln_read_Shatter_SyWise20 Wise2_PackAln_read_Shatter_SyWise20
96 
97 
98 /* Function:  calculate_shatter_SyWise20(mat,dpenv)
99  *
100  * Descrip:    This function calculates the SyWise20 matrix when in shatter mode
101  *
102  *
103  * Arg:          mat [UNKN ] (null) [SyWise20 *]
104  * Arg:        dpenv [UNKN ] Undocumented argument [DPEnvelope *]
105  *
106  * Return [UNKN ]  Undocumented return value [boolean]
107  *
108  */
109 boolean Wise2_calculate_shatter_SyWise20(SyWise20 * mat,DPEnvelope * dpenv);
110 #define calculate_shatter_SyWise20 Wise2_calculate_shatter_SyWise20
111 
112 
113 /* Function:  search_SyWise20(dbsi,out,exonmodel,seq,codon,nonc,start,stop,intron_open,gene_open,nonc_cost)
114  *
115  * Descrip:    This function makes a database search of SyWise20
116  *             It uses the dbsi structure to choose which implementation
117  *             to use of the database searching. This way at run time you
118  *             can switch between single threaded/multi-threaded or hardware
119  *
120  *
121  * Arg:               dbsi [UNKN ] Undocumented argument [DBSearchImpl *]
122  * Arg:                out [UNKN ] Undocumented argument [Hscore *]
123  * Arg:          exonmodel [UNKN ] Undocumented argument [SyExonScore*]
124  * Arg:                seq [UNKN ] Undocumented argument [ComplexSequence*]
125  * Arg:              codon [UNKN ] Undocumented argument [PairBaseCodonModelScore*]
126  * Arg:               nonc [UNKN ] Undocumented argument [PairBaseModelScore*]
127  * Arg:              start [UNKN ] Undocumented argument [PairBaseCodonModelScore*]
128  * Arg:               stop [UNKN ] Undocumented argument [PairBaseCodonModelScore*]
129  * Arg:        intron_open [UNKN ] Undocumented argument [Score]
130  * Arg:          gene_open [UNKN ] Undocumented argument [Score]
131  * Arg:          nonc_cost [UNKN ] Undocumented argument [Score]
132  *
133  * Return [UNKN ]  Undocumented return value [Search_Return_Type]
134  *
135  */
136 Search_Return_Type Wise2_search_SyWise20(DBSearchImpl * dbsi,Hscore * out,SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost);
137 #define search_SyWise20 Wise2_search_SyWise20
138 
139 
140 /* Function:  serial_search_SyWise20(out,exonmodel,seq,codon,nonc,start,stop,intron_open,gene_open,nonc_cost)
141  *
142  * Descrip:    This function makes a database search of SyWise20
143  *             It is a single processor implementation
144  *
145  *
146  * Arg:                out [UNKN ] Undocumented argument [Hscore *]
147  * Arg:          exonmodel [UNKN ] Undocumented argument [SyExonScore*]
148  * Arg:                seq [UNKN ] Undocumented argument [ComplexSequence*]
149  * Arg:              codon [UNKN ] Undocumented argument [PairBaseCodonModelScore*]
150  * Arg:               nonc [UNKN ] Undocumented argument [PairBaseModelScore*]
151  * Arg:              start [UNKN ] Undocumented argument [PairBaseCodonModelScore*]
152  * Arg:               stop [UNKN ] Undocumented argument [PairBaseCodonModelScore*]
153  * Arg:        intron_open [UNKN ] Undocumented argument [Score]
154  * Arg:          gene_open [UNKN ] Undocumented argument [Score]
155  * Arg:          nonc_cost [UNKN ] Undocumented argument [Score]
156  *
157  * Return [UNKN ]  Undocumented return value [Search_Return_Type]
158  *
159  */
160 Search_Return_Type Wise2_serial_search_SyWise20(Hscore * out,SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost);
161 #define serial_search_SyWise20 Wise2_serial_search_SyWise20
162 
163 
164 /* Function:  PackAln_bestmemory_SyWise20(exonmodel,seq,codon,nonc,start,stop,intron_open,gene_open,nonc_cost,dpenv,dpri)
165  *
166  * Descrip:    This function chooses the best memory set-up for the alignment
167  *             using calls to basematrix, and then implements either a large
168  *             or small memory model.
169  *
170  *             It is the best function to use if you just want an alignment
171  *
172  *             If you want a label alignment, you will need
173  *             /convert_PackAln_to_AlnBlock_SyWise20
174  *
175  *
176  * Arg:          exonmodel [UNKN ] query data structure [SyExonScore*]
177  * Arg:                seq [UNKN ] target data structure [ComplexSequence*]
178  * Arg:              codon [UNKN ] Resource [PairBaseCodonModelScore*]
179  * Arg:               nonc [UNKN ] Resource [PairBaseModelScore*]
180  * Arg:              start [UNKN ] Resource [PairBaseCodonModelScore*]
181  * Arg:               stop [UNKN ] Resource [PairBaseCodonModelScore*]
182  * Arg:        intron_open [UNKN ] Resource [Score]
183  * Arg:          gene_open [UNKN ] Resource [Score]
184  * Arg:          nonc_cost [UNKN ] Resource [Score]
185  * Arg:              dpenv [UNKN ] Undocumented argument [DPEnvelope *]
186  * Arg:               dpri [UNKN ] Undocumented argument [DPRunImpl *]
187  *
188  * Return [UNKN ]  Undocumented return value [PackAln *]
189  *
190  */
191 PackAln * Wise2_PackAln_bestmemory_SyWise20(SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost,DPEnvelope * dpenv,DPRunImpl * dpri);
192 #define PackAln_bestmemory_SyWise20 Wise2_PackAln_bestmemory_SyWise20
193 
194 
195 /* Function:  allocate_Expl_SyWise20(exonmodel,seq,codon,nonc,start,stop,intron_open,gene_open,nonc_cost,dpri)
196  *
197  * Descrip:    This function allocates the SyWise20 structure
198  *             and the basematrix area for explicit memory implementations
199  *             It calls /allocate_SyWise20_only
200  *
201  *
202  * Arg:          exonmodel [UNKN ] query data structure [SyExonScore*]
203  * Arg:                seq [UNKN ] target data structure [ComplexSequence*]
204  * Arg:              codon [UNKN ] Resource [PairBaseCodonModelScore*]
205  * Arg:               nonc [UNKN ] Resource [PairBaseModelScore*]
206  * Arg:              start [UNKN ] Resource [PairBaseCodonModelScore*]
207  * Arg:               stop [UNKN ] Resource [PairBaseCodonModelScore*]
208  * Arg:        intron_open [UNKN ] Resource [Score]
209  * Arg:          gene_open [UNKN ] Resource [Score]
210  * Arg:          nonc_cost [UNKN ] Resource [Score]
211  * Arg:               dpri [UNKN ] Undocumented argument [DPRunImpl *]
212  *
213  * Return [UNKN ]  Undocumented return value [SyWise20 *]
214  *
215  */
216 SyWise20 * Wise2_allocate_Expl_SyWise20(SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost,DPRunImpl * dpri);
217 #define allocate_Expl_SyWise20 Wise2_allocate_Expl_SyWise20
218 
219 
220 /* Function:  recalculate_PackAln_SyWise20(pal,mat)
221  *
222  * Descrip:    This function recalculates the PackAln structure produced by SyWise20
223  *             For example, in linear space methods this is used to score them
224  *
225  *
226  * Arg:        pal [UNKN ] Undocumented argument [PackAln *]
227  * Arg:        mat [UNKN ] Undocumented argument [SyWise20 *]
228  *
229  */
230 void Wise2_recalculate_PackAln_SyWise20(PackAln * pal,SyWise20 * mat);
231 #define recalculate_PackAln_SyWise20 Wise2_recalculate_PackAln_SyWise20
232 
233 
234 /* Function:  allocate_Small_SyWise20(exonmodel,seq,codon,nonc,start,stop,intron_open,gene_open,nonc_cost)
235  *
236  * Descrip:    This function allocates the SyWise20 structure
237  *             and the basematrix area for a small memory implementations
238  *             It calls /allocate_SyWise20_only
239  *
240  *
241  * Arg:          exonmodel [UNKN ] query data structure [SyExonScore*]
242  * Arg:                seq [UNKN ] target data structure [ComplexSequence*]
243  * Arg:              codon [UNKN ] Resource [PairBaseCodonModelScore*]
244  * Arg:               nonc [UNKN ] Resource [PairBaseModelScore*]
245  * Arg:              start [UNKN ] Resource [PairBaseCodonModelScore*]
246  * Arg:               stop [UNKN ] Resource [PairBaseCodonModelScore*]
247  * Arg:        intron_open [UNKN ] Resource [Score]
248  * Arg:          gene_open [UNKN ] Resource [Score]
249  * Arg:          nonc_cost [UNKN ] Resource [Score]
250  *
251  * Return [UNKN ]  Undocumented return value [SyWise20 *]
252  *
253  */
254 SyWise20 * Wise2_allocate_Small_SyWise20(SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost);
255 #define allocate_Small_SyWise20 Wise2_allocate_Small_SyWise20
256 
257 
258 /* Function:  PackAln_calculate_Small_SyWise20(mat,dpenv)
259  *
260  * Descrip:    This function calculates an alignment for SyWise20 structure in linear space
261  *             If you want only the start/end points
262  *             use /AlnRangeSet_calculate_Small_SyWise20
263  *
264  *             The function basically
265  *               finds start/end points
266  *               foreach start/end point
267  *                 calls /full_dc_SyWise20
268  *
269  *
270  * Arg:          mat [UNKN ] Undocumented argument [SyWise20 *]
271  * Arg:        dpenv [UNKN ] Undocumented argument [DPEnvelope *]
272  *
273  * Return [UNKN ]  Undocumented return value [PackAln *]
274  *
275  */
276 PackAln * Wise2_PackAln_calculate_Small_SyWise20(SyWise20 * mat,DPEnvelope * dpenv);
277 #define PackAln_calculate_Small_SyWise20 Wise2_PackAln_calculate_Small_SyWise20
278 
279 
280 /* Function:  AlnRangeSet_calculate_Small_SyWise20(mat)
281  *
282  * Descrip:    This function calculates an alignment for SyWise20 structure in linear space
283  *             If you want the full alignment, use /PackAln_calculate_Small_SyWise20
284  *             If you have already got the full alignment, but want the range set, use /AlnRangeSet_from_PackAln_SyWise20
285  *             If you have got the small matrix but not the alignment, use /AlnRangeSet_from_SyWise20
286  *
287  *
288  * Arg:        mat [UNKN ] Undocumented argument [SyWise20 *]
289  *
290  * Return [UNKN ]  Undocumented return value [AlnRangeSet *]
291  *
292  */
293 AlnRangeSet * Wise2_AlnRangeSet_calculate_Small_SyWise20(SyWise20 * mat);
294 #define AlnRangeSet_calculate_Small_SyWise20 Wise2_AlnRangeSet_calculate_Small_SyWise20
295 
296 
297 /* Function:  AlnRangeSet_from_SyWise20(mat)
298  *
299  * Descrip:    This function reads off a start/end structure
300  *             for SyWise20 structure in linear space
301  *             If you want the full alignment use
302  *             /PackAln_calculate_Small_SyWise20
303  *             If you have not calculated the matrix use
304  *             /AlnRange_calculate_Small_SyWise20
305  *
306  *
307  * Arg:        mat [UNKN ] Undocumented argument [SyWise20 *]
308  *
309  * Return [UNKN ]  Undocumented return value [AlnRangeSet *]
310  *
311  */
312 AlnRangeSet * Wise2_AlnRangeSet_from_SyWise20(SyWise20 * mat);
313 #define AlnRangeSet_from_SyWise20 Wise2_AlnRangeSet_from_SyWise20
314 
315 
316 /* Function:  convert_PackAln_to_AlnBlock_SyWise20(pal)
317  *
318  * Descrip:    Converts a path alignment to a label alignment
319  *             The label alignment is probably much more useful than the path
320  *
321  *
322  * Arg:        pal [UNKN ] Undocumented argument [PackAln *]
323  *
324  * Return [UNKN ]  Undocumented return value [AlnBlock *]
325  *
326  */
327 AlnBlock * Wise2_convert_PackAln_to_AlnBlock_SyWise20(PackAln * pal);
328 #define convert_PackAln_to_AlnBlock_SyWise20 Wise2_convert_PackAln_to_AlnBlock_SyWise20
329 
330 
331 /* Function:  PackAln_read_Expl_SyWise20(mat)
332  *
333  * Descrip:    Reads off PackAln from explicit matrix structure
334  *
335  *
336  * Arg:        mat [UNKN ] Undocumented argument [SyWise20 *]
337  *
338  * Return [UNKN ]  Undocumented return value [PackAln *]
339  *
340  */
341 PackAln * Wise2_PackAln_read_Expl_SyWise20(SyWise20 * mat);
342 #define PackAln_read_Expl_SyWise20 Wise2_PackAln_read_Expl_SyWise20
343 
344 
345 /* Function:  PackAln_read_generic_SyWise20(mat,h)
346  *
347  * Descrip:    Reads off PackAln from explicit matrix structure
348  *
349  *
350  * Arg:        mat [UNKN ] Undocumented argument [SyWise20 *]
351  * Arg:          h [UNKN ] Undocumented argument [SyWise20_access_func_holder]
352  *
353  * Return [UNKN ]  Undocumented return value [PackAln *]
354  *
355  */
356 PackAln * Wise2_PackAln_read_generic_SyWise20(SyWise20 * mat,SyWise20_access_func_holder h);
357 #define PackAln_read_generic_SyWise20 Wise2_PackAln_read_generic_SyWise20
358 
359 
360 /* Function:  calculate_SyWise20(mat)
361  *
362  * Descrip:    This function calculates the SyWise20 matrix when in explicit mode
363  *             To allocate the matrix use /allocate_Expl_SyWise20
364  *
365  *
366  * Arg:        mat [UNKN ] SyWise20 which contains explicit basematrix memory [SyWise20 *]
367  *
368  * Return [UNKN ]  Undocumented return value [boolean]
369  *
370  */
371 boolean Wise2_calculate_SyWise20(SyWise20 * mat);
372 #define calculate_SyWise20 Wise2_calculate_SyWise20
373 
374 
375 /* Function:  calculate_dpenv_SyWise20(mat,dpenv)
376  *
377  * Descrip:    This function calculates the SyWise20 matrix when in explicit mode, subject to the envelope
378  *
379  *
380  * Arg:          mat [UNKN ] SyWise20 which contains explicit basematrix memory [SyWise20 *]
381  * Arg:        dpenv [UNKN ] Undocumented argument [DPEnvelope *]
382  *
383  * Return [UNKN ]  Undocumented return value [boolean]
384  *
385  */
386 boolean Wise2_calculate_dpenv_SyWise20(SyWise20 * mat,DPEnvelope * dpenv);
387 #define calculate_dpenv_SyWise20 Wise2_calculate_dpenv_SyWise20
388 
389 
390 /* Function:  SyWise20_alloc(void)
391  *
392  * Descrip:    Allocates structure: assigns defaults if given
393  *
394  *
395  *
396  * Return [UNKN ]  Undocumented return value [SyWise20 *]
397  *
398  */
399 SyWise20 * Wise2_SyWise20_alloc(void);
400 #define SyWise20_alloc Wise2_SyWise20_alloc
401 
402 
403 /* Function:  free_SyWise20(obj)
404  *
405  * Descrip:    Free Function: removes the memory held by obj
406  *             Will chain up to owned members and clear all lists
407  *
408  *
409  * Arg:        obj [UNKN ] Object that is free'd [SyWise20 *]
410  *
411  * Return [UNKN ]  Undocumented return value [SyWise20 *]
412  *
413  */
414 SyWise20 * Wise2_free_SyWise20(SyWise20 * obj);
415 #define free_SyWise20 Wise2_free_SyWise20
416 
417 
418   /* Unplaced functions */
419   /* There has been no indication of the use of these functions */
420 
421 
422     /***************************************************/
423     /* Internal functions                              */
424     /* you are not expected to have to call these      */
425     /***************************************************/
426 int Wise2_SyWise20_shatter_access_main(SyWise20 * mat,int i,int j,int state);
427 #define SyWise20_shatter_access_main Wise2_SyWise20_shatter_access_main
428 int Wise2_SyWise20_shatter_access_special(SyWise20 * mat,int i,int j,int state);
429 #define SyWise20_shatter_access_special Wise2_SyWise20_shatter_access_special
430 void * Wise2_thread_loop_SyWise20(void * ptr);
431 #define thread_loop_SyWise20 Wise2_thread_loop_SyWise20
432 int Wise2_score_only_SyWise20(SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost);
433 #define score_only_SyWise20 Wise2_score_only_SyWise20
434 SyWise20 * Wise2_allocate_SyWise20_only(SyExonScore* exonmodel,ComplexSequence* seq ,PairBaseCodonModelScore* codon,PairBaseModelScore* nonc,PairBaseCodonModelScore* start,PairBaseCodonModelScore* stop,Score intron_open,Score gene_open,Score nonc_cost);
435 #define allocate_SyWise20_only Wise2_allocate_SyWise20_only
436 void Wise2_init_SyWise20(SyWise20 * mat);
437 #define init_SyWise20 Wise2_init_SyWise20
438 AlnRange * Wise2_AlnRange_build_SyWise20(SyWise20 * mat,int stopj,int stopspecstate,int * startj,int * startspecstate);
439 #define AlnRange_build_SyWise20 Wise2_AlnRange_build_SyWise20
440 boolean Wise2_read_hidden_SyWise20(SyWise20 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,PackAln * out);
441 #define read_hidden_SyWise20 Wise2_read_hidden_SyWise20
442 int Wise2_max_hidden_SyWise20(SyWise20 * mat,int hiddenj,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore);
443 #define max_hidden_SyWise20 Wise2_max_hidden_SyWise20
444 boolean Wise2_read_special_strip_SyWise20(SyWise20 * mat,int stopi,int stopj,int stopstate,int * startj,int * startstate,PackAln * out);
445 #define read_special_strip_SyWise20 Wise2_read_special_strip_SyWise20
446 int Wise2_max_special_strip_SyWise20(SyWise20 * mat,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore);
447 #define max_special_strip_SyWise20 Wise2_max_special_strip_SyWise20
448 int Wise2_max_matrix_to_special_SyWise20(SyWise20 * mat,int i,int j,int state,int cscore,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore);
449 #define max_matrix_to_special_SyWise20 Wise2_max_matrix_to_special_SyWise20
450 void Wise2_calculate_hidden_SyWise20(SyWise20 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,DPEnvelope * dpenv);
451 #define calculate_hidden_SyWise20 Wise2_calculate_hidden_SyWise20
452 void Wise2_init_hidden_SyWise20(SyWise20 * mat,int starti,int startj,int stopi,int stopj);
453 #define init_hidden_SyWise20 Wise2_init_hidden_SyWise20
454 boolean Wise2_full_dc_SyWise20(SyWise20 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,PackAln * out,int * donej,int totalj,DPEnvelope * dpenv);
455 #define full_dc_SyWise20 Wise2_full_dc_SyWise20
456 boolean Wise2_do_dc_single_pass_SyWise20(SyWise20 * mat,int starti,int startj,int startstate,int stopi,int stopj,int stopstate,DPEnvelope * dpenv,int perc_done);
457 #define do_dc_single_pass_SyWise20 Wise2_do_dc_single_pass_SyWise20
458 void Wise2_push_dc_at_merge_SyWise20(SyWise20 * mat,int starti,int stopi,int startj,int * stopj,DPEnvelope * dpenv);
459 #define push_dc_at_merge_SyWise20 Wise2_push_dc_at_merge_SyWise20
460 void Wise2_follow_on_dc_SyWise20(SyWise20 * mat,int starti,int stopi,int startj,int stopj,DPEnvelope * dpenv,int perc_done);
461 #define follow_on_dc_SyWise20 Wise2_follow_on_dc_SyWise20
462 void Wise2_run_up_dc_SyWise20(SyWise20 * mat,int starti,int stopi,int startj,int stopj,DPEnvelope * dpenv,int perc_done);
463 #define run_up_dc_SyWise20 Wise2_run_up_dc_SyWise20
464 void Wise2_init_dc_SyWise20(SyWise20 * mat);
465 #define init_dc_SyWise20 Wise2_init_dc_SyWise20
466 int Wise2_start_end_find_end_SyWise20(SyWise20 * mat,int * endj);
467 #define start_end_find_end_SyWise20 Wise2_start_end_find_end_SyWise20
468 boolean Wise2_dc_optimised_start_end_calc_SyWise20(SyWise20 *mat,DPEnvelope * dpenv);
469 #define dc_optimised_start_end_calc_SyWise20 Wise2_dc_optimised_start_end_calc_SyWise20
470 void Wise2_init_start_end_linear_SyWise20(SyWise20 * mat);
471 #define init_start_end_linear_SyWise20 Wise2_init_start_end_linear_SyWise20
472 AlnConvertSet * Wise2_AlnConvertSet_SyWise20(void);
473 #define AlnConvertSet_SyWise20 Wise2_AlnConvertSet_SyWise20
474 int Wise2_SyWise20_explicit_access_main(SyWise20 * mat,int i,int j,int state);
475 #define SyWise20_explicit_access_main Wise2_SyWise20_explicit_access_main
476 int Wise2_SyWise20_explicit_access_special(SyWise20 * mat,int i,int j,int state);
477 #define SyWise20_explicit_access_special Wise2_SyWise20_explicit_access_special
478 int Wise2_find_end_SyWise20(SyWise20 * mat,int * ri,int * rj,int * state,boolean * isspecial,SyWise20_access_func_holder h);
479 #define find_end_SyWise20 Wise2_find_end_SyWise20
480 void Wise2_SyWise20_debug_show_matrix(SyWise20 * mat,int starti,int stopi,int startj,int stopj,FILE * ofp);
481 #define SyWise20_debug_show_matrix Wise2_SyWise20_debug_show_matrix
482 int Wise2_max_calc_SyWise20(SyWise20 * mat,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore,SyWise20_access_func_holder h);
483 #define max_calc_SyWise20 Wise2_max_calc_SyWise20
484 int Wise2_max_calc_special_SyWise20(SyWise20 * mat,int i,int j,int state,boolean isspecial,int * reti,int * retj,int * retstate,boolean * retspecial,int * cellscore,SyWise20_access_func_holder h);
485 #define max_calc_special_SyWise20 Wise2_max_calc_special_SyWise20
486 
487 #ifdef _cplusplus
488 }
489 #endif
490 
491 #endif
492