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