• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ IndexDependentFill函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中IndexDependentFill函数的典型用法代码示例。如果您正苦于以下问题:C++ IndexDependentFill函数的具体用法?C++ IndexDependentFill怎么用?C++ IndexDependentFill使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



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

示例1: GCDMatrix

void GCDMatrix( AbstractDistMatrix<T>& G, Int m, Int n )
{
    DEBUG_ONLY(CSE cse("GCDMatrix"))
    G.Resize( m, n );
    auto gcdFill = []( Int i, Int j ) { return T(GCD(i+1,j+1)); };
    IndexDependentFill( G, function<T(Int,Int)>(gcdFill) );
}
开发者ID:nooperpudd,项目名称:Elemental,代码行数:7,代码来源:GCDMatrix.cpp


示例2: MinIJ

void MinIJ( AbstractDistMatrix<T>& M, Int n )
{
    DEBUG_ONLY(CSE cse("MinIJ"))
    M.Resize( n, n );
    auto minIJFill = []( Int i, Int j ) { return T(Min(i+1,j+1)); };
    IndexDependentFill( M, function<T(Int,Int)>(minIJFill) );
}
开发者ID:bluehope,项目名称:Elemental,代码行数:7,代码来源:MinIJ.cpp


示例3: Hilbert

void Hilbert( AbstractDistMatrix<F>& A, Int n )
{
    DEBUG_ONLY(CSE cse("Hilbert"))
    A.Resize( n, n );
    auto hilbertFill = []( Int i, Int j ) { return F(1)/F(i+j+1); };
    IndexDependentFill( A, function<F(Int,Int)>(hilbertFill) );
}
开发者ID:AmiArnab,项目名称:Elemental,代码行数:7,代码来源:Hilbert.cpp


示例4: Parter

void Parter( AbstractBlockDistMatrix<F>& P, Int n )
{
    DEBUG_ONLY(CallStackEntry cse("Parter"))
    P.Resize( n, n );
    const F oneHalf = F(1)/F(2);
    auto parterFill = [=]( Int i, Int j ) { return F(1)/(F(i)-F(j)+oneHalf); };
    IndexDependentFill( P, function<F(Int,Int)>(parterFill) );
}
开发者ID:sg0,项目名称:Elemental,代码行数:8,代码来源:Parter.cpp


示例5: Ris

void Ris( AbstractBlockDistMatrix<F>& R, Int n )
{
    DEBUG_ONLY(CallStackEntry cse("Ris"))
    R.Resize( n, n );
    const F oneHalf = F(1)/F(2);
    auto risFill = [=]( Int i, Int j ) { return oneHalf/(F(n-i-j)-oneHalf); };
    IndexDependentFill( R, function<F(Int,Int)>(risFill) );
}
开发者ID:sg0,项目名称:Elemental,代码行数:8,代码来源:Ris.cpp


示例6: Ris

void Ris( AbstractDistMatrix<F>& R, Int n )
{
    DEBUG_CSE
    R.Resize( n, n );
    const F oneHalf = F(1)/F(2);
    auto risFill = [=]( Int i, Int j ) { return oneHalf/(F(n-i-j)-oneHalf); };
    IndexDependentFill( R, function<F(Int,Int)>(risFill) );
}
开发者ID:YingzhouLi,项目名称:Elemental,代码行数:8,代码来源:Ris.cpp


示例7: Parter

void Parter( AbstractDistMatrix<F>& P, Int n )
{
    EL_DEBUG_CSE
    P.Resize( n, n );
    const F oneHalf = F(1)/F(2);
    auto parterFill = [=]( Int i, Int j ) { return F(1)/(F(i)-F(j)+oneHalf); };
    IndexDependentFill( P, function<F(Int,Int)>(parterFill) );
}
开发者ID:elemental,项目名称:Elemental,代码行数:8,代码来源:Parter.cpp


示例8: Lehmer

void Lehmer( AbstractDistMatrix<F>& L, Int n )
{
    DEBUG_ONLY(CSE cse("Lehmer"))
    L.Resize( n, n );
    auto lehmerFill = 
      []( Int i, Int j ) -> F
      { if( i < j ) { return F(i+1)/F(j+1); }
        else        { return F(j+1)/F(i+1); } };
    IndexDependentFill( L, function<F(Int,Int)>(lehmerFill) );
}
开发者ID:AmiArnab,项目名称:Elemental,代码行数:10,代码来源:Lehmer.cpp


