本文整理汇总了C++中ExprVector::row_vector方法的典型用法代码示例。如果您正苦于以下问题:C++ ExprVector::row_vector方法的具体用法?C++ ExprVector::row_vector怎么用?C++ ExprVector::row_vector使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExprVector
的用法示例。
在下文中一共展示了ExprVector::row_vector方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: visit
void ExprCopy::visit(const ExprVector& e) {
for (int i=0; i<e.nb_args; i++)
visit(e.arg(i));
if (fold) {
int i=0;
for (; i<e.nb_args; i++) {
if (!dynamic_cast<const ExprConstant*>(&ARG(i))) break;
}
if (i==e.nb_args) {
if (e.dim.is_vector()) {
IntervalVector v(e.dim.vec_size());
for (i=0; i<e.nb_args; i++) {
v[i]=((const ExprConstant&) ARG(i)).get_value();
}
clone.insert(e, &ExprConstant::new_vector(v,e.row_vector()));
} else if (e.dim.type()==Dim::MATRIX) {
IntervalMatrix m(e.dim.dim2,e.dim.dim3);
for (i=0; i<e.nb_args; i++) {
m.set_row(i,((const ExprConstant&) ARG(i)).get_vector_value());
}
clone.insert(e, &ExprConstant::new_matrix(m));
} else {
assert(e.dim.type()==Dim::MATRIX_ARRAY);
IntervalMatrixArray ma(e.dim.dim1,e.dim.dim2,e.dim.dim3);
for (i=0; i<e.nb_args; i++) {
ma[i]=((const ExprConstant&) ARG(i)).get_matrix_value();
}
clone.insert(e, &ExprConstant::new_matrix_array(ma));
}
return;
}
}
Array<const ExprNode> args2(e.nb_args);
for (int i=0; i<e.nb_args; i++) {
args2.set_ref(i,ARG(i));
// don't remove this node even if it is a constant because
// it is an element of this vector.
mark(e.arg(i));
}
clone.insert(e, &ExprVector::new_(args2,e.row_vector()));
}
示例2: vector_bwd
void Gradient::vector_bwd(const ExprVector& v, ExprLabel** compL, const ExprLabel& y) {
if (v.dim.is_vector()) {
for (int i=0; i<v.length(); i++) compL[i]->g->i()+=y.g->v()[i];
}
else {
if (v.row_vector())
for (int i=0; i<v.length(); i++) compL[i]->g->v()+=y.g->m()[i];
else
for (int i=0; i<v.length(); i++) compL[i]->g->v()+=y.g->m().col(i);
}
}
示例3:
void HC4Revise::vector_bwd(const ExprVector& v, ExprLabel** compL, const ExprLabel& y) {
if (v.dim.is_vector()) {
for (int i=0; i<v.length(); i++)
if ((compL[i]->d->i() &= y.d->v()[i]).is_empty()) throw EmptyBoxException();
}
else {
if (v.row_vector())
for (int i=0; i<v.length(); i++) {
if ((compL[i]->d->v()&=y.d->m().col(i)).is_empty()) throw EmptyBoxException();
}
else
for (int i=0; i<v.length(); i++) {
if ((compL[i]->d->v()&=y.d->m().row(i)).is_empty()) throw EmptyBoxException();
}
}
}
示例4:
void Affine2Eval::vector_fwd(const ExprVector& v, const ExprLabel** compL, ExprLabel& y) {
assert(v.type()!=Dim::SCALAR);
assert(v.type()!=Dim::MATRIX_ARRAY);
if (v.dim.is_vector()) {
for (int i=0; i<v.length(); i++) {
y.af2->v()[i]=compL[i]->af2->i();
y.d->v()[i]=compL[i]->d->i();
}
}
else {
if (v.row_vector())
for (int i=0; i<v.length(); i++) {
y.af2->m().set_col(i,compL[i]->af2->v());
y.d->m().set_col(i,compL[i]->d->v());
}
else
for (int i=0; i<v.length(); i++) {
y.af2->m().set_row(i,compL[i]->af2->v());
y.d->m().set_row(i,compL[i]->d->v());
}
}
}