/* Records the GC frame bias from the node GC statistics */ void record_gc_frame_bias(struct _training *tinf, unsigned char *seq, int slen, struct _node *nod, int nn) { int i, len, *gc_frame; double tot; gc_frame = calc_most_gc_frame(seq, slen); frame_score(gc_frame, nod, nn); free(gc_frame); for(i = 0; i < 3; i++) tinf->bias[i] = 0.0; for(i = 0; i < nn; i++) { if(nod[i].type != STOP) { len = abs(nod[i].stop_val-nod[i].ndx)+1; tinf->bias[nod[i].gc_bias]+= (nod[i].gc_score[nod[i].gc_bias]*len)/1000.0; } } tot = tinf->bias[0] + tinf->bias[1] + tinf->bias[2]; for(i = 0; i < 3; i++) tinf->bias[i] *= (3.0/tot); };
int bowling_game_score() { int score = 0; int frame_index = 0; for(int frame=0; frame < max_frames; frame++) { if( is_strike(frame_index) ) { score += strike_score(frame_index); frame_index++; } else if( is_spare(frame_index) ) { score += spare_score(frame_index); frame_index += 2; } else { score += frame_score(frame_index); frame_index += 2; } } return score; }