cutlass/docs/classcutlass_1_1TensorRef.html
2018-10-26 14:54:58 -07:00

1155 lines
82 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Cutlass: cutlass::TensorRef&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" async src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Cutlass
</div>
<div id="projectbrief">CUDA Templates for Linear Algebra Subroutines and Solvers</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacecutlass.html">cutlass</a></li><li class="navelem"><a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="classcutlass_1_1TensorRef-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">cutlass::TensorRef&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="tensor__ref_8h_source.html">tensor_ref.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for cutlass::TensorRef&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="classcutlass_1_1TensorRef.png" usemap="#cutlass::TensorRef_3C_20Storage_5F_2C_20Rank_5F_2C_20MapFunc_5F_2C_20StorageRank_5F_2C_20Index_5F_2C_20LongIndex_5F_20_3E_map" alt=""/>
<map id="cutlass::TensorRef_3C_20Storage_5F_2C_20Rank_5F_2C_20MapFunc_5F_2C_20StorageRank_5F_2C_20Index_5F_2C_20LongIndex_5F_20_3E_map" name="cutlass::TensorRef_3C_20Storage_5F_2C_20Rank_5F_2C_20MapFunc_5F_2C_20StorageRank_5F_2C_20Index_5F_2C_20LongIndex_5F_20_3E_map">
<area href="structcutlass_1_1TensorRefBatchStrided.html" alt="cutlass::TensorRefBatchStrided&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;" shape="rect" coords="0,56,584,80"/>
<area href="classcutlass_1_1TensorView.html" title="Defines a view into a logical tensor. " alt="cutlass::TensorView&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;" shape="rect" coords="594,56,1178,80"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ad327edfe1f8085632ff682d354922009"><td class="memItemLeft" align="right" valign="top">typedef Storage_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a></td></tr>
<tr class="memdesc:ad327edfe1f8085632ff682d354922009"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data type of individual access. <a href="#ad327edfe1f8085632ff682d354922009">More...</a><br /></td></tr>
<tr class="separator:ad327edfe1f8085632ff682d354922009"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0273300d26125278b6930b1e463ff29"><td class="memItemLeft" align="right" valign="top">typedef MapFunc_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#ad0273300d26125278b6930b1e463ff29">MapFunc</a></td></tr>
<tr class="memdesc:ad0273300d26125278b6930b1e463ff29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mapping function from logical coordinate to internal n-D array. <a href="#ad0273300d26125278b6930b1e463ff29">More...</a><br /></td></tr>
<tr class="separator:ad0273300d26125278b6930b1e463ff29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2beda7a1946bde2858e730bece21b890"><td class="memItemLeft" align="right" valign="top">typedef Index_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890">Index</a></td></tr>
<tr class="memdesc:a2beda7a1946bde2858e730bece21b890"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index type. <a href="#a2beda7a1946bde2858e730bece21b890">More...</a><br /></td></tr>
<tr class="separator:a2beda7a1946bde2858e730bece21b890"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42ca6a39ab0e44296fed71a77c57b7b1"><td class="memItemLeft" align="right" valign="top">typedef LongIndex_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a></td></tr>
<tr class="memdesc:a42ca6a39ab0e44296fed71a77c57b7b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Typically, strides in memory can be very large. <a href="#a42ca6a39ab0e44296fed71a77c57b7b1">More...</a><br /></td></tr>
<tr class="separator:a42ca6a39ab0e44296fed71a77c57b7b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35b7e1fc59298e0f06f484652d62fd65"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structcutlass_1_1Coord.html">Coord</a>&lt; <a class="el" href="classcutlass_1_1TensorRef.html#a429692d4ac03a3427fbd8fdfaac4ae31">kRank</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a></td></tr>
<tr class="memdesc:a35b7e1fc59298e0f06f484652d62fd65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Coordinate in logical tensor space. <a href="#a35b7e1fc59298e0f06f484652d62fd65">More...</a><br /></td></tr>
<tr class="separator:a35b7e1fc59298e0f06f484652d62fd65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a455a2df539b53086699c210d06df1c5d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structcutlass_1_1Coord.html">Coord</a>&lt; <a class="el" href="classcutlass_1_1TensorRef.html#a425ff3d894ed1153eee79b1944fa5ed2">kStorageRank</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d">StorageCoord</a></td></tr>
<tr class="memdesc:a455a2df539b53086699c210d06df1c5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Coordinate in storage n-D array. <a href="#a455a2df539b53086699c210d06df1c5d">More...</a><br /></td></tr>
<tr class="separator:a455a2df539b53086699c210d06df1c5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07c4b1ace7c8799537553b54cfe0a059"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structcutlass_1_1Coord.html">Coord</a>&lt; <a class="el" href="classcutlass_1_1TensorRef.html#a425ff3d894ed1153eee79b1944fa5ed2">kStorageRank</a> - 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a07c4b1ace7c8799537553b54cfe0a059">StrideVector</a></td></tr>
<tr class="separator:a07c4b1ace7c8799537553b54cfe0a059"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8281d11677512d6e229504ab4babad17"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt; typename <a class="el" href="structcutlass_1_1platform_1_1remove__const.html">platform::remove_const</a>&lt; <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> &gt;::type const, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a8281d11677512d6e229504ab4babad17">ConstTensorRef</a></td></tr>
<tr class="memdesc:a8281d11677512d6e229504ab4babad17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tensor reference to of constant value. <a href="#a8281d11677512d6e229504ab4babad17">More...</a><br /></td></tr>
<tr class="separator:a8281d11677512d6e229504ab4babad17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a758f24783e36ffc393b360d0b8640bc6"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a758f24783e36ffc393b360d0b8640bc6">Coord_t</a></td></tr>
<tr class="memdesc:a758f24783e36ffc393b360d0b8640bc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Coordinate in logical tensor space. <a href="#a758f24783e36ffc393b360d0b8640bc6">More...</a><br /></td></tr>
<tr class="separator:a758f24783e36ffc393b360d0b8640bc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a5a667a48c64fb916c31802b73b769765"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a5a667a48c64fb916c31802b73b769765">TensorRef</a> (<a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *ptr=<a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a>)</td></tr>
<tr class="memdesc:a5a667a48c64fb916c31802b73b769765"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper for 1-D memory. All higher ranks are projected onto the fastest changing rank. <a href="#a5a667a48c64fb916c31802b73b769765">More...</a><br /></td></tr>
<tr class="separator:a5a667a48c64fb916c31802b73b769765"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48b9b4ad9034f6cf2b7c2ee479aea135"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a48b9b4ad9034f6cf2b7c2ee479aea135">TensorRef</a> (<a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *ptr, <a class="el" href="classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890">Index</a> ldm)</td></tr>
<tr class="memdesc:a48b9b4ad9034f6cf2b7c2ee479aea135"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper to construct from a pointer and single stride element for 2-D pitch linear memory. <a href="#a48b9b4ad9034f6cf2b7c2ee479aea135">More...</a><br /></td></tr>
<tr class="separator:a48b9b4ad9034f6cf2b7c2ee479aea135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe4fc6fa539f36b2764707d50351905c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#afe4fc6fa539f36b2764707d50351905c">TensorRef</a> (<a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *ptr, <a class="el" href="classcutlass_1_1TensorRef.html#a07c4b1ace7c8799537553b54cfe0a059">StrideVector</a> const &amp;<a class="el" href="classcutlass_1_1TensorRef.html#adb52dd6f9f68e7b8b67b8ddfb5c0021c">stride</a>)</td></tr>
<tr class="memdesc:afe4fc6fa539f36b2764707d50351905c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs from a single pointer and stride vector. <a href="#afe4fc6fa539f36b2764707d50351905c">More...</a><br /></td></tr>
<tr class="separator:afe4fc6fa539f36b2764707d50351905c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeca439296c8446741ba84b78f5a601e0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#aeca439296c8446741ba84b78f5a601e0">TensorRef</a> (<a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *ptr, <a class="el" href="classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d">StorageCoord</a> const &amp;<a class="el" href="classcutlass_1_1TensorRef.html#adb52dd6f9f68e7b8b67b8ddfb5c0021c">stride</a>)</td></tr>
<tr class="separator:aeca439296c8446741ba84b78f5a601e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe92be0a61fb8fc84426f4907faca6c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#afe92be0a61fb8fc84426f4907faca6c1">TensorRef</a> (<a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt; typename <a class="el" href="structcutlass_1_1platform_1_1remove__const.html">platform::remove_const</a>&lt; <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> &gt;::type, <a class="el" href="classcutlass_1_1TensorRef.html#a429692d4ac03a3427fbd8fdfaac4ae31">kRank</a>, <a class="el" href="classcutlass_1_1TensorRef.html#ad0273300d26125278b6930b1e463ff29">MapFunc</a>, <a class="el" href="classcutlass_1_1TensorRef.html#a425ff3d894ed1153eee79b1944fa5ed2">kStorageRank</a>, <a class="el" href="classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890">Index</a>, <a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a> &gt; const &amp;ref)</td></tr>
<tr class="memdesc:afe92be0a61fb8fc84426f4907faca6c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables conversion from <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> of non-const type. <a href="#afe92be0a61fb8fc84426f4907faca6c1">More...</a><br /></td></tr>
<tr class="separator:afe92be0a61fb8fc84426f4907faca6c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ab468e38773f5a971a8428673fb5e47"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a8281d11677512d6e229504ab4babad17">ConstTensorRef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a6ab468e38773f5a971a8428673fb5e47">const_ref</a> () const</td></tr>
<tr class="memdesc:a6ab468e38773f5a971a8428673fb5e47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a reference to constant-valued tensor. <a href="#a6ab468e38773f5a971a8428673fb5e47">More...</a><br /></td></tr>
<tr class="separator:a6ab468e38773f5a971a8428673fb5e47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ec815838aed4e02dd96acb1000614c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a7ec815838aed4e02dd96acb1000614c0">reset</a> (<a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *ptr=<a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a>)</td></tr>
<tr class="memdesc:a7ec815838aed4e02dd96acb1000614c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates only the pointer. <a href="#a7ec815838aed4e02dd96acb1000614c0">More...</a><br /></td></tr>
<tr class="separator:a7ec815838aed4e02dd96acb1000614c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a1da27a46883eb68e3f8983670b784b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a7a1da27a46883eb68e3f8983670b784b">reset</a> (<a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *ptr, <a class="el" href="classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d">StorageCoord</a> const &amp;<a class="el" href="classcutlass_1_1TensorRef.html#adb52dd6f9f68e7b8b67b8ddfb5c0021c">stride</a>)</td></tr>
<tr class="memdesc:a7a1da27a46883eb68e3f8983670b784b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the pointer, stride, and location within a <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>. <a href="#a7a1da27a46883eb68e3f8983670b784b">More...</a><br /></td></tr>
<tr class="separator:a7a1da27a46883eb68e3f8983670b784b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2dbee889626b4764d30e9058ef3a7ae8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a2dbee889626b4764d30e9058ef3a7ae8">good</a> () const</td></tr>
<tr class="memdesc:a2dbee889626b4764d30e9058ef3a7ae8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> may be safely accessed. <a href="#a2dbee889626b4764d30e9058ef3a7ae8">More...</a><br /></td></tr>
<tr class="separator:a2dbee889626b4764d30e9058ef3a7ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1c80b524cd9491e2d499d703e1459f7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#ae1c80b524cd9491e2d499d703e1459f7">data</a> () const</td></tr>
<tr class="memdesc:ae1c80b524cd9491e2d499d703e1459f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the pointer to referenced data. <a href="#ae1c80b524cd9491e2d499d703e1459f7">More...</a><br /></td></tr>
<tr class="separator:ae1c80b524cd9491e2d499d703e1459f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb52dd6f9f68e7b8b67b8ddfb5c0021c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d">StorageCoord</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#adb52dd6f9f68e7b8b67b8ddfb5c0021c">stride</a> () const</td></tr>
<tr class="memdesc:adb52dd6f9f68e7b8b67b8ddfb5c0021c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the stride of the tensor. <a href="#adb52dd6f9f68e7b8b67b8ddfb5c0021c">More...</a><br /></td></tr>
<tr class="separator:adb52dd6f9f68e7b8b67b8ddfb5c0021c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6956072f1231b79fe8925a78c4760b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#aa6956072f1231b79fe8925a78c4760b7">stride</a> (int dim) const</td></tr>
<tr class="memdesc:aa6956072f1231b79fe8925a78c4760b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the stride of the tensor in the given dimension. <a href="#aa6956072f1231b79fe8925a78c4760b7">More...</a><br /></td></tr>
<tr class="separator:aa6956072f1231b79fe8925a78c4760b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa60b92372db1da1d2aa997d6a03e01ca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#aa60b92372db1da1d2aa997d6a03e01ca">leading_dim</a> (int idx=0) const</td></tr>
<tr class="memdesc:aa60b92372db1da1d2aa997d6a03e01ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the maximum stride element as the 'leading dimension'. <a href="#aa60b92372db1da1d2aa997d6a03e01ca">More...</a><br /></td></tr>
<tr class="separator:aa60b92372db1da1d2aa997d6a03e01ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07dfe328d4a8316e79e9acde50582360"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d">StorageCoord</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a07dfe328d4a8316e79e9acde50582360">map</a> (<a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;coord) const</td></tr>
<tr class="memdesc:a07dfe328d4a8316e79e9acde50582360"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps a logical coordinate to an n-D array in memory. <a href="#a07dfe328d4a8316e79e9acde50582360">More...</a><br /></td></tr>
<tr class="separator:a07dfe328d4a8316e79e9acde50582360"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4da903ecbeaaf80c35084e8779e920a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a4da903ecbeaaf80c35084e8779e920a1">offset</a> (<a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;coord) const</td></tr>
<tr class="memdesc:a4da903ecbeaaf80c35084e8779e920a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the offset of an index from the origin of the tensor. <a href="#a4da903ecbeaaf80c35084e8779e920a1">More...</a><br /></td></tr>
<tr class="separator:a4da903ecbeaaf80c35084e8779e920a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4169a1344897c2c87822ee49d5e0002f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a4169a1344897c2c87822ee49d5e0002f">at</a> (<a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;coord) const</td></tr>
<tr class="memdesc:a4169a1344897c2c87822ee49d5e0002f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a reference to the element at a given <a class="el" href="structcutlass_1_1Coord.html" title="Statically-sized array specifying Coords within a tensor. ">Coord</a>. <a href="#a4169a1344897c2c87822ee49d5e0002f">More...</a><br /></td></tr>
<tr class="separator:a4169a1344897c2c87822ee49d5e0002f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0cf071be50423dece4e931878573a1c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#ab0cf071be50423dece4e931878573a1c">at</a> (<a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a> idx) const</td></tr>
<tr class="memdesc:ab0cf071be50423dece4e931878573a1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a reference to the element at a given linear index. <a href="#ab0cf071be50423dece4e931878573a1c">More...</a><br /></td></tr>
<tr class="separator:ab0cf071be50423dece4e931878573a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada832ce3a57aaf4919b1ed89192f1fa6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#ada832ce3a57aaf4919b1ed89192f1fa6">operator[]</a> (<a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;coord) const</td></tr>
<tr class="memdesc:ada832ce3a57aaf4919b1ed89192f1fa6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a reference to the element at a given <a class="el" href="structcutlass_1_1Coord.html" title="Statically-sized array specifying Coords within a tensor. ">Coord</a>. <a href="#ada832ce3a57aaf4919b1ed89192f1fa6">More...</a><br /></td></tr>
<tr class="separator:ada832ce3a57aaf4919b1ed89192f1fa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a207a0dabf6c368fa1edcb32baa2110e3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a207a0dabf6c368fa1edcb32baa2110e3">operator[]</a> (<a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a> idx) const</td></tr>
<tr class="memdesc:a207a0dabf6c368fa1edcb32baa2110e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a reference to the element at a given linear index. <a href="#a207a0dabf6c368fa1edcb32baa2110e3">More...</a><br /></td></tr>
<tr class="separator:a207a0dabf6c368fa1edcb32baa2110e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f0363da1e0544f256438e066d3cc143"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a5f0363da1e0544f256438e066d3cc143">add_pointer_offset</a> (<a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a> delta)</td></tr>
<tr class="memdesc:a5f0363da1e0544f256438e066d3cc143"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an offset to each pointer. <a href="#a5f0363da1e0544f256438e066d3cc143">More...</a><br /></td></tr>
<tr class="separator:a5f0363da1e0544f256438e066d3cc143"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a4fd9ace579b46bc9d575b8adc6882f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a0a4fd9ace579b46bc9d575b8adc6882f">operator+</a> (<a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;b) const</td></tr>
<tr class="memdesc:a0a4fd9ace579b46bc9d575b8adc6882f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> offset by a given amount. <a href="#a0a4fd9ace579b46bc9d575b8adc6882f">More...</a><br /></td></tr>
<tr class="separator:a0a4fd9ace579b46bc9d575b8adc6882f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a727d9c25d6df0aa9e795123b638b9306"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a727d9c25d6df0aa9e795123b638b9306">operator+=</a> (<a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;b)</td></tr>
<tr class="memdesc:a727d9c25d6df0aa9e795123b638b9306"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> offset by a given amount. <a href="#a727d9c25d6df0aa9e795123b638b9306">More...</a><br /></td></tr>
<tr class="separator:a727d9c25d6df0aa9e795123b638b9306"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a56b323aed2a3b2c843c276b68378fa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a4a56b323aed2a3b2c843c276b68378fa">operator-</a> (<a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;b) const</td></tr>
<tr class="memdesc:a4a56b323aed2a3b2c843c276b68378fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> offset by a given amount. <a href="#a4a56b323aed2a3b2c843c276b68378fa">More...</a><br /></td></tr>
<tr class="separator:a4a56b323aed2a3b2c843c276b68378fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b5af26da32278d19c27c0d5a4a18890"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a5b5af26da32278d19c27c0d5a4a18890">operator-=</a> (<a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;b)</td></tr>
<tr class="memdesc:a5b5af26da32278d19c27c0d5a4a18890"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> offset by a given amount. <a href="#a5b5af26da32278d19c27c0d5a4a18890">More...</a><br /></td></tr>
<tr class="separator:a5b5af26da32278d19c27c0d5a4a18890"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a429692d4ac03a3427fbd8fdfaac4ae31"><td class="memItemLeft" align="right" valign="top">static int const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a429692d4ac03a3427fbd8fdfaac4ae31">kRank</a> = Rank_</td></tr>
<tr class="memdesc:a429692d4ac03a3427fbd8fdfaac4ae31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logical rank of tensor index space. <a href="#a429692d4ac03a3427fbd8fdfaac4ae31">More...</a><br /></td></tr>
<tr class="separator:a429692d4ac03a3427fbd8fdfaac4ae31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a425ff3d894ed1153eee79b1944fa5ed2"><td class="memItemLeft" align="right" valign="top">static int const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a425ff3d894ed1153eee79b1944fa5ed2">kStorageRank</a> = StorageRank_</td></tr>
<tr class="memdesc:a425ff3d894ed1153eee79b1944fa5ed2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rank of internal storage. <a href="#a425ff3d894ed1153eee79b1944fa5ed2">More...</a><br /></td></tr>
<tr class="separator:a425ff3d894ed1153eee79b1944fa5ed2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2088b39881deef375af08511bca1e90a"><td class="memItemLeft" align="right" valign="top">static int const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1TensorRef.html#a2088b39881deef375af08511bca1e90a">Rank</a> = <a class="el" href="classcutlass_1_1TensorRef.html#a429692d4ac03a3427fbd8fdfaac4ae31">kRank</a></td></tr>
<tr class="memdesc:a2088b39881deef375af08511bca1e90a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logical rank of tensor index space. <a href="#a2088b39881deef375af08511bca1e90a">More...</a><br /></td></tr>
<tr class="separator:a2088b39881deef375af08511bca1e90a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a8281d11677512d6e229504ab4babad17"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8281d11677512d6e229504ab4babad17">&#9670;&nbsp;</a></span>ConstTensorRef</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt; typename <a class="el" href="structcutlass_1_1platform_1_1remove__const.html">platform::remove_const</a>&lt;<a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a>&gt;::type const, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_&gt; <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html#a8281d11677512d6e229504ab4babad17">ConstTensorRef</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a758f24783e36ffc393b360d0b8640bc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a758f24783e36ffc393b360d0b8640bc6">&#9670;&nbsp;</a></span>Coord_t</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html#a758f24783e36ffc393b360d0b8640bc6">Coord_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Require at least rank=1. Mathematically, a rank=0 tensor would be considered to be a scalar, but degenerate cases such as these are difficult to accommodate without extensive C++ metaprogramming or support for zero-length arrays. </p>
</div>
</div>
<a id="a2beda7a1946bde2858e730bece21b890"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2beda7a1946bde2858e730bece21b890">&#9670;&nbsp;</a></span>Index</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef Index_ <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890">Index</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a42ca6a39ab0e44296fed71a77c57b7b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42ca6a39ab0e44296fed71a77c57b7b1">&#9670;&nbsp;</a></span>LongIndex</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef LongIndex_ <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad0273300d26125278b6930b1e463ff29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad0273300d26125278b6930b1e463ff29">&#9670;&nbsp;</a></span>MapFunc</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef MapFunc_ <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html#ad0273300d26125278b6930b1e463ff29">MapFunc</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad327edfe1f8085632ff682d354922009"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad327edfe1f8085632ff682d354922009">&#9670;&nbsp;</a></span>Storage</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef Storage_ <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a455a2df539b53086699c210d06df1c5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a455a2df539b53086699c210d06df1c5d">&#9670;&nbsp;</a></span>StorageCoord</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="structcutlass_1_1Coord.html">Coord</a>&lt;<a class="el" href="classcutlass_1_1TensorRef.html#a425ff3d894ed1153eee79b1944fa5ed2">kStorageRank</a>&gt; <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d">StorageCoord</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a07c4b1ace7c8799537553b54cfe0a059"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07c4b1ace7c8799537553b54cfe0a059">&#9670;&nbsp;</a></span>StrideVector</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="structcutlass_1_1Coord.html">Coord</a>&lt;<a class="el" href="classcutlass_1_1TensorRef.html#a425ff3d894ed1153eee79b1944fa5ed2">kStorageRank</a> - 1&gt; <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html#a07c4b1ace7c8799537553b54cfe0a059">StrideVector</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Stride vector in storage coordinage space - assumes least significant stride is 1 and does not store it. </p>
</div>
</div>
<a id="a35b7e1fc59298e0f06f484652d62fd65"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35b7e1fc59298e0f06f484652d62fd65">&#9670;&nbsp;</a></span>TensorCoord</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="structcutlass_1_1Coord.html">Coord</a>&lt;<a class="el" href="classcutlass_1_1TensorRef.html#a429692d4ac03a3427fbd8fdfaac4ae31">kRank</a>&gt; <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a5a667a48c64fb916c31802b73b769765"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a667a48c64fb916c31802b73b769765">&#9670;&nbsp;</a></span>TensorRef() <span class="overload">[1/5]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *&#160;</td>
<td class="paramname"><em>ptr</em> = <code><a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a></code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a48b9b4ad9034f6cf2b7c2ee479aea135"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48b9b4ad9034f6cf2b7c2ee479aea135">&#9670;&nbsp;</a></span>TensorRef() <span class="overload">[2/5]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *&#160;</td>
<td class="paramname"><em>ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890">Index</a>&#160;</td>
<td class="paramname"><em>ldm</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="afe4fc6fa539f36b2764707d50351905c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe4fc6fa539f36b2764707d50351905c">&#9670;&nbsp;</a></span>TensorRef() <span class="overload">[3/5]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *&#160;</td>
<td class="paramname"><em>ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a07c4b1ace7c8799537553b54cfe0a059">StrideVector</a> const &amp;&#160;</td>
<td class="paramname"><em>stride</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aeca439296c8446741ba84b78f5a601e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeca439296c8446741ba84b78f5a601e0">&#9670;&nbsp;</a></span>TensorRef() <span class="overload">[4/5]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *&#160;</td>
<td class="paramname"><em>ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d">StorageCoord</a> const &amp;&#160;</td>
<td class="paramname"><em>stride</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs from a pointer and a stride vector of size kRank. If fastest changing stride is not 1, construction fails and subsequent calls to <a class="el" href="classcutlass_1_1TensorRef.html#a2dbee889626b4764d30e9058ef3a7ae8" title="Returns true if the TensorRef may be safely accessed. ">good()</a> will return false. </p>
</div>
</div>
<a id="afe92be0a61fb8fc84426f4907faca6c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe92be0a61fb8fc84426f4907faca6c1">&#9670;&nbsp;</a></span>TensorRef() <span class="overload">[5/5]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::<a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt; typename <a class="el" href="structcutlass_1_1platform_1_1remove__const.html">platform::remove_const</a>&lt; <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> &gt;::type, <a class="el" href="classcutlass_1_1TensorRef.html#a429692d4ac03a3427fbd8fdfaac4ae31">kRank</a>, <a class="el" href="classcutlass_1_1TensorRef.html#ad0273300d26125278b6930b1e463ff29">MapFunc</a>, <a class="el" href="classcutlass_1_1TensorRef.html#a425ff3d894ed1153eee79b1944fa5ed2">kStorageRank</a>, <a class="el" href="classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890">Index</a>, <a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>ref</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a5f0363da1e0544f256438e066d3cc143"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f0363da1e0544f256438e066d3cc143">&#9670;&nbsp;</a></span>add_pointer_offset()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&amp; <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::add_pointer_offset </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a>&#160;</td>
<td class="paramname"><em>delta</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a4169a1344897c2c87822ee49d5e0002f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4169a1344897c2c87822ee49d5e0002f">&#9670;&nbsp;</a></span>at() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a>&amp; <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::at </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;&#160;</td>
<td class="paramname"><em>coord</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab0cf071be50423dece4e931878573a1c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0cf071be50423dece4e931878573a1c">&#9670;&nbsp;</a></span>at() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a>&amp; <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::at </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a>&#160;</td>
<td class="paramname"><em>idx</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a6ab468e38773f5a971a8428673fb5e47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ab468e38773f5a971a8428673fb5e47">&#9670;&nbsp;</a></span>const_ref()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a8281d11677512d6e229504ab4babad17">ConstTensorRef</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::const_ref </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae1c80b524cd9491e2d499d703e1459f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1c80b524cd9491e2d499d703e1459f7">&#9670;&nbsp;</a></span>data()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a>* <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2dbee889626b4764d30e9058ef3a7ae8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2dbee889626b4764d30e9058ef3a7ae8">&#9670;&nbsp;</a></span>good()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> bool <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::good </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aa60b92372db1da1d2aa997d6a03e01ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa60b92372db1da1d2aa997d6a03e01ca">&#9670;&nbsp;</a></span>leading_dim()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890">Index</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::leading_dim </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>idx</em> = <code>0</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a07dfe328d4a8316e79e9acde50582360"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07dfe328d4a8316e79e9acde50582360">&#9670;&nbsp;</a></span>map()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d">StorageCoord</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::map </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;&#160;</td>
<td class="paramname"><em>coord</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a4da903ecbeaaf80c35084e8779e920a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4da903ecbeaaf80c35084e8779e920a1">&#9670;&nbsp;</a></span>offset()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::offset </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;&#160;</td>
<td class="paramname"><em>coord</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a0a4fd9ace579b46bc9d575b8adc6882f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a4fd9ace579b46bc9d575b8adc6882f">&#9670;&nbsp;</a></span>operator+()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::operator+ </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;&#160;</td>
<td class="paramname"><em>b</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a727d9c25d6df0aa9e795123b638b9306"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a727d9c25d6df0aa9e795123b638b9306">&#9670;&nbsp;</a></span>operator+=()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&amp; <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::operator+= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;&#160;</td>
<td class="paramname"><em>b</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a4a56b323aed2a3b2c843c276b68378fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a56b323aed2a3b2c843c276b68378fa">&#9670;&nbsp;</a></span>operator-()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::operator- </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;&#160;</td>
<td class="paramname"><em>b</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a5b5af26da32278d19c27c0d5a4a18890"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b5af26da32278d19c27c0d5a4a18890">&#9670;&nbsp;</a></span>operator-=()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&amp; <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::operator-= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;&#160;</td>
<td class="paramname"><em>b</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ada832ce3a57aaf4919b1ed89192f1fa6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada832ce3a57aaf4919b1ed89192f1fa6">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a>&amp; <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::operator[] </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65">TensorCoord</a> const &amp;&#160;</td>
<td class="paramname"><em>coord</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a207a0dabf6c368fa1edcb32baa2110e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a207a0dabf6c368fa1edcb32baa2110e3">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a>&amp; <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::operator[] </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1">LongIndex</a>&#160;</td>
<td class="paramname"><em>idx</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a7ec815838aed4e02dd96acb1000614c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ec815838aed4e02dd96acb1000614c0">&#9670;&nbsp;</a></span>reset() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> void <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::reset </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *&#160;</td>
<td class="paramname"><em>ptr</em> = <code><a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a></code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a7a1da27a46883eb68e3f8983670b784b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a1da27a46883eb68e3f8983670b784b">&#9670;&nbsp;</a></span>reset() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> void <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::reset </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009">Storage</a> *&#160;</td>
<td class="paramname"><em>ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d">StorageCoord</a> const &amp;&#160;</td>
<td class="paramname"><em>stride</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="adb52dd6f9f68e7b8b67b8ddfb5c0021c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb52dd6f9f68e7b8b67b8ddfb5c0021c">&#9670;&nbsp;</a></span>stride() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d">StorageCoord</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::stride </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aa6956072f1231b79fe8925a78c4760b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa6956072f1231b79fe8925a78c4760b7">&#9670;&nbsp;</a></span>stride() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890">Index</a> <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::stride </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>dim</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a429692d4ac03a3427fbd8fdfaac4ae31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a429692d4ac03a3427fbd8fdfaac4ae31">&#9670;&nbsp;</a></span>kRank</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int const <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::kRank = Rank_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a425ff3d894ed1153eee79b1944fa5ed2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a425ff3d894ed1153eee79b1944fa5ed2">&#9670;&nbsp;</a></span>kStorageRank</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int const <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::kStorageRank = StorageRank_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2088b39881deef375af08511bca1e90a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2088b39881deef375af08511bca1e90a">&#9670;&nbsp;</a></span>Rank</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapFunc&lt;Rank_&gt;, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int const <a class="el" href="classcutlass_1_1TensorRef.html">cutlass::TensorRef</a>&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;::Rank = <a class="el" href="classcutlass_1_1TensorRef.html#a429692d4ac03a3427fbd8fdfaac4ae31">kRank</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="tensor__ref_8h_source.html">tensor_ref.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Oct 26 2018 14:53:35 for Cutlass by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>