#include "mltaln.h" void profilealignment( int n0, int n1, int n2, char **aln0, char **aln1, char **aln2, int alloclen, char alg ) // n1 ha allgap { int i, newlen; double *effarr0, *effarr2; float dumfl; double eff; effarr0 = AllocateDoubleVec( n0 ); effarr2 = AllocateDoubleVec( n2 ); commongappick( n0, aln0 ); commongappick( n2, aln2 ); eff = 1.0 / (double)n0; for( i=0; i-1; i++ ) { mar[k] = 1; // fprintf( stderr, "excluding %d\n", ex1[i] ); } for( i=0; (k=ex2[i])>-1; i++ ) { mar[k] = 1; // fprintf( stderr, "excluding %d\n", ex2[i] ); } for( i=0; i-1; ) { if( mem[i++] != cand[j++] ) return( 0 ); } if( cand[j] == -1 ) { return( 1 ); } else { return( 0 ); } } #else int samemember( int *mem, int *cand ) { int i, j; int nm, nc; #if 0 fprintf( stderr, "mem = " ); for( i=0; mem[i]>-1; i++ ) fprintf( stderr, "%d ", mem[i] ); fprintf( stderr, "\n" ); fprintf( stderr, "cand = " ); for( i=0; cand[i]>-1; i++ ) fprintf( stderr, "%d ", cand[i] ); fprintf( stderr, "\n" ); #endif nm = 0; for( i=0; mem[i]>-1; i++ ) nm++; nc = 0; for( i=0; cand[i]>-1; i++ ) nc++; if( nm != nc ) return( 0 ); for( i=0; mem[i]>-1; i++ ) { for( j=0; cand[j]>-1; j++ ) if( mem[i] == cand[j] ) break; if( cand[j] == -1 ) return( 0 ); } if( mem[i] == -1 ) { return( 1 ); } else { return( 0 ); } } #endif int includemember( int *mem, int *cand ) // mem in cand { int i, j; #if 0 fprintf( stderr, "mem = " ); for( i=0; mem[i]>-1; i++ ) fprintf( stderr, "%d ", mem[i] ); fprintf( stderr, "\n" ); fprintf( stderr, "cand = " ); for( i=0; cand[i]>-1; i++ ) fprintf( stderr, "%d ", cand[i] ); fprintf( stderr, "\n" ); #endif for( i=0; mem[i]>-1; i++ ) { for( j=0; cand[j]>-1; j++ ) if( mem[i] == cand[j] ) break; if( cand[j] == -1 ) return( 0 ); } // fprintf( stderr, "INCLUDED! mem[0]=%d\n", mem[0] ); return( 1 ); }