1 /*
2 
3 PhyML:  a program that  computes maximum likelihood phylogenies from
4 DNA or AA homologous sequences.
5 
6 Copyright (C) Stephane Guindon. Oct 2003 onward.
7 
8 All parts of the source except where indicated are distributed under
9 the GNU public licence. See http://www.opensource.org for details.
10 
11 */
12 
13 #include <config.h>
14 
15 #ifndef M4_H
16 #define M4_H
17 
18 #include "spr.h"
19 #include "utilities.h"
20 #include "lk.h"
21 #include "optimiz.h"
22 #include "bionj.h"
23 #include "models.h"
24 #include "free.h"
25 #include "help.h"
26 #include "simu.h"
27 #include "eigen.h"
28 #include "pars.h"
29 #include "alrt.h"
30 #include "time.h"
31 #include "draw.h"
32 #ifdef PART
33 #include "mg.h"
34 #endif
35 
36 int M4_main(int argc, char **argv);
37 void M4_Make_Complete(int n_h, int n_o, m4 *m4mod);
38 m4 *M4_Make_Light();
39 void M4_Free_M4_Model(m4 *m4mod);
40 void M4_Init_Qmat(m4 *m4mod, calign *data, t_mod *mod);
41 void M4_Update_Qmat(m4 *m4mod, t_mod *mod);
42 void M4_Init_Model(m4 *m4mod, calign *data, t_mod *mod);
43 void M4_Init_Partial_Lk_Tips_Double(t_tree *tree);
44 void M4_Init_Partial_Lk_Tips_Int(t_tree *tree);
45 void M4_Post_Prob_H_Class_Edge_Site(t_edge *b, phydbl ****integral, phydbl *postprob, t_tree *tree);
46 phydbl ****M4_Integral_Term_On_One_Edge(t_edge *b, t_tree *tree);
47 phydbl ***M4_Compute_Proba_Hidden_States_On_Edges(t_tree *tree);
48 void M4_Free_Integral_Term_On_One_Edge(phydbl ****integral, t_tree *tree);
49 void M4_Compute_Posterior_Mean_Rates(phydbl ***post_probs, t_tree *tree);
50 void M4_Scale_Br_Len(t_tree *tree);
51 void M4_Detect_Site_Switches_Experiment(t_tree *tree);
52 m4 *M4_Copy_M4_Model(t_mod *ori_mod, m4 *ori_m4mod);
53 void M4_Posterior_Prediction_Experiment(t_tree *tree);
54 void M4_Set_M4mod_Default(m4 *m4mod);
55 phydbl **M4_Site_Branch_Classification(phydbl ***post_probs, t_tree *tree);
56 void M4_Site_Branch_Classification_Experiment(t_tree *tree);
57 
58 #endif
59