您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ AVEC类代码示例

51自学网 2021-06-03 12:04:37
  C++
这篇教程C++ AVEC类代码示例写得很实用,希望能帮到您。

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

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

示例1: TEST

TEST(AgradRevMatrix, trace_gen_inv_quad_form_ldlt_grad_vvd) {  using stan::math::sum;  using stan::agrad::matrix_v;  using stan::math::matrix_d;    matrix_v av(4,4);  matrix_d ad(4,4);  matrix_d bd(4,2);  matrix_d cd(2,2);  matrix_v cv(2,2);  AVAR res;  AVEC vars;  VEC grad;  size_t i,j,pos;      bd << 100, 10,  0,  1,  -3, -3,  5,  2;  ad << 9.0,  3.0, 3.0,   3.0,         3.0, 10.0, 2.0,   2.0,        3.0,  2.0, 7.0,   1.0,        3.0,  2.0, 1.0, 112.0;  av << 9.0,  3.0, 3.0,   3.0,         3.0, 10.0, 2.0,   2.0,        3.0,  2.0, 7.0,   1.0,        3.0,  2.0, 1.0, 112.0;  cd.setIdentity(2,2);  cv.setIdentity(2,2);  stan::math::LDLT_factor<stan::agrad::var,-1,-1> ldlt_av;  ldlt_av.compute(av);  ASSERT_TRUE(ldlt_av.success());  matrix_d ainv(ad.inverse());  matrix_d dqda(-ainv*bd*cd.transpose()*bd.transpose()*ainv);  matrix_d dqdc(bd.transpose()*ainv.transpose()*bd);    // var-var  res = trace_gen_inv_quad_form_ldlt(cv,ldlt_av,bd);    vars.clear();  for (i = 0; i < 2; i++)    for (j = 0; j < 2; j++)      vars.push_back(cv(i,j));  for (i = 0; i < 4; i++)    for (j = 0; j < 4; j++)      vars.push_back(av(i,j));  grad = cgradvec(res,vars);  pos = 0;  for (i = 0; i < 2; i++)    for (j = 0; j < 2; j++, pos++)      EXPECT_FLOAT_EQ(grad[pos], dqdc(i,j));  for (i = 0; i < 4; i++)    for (j = 0; j < 4; j++, pos++)      EXPECT_FLOAT_EQ(grad[pos], dqda(i,j));}
开发者ID:HerraHuu,项目名称:stan,代码行数:58,


示例2: TEST

TEST(AgradRevMatrix, trace_gen_quad_form_mat_grad_vdv) {  using stan::math::trace_gen_quad_form;  using stan::math::sum;  using stan::agrad::matrix_v;  using stan::math::matrix_d;    matrix_v av(4,4);  matrix_d ad(4,4);  matrix_d bd(4,2);  matrix_v bv(4,2);  matrix_d cd(2,2);  matrix_v cv(2,2);  AVAR res;  AVEC vars;  VEC grad;  size_t i,j,pos;      bd << 100, 10,  0,  1,  -3, -3,  5,  2;  bv << 100, 10,  0,  1,  -3, -3,  5,  2;  ad << 2.0,  3.0, 4.0,   5.0,   6.0, 10.0, 2.0,   2.0,  7.0,  2.0, 7.0,   1.0,  8.0,  2.0, 1.0, 112.0;  av << 2.0,  3.0, 4.0,   5.0,   6.0, 10.0, 2.0,   2.0,  7.0,  2.0, 7.0,   1.0,  8.0,  2.0, 1.0, 112.0;  cd.setIdentity(2,2);  cv.setIdentity(2,2);    matrix_d dqdb(ad*bd*cd.transpose() + ad.transpose()*bd*cd);  matrix_d dqdc(bd.transpose()*ad.transpose()*bd);    res = trace_gen_quad_form(cv,ad,bv);    vars.clear();  for (i = 0; i < 2; i++)    for (j = 0; j < 2; j++)      vars.push_back(cv(i,j));  for (i = 0; i < 4; i++)    for (j = 0; j < 2; j++)      vars.push_back(bv(i,j));  grad = cgradvec(res,vars);  pos = 0;  for (i = 0; i < 2; i++)    for (j = 0; j < 2; j++, pos++)      EXPECT_FLOAT_EQ(grad[pos], dqdc(i,j));  for (i = 0; i < 4; i++)    for (j = 0; j < 2; j++, pos++)      EXPECT_FLOAT_EQ(grad[pos], dqdb(i,j));}
开发者ID:HerraHuu,项目名称:stan,代码行数:58,


示例3: TEST

TEST(AgradRevMatrix, quad_form_sym_mat_grad_vv) {  using stan::math::quad_form_sym;  using stan::math::sum;  using stan::agrad::matrix_v;  using stan::math::matrix_d;    matrix_v av(4,4);  matrix_d ad(4,4);  matrix_d bd(4,2);  matrix_v bv(4,2);  AVAR res;  AVEC vars;  VEC grad;  size_t i,j,pos;      bd << 100, 10,  0,  1,  -3, -3,  5,  2;  bv << 100, 10,  0,  1,  -3, -3,  5,  2;  ad << 2.0,  3.0, 4.0,   5.0,   3.0, 10.0, 2.0,   2.0,  4.0,  2.0, 7.0,   1.0,  5.0,  2.0, 1.0, 112.0;  av << 2.0,  3.0, 4.0,   5.0,   3.0, 10.0, 2.0,   2.0,  4.0,  2.0, 7.0,   1.0,  5.0,  2.0, 1.0, 112.0;    matrix_d dqda(bd*matrix_d::Ones(2,2)*bd.transpose());  matrix_d dqdb((ad*bd + ad.transpose()*bd)*matrix_d::Ones(2,2));    // var-var  res = sum(quad_form_sym(av,bv));    vars.clear();  for (i = 0; i < 4; i++)    for (j = 0; j < 2; j++)      vars.push_back(bv(i,j));  for (i = 0; i < 4; i++)    for (j = 0; j < 4; j++)      vars.push_back(av(i,j));  grad = cgradvec(res,vars);  pos = 0;  for (i = 0; i < 4; i++)    for (j = 0; j < 2; j++, pos++)      EXPECT_FLOAT_EQ(grad[pos], dqdb(i,j));  for (i = 0; i < 4; i++)    for (j = 0; j < 4; j++, pos++)      EXPECT_FLOAT_EQ(grad[pos], dqda(i,j));}
开发者ID:HerraHuu,项目名称:stan,代码行数:55,


示例4: TEST

TEST(AgradRevMatrix, append_col_row_vector) {  row_vector_v a(3);  row_vector_v a_square(3);  RowVectorXd b(3);  a << 2.0, 3.0, 9.0;  b << 4.0, 3.0, 0.0;  AVEC x;  for (int i = 0; i < 3; ++i) {    x.push_back(a(i));    a_square(i) = square(a(i));  }  AVAR append_col_ab = sum(append_col(a_square, b));  VEC g = cgradvec(append_col_ab, x);  size_t idx = 0;  for (int i = 0; i < 3; i++)    EXPECT_FLOAT_EQ(a(i).val()*2.0, g[idx++]);  set_zero_all_adjoints();  append_col_ab = sum(append_col(a_square, 2.1));  g = cgradvec(append_col_ab, x);  idx = 0;  for (int i = 0; i < 3; i++)    EXPECT_FLOAT_EQ(a(i).val()*2.0, g[idx++]);  set_zero_all_adjoints();  append_col_ab = sum(append_col(2.1, a_square));  g = cgradvec(append_col_ab, x);  idx = 0;  for (int i = 0; i < 3; i++)    EXPECT_FLOAT_EQ(a(i).val()*2.0, g[idx++]);  set_zero_all_adjoints();  append_col_ab = sum(append_col(a_square(2)*3.0, b));  append_col_ab.grad();  EXPECT_FLOAT_EQ(a(2).val()*6.0, x[2].adj());  set_zero_all_adjoints();  append_col_ab = sum(append_col(b, a_square(1)*3.0));  append_col_ab.grad();  EXPECT_FLOAT_EQ(a(1).val()*6.0, x[1].adj());  stan::math::recover_memory();}
开发者ID:stan-dev,项目名称:math,代码行数:50,


示例5: TEST

TEST(AgradRevMatrix, dot_product_vd) {  AVEC a;  VEC b;  AVAR c;  for (int i = -1; i < 2; i++) { // a = (-1, 0, 1), b = (1, 2, 3)    a.push_back(i);    b.push_back(i + 2);  }  c = dot_product(&a[0], &b[0], 3);  EXPECT_EQ(2, c);  VEC grad;  c.grad(a, grad);  EXPECT_EQ(grad[0], 1);  EXPECT_EQ(grad[1], 2);  EXPECT_EQ(grad[2], 3);}
开发者ID:javaosos,项目名称:stan,代码行数:16,


示例6: TEST

TEST(AgradRevMatrix, trace_quad_form_ldlt_mat_grad_dv) {  using stan::math::sum;  using stan::math::matrix_v;  using stan::math::matrix_d;    matrix_d ad(4,4);  matrix_d bd(4,2);  matrix_v bv(4,2);  AVAR res;  AVEC vars;  VEC grad;  size_t i,j,pos;      bd << 100, 10,  0,  1,  -3, -3,  5,  2;  bv << 100, 10,  0,  1,  -3, -3,  5,  2;  ad << 9.0,  3.0, 3.0,   3.0,         3.0, 10.0, 2.0,   2.0,        3.0,  2.0, 7.0,   1.0,        3.0,  2.0, 1.0, 112.0;    stan::math::LDLT_factor<double,-1,-1> ldlt_ad;  ldlt_ad.compute(ad);  ASSERT_TRUE(ldlt_ad.success());    matrix_d ainv(ad.inverse());  matrix_d dqdb(ainv*bd + ainv.transpose()*bd);    // var-var  res = trace_inv_quad_form_ldlt(ldlt_ad,bv);    vars.clear();  for (i = 0; i < 4; i++)    for (j = 0; j < 2; j++)      vars.push_back(bv(i,j));  grad = cgradvec(res,vars);  pos = 0;  for (i = 0; i < 4; i++)    for (j = 0; j < 2; j++, pos++)      EXPECT_FLOAT_EQ(grad[pos], dqdb(i,j));}
开发者ID:stan-dev,项目名称:math,代码行数:47,


示例7: test_sort_indices_desc

void test_sort_indices_desc(VEC val) {    AVEC x;  for(size_t i=0U; i<val.size(); i++)    x.push_back(AVAR(val[i]));    std::vector<int> val_sorted = sort_indices_desc(val);  std::vector<int> x_sorted = sort_indices_desc(x);    for(size_t i=0U; i<val.size(); i++)    EXPECT_EQ(val_sorted[i],x_sorted[i]);  for(size_t i=0U; i<val.size(); i++)    for(size_t j=0U; j<val.size(); j++)      if(val_sorted[i] == val[j])        EXPECT_EQ(x_sorted[i],x[j]);      else        EXPECT_FALSE(x_sorted[i]==x[j]);}
开发者ID:aseyboldt,项目名称:math,代码行数:19,


示例8: test_sort_asc

void test_sort_asc(VEC val) {  using stan::math::sort_asc;  using stan::agrad::sort_asc;    AVEC x;  for(size_t i=0U; i<val.size(); i++)    x.push_back(AVAR(val[i]));    VEC val_sorted = sort_asc(val);  AVEC x_sorted = sort_asc(x);    for(size_t i=0U; i<val.size(); i++)    EXPECT_EQ(val_sorted[i],x_sorted[i].val());  for(size_t i=0U; i<val.size(); i++)    for(size_t j=0U; j<val.size(); j++)      if(val_sorted[i] == val[j])        EXPECT_EQ(x_sorted[i],x[j]);      else        EXPECT_FALSE(x_sorted[i]==x[j]);}
开发者ID:frenchjl,项目名称:stan,代码行数:21,


示例9: TEST

TEST(AgradRevMatrix, distance_vd) {  using stan::math::vector_d;  using stan::math::vector_v;  vector_v a(3);  vector_d b(3);  AVAR c;  for (int i = -1; i < 2; i++) { // a = (-1, 0, 1), b = (1, 2, 3)    a(i+1) = i;    b(i+1) = i + 2;  }  c = stan::math::distance(a, b);  EXPECT_FLOAT_EQ(3.464102, c.val());  AVEC av;  VEC grad;  for (size_t i = 0; i < 3; i++) {    av.push_back(a[i]);  }  c.grad(av, grad);  EXPECT_FLOAT_EQ((a(0).val() - b(0)) / 3.464102, grad[0]);  EXPECT_FLOAT_EQ((a(1).val() - b(1)) / 3.464102, grad[1]);  EXPECT_FLOAT_EQ((a(2).val() - b(2)) / 3.464102, grad[2]);}
开发者ID:aseyboldt,项目名称:math,代码行数:23,


示例10: createAVEC

AVEC createAVEC(AVAR x1, AVAR x2) {  AVEC v;  v.push_back(x1);  v.push_back(x2);  return v;}
开发者ID:Alienfeel,项目名称:stan,代码行数:6,



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


C++ AVLTree类代码示例
C++ AVClass类代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。