17void copy_arr(short *dest, short *src); /*just copy*/
18short *allocopy(short *src); /*copy and make space*/
19
20enum MOVE_TYPE {GRADIENT, FIRST, ADAPTIVE};
21
22/* walking methods (verbose_lvl 0-2, shifts = use shift moves? noLP = no lone pairs? (not compatible with shifts))
23 input: seq - sequence
24 ptable - structure encoded with make_pair_table() from pair_mat.h
25 s, s1 - sequence encoded with encode_sequence from pair_mat.h
26 methods: deepest - lowest energy structure is used
27 first - first found lower energy structure is used
28 rand - random lower energy structure is used
29 returns local minima structure in ptable and its energy in 10kcal/mol as output */
30
31int move_gradient( char *seq,
32short *ptable,
33short *s,
34short *s1,
35int verbosity_level,
36int shifts,
37int noLP);
38int move_first( char *seq,
39short *ptable,
40short *s,
41short *s1,
42int verbosity_level,
43int shifts,
44int noLP);
45int move_adaptive( char *seq,
46short *ptable,
47short *s,
48short *s1,
49int verbosity_level);
50
51/* standardized method that encapsulates above "_pt" methods
52 input: seq - sequence
53 struc - structure in dot-bracket notation
54 type - type of move selection according to MOVE_TYPE enum
55 return: energy of LM
56 structure of LM in struc in bracket-dot notation
57*/
58int move_standard(char *seq,
59char *struc,
60enum MOVE_TYPE type,
61int verbosity_level,
62int shifts,
63int noLP);
64
65
66/* browse_neighbours and perform funct function on each of them (used mainly for user specified flooding)
67 input: seq - sequence
68 ptable - structure encoded with make_pair_table() from pair_mat.h
69 s, s1 - sequence encoded with encode_sequence from pair_mat.h
70 funct - function (structure from neighbourhood, structure from input) toperform on every structure in neigbourhood (if the function returns non-zero, the iteration through neighbourhood stops.)
71 returns energy of the structure funct sets as second argument*/