本文整理汇总了C++中Vectors::getIndex方法的典型用法代码示例。如果您正苦于以下问题:C++ Vectors::getIndex方法的具体用法?C++ Vectors::getIndex怎么用?C++ Vectors::getIndex使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Vectors
的用法示例。
在下文中一共展示了Vectors::getIndex方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mexFunction
//.........这里部分代码省略.........
dim=1;
for(int i=0;i<ndims_in-1;i++) {
dim*=dims_in[i];
}
// mexPrintf("dim=%d N=%d\n",dim,N);
// Create Vectors
REAL* X=(REAL*)mxGetData(tmp);
Vectors *vectors;
switch (VECTOR_CLASS) {
case VECTORS:
vectors = new Vectors(X,N,dim,DISTANCE_FCN);
break;
default:
mexErrMsgTxt("\n Invalid classname for Vectors.");
break;
}
if( N==1 ) {
NTHREADS = 0;
}
ThreadsWithCounter threads(NTHREADS);
// Construct covertree
SegList<DLPtrListNode<CoverNode> > seglist(1024);
const Vector* vector=(vectors->next());
Cover cover(vector,seglist,numlevels,minlevel);
EnlargeData enlargedata(&threads,BLOCKSIZE,vectors->getRemaining());
// Timer timer;
// timer.on();
cover.enlargeBy(enlargedata,*vectors);
// timer.off();
// timer.printOn(cout);
/* Create matrix for the return argument. */
plhs[0] = mxCreateStructMatrix(1, 1, 5, fnames_out);
mxArray* fout;
dims[0]=1;
dims[1]=1;
#ifdef DOUBLE
fout =mxCreateNumericArray(ndims,dims,mxDOUBLE_CLASS,mxREAL);
#else
fout =mxCreateNumericArray(ndims,dims,mxSINGLE_CLASS,mxREAL);
#endif
REAL* p=(REAL*)mxGetData(fout);
mxSetField(plhs[0],0,fnames_out[0],fout);
p[0]=ptheta[0];
dims[0]=1;
dims[1]=9;
fout = mxCreateNumericArray(ndims,dims,mxINT32_CLASS,mxREAL);
int* outparams=(int*)mxGetData(fout);
mxSetField(plhs[0],0,fnames_out[1], fout);
outparams[0]=vectors->getIndex(cover.getRoot()->getPoint());
outparams[1]=cover.getMinLevel();
outparams[2]=cover.getNumLevels();
outparams[3]=cover.getCount();
outparams[4]=cover.getNumberInserted();
outparams[5]=cover.getNumberDeep();
outparams[6]=cover.getNumberDuplicates();
outparams[7]=DISTANCE_FCN;
outparams[8]=VECTOR_CLASS;
dims[0]=1;
dims[1]=numlevels;
#ifdef DOUBLE
fout=mxCreateNumericArray(ndims,dims,mxDOUBLE_CLASS,mxREAL);
#else
fout=mxCreateNumericArray(ndims,dims,mxSINGLE_CLASS,mxREAL);
#endif
REAL* pradii=(REAL*)mxGetData(fout);
pradii[0]=cover.getMaxRadius();
for(int i=1;i<numlevels;i++) {
pradii[i]=ptheta[0]*pradii[i-1];
}
mxSetField(plhs[0],0,fnames_out[2], fout);
dims[0]=N;
dims[1]=5;
fout =mxCreateNumericArray(ndims,dims,mxINT32_CLASS,mxREAL);
int* base=(int*)mxGetData(fout);
CoverIndices coverindices(&cover,vectors,base);
mxSetField(plhs[0],0,fnames_out[3], fout);
dims[0]=1;
dims[1]=2;
fout =mxCreateNumericArray(ndims,dims,mxINT64_CLASS,mxREAL);
long int* pncalls=(long int*)mxGetData(fout);
mxSetField(plhs[0],0,fnames_out[4], fout);
pncalls[0]=enlargedata.getMergeNCallsToGetDist();
pncalls[1]=enlargedata.getThreadNCallsToGetDist();
// Clean up
delete vectors;
}