本文整理汇总了C++中ivector类的典型用法代码示例。如果您正苦于以下问题:C++ ivector类的具体用法?C++ ivector怎么用?C++ ivector使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ivector类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: x
/**
Allocate variable vector of matrices with dimensions
[sl to sh] x ([nrl to nrh] x [ncl to nch])
where nrl is a vector of indexes.
\param sl lower index of vector
\param sh upper index of vector
\param nrl vector of lower row indexes for matrix
\param nrh upper row index for matrix
\param ncl upper column index for matrix
\param nch upper column index for matrix
*/
void dvar3_array::allocate(int sl, int sh, const ivector& nrl, int nrh,
int ncl, int nch)
{
if (sh < sl)
{
allocate();
return;
}
if (sl !=nrl.indexmin() || sh !=nrl.indexmax())
{
cerr << "Incompatible array bounds in "
"dmatrix(int nrl,int nrh, const ivector& ncl, const ivector& nch)" << endl;
ad_exit(1);
}
if ( (shape=new three_array_shape(sl,sh)) == 0)
{
cerr << " Error allocating memory in dvar3_array contructor" << endl;
}
if ( (t = new dvar_matrix[slicesize()]) == 0)
{
cerr << " Error allocating memory in dvar3_array contructor" << endl;
ad_exit(21);
}
t -= slicemin();
for (int i = sl; i <= sh; ++i)
{
t[i].allocate(nrl(i), nrh, ncl, nch);
}
}
示例2: calcGradient
bool MLP::calcGradient(const dmatrix& inputs,
const ivector& ids,
dvector& grad) {
if (inputs.rows() != ids.size()) {
setStatusString("Number of vectors not consistent with number of ids");
return false;
}
dvector tmp;
int i;
double tmpError;
totalError = 0;
calcGradient(inputs.getRow(0),ids.at(0),grad);
computeActualError(ids.at(0),totalError);
for (i=1;i<inputs.rows();++i) {
calcGradient(inputs.getRow(i),ids.at(i),tmp);
computeActualError(ids.at(i),tmpError);
grad.add(tmp);
totalError+=tmpError;
}
return true;
}
示例3: getMostLabel
//get most(best) available label from histogram
int kNearestNeighFilter::getMostLabel(const ivector& histogram,
const imatrix& src,
const int& row, const int& col) const{
int numOfMax = 0;
int maxIndex = -1; // first index, which is max
int max = 0; //
for(int i=0;i<histoSize;++i) {
if(histogram.at(i) < max); // for speed up (probability)
else if(histogram.at(i) > max) {
max = histogram.at(i);
numOfMax = 1;
maxIndex = i;
}
else //if(histogram.at(i) == max)
++numOfMax;
}
//is there more than one possibility ?
if (numOfMax == 1)
return maxIndex;
// is the kernel center one of the max's?
else if(histogram.at(src.at(row,col)) == max)
return src.at(row,col);
else
return getMedian(histogram,max,numOfMax);
};
示例4: allocate
/**
* Description not yet available.
* \param
*/
void dmatrix::allocate(int nrl,int nrh,const ivector& ncl,int nch)
{
if (nrh<nrl)
{
allocate();
return;
}
if (nrl !=ncl.indexmin() || nrh !=ncl.indexmax())
{
cerr << "Incompatible array bounds in dmatrix(int nrl,int nrh,"
" int ncl,const ivector& nch)\n";
ad_exit(1);
}
index_min=nrl;
index_max=nrh;
if ( (m = new dvector [rowsize()]) == 0)
{
cerr << " Error allocating memory in dmatrix contructor\n";
ad_exit(21);
}
if ( (shape = new mat_shapex(m))== 0)
{
cerr << " Error allocating memory in dmatrix contructor\n";
ad_exit(21);
}
m -= rowmin();
for (int i=rowmin(); i<=rowmax(); i++)
{
m[i].allocate(ncl(i),nch);
}
}
示例5: allocate
/**
* Description not yet available.
* \param
*/
void lmatrix::allocate(int nrl, int nrh, int ncl, const ivector& nch)
{
if (nrl !=nch.indexmin() || nrh !=nch.indexmax())
{
cerr << "Incompatible array bounds in "
"lmatrix::allocate(int nrl,int nrh,int ncl, const ivector& nch)\n";
ad_exit(1);
}
if ( (shape = new mat_shape(nrl,nrh,ncl,nch(nch.indexmin())))== 0)
{
cerr << " Error allocating memory in lmatrix contructor\n";
ad_exit(21);
}
size_t rs=rowsize();
if ( (m = new lvector [rs]) == 0)
{
cerr << " Error allocating memory in lmatrix contructor\n";
ad_exit(21);
}
m -= rowmin();
for (int i=rowmin(); i<=rowmax(); i++)
{
m[i].allocate(ncl,nch(i));
}
}
示例6: allocate
/**
* Description not yet available.
* \param
*/
dvector::dvector(const ivector& u)
{
allocate(u.indexmin(),u.indexmax());
for ( int i=indexmin(); i<=indexmax(); i++)
{
elem(i)=u.elem(i);
}
}
示例7: norm2
/**
Returns the sum of the squares of all elements in ivec.
\param ivec ivector
*/
int norm2(const ivector& ivec)
{
int sum = 0;
for (int i = ivec.indexmin(); i <= ivec.indexmax(); ++i)
{
sum += ivec(i) * ivec(i);
}
return sum;
}
示例8: operator
/**
* Description not yet available.
* \param
*/
dvector dvector::operator ()(const ivector& u)
{
dvector tmp(u.indexmin(),u.indexmax());
for ( int i=u.indexmin(); i<=u.indexmax(); i++)
{
tmp(i)=(*this)(u(i));
}
return tmp;
}
示例9: square
/**
Return dvector results of squaring elements in a values;
constant vector object.
\ingroup misc
\param values of constant object to be squared.
\return vector of the same length as #values containing \f$values_i^2\f$
*/
ivector square(const ivector& values)
{
ivector results;
results.allocate(values);
for (int i = values.indexmin(); i <= values.indexmax(); ++i)
{
results(i) = values(i) * values(i);
}
return results;
}
示例10: histogramMethodMiddle
// the kernel runs inside the image
void kNearestNeighFilter::histogramMethodMiddle(const imatrix& src,
imatrix& dest,
ivector& histogram,
const int& row,int& col) const {
int i,j;//index
int numOfMax, maxIndex;
int max=0;
const int maxChange = sizeOfKernel+1;//max change for "max"
const int limit = sizeOfKernel/2; //half size of the kernel
const int lastCol = src.lastColumn()-limit;
const int r = row+limit;
col = limit;
int v; //del test
while(col <= (lastCol-1)) {
j = col-limit;
// sub labels left form the kernel
for(i=row-limit;i<=r;++i) {
--histogram.at(src.at(i,j));
}
// add labels right from the kernel
++col;
j = col+limit;
for(i=row-limit;i<=r;++i) {
v = src.at(i,j);
++histogram.at(src.at(i,j));
}
//get most(best) available label
numOfMax = 0;
maxIndex = -1;
max -= maxChange; //=0;
for(i=0;i<histoSize;++i) {
if(histogram.at(i) < max);// for speed up (probability)
else if(histogram.at(i) > max) {
max = histogram.at(i);
numOfMax = 1;
maxIndex = i;
}
else //if(histogram.at(i) == max)
++numOfMax;
}
//is there more than one possibility ?
if(numOfMax == 1)
dest.at(row,col) = maxIndex;
// is the kernel center one of the max's?
else if(histogram.at(src.at(row,col)) == max)
dest.at(row,col) = src.at(row,col);
else
dest.at(row,col) = getMedian(histogram,max,numOfMax);
}//while
};
示例11: allocate
void allocate(int lb, int ub)
{
indx.allocate(lb, ub);
indx2.allocate(lb, ub);
ivector iv(lb + 1, ub);
iv.fill_seqadd(lb, 1);
L.allocate(lb + 1, ub, lb, iv);
ivector iv1(lb, ub);
iv1.fill_seqadd(lb, 1);
U.allocate(lb, ub, lb, iv1);
indx2.fill_seqadd(lb, 1);
}
示例12: makeTargets
void svm::makeTargets(const ivector& ids) {
// expand each class label i to a vector v with v[j]=1 if j == i,
// and j[j]=-1 if j != i
srcIds=ids;
dmatrix* t=new dmatrix(nClasses,ids.size(),-1.0);
// iterate over training labels
for (int i=0; i<t->columns(); i++) {
t->at(idMap[ids.at(i)],i)=1;
}
if (target != 0) {
delete target;
}
target=t;
}
示例13: vect
int kNearestNeighFilter::getMedian(const ivector& histogram,
const int max,
const int numOfMax) const {
ivector vect(numOfMax,0);
int i,z=0;
const int size=histogram.size();
for(i=0;i<size;++i) {
if (histogram.at(i) == max) {
vect.at(z++) = i;
}
}
return vect.at(z/2);
}
示例14: buildIdMaps
void svm::buildIdMaps(const ivector& ids) {
int j=0;
// create reverse id map
idMap.clear();
for (int i=0; i<ids.size(); i++) {
if (idMap.find(ids.at(i)) == idMap.end()) {
_lti_debug("Mapping external id " << ids.at(i) << " to " << j << std::endl);
rIdMap[j]=ids.at(i);
idMap[ids.at(i)]=j++;
}
}
nClasses=j;
}
示例15: checkHowManyOutputs
void MLP::checkHowManyOutputs(const ivector& ids) {
// count how many different ids are present in the training set
std::map<int,int> extToInt;
std::map<int,int>::iterator it;
int i,k;
for (i=0,k=0;i<ids.size();++i) {
it = extToInt.find(ids.at(i));
if (it == extToInt.end()) {
extToInt[ids.at(i)] = k;
++k;
}
}
outputs = extToInt.size();
}