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 SSE_H 16 #define SSE_H 17 18 #include "utilities.h" 19 #include "optimiz.h" 20 #include "models.h" 21 #include "free.h" 22 #include "times.h" 23 #include "mixt.h" 24 25 #if defined(__SSE3__) 26 27 void SSE_Update_Partial_Lk(t_tree *tree,t_edge *b_fcus,t_node *n); 28 void SSE_Update_Eigen_Lr(t_edge *b, t_tree *tree); 29 phydbl SSE_Lk_Core_One_Class_Eigen_Lr(phydbl *dot_prod, phydbl *expl, int ns); 30 phydbl SSE_Lk_Core_One_Class_No_Eigen_Lr(phydbl *p_lk_left, phydbl *p_lk_rght, phydbl *Pij, phydbl *tPij, phydbl *pi, int ns, int ambiguity_check, int state); 31 phydbl SSE_Lk_Core(int state, int ambiguity_check, t_edge *b, t_tree *tree); 32 phydbl SSE_Lk_Core_Nucl(int state, int ambiguity_check, t_edge *b, t_tree *tree); 33 phydbl SSE_Lk_Core_AA(int state, int ambiguity_check, t_edge *b, t_tree *tree); 34 void SSE_Lk_dLk_Core_One_Class_Eigen_Lr(phydbl *dot_prod, phydbl *expl, unsigned int ns, phydbl *lk, phydbl *dlk); 35 36 void SSE_Partial_Lk_Exex(const __m128d *_tPij1, const int state1, const __m128d *_tPij2, const int state2, const int ns, __m128d *plk0); 37 void SSE_Partial_Lk_Exin(const __m128d *_tPij1, const int state1, const __m128d *_tPij2, const phydbl *_plk2, __m128d *_pmat2plk2, const int ns, __m128d *_plk0); 38 void SSE_Partial_Lk_Inin(const __m128d *_tPij1, const phydbl *plk1, __m128d *_pmat1plk1, const __m128d *_tPij2, const phydbl *plk2, __m128d *_pmat2plk2, const int ns, __m128d *_plk0); 39 void SSE_Matrix_Vect_Prod(const __m128d *_m_transpose, const phydbl *_v, const int ns, __m128d *_u); 40 41 #endif 42 #endif 43