********************************************************************/
/*
- * RCS $Id: hhhitlist-C.h 243 2011-05-31 13:49:19Z fabian $
+ * RCS $Id: hhhitlist-C.h 315 2016-12-15 17:18:30Z fabian $
*/
// hhhitlist.C
#include "hhhalfalignment.h"
#include "hhfullalignment.h"
#endif
+//#include "new_new.h" /* memory tracking */
//////////////////////////////////////////////////////////////////////////////
#ifdef CLUSTALO
- char **ppcFirstProf, char **ppcSecndProf,
+ char **ppcFirstProf, char **ppcSecndProf, char zcAux[], char zcError[],
#endif
HMM& q, char* outfile, char outformat)
{
nhits++;
// Build double alignment of query against template sequences
- int iBuildRet = qt_ali.Build(q,hit);
+ int iBuildRet = qt_ali.Build(q,hit, zcError);
if (iBuildRet != OK){ /* FS, r241 -> r243 */
- fprintf(stderr, "%s:%s:%d: qt_ali.Build failed\n",
+ sprintf(zcAux, "%s:%s:%d: qt_ali.Build failed\n",
__FUNCTION__, __FILE__, __LINE__);
+ strcat(zcError, zcAux);
return FAILURE;
}
index.Add(name,k);
}
// Read symmetric Z-scores matrix
- Z = new(float*[N]);
+ Z = new float*[N];
for (k=0; k<N; k++)
{
- Z[k] = new(float[N]);
+ Z[k] = new float[N];
for (l=0; l<k; l++) Z[k][l] = Z[l][k];
unused = fread(Z[k]+k,sizeof(float),N-k,wfile);
}
// Read symmetric covariance matrix
- C = new(float*[N]);
+ C = new float*[N];
for (k=0; k<N; k++)
{
- C[k] = new(float[N]);
+ C[k] = new float[N];
for (l=0; l<k; l++) C[k][l] = C[l][k];
unused = fread(C[k]+k,sizeof(float),N-k,wfile);
}
fclose(wfile);
// Allocate memory
- Zq = new(float[N]);
- Ztq = new(float[N]);
- Zrq = new(float[N]);
- fold = new(char*[N]);
- fam = new(char*[N]);
- Prob = new(float[N]);
- ll = new(int[N]);
- w = new(float[N]);
+ Zq = new float[N];
+ Ztq = new float[N];
+ Zrq = new float[N];
+ fold = new char*[N];
+ fam = new char*[N];
+ Prob = new float[N];
+ ll = new int[N];
+ w = new float[N];
// Transform P-values to normally distributed Z-scores and store in Zq vector
fprintf(stderr,"Transform P-values to Z-scores\n");
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
- double** Cinv = new(double*[M]);
+ double** Csub = new double*[M];
+ double** Cinv = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
- Cinv[m] = new(double[M]);
+ Csub[m] = new double[M];
+ Cinv[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
+ double** Csub = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
+ Csub[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
else
{
- double** Cinv = new(double*[M]);
- for (m=0; m<M; m++) Cinv[m] = new(double[M]);
+ double** Cinv = new double*[M];
+ for (m=0; m<M; m++) Cinv[m] = new double[M];
// Invert Csub
InvertMatrix(Cinv,Csub,M);
index.Add(name,k);
}
// Read symmetric Z-scores matrix
- Z = new(float*[N]);
+ Z = new float*[N];
for (k=0; k<N; k++)
{
- Z[k] = new(float[N]);
+ Z[k] = new float[N];
for (l=0; l<k; l++) Z[k][l] = Z[l][k];
unused = fread(Z[k]+k,sizeof(float),N-k,wfile);
}
// Read symmetric covariance matrix
- C = new(float*[N]);
+ C = new float*[N];
for (k=0; k<N; k++)
{
- C[k] = new(float[N]);
+ C[k] = new float[N];
for (l=0; l<k; l++) C[k][l] = C[l][k];
unused = fread(C[k]+k,sizeof(float),N-k,wfile);
}
fclose(wfile);
// Allocate memory
- Zq = new(float[N]);
- Ztq = new(float[N]);
- Zrq = new(float[N]);
- fold = new(char*[N]);
- fam = new(char*[N]);
- Prob = new(float[N]);
- ll = new(int[N]);
- w = new(float[N]);
+ Zq = new float[N];
+ Ztq = new float[N];
+ Zrq = new float[N];
+ fold = new char*[N];
+ fam = new char*[N];
+ Prob = new float[N];
+ ll = new int[N];
+ w = new float[N];
// Transform P-values to normally distributed Z-scores and store in Zq vector
fprintf(stderr,"Transform P-values to Z-scores\n");
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
- double** Cinv = new(double*[M]);
+ double** Csub = new double*[M];
+ double** Cinv = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
- Cinv[m] = new(double[M]);
+ Csub[m] = new double[M];
+ Cinv[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
+ double** Csub = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
+ Csub[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
else
{
- double** Cinv = new(double*[M]);
- for (m=0; m<M; m++) Cinv[m] = new(double[M]);
+ double** Cinv = new double*[M];
+ for (m=0; m<M; m++) Cinv[m] = new double[M];
// // Invert Csub
// InvertMatrix(Cinv,Csub,M);
index.Add(name,k);
}
// Read symmetric Z-scores matrix
- Z = new(float*[N]);
+ Z = new float*[N];
for (k=0; k<N; k++)
{
- Z[k] = new(float[N]);
+ Z[k] = new float[N];
for (l=0; l<k; l++) Z[k][l] = Z[l][k];
unused = fread(Z[k]+k,sizeof(float),N-k,wfile);
}
// Read symmetric covariance matrix
- C = new(float*[N]);
+ C = new float*[N];
for (k=0; k<N; k++)
{
- C[k] = new(float[N]);
+ C[k] = new float[N];
for (l=0; l<k; l++) C[k][l] = C[l][k];
unused = fread(C[k]+k,sizeof(float),N-k,wfile);
}
fclose(wfile);
// Allocate memory
- Zq = new(float[N]);
- Ztq = new(float[N]);
- Zrq = new(float[N]);
- fold = new(char*[N]);
- fam = new(char*[N]);
- Prob = new(float[N]);
- ll = new(int[N]);
- w = new(float[N]);
+ Zq = new float[N];
+ Ztq = new float[N];
+ Zrq = new float[N];
+ fold = new char*[N];
+ fam = new char*[N];
+ Prob = new float[N];
+ ll = new int[N];
+ w = new float[N];
// Transform P-values to normally distributed Z-scores and store in Zq vector
fprintf(stderr,"Transform P-values to Z-scores\n");
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
- double** Cinv = new(double*[M]);
+ double** Csub = new double*[M];
+ double** Cinv = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
- Cinv[m] = new(double[M]);
+ Csub[m] = new double[M];
+ Cinv[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
+ double** Csub = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
+ Csub[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
else
{
- double** Cinv = new(double*[M]);
- for (m=0; m<M; m++) Cinv[m] = new(double[M]);
+ double** Cinv = new double*[M];
+ for (m=0; m<M; m++) Cinv[m] = new double[M];
// Invert Csub
InvertMatrix(Cinv,Csub,M);
index.Add(name,k);
}
// Read symmetric Z-scores matrix
- Z = new(float*[N]);
+ Z = new float*[N];
for (k=0; k<N; k++)
{
- Z[k] = new(float[N]);
+ Z[k] = new float[N];
for (l=0; l<k; l++) Z[k][l] = Z[l][k];
unused = fread(Z[k]+k,sizeof(float),N-k,wfile);
}
// Read symmetric covariance matrix
- C = new(float*[N]);
+ C = new float*[N];
for (k=0; k<N; k++)
{
- C[k] = new(float[N]);
+ C[k] = new float[N];
for (l=0; l<k; l++) C[k][l] = C[l][k];
unused = fread(C[k]+k,sizeof(float),N-k,wfile);
}
fclose(wfile);
// Allocate memory
- Zq = new(float[N]);
- Ztq = new(float[N]);
- Zrq = new(float[N]);
- fold = new(char*[N]);
- fam = new(char*[N]);
- Prob = new(float[N]);
- ll = new(int[N]);
- w = new(float[N]);
+ Zq = new float[N];
+ Ztq = new float[N];
+ Zrq = new float[N];
+ fold = new char*[N];
+ fam = new char*[N];
+ Prob = new float[N];
+ ll = new int[N];
+ w = new float[N];
// Transform P-values to normally distributed Z-scores and store in Zq vector
fprintf(stderr,"Transform P-values to Z-scores\n");
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
+ double** Csub = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
+ Csub[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
+ double** Csub = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
+ Csub[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
}
int k,l,m;
- double** V = new(double*[N]);
- double* s = new(double[N]);
- for (k=0; k<N; k++) V[k] = new(double[N]);
+ double** V = new double*[N];
+ double* s = new double[N];
+ for (k=0; k<N; k++) V[k] = new double[N];
// Copy original matrix A into B since B will be overwritten by SVD()
for (k=0; k<N; k++)
double pythag(double a, double b);
int flag,i,its,j,jj,k,l=1,nm=1;
double anorm,c,f,g,h,s,scale,x,y,z,*rv1;
- rv1=new(double[n]);
+ rv1=new double[n];
g=scale=anorm=0.0;
// Householder reduction to bidiagonal form.
}
// printf("POINTER:\t\t\t%p=TAIL\n", tail);
-
+ if ( (NULL != current) && (head != current) ){
+ delete current; /* this seems to be the long lost piece of memory, FS, 2016-04-15 */
+ current = NULL;
+ }
head->next = tail;
tail->prev = head;
size = 0;