本文整理汇总了C++中var::dim方法的典型用法代码示例。如果您正苦于以下问题:C++ var::dim方法的具体用法?C++ var::dim怎么用?C++ var::dim使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类var
的用法示例。
在下文中一共展示了var::dim方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: scalar
void Transpose::scalar(const var& iVar, var& oVar) const
{
// Note that we need to transpose the view too. If it's allocated, it's
// transposed at allocation; if it's supplied it's assumed to be correct
// already. This leaves the in-place case; this happens after the
// operation.
// Transpose always broadcasts to array()
broadcast(iVar, oVar);
// Transpose view if necessary
if (iVar.is(oVar))
{
// Swap the trailing dimensions
int d = iVar.dim();
Heap* h = iVar.heap();
int& str1 = h->stride(d-1);
int& shp1 = h->shape(d-1);
int& str2 = h->stride(d-2);
int& shp2 = h->shape(d-2);
int tmp = shp1;
shp1 = shp2;
shp2 = tmp;
str2 = shp1 * str1;
}
}
示例2: vector
void Transpose::vector(var iVar, ind iOffsetI, var& oVar, ind iOffsetO) const
{
assert(oVar);
int dim = iVar.dim();
ind rows = iVar.shape(dim-2);
ind cols = iVar.shape(dim-1);
if (iVar.is(oVar))
// In place transpose
switch (iVar.atype())
{
case TYPE_FLOAT:
inPlace<float>(oVar.ptr<float>(iOffsetO), rows, cols);
break;
case TYPE_DOUBLE:
inPlace<double>(oVar.ptr<double>(iOffsetO), rows, cols);
break;
default:
throw error("Transpose::vector(): unknown type");
}
else
// Transpose to new location
switch (iVar.atype())
{
case TYPE_FLOAT:
outOfPlace<float>(iVar.ptr<float>(iOffsetI), rows, cols,
oVar.ptr<float>(iOffsetO));
break;
case TYPE_DOUBLE:
outOfPlace<double>(iVar.ptr<double>(iOffsetI), rows, cols,
oVar.ptr<double>(iOffsetO));
break;
default:
throw error("Transpose::vector(): unknown type");
}
}