IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 36402 for tags/ipp-20130712


Ignore:
Timestamp:
Dec 17, 2013, 12:06:30 PM (13 years ago)
Author:
watersc1
Message:

Port from trunk of psMM fix.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tags/ipp-20130712/psLib/src/math/psMixtureModels.c

    r35954 r36402  
    198198    psVectorInit(modes,NAN);
    199199    for (int i = 0; i < N - Ncensored; i++) {
    200       modes->data.F32[i - offsets->data.S32[i]] = tempModes->data.F32[i];
     200      modes->data.F32[i + offsets->data.S32[i]] = tempModes->data.F32[i];
    201201    }
    202202    psFree(tempModes);
     
    418418    }
    419419    if (!P) {
    420       P = psImageAlloc(N,m,PS_TYPE_F32);
     420      P = psImageAlloc(m,N,PS_TYPE_F32);
    421421    }
    422422    psVectorInit(modes,NAN);
     
    424424
    425425    for (int i = 0; i < N - Ncensored; i++) {
    426       modes->data.F32[i - offsets->data.S32[i]] = tempModes->data.F32[i];
     426      modes->data.F32[i + offsets->data.S32[i]] = tempModes->data.F32[i];
    427427      for (int j = 0; j < dim; j++) {
    428         P->data.F32[i - offsets->data.S32[i]][j] = tempP->data.F32[i][j];
     428        P->data.F32[i + offsets->data.S32[i]][j] = tempP->data.F32[i][j];
    429429      }
    430430    }
     
    511511  }
    512512  for (i = 0; i < m; i++) {
    513     pi->data.F32[i] = counts->data.F32[i] / N;
     513    //pi->data.F32[i] = counts->data.F32[i] / (1.0 * N);
     514    pi->data.F32[i] = 0.5;
    514515  }
    515516
     
    539540        for (j = 0; j < dim; j++) { // VV
    540541          M->data.F32[j] = means->data.F32[i][j];
    541         }
     542          //      printf("%f %f %f\n",
     543          //             X->data.F32[j],M->data.F32[j],
     544          //             S->data.F32[j][j]);
     545        }
     546
    542547       
    543548        P->data.F32[k][i] =
     
    545550
    546551        logL += log(P->data.F32[k][i]);
     552        //      printf("%d %d %f %f %f %f\n",
     553        //             k,i,
     554        //             pi->data.F32[i],
     555        //             psMMNDGaussian(X,M,S),
     556        //             P->data.F32[k][i],logL);
    547557        norm_K += P->data.F32[k][i];
    548558      }
     
    612622        }
    613623      }
    614     }   
     624    }
     625    //    printf("%d %f %f %f %f\n",*iterations,logL,oldlogL,means->data.F32[0][0],means->data.F32[1][0]);
     626    *iterations = *iterations + 1;
    615627  } while ((logL - oldlogL > 0)&&
    616628           (*iterations < MAX_ITERATIONS));
Note: See TracChangeset for help on using the changeset viewer.