示例9: KMS

void KMS( AbstractBlockDistMatrix<T>& K, Int n, T rho )
{
    DEBUG_ONLY(CallStackEntry cse("KMS"))
    K.Resize( n, n );
    auto kmsFill = 
      [=]( Int i, Int j ) -> T
      { if( i < j ) { return Pow(rho,T(j-i));       } 
        else        { return Conj(Pow(rho,T(i-j))); } };
    IndexDependentFill( K, function<T(Int,Int)>(kmsFill) );
}
开发者ID:jakebolewski,项目名称:Elemental,代码行数:10,代码来源:KMS.cpp


示例10: Toeplitz

void Toeplitz( AbstractDistMatrix<S>& A, Int m, Int n, const vector<T>& a )
{
    EL_DEBUG_CSE
    const Int length = m+n-1;
    if( a.size() != Unsigned(length) )
        LogicError("a was the wrong size");
    A.Resize( m, n );
    auto toeplitzFill = [&]( Int i, Int j ) { return a[i-j+(n-1)]; };
    IndexDependentFill( A, function<S(Int,Int)>(toeplitzFill) );
}
开发者ID:elemental,项目名称:Elemental,代码行数:10,代码来源:Toeplitz.cpp


示例11: Redheffer

void Redheffer( AbstractBlockDistMatrix<T>& R, Int n )
{
    DEBUG_ONLY(CSE cse("Redheffer"))
    R.Resize( n, n );
    auto redhefferFill = 
      []( Int i, Int j ) -> T
      { if( j == 0 || ((j+1)%(i+1))==0 ) { return T(1); }
        else                             { return T(0); } };
    IndexDependentFill( R, function<T(Int,Int)>(redhefferFill) );
}
开发者ID:birm,项目名称:Elemental,代码行数:10,代码来源:Redheffer.cpp


示例12: DEBUG_ONLY

void Egorov
( Matrix<Complex<Real>>& A, function<Real(Int,Int)> phase, Int n )
{
    DEBUG_ONLY(CSE cse("Egorov"))
    A.Resize( n, n );
    auto egorovFill = 
      [&]( Int i, Int j ) -> Complex<Real>
      { const Real theta = phase(i,j);
        return Complex<Real>(Cos(theta),Sin(theta)); }; 
    IndexDependentFill( A, function<Complex<Real>(Int,Int)>(egorovFill) );
}
开发者ID:restrin,项目名称:Elemental,代码行数:11,代码来源:Egorov.cpp


示例13: GKS

void GKS( AbstractBlockDistMatrix<F>& A, Int n )
{
    DEBUG_ONLY(CallStackEntry cse("GKS"))
    A.Resize( n, n );
    auto gksFill = 
      []( Int i, Int j ) -> F
      { if( i < j )       { return -F(1)/Sqrt(F(j+1)); }
        else if( i == j ) { return  F(1)/Sqrt(F(j+1)); }
        else              { return  F(0);            } };
    IndexDependentFill( A, function<F(Int,Int)>(gksFill) );
}
开发者ID:jakebolewski,项目名称:Elemental,代码行数:11,代码来源:GKS.cpp


示例14: KMS

void KMS( AbstractDistMatrix<T>& K, Int n, T rho )
{
    EL_DEBUG_CSE
    K.Resize( n, n );
    auto kmsFill =
        [=]( Int i, Int j ) -> T
{   if( i < j ) {
            return Pow(rho,T(j-i));
        }
        else        { return Conj(Pow(rho,T(i-j))); } };
    IndexDependentFill( K, function<T(Int,Int)>(kmsFill) );
}
开发者ID:elemental,项目名称:Elemental,代码行数:12,代码来源:KMS.cpp


示例15: Fourier

void Fourier( AbstractBlockDistMatrix<Complex<Real>>& A, Int n )
{
    DEBUG_ONLY(CallStackEntry cse("Fourier"))
    A.Resize( n, n );
    const Real pi = 4*Atan( Real(1) );
    const Real nSqrt = Sqrt( Real(n) );
    auto fourierFill = 
      [=]( Int i, Int j ) -> Complex<Real>
      { const Real theta = -2*pi*i*j/n;
        return Complex<Real>(Cos(theta),Sin(theta))/nSqrt; };
    IndexDependentFill( A, function<Complex<Real>(Int,Int)>(fourierFill) );
}
开发者ID:sg0,项目名称:Elemental,代码行数:12,代码来源:Fourier.cpp


