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