当前位置: 首页>>代码示例>>C++>>正文


C++ Vec::Size方法代码示例

本文整理汇总了C++中Vec::Size方法的典型用法代码示例。如果您正苦于以下问题:C++ Vec::Size方法的具体用法?C++ Vec::Size怎么用?C++ Vec::Size使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Vec的用法示例。


在下文中一共展示了Vec::Size方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: LU_resolve

    /*  Solving LU=b for general matrix  */
Vec EqSolver::LU_resolve(Vec c){
   Vec dd=c;
   double u=0;
     /*  Changes c to compensate swaping rows during LU decomposition  */
   for(int i=0;i<c.Size();++i){
     if(b[i]!=i){
       u=c[i];
       c.SetEntrie(i,c[b[i]]);
       c.SetEntrie(b[i],u);
     }
     b[(int) b[i]]=b[i];
   }
     /*  Ly=b  */ 
   for(int i=0;i<c.Size();++i){
     u=0;
     for(int j=0;j<i;++j)
       u+=m[i][j]*dd[j];
     dd.SetEntrie(i,c[i]-u);
   }
     /*  Ux=y  */
   for(int i=c.Size()-1;i>-.5;--i){
     u=0;
     for(int j=c.Size()-1;j>i;--j)
       u+=m[i][j]*dd[j];
     dd.SetEntrie(i,(dd[i]-u)/m[i][i]);
   }
   return dd;
 }
开发者ID:GCCastro,项目名称:eufito,代码行数:29,代码来源:EqSolver.C

示例2: while

double 
ME_Model::constrained_line_search(double C,
			const Vec & x0, const Vec & grad0, const double f0, 
			const Vec & dx, Vec & x, Vec & grad1)
{
  // compute the orthant to explore
  Vec orthant = x0;
  for (size_t i = 0; i < orthant.Size(); i++) {
    if (orthant[i] == 0) orthant[i] = -grad0[i];
  }

  double t = 1.0 / LINE_SEARCH_BETA;

  double f;
  do {
    t *= LINE_SEARCH_BETA;
    x = x0 + t * dx;
    x.Project(orthant);
    //    for (size_t i = 0; i < x.Size(); i++) {
    //      if (x0[i] != 0 && sign(x[i]) != sign(x0[i])) x[i] = 0;
    //    }

    f = regularized_func_grad(C, x, grad1);
    //        cout << "*";
  } while (f > f0 + LINE_SEARCH_ALPHA * dot_product(x - x0, grad0));

  return f;
}
开发者ID:Fooway,项目名称:SAGA-GIS-git-mirror,代码行数:28,代码来源:owlqn.cpp

示例3: FunctionGradient

double 
ME_Model::regularized_func_grad(const double C, const Vec & x, Vec & grad)
{
  double f = FunctionGradient(x.STLVec(), grad.STLVec());
  for (size_t i = 0; i < x.Size(); i++) {
    f += C * fabs(x[i]);
  }

  return f;
}
开发者ID:Fooway,项目名称:SAGA-GIS-git-mirror,代码行数:10,代码来源:owlqn.cpp

示例4: QueueMessageForSending

// transfers the data to a thread that does the actual sending
static void QueueMessageForSending(Vec<byte>& msg)
{
    size_t len = msg.Size();
    if (0 == len)
        return;

    MemBlock *block = GetBlock(len);
    if (block) {
        block->Append(msg.LendData(), len);
        SetEvent(gSendThreadEvent);
    } else {
        lf("memtrace.dll: QueueMessageForSending() couldn't queu %d bytes", (int)len);
    }
}
开发者ID:BianChengNan,项目名称:sumatrapdf,代码行数:15,代码来源:MemTraceDll.cpp

示例5: sign

static Vec
pseudo_gradient(const Vec & x, const Vec & grad0, const double C)
{
  Vec grad = grad0;
  for (size_t i = 0; i < x.Size(); i++) {
    if (x[i] != 0) {
      grad[i] += C * sign(x[i]);
      continue;
    }
    const double gm = grad0[i] - C;
    if (gm > 0) {
      grad[i] = gm;
      continue;
    }
    const double gp = grad0[i] + C;
    if (gp < 0) {
      grad[i] = gp;
      continue;
    }
    grad[i] = 0;
  }

  return grad;
}
开发者ID:Fooway,项目名称:SAGA-GIS-git-mirror,代码行数:24,代码来源:owlqn.cpp


注:本文中的Vec::Size方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。