示例16: Fourier

void Fourier( Matrix<Complex<Real>>& A, Int n )
{
    EL_DEBUG_CSE
    A.Resize( n, n );
    const Real pi = 4*Atan( Real(1) );
    const Real nSqrt = Sqrt( Real(n) );
    auto fourierFill =
      [=]( Int i, Int j ) -> Complex<Real>
      { const Real theta = -2*pi*i*j/n;
        return Complex<Real>(Cos(theta),Sin(theta))/nSqrt; };
    IndexDependentFill( A, function<Complex<Real>(Int,Int)>(fourierFill) );
}
开发者ID:elemental,项目名称:Elemental,代码行数:12,代码来源:Fourier.cpp


示例17: DEBUG_ONLY

void Egorov
( AbstractBlockDistMatrix<Complex<Real>>& A,
  std::function<Real(Int,Int)> phase, Int n )
{
    DEBUG_ONLY(CallStackEntry cse("Egorov"))
    A.Resize( n, n );
    auto egorovFill = 
      [&]( Int i, Int j )
      { const Real theta = phase(i,j);
        return Complex<Real>(Cos(theta),Sin(theta)); }; 
    IndexDependentFill( A, std::function<Complex<Real>(Int,Int)>(egorovFill) );
}
开发者ID:arbenson,项目名称:Elemental,代码行数:12,代码来源:Egorov.cpp


示例18: Kahan

void Kahan( AbstractDistMatrix<F>& A, Int n, F phi )
{
    DEBUG_ONLY(CSE cse("Kahan"))
    A.Resize( n, n );
    const F zeta = Sqrt(F(1)-phi*Conj(phi));
    typedef Base<F> Real;
    auto kahanFill = 
      [=]( Int i, Int j ) -> F
      { if( i == j )      { return      Pow(zeta,Real(i)); }
        else if(  i < j ) { return -phi*Pow(zeta,Real(i)); }
        else              { return F(0);                   } };
    IndexDependentFill( A, function<F(Int,Int)>(kahanFill) );
}
开发者ID:bluehope,项目名称:Elemental,代码行数:13,代码来源:Kahan.cpp


示例19: Riffle

void Riffle( AbstractDistMatrix<F>& P, Int n )
{
    DEBUG_CSE
    typedef Base<F> Real;

    auto logBinom = LogBinomial<Real>( n+1 );
    auto logEuler = LogEulerian<Real>( n );

    const Real gamma = n*Log(Real(2));

    P.Resize( n, n );
    auto riffleFill = 
      [&]( Int i, Int j ) -> F
      { const Int k = 2*i - j + 1;
        if( k >= 0 && k <= n+1 )
            return Exp(logBinom[k]-gamma+logEuler[j]-logEuler[i]);
        else
            return Base<F>(0); 
      };
    IndexDependentFill( P, function<F(Int,Int)>(riffleFill) );
}
开发者ID:YingzhouLi,项目名称:Elemental,代码行数:21,代码来源:Riffle.cpp


示例20: RiffleStationary

void RiffleStationary( AbstractDistMatrix<F>& PInf, Int n )
{
    DEBUG_CSE
    typedef Base<F> Real;
    // NOTE: This currently requires quadratic time
    vector<Real> sigma(n,0), sigmaTmp(n,0);
    sigma[0] = sigmaTmp[0] = 1;
    for( Int j=1; j<n; ++j )
    {
        sigmaTmp[0] = sigma[0];
        for( Int k=1; k<=j; ++k )
            sigmaTmp[k] = (k+1)*sigma[k] + (j-k+1)*sigma[k-1];
        for( Int k=0; k<n; ++k )
            sigma[k] = sigmaTmp[k]/(j+1);
    }
    SwapClear( sigmaTmp );

    PInf.Resize( n, n );
    auto riffleStatFill = [&]( Int i, Int j ) { return sigma[j]; };
    IndexDependentFill( PInf, function<F(Int,Int)>(riffleStatFill) );
}
开发者ID:YingzhouLi,项目名称:Elemental,代码行数:21,代码来源:Riffle.cpp



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ IndexOf函数代码示例发布时间:2022-05-30
下一篇:
C++ Index函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap