Mercurial > hg > smallbox
diff util/ksvd utils/ompbox utils/ompcoreGabor.c @ 139:4bd6856a7128 ivand_dev
ompGabor mex version debuged and tested
author | Ivan <ivan.damnjanovic@eecs.qmul.ac.uk> |
---|---|
date | Thu, 21 Jul 2011 16:37:14 +0100 |
parents | 9207d56c5547 |
children |
line wrap: on
line diff
--- a/util/ksvd utils/ompbox utils/ompcoreGabor.c Thu Jul 21 14:27:47 2011 +0100 +++ b/util/ksvd utils/ompbox utils/ompcoreGabor.c Thu Jul 21 16:37:14 2011 +0100 @@ -56,7 +56,7 @@ DtX_specified = (DtX!=0); /* indicates whether D'*x was provided */ XtX_specified = (XtX!=0); /* indicates whether sum(x.*x) was provided */ - standardomp = (G==0); /* batch-omp or standard omp are selected depending on availability of G */ + standardomp = 1;//(G==0); /* batch-omp or standard omp are selected depending on availability of G */ batchomp = !standardomp; @@ -104,10 +104,12 @@ vec_smult(1,D2, D1, n*m/2); for (i=0; i<m/2; i++) { + D1D2[i]=0; + n12[i]=0; for (j=0; j<n; j++) { D1D2[i] += D1[i*n+j]; } - n12[i]=1/(1-D1D2[i]); + n12[i]=1/(1-D1D2[i]*D1D2[i]); } memcpy(D1, D , n*m/2*sizeof(double)); @@ -232,8 +234,9 @@ beta[k] = (proj2[k] - D1D2[k]*proj1[k])*n12[k]; } for (k=0; k<m/2; k++){ + error[k]=0; for (j=0; j<n; j++){ - error[k]+= (abs(r[j])-D1[k*n+j]*alpha[k]-D2[(k+m/2)*n+j]*beta[k])*(abs(r[j])-D1[k*n+j]*alpha[k]-D2[(k+m/2)*n+j]*beta[k]); + error[k]+= (abs(r[j])-D1[k*n+j]*alpha[k]-D2[k*n+j]*beta[k])*(abs(r[j])-D1[k*n+j]*alpha[k]-D2[k*n+j]*beta[k]); } } pos = maxabs(error, m/2);