<ahref="coord_8h.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> <spanclass="comment">/***************************************************************************************************</span></div><divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> <spanclass="comment"> * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.</span></div><divclass="line"><aname="l00003"></a><spanclass="lineno"> 3</span> <spanclass="comment"> *</span></div><divclass="line"><aname="l00004"></a><spanclass="lineno"> 4</span> <spanclass="comment"> * Redistribution and use in source and binary forms, with or without modification, are permitted</span></div><divclass="line"><aname="l00005"></a><spanclass="lineno"> 5</span> <spanclass="comment"> * provided that the following conditions are met:</span></div><divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> <spanclass="comment"> * * Redistributions of source code must retain the above copyright notice, this list of</span></div><divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> <spanclass="comment"> * conditions and the following disclaimer.</span></div><divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> <spanclass="comment"> * * Redistributions in binary form must reproduce the above copyright notice, this list of</span></div><divclass="line"><aname="l00009"></a><spanclass="lineno"> 9</span> <spanclass="comment"> * conditions and the following disclaimer in the documentation and/or other materials</span></div><divclass="line"><aname="l00010"></a><spanclass="lineno"> 10</span> <spanclass="comment"> * provided with the distribution.</span></div><divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment"> * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used</span></div><divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> <spanclass="comment"> * to endorse or promote products derived from this software without specific prior written</span></div><divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> <spanclass="comment"> * permission.</span></div><divclass="line"><aname="l00014"></a><spanclass="lineno"> 14</span> <spanclass="comment"> *</span></div><divclass="line"><aname="l00015"></a><spanclass="lineno"> 15</span> <spanclass="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR</span></div><divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> <spanclass="comment"> * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND</span></div><divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="comment"> * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE</span></div><divclass="line"><aname="l00018"></a><spanclass="lineno"> 18</span> <spanclass="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,</span></div><divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> <spanclass="comment"> * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;</span></div><divclass="line"><aname="l00020"></a><spanclass="lineno"> 20</span> <spanclass="comment"> * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,</span></div><divclass="line"><aname="l00021"></a><spanclass="lineno"> 21</span> <spanclass="comment"> * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div><divclass="line"><aname="l00022"></a><s
<divclass="ttc"id="namespacecutlass_1_1platform_html_af6a9a165e53d7e85ae121d5789aa03e0"><divclass="ttname"><ahref="namespacecutlass_1_1platform.html#af6a9a165e53d7e85ae121d5789aa03e0">cutlass::platform::max</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE constexpr const T & max(const T &a, const T &b)</div><divclass="ttdoc">std::max </div><divclass="ttdef"><b>Definition:</b> platform.h:215</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a9b47b1521820c898b03868627c3f8e46"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a9b47b1521820c898b03868627c3f8e46">cutlass::Coord::at</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Index const & at(int dim) const</div><divclass="ttdoc">Access via index; may limit unrolling potential. </div><divclass="ttdef"><b>Definition:</b> coord.h:256</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a882e7ac07bbd6983659ef2e574b46454"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a882e7ac07bbd6983659ef2e574b46454">cutlass::Coord::operator[]</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Index const & operator[](int dim) const</div><divclass="ttdoc">Member access operator. </div><divclass="ttdef"><b>Definition:</b> coord.h:217</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a6e0967541a1d74edeb93897ea6069e24"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a6e0967541a1d74edeb93897ea6069e24">cutlass::Coord::operator[]</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Index & operator[](int dim)</div><divclass="ttdoc">Member access operator. </div><divclass="ttdef"><b>Definition:</b> coord.h:214</div></div>
<divclass="ttc"id="namespacecutlass_html_a7419519fa453a121dfa5f26bf87318d9"><divclass="ttname"><ahref="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">cutlass::make_Coord</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)</div><divclass="ttdoc">Helper to make a 2-element coordinate. </div><divclass="ttdef"><b>Definition:</b> coord.h:368</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a23e1b9a7f5fa8fd4afeadfb85de7c5c3"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a23e1b9a7f5fa8fd4afeadfb85de7c5c3">cutlass::Coord::kRank</a></div><divclass="ttdeci">static int const kRank</div><divclass="ttdoc">Number of elements in Coord. </div><divclass="ttdef"><b>Definition:</b> coord.h:55</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a7c73966e94b4f45854f16e33683bc02c"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a7c73966e94b4f45854f16e33683bc02c">cutlass::Coord::Index</a></div><divclass="ttdeci">Index_ Index</div><divclass="ttdoc">Index type used to store elements. </div><divclass="ttdef"><b>Definition:</b> coord.h:61</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_ad4303b578b72b5cb2a0198375290e168"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#ad4303b578b72b5cb2a0198375290e168">cutlass::Coord::operator*=</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Coord & operator*=(Coord const &b)</div><divclass="ttdoc">In-place multiplication. </div><divclass="ttdef"><b>Definition:</b> coord.h:197</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_aa253bf69fc819876a7c7770305f1a694"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#aa253bf69fc819876a7c7770305f1a694">cutlass::Coord::at</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Index & at(int dim)</div><divclass="ttdoc">Access via index; may limit unrolling potential. </div><divclass="ttdef"><b>Definition:</b> coord.h:246</div></div>
<divclass="ttc"id="platform_8h_html"><divclass="ttname"><ahref="platform_8h.html">platform.h</a></div><divclass="ttdoc">C++ features that may be otherwise unimplemented for CUDA device functions. </div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_ac0ac5f2aa2cbea3887d126645025e017"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#ac0ac5f2aa2cbea3887d126645025e017">cutlass::Coord::count</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Index count() const</div><divclass="ttdoc">Returns the product of all elements. </div><divclass="ttdef"><b>Definition:</b> coord.h:283</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a7f919aeb2a895bc040599971400dec8d"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a7f919aeb2a895bc040599971400dec8d">cutlass::Coord::operator==</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE bool operator==(Coord< kRank > const &b) const</div><divclass="ttdoc">Determines if two Coord<> objects are equal. </div><divclass="ttdef"><b>Definition:</b> coord.h:260</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_acfd416eafec51e47b42b8b713ba76030"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#acfd416eafec51e47b42b8b713ba76030">cutlass::Coord::N</a></div><divclass="ttdeci">static int const N</div><divclass="ttdoc">Number of elements in Coord, aliased for compatibility. </div><divclass="ttdef"><b>Definition:</b> coord.h:58</div></div>
<divclass="ttc"id="platform_8h_html_abd31f291635329bc15292954f1f01d38"><divclass="ttname"><ahref="platform_8h.html#abd31f291635329bc15292954f1f01d38">__NV_STD_MAX</a></div><divclass="ttdeci">#define __NV_STD_MAX(a, b)</div><divclass="ttdoc">Select maximum(a, b) </div><divclass="ttdef"><b>Definition:</b> platform.h:163</div></div>
<divclass="ttc"id="namespacecutlass_1_1platform_html_a57c071d2a7305dd4ec60542e66b0c81c"><divclass="ttname"><ahref="namespacecutlass_1_1platform.html#a57c071d2a7305dd4ec60542e66b0c81c">cutlass::platform::min</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE constexpr const T & min(const T &a, const T &b)</div><divclass="ttdoc">std::min </div><divclass="ttdef"><b>Definition:</b> platform.h:209</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a9eff24a3b74b68d11839b92324613c93"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a9eff24a3b74b68d11839b92324613c93">cutlass::Coord::at</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Index & at()</div><divclass="ttdoc">Gets the index of a given Coord element. </div><divclass="ttdef"><b>Definition:</b> coord.h:240</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_ac87199c4c9a4e20aac4eb6e3b9a68f28"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#ac87199c4c9a4e20aac4eb6e3b9a68f28">cutlass::Coord::operator/=</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Coord & operator/=(Coord const &b)</div><divclass="ttdoc">In-place division. </div><divclass="ttdef"><b>Definition:</b> coord.h:206</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_ac8f7a9b0835efc34fd28894b2b45342c"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#ac8f7a9b0835efc34fd28894b2b45342c">cutlass::Coord::slice</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Coord< Slice > slice(int start=0, Index identity=0) const</div><divclass="ttdef"><b>Definition:</b> coord.h:102</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html"><divclass="ttname"><ahref="structcutlass_1_1Coord.html">cutlass::Coord</a></div><divclass="ttdoc">Statically-sized array specifying Coords within a tensor. </div><divclass="ttdef"><b>Definition:</b> coord.h:49</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a177adcc2d0fb5e72ebcb523edd24e6fe"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a177adcc2d0fb5e72ebcb523edd24e6fe">cutlass::Coord::at</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Index const & at() const</div><divclass="ttdoc">Gets the index of a given Coord element. </div><divclass="ttdef"><b>Definition:</b> coord.h:250</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_ac8ec94703830ab2c62ee055533ea2184"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#ac8ec94703830ab2c62ee055533ea2184">cutlass::Coord::dot</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE T dot(Coord const &b, T sum) const</div><divclass="ttdoc">Computes the dot product of two Coord instances. </div><divclass="ttdef"><b>Definition:</b> coord.h:221</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a404a3b4e00f59cac71d41fb1bbba38ba"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a404a3b4e00f59cac71d41fb1bbba38ba">cutlass::Coord::clamp</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Coord & clamp(Coord< kRank > const &max, Coord< kRank > const &min=Coord< kRank >())</div><divclass="ttdoc">Clamps a coordinate to a range specified by maximum and minimum values. </div><divclass="ttdef"><b>Definition:</b> coord.h:274</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a63ad1225ab2c51a68add731e994526b4"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a63ad1225ab2c51a68add731e994526b4">cutlass::Coord::Coord</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Coord(Index _idx[])</div><divclass="ttdoc">Constructs from an array of integers. </div><divclass="ttdef"><b>Definition:</b> coord.h:84</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a0acc37908acb6b879c37f54ff7ffc93d"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a0acc37908acb6b879c37f54ff7ffc93d">cutlass::Coord::dot</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE T dot(Coord const &b) const</div><divclass="ttdoc">Computes the dot product of two Coord instances. </div><divclass="ttdef"><b>Definition:</b> coord.h:230</div></div>
<divclass="ttc"id="cutlass_8h_html"><divclass="ttname"><ahref="cutlass_8h.html">cutlass.h</a></div><divclass="ttdoc">Basic include for CUTLASS macros. </div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a6110e4cfd090561696a81a8a4068a573"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a6110e4cfd090561696a81a8a4068a573">cutlass::Coord::Coord</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Coord(Coord< kRank > const &coord)</div><divclass="ttdoc">Constructs from an array of integers. </div><divclass="ttdef"><b>Definition:</b> coord.h:92</div></div>
<divclass="ttc"id="structcutlass_1_1Coord_html_a232095edae2f74c01a3c8abf68166e02"><divclass="ttname"><ahref="structcutlass_1_1Coord.html#a232095edae2f74c01a3c8abf68166e02">cutlass::Coord::operator!</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE bool operator!() const</div><divclass="ttdoc">Returns true if Coord is uniformly zero. </div><divclass="ttdef"><b>Definition:</b> coord.h:128</div></div>