#ifndef MATRIX_H #define MATRIX_H #include "helix.h" /* parameter representations used in matrix */ #define u 1.0 #define w1_m -10.0 #define w_m -20.0 #define vN_m -30.0 #define vC_m -40.0 /* maximum dimension of the matrices */ #define MAXDIM 27 struct matrix {int nRow; int nCol; float Wi[MAXDIM][MAXDIM];}; struct matrix ClearMatrix (struct matrix W, float type); float MtplyMatrix (struct matrix W, int nIndx, int nResidue, float type, struct sequence *Seqence); static struct matrix W[]={ 1,3,{u,u,u}, 3,4,{{vN_m,0.,0.,0.},{0.,u,0.,0.},{0.,0.,u,u}}, 4,6,{{w1_m,w1_m,0.,0.,0.,0.},{0.,0.,vN_m,0.,0.,0.},{0.,0.,0.,u,0.,0.},{0.,0.,0.,0.,u,u}}, 6,10,{{w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.},{0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.},{0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,u,0.,0.},{0.,0.,0.,0.,0.,0.,0.,0.,u,u}}, 10,17,{{w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,u}}, 17,21,{{w_m,w_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,u}}, 21,27,{{w_m,w_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,u}}, 27,27,{{w_m,w_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,u}, {w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,u,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vC_m,vC_m,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,u}}, 27,21,{{w_m,w_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,vC_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,vN_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vC_m,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u}, {w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,vC_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vC_m,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u}}, 21,17,{{w_m,w_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,vC_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,vN_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vC_m,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u}, {w1_m,w1_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,vC_m,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,u,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vC_m,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,w1_m,w1_m,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,vN_m,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,u}}, 17,10,{{w_m,0.,0.,0.,0.,0.,0.,0.,0.,0.},{0.,vC_m,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,u,0.,0.,0.,0.,0.,0.,0.},{0.,0.,0.,u,0.,0.,0.,0.,0.,0.}, {0.,0.,0.,0.,w1_m,0.,0.,0.,0.,0.},{0.,0.,0.,0.,0.,u,0.,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,w1_m,0.,0.,0.},{0.,0.,0.,0.,0.,0.,0.,vC_m,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,w1_m,0.},{0.,0.,0.,0.,0.,0.,0.,0.,0.,u}, {w1_m,0.,0.,0.,0.,0.,0.,0.,0.,0.},{0.,vC_m,0.,0.,0.,0.,0.,0.,0.,0.}, {0.,0.,u,0.,0.,0.,0.,0.,0.,0.},{0.,0.,0.,0.,0.,0.,w1_m,0.,0.,0.}, {0.,0.,0.,0.,0.,0.,0.,vC_m,0.,0.},{0.,0.,0.,0.,0.,0.,0.,0.,w1_m,0.}, {0.,0.,0.,0.,0.,0.,0.,0.,0.,u}}, 10,6,{{vC_m,0.,0.,0.,0.,0.},{0.,u,0.,0.,0.,0.}, {0.,0.,u,0.,0.,0.},{0.,0.,0.,u,0.,0.},{0.,0.,0.,0.,vC_m,0.}, {0.,0.,0.,0.,0.,u},{vC_m,0.,0.,0.,0.,0.},{0.,u,0.,0.,0.,0.}, {0.,0.,0.,0.,vC_m,0.},{0.,0.,0.,0.,0.,u}}, 6,1,{{u},{u},{u},{u},{u},{u}} }; #endif