本文整理汇总了C++中af::select方法的典型用法代码示例。如果您正苦于以下问题:C++ af::select方法的具体用法?C++ af::select怎么用?C++ af::select使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类af
的用法示例。
在下文中一共展示了af::select方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: selectScalarTest
void selectScalarTest(const dim4 &dims)
{
if (noDoubleTests<T>()) return;
dtype ty = (dtype)dtype_traits<T>::af_type;
array a = randu(dims, ty);
array cond = randu(dims, ty) > a;
double b = 3;
if (a.isinteger()) {
a = (a % (1 << 30)).as(ty);
}
array c = is_right ? select(cond, a, b) : select(cond, b, a);
int num = (int)a.elements();
vector<T> ha(num);
vector<T> hc(num);
vector<char> hcond(num);
a.host(&ha[0]);
c.host(&hc[0]);
cond.host(&hcond[0]);
if (is_right) {
for (int i = 0; i < num; i++) {
ASSERT_EQ(hc[i], hcond[i] ? ha[i] : T(b));
}
} else {
for (int i = 0; i < num; i++) {
ASSERT_EQ(hc[i], hcond[i] ? T(b) : ha[i]);
}
}
}
示例2: selectTest
void selectTest(const dim4 &dims)
{
if (noDoubleTests<T>()) return;
dtype ty = (dtype)dtype_traits<T>::af_type;
array a = randu(dims, ty);
array b = randu(dims, ty);
if (a.isinteger()) {
a = (a % (1 << 30)).as(ty);
b = (b % (1 << 30)).as(ty);
}
array cond = randu(dims, ty) > a;
array c = select(cond, a, b);
int num = (int)a.elements();
vector<T> ha(num);
vector<T> hb(num);
vector<T> hc(num);
vector<char> hcond(num);
a.host(&ha[0]);
b.host(&hb[0]);
c.host(&hc[0]);
cond.host(&hcond[0]);
for (int i = 0; i < num; i++) {
ASSERT_EQ(hc[i], hcond[i] ? ha[i] : hb[i]);
}
}
示例3: dims
TEST(Select, ISSUE_1249)
{
dim4 dims(2, 3, 4);
array cond = randu(dims) > 0.5;
array a = randu(dims);
array b = select(cond, a - a * 0.9, a);
array c = a - a * cond * 0.9;
int num = (int)dims.elements();
vector<float> hb(num);
vector<float> hc(num);
b.host(&hb[0]);
c.host(&hc[0]);
for (int i = 0; i < num; i++) {
EXPECT_NEAR(hc[i], hb[i], 1e-7) << "at " << i;
}
}