#include #include #include "sc.h" #include "scscore.h" #include "scconst.h" #include "options.h" #include "switches.h" #include "stats.h" /** The following are defined in scscore.c ***/ extern double gprobs[NUM_RES_TYPE], gprobp[NUM_RES_TYPE][NUM_RES_TYPE][POSNUM]; /*** #define SCALE0 5 ***/ /*** Now an extern variable ***/ /* scaling value for 0 probs */ extern double SCALE0; extern double gprobs[NUM_RES_TYPE], gprobp[NUM_RES_TYPE][NUM_RES_TYPE][POSNUM]; /* Takes the log of a double */ double getdlog(double num) { if (num) return log(num); else return LOG0VAL; } /* Takes the log of a long int */ double getlog(long num) { if (num) { return log((double) num); } else return LOG0VAL; } /**********************************************************************/ void estimate_database_probs2(int tab, long freqs[AANUM][POSNUM], long totals[POSNUM], double many_pprobs[MAX_TABLE_NUMBER][NUM_RES_TYPE][POSNUM], long freqp[AANUM][AANUM][POSNUM][POSNUM], long totalp[POSNUM][POSNUM], double many_pprobp[MAX_TABLE_NUMBER] [NUM_RES_TYPE][NUM_RES_TYPE][POSNUM][POSNUM], int ProlineFreeWin) { extern double SCALE0; extern double scale0s[MAX_TABLE_NUMBER],scale0p[MAX_TABLE_NUMBER]; SCALE0= scale0s[tab]; calcpprobs(freqs, totals, many_pprobs[tab], ProlineFreeWin); SCALE0= scale0p[tab]; calcpprobp(freqp, totalp, many_pprobs[tab], many_pprobp[tab], ProlineFreeWin); } /*************************************************************************/ /****************************************************************************/ /** If the file fgin == NULL so is not set in config file, use uniform dist. */ int setgprob_to_uniform(double gprobs[NUM_RES_TYPE], double gprobp[NUM_RES_TYPE][NUM_RES_TYPE][POSNUM]) { int res1, res2, dist; for (res1=0; res1