cutlass/docs/platform_8h.html

644 lines
64 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.11"/>
<title>CUTLASS: platform.h File 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/javascript">
$(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" 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="projectlogo"><img alt="Logo" src="cutlass-logo-small.png"/></td>
<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.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</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="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_6baf2bb612a2f0daa69af3101ede80a1.html">cutlass</a></li><li class="navelem"><a class="el" href="dir_df998829b150afe92f54393d2430470d.html">platform</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">platform.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>C++ features that may be otherwise unimplemented for CUDA device functions.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;algorithm&gt;</code><br />
<code>#include &lt;cstddef&gt;</code><br />
<code>#include &lt;functional&gt;</code><br />
<code>#include &lt;utility&gt;</code><br />
<code>#include &quot;<a class="el" href="cutlass_8h_source.html">cutlass/cutlass.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for platform.h:</div>
<div class="dyncontent">
<div class="center"><img src="platform_8h__incl.png" border="0" usemap="#platform_8h" alt=""/></div>
<map name="platform_8h" id="platform_8h">
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="platform_8h__dep__incl.png" border="0" usemap="#platform_8hdep" alt=""/></div>
<map name="platform_8hdep" id="platform_8hdep">
</map>
</div>
</div>
<p><a href="platform_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1integral__constant.html">cutlass::platform::integral_constant&lt; value_t, V &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::integral_constant <a href="structcutlass_1_1platform_1_1integral__constant.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1integral__constant.html">cutlass::platform::integral_constant&lt; value_t, V &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::integral_constant <a href="structcutlass_1_1platform_1_1integral__constant.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1bool__constant.html">cutlass::platform::bool_constant&lt; V &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::bool_constant <a href="structcutlass_1_1platform_1_1bool__constant.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1nullptr__t.html">cutlass::platform::nullptr_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::nullptr_t <a href="structcutlass_1_1platform_1_1nullptr__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1enable__if.html">cutlass::platform::enable_if&lt; C, T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::enable_if (true specialization) <a href="structcutlass_1_1platform_1_1enable__if.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1enable__if_3_01false_00_01T_01_4.html">cutlass::platform::enable_if&lt; false, T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::enable_if (false specialization) <a href="structcutlass_1_1platform_1_1enable__if_3_01false_00_01T_01_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1conditional.html">cutlass::platform::conditional&lt; B, T, F &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::conditional (true specialization) <a href="structcutlass_1_1platform_1_1conditional.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1conditional_3_01false_00_01T_00_01F_01_4.html">cutlass::platform::conditional&lt; false, T, F &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::conditional (false specialization) <a href="structcutlass_1_1platform_1_1conditional_3_01false_00_01T_00_01F_01_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1remove__const.html">cutlass::platform::remove_const&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::remove_const (non-const specialization) <a href="structcutlass_1_1platform_1_1remove__const.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1remove__const_3_01const_01T_01_4.html">cutlass::platform::remove_const&lt; const T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::remove_const (const specialization) <a href="structcutlass_1_1platform_1_1remove__const_3_01const_01T_01_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1remove__volatile.html">cutlass::platform::remove_volatile&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::remove_volatile (non-volatile specialization) <a href="structcutlass_1_1platform_1_1remove__volatile.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1remove__volatile_3_01volatile_01T_01_4.html">cutlass::platform::remove_volatile&lt; volatile T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::remove_volatile (volatile specialization) <a href="structcutlass_1_1platform_1_1remove__volatile_3_01volatile_01T_01_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1remove__cv.html">cutlass::platform::remove_cv&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::remove_cv <a href="structcutlass_1_1platform_1_1remove__cv.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__same.html">cutlass::platform::is_same&lt; A, B &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::is_same (false specialization) <a href="structcutlass_1_1platform_1_1is__same.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__same_3_01A_00_01A_01_4.html">cutlass::platform::is_same&lt; A, A &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::is_same (true specialization) <a href="structcutlass_1_1platform_1_1is__same_3_01A_00_01A_01_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__base__of__helper.html">cutlass::platform::is_base_of_helper&lt; BaseT, DerivedT &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper for std::is_base_of. <a href="structcutlass_1_1platform_1_1is__base__of__helper.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__base__of__helper_1_1dummy.html">cutlass::platform::is_base_of_helper&lt; BaseT, DerivedT &gt;::dummy&lt; B, D &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__base__of.html">cutlass::platform::is_base_of&lt; BaseT, DerivedT &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::is_base_of <a href="structcutlass_1_1platform_1_1is__base__of.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__volatile.html">cutlass::platform::is_volatile&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::is_volatile <a href="structcutlass_1_1platform_1_1is__volatile.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__volatile_3_01volatile_01T_01_4.html">cutlass::platform::is_volatile&lt; volatile T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__pointer__helper.html">cutlass::platform::is_pointer_helper&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper for std::is_pointer (false specialization) <a href="structcutlass_1_1platform_1_1is__pointer__helper.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__pointer__helper_3_01T_01_5_01_4.html">cutlass::platform::is_pointer_helper&lt; T * &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper for std::is_pointer (true specialization) <a href="structcutlass_1_1platform_1_1is__pointer__helper_3_01T_01_5_01_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__pointer.html">cutlass::platform::is_pointer&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::is_pointer <a href="structcutlass_1_1platform_1_1is__pointer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__void.html">cutlass::platform::is_void&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::is_void <a href="structcutlass_1_1platform_1_1is__void.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral.html">cutlass::platform::is_integral&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::is_integral <a href="structcutlass_1_1platform_1_1is__integral.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01char_01_4.html">cutlass::platform::is_integral&lt; char &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01signed_01char_01_4.html">cutlass::platform::is_integral&lt; signed char &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01unsigned_01char_01_4.html">cutlass::platform::is_integral&lt; unsigned char &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01short_01_4.html">cutlass::platform::is_integral&lt; short &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01unsigned_01short_01_4.html">cutlass::platform::is_integral&lt; unsigned short &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01int_01_4.html">cutlass::platform::is_integral&lt; int &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01unsigned_01int_01_4.html">cutlass::platform::is_integral&lt; unsigned int &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01long_01_4.html">cutlass::platform::is_integral&lt; long &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01unsigned_01long_01_4.html">cutlass::platform::is_integral&lt; unsigned long &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01long_01long_01_4.html">cutlass::platform::is_integral&lt; long long &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01unsigned_01long_01long_01_4.html">cutlass::platform::is_integral&lt; unsigned long long &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01volatile_01T_01_4.html">cutlass::platform::is_integral&lt; volatile T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01const_01T_01_4.html">cutlass::platform::is_integral&lt; const T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__integral_3_01const_01volatile_01T_01_4.html">cutlass::platform::is_integral&lt; const volatile T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__floating__point.html">cutlass::platform::is_floating_point&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::is_floating_point <a href="structcutlass_1_1platform_1_1is__floating__point.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__arithmetic.html">cutlass::platform::is_arithmetic&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::is_arithmetic <a href="structcutlass_1_1platform_1_1is__arithmetic.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__fundamental.html">cutlass::platform::is_fundamental&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::is_fundamental <a href="structcutlass_1_1platform_1_1is__fundamental.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1is__trivially__copyable.html">cutlass::platform::is_trivially_copyable&lt; T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of.html">cutlass::platform::alignment_of&lt; value_t &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::alignment_of <a href="structcutlass_1_1platform_1_1alignment__of.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_1_1pad.html">cutlass::platform::alignment_of&lt; value_t &gt;::pad</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01int4_01_4.html">cutlass::platform::alignment_of&lt; int4 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01uint4_01_4.html">cutlass::platform::alignment_of&lt; uint4 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01float4_01_4.html">cutlass::platform::alignment_of&lt; float4 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01long4_01_4.html">cutlass::platform::alignment_of&lt; long4 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01ulong4_01_4.html">cutlass::platform::alignment_of&lt; ulong4 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01longlong2_01_4.html">cutlass::platform::alignment_of&lt; longlong2 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01ulonglong2_01_4.html">cutlass::platform::alignment_of&lt; ulonglong2 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01double2_01_4.html">cutlass::platform::alignment_of&lt; double2 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01longlong4_01_4.html">cutlass::platform::alignment_of&lt; longlong4 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01ulonglong4_01_4.html">cutlass::platform::alignment_of&lt; ulonglong4 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01double4_01_4.html">cutlass::platform::alignment_of&lt; double4 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01volatile_01value__t_01_4.html">cutlass::platform::alignment_of&lt; volatile value_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01const_01value__t_01_4.html">cutlass::platform::alignment_of&lt; const value_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1alignment__of_3_01const_01volatile_01value__t_01_4.html">cutlass::platform::alignment_of&lt; const volatile value_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1aligned__chunk.html">cutlass::platform::aligned_chunk&lt; Align &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1aligned__storage.html">cutlass::platform::aligned_storage&lt; Len, Align &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::aligned_storage <a href="structcutlass_1_1platform_1_1aligned__storage.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1default__delete.html">cutlass::platform::default_delete&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default deleter. <a href="structcutlass_1_1platform_1_1default__delete.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1platform_1_1default__delete_3_01T[]_4.html">cutlass::platform::default_delete&lt; T[]&gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Partial specialization for deleting array types. <a href="structcutlass_1_1platform_1_1default__delete_3_01T[]_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1platform_1_1unique__ptr.html">cutlass::platform::unique_ptr&lt; T, Deleter &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::unique_ptr <a href="classcutlass_1_1platform_1_1unique__ptr.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacecutlass"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecutlass.html">cutlass</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacecutlass_1_1platform"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html">cutlass::platform</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a189faadd7f99f6c354db09acbb2aafcd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="platform_8h.html#a189faadd7f99f6c354db09acbb2aafcd">noexcept</a></td></tr>
<tr class="memdesc:a189faadd7f99f6c354db09acbb2aafcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">noexcept, constexpr <a href="#a189faadd7f99f6c354db09acbb2aafcd">More...</a><br /></td></tr>
<tr class="separator:a189faadd7f99f6c354db09acbb2aafcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72f0657181cca64b44eb186b707eb380"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="platform_8h.html#a72f0657181cca64b44eb186b707eb380">constexpr</a></td></tr>
<tr class="separator:a72f0657181cca64b44eb186b707eb380"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab979d9d4b4923f7c54d6caa6e1a61936"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ab979d9d4b4923f7c54d6caa6e1a61936"><td class="mdescLeft">&#160;</td><td class="mdescRight">nullptr <a href="#ab979d9d4b4923f7c54d6caa6e1a61936">More...</a><br /></td></tr>
<tr class="separator:ab979d9d4b4923f7c54d6caa6e1a61936"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd148999a5caeba8f6fd52e7e288e659"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="platform_8h.html#acd148999a5caeba8f6fd52e7e288e659">__platform_cat_</a>(a, b)&#160;&#160;&#160;a##b</td></tr>
<tr class="memdesc:acd148999a5caeba8f6fd52e7e288e659"><td class="mdescLeft">&#160;</td><td class="mdescRight">static_assert <a href="#acd148999a5caeba8f6fd52e7e288e659">More...</a><br /></td></tr>
<tr class="separator:acd148999a5caeba8f6fd52e7e288e659"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aece7fe71be5aaf8d12dc9e2372f97de4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="platform_8h.html#aece7fe71be5aaf8d12dc9e2372f97de4">__platform_cat</a>(a, b)&#160;&#160;&#160;<a class="el" href="platform_8h.html#acd148999a5caeba8f6fd52e7e288e659">__platform_cat_</a>(a, b)</td></tr>
<tr class="separator:aece7fe71be5aaf8d12dc9e2372f97de4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adde4c9ea91b753491851361a4198c009"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="platform_8h.html#adde4c9ea91b753491851361a4198c009">static_assert</a>(__e, __m)&#160;&#160;&#160;typedef int <a class="el" href="platform_8h.html#aece7fe71be5aaf8d12dc9e2372f97de4">__platform_cat</a>(AsSeRt, __LINE__)[(__e) ? 1 : -1]</td></tr>
<tr class="separator:adde4c9ea91b753491851361a4198c009"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd31f291635329bc15292954f1f01d38"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="platform_8h.html#abd31f291635329bc15292954f1f01d38">__NV_STD_MAX</a>(a, b)&#160;&#160;&#160;(((b) &gt; (a)) ? (b) : (a))</td></tr>
<tr class="memdesc:abd31f291635329bc15292954f1f01d38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select maximum(a, b) <a href="#abd31f291635329bc15292954f1f01d38">More...</a><br /></td></tr>
<tr class="separator:abd31f291635329bc15292954f1f01d38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39e234a3e3b0018b58df720bcb143420"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="platform_8h.html#a39e234a3e3b0018b58df720bcb143420">__NV_STD_MIN</a>(a, b)&#160;&#160;&#160;(((b) &lt; (a)) ? (b) : (a))</td></tr>
<tr class="memdesc:a39e234a3e3b0018b58df720bcb143420"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select minimum(a, b) <a href="#a39e234a3e3b0018b58df720bcb143420">More...</a><br /></td></tr>
<tr class="separator:a39e234a3e3b0018b58df720bcb143420"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a0eddc4a3921e137f31fd8014be96e807"><td class="memItemLeft" align="right" valign="top">typedef integral_constant&lt; bool, true &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a0eddc4a3921e137f31fd8014be96e807">cutlass::platform::true_type</a></td></tr>
<tr class="memdesc:a0eddc4a3921e137f31fd8014be96e807"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type used as a compile-time boolean with true value. <a href="namespacecutlass_1_1platform.html#a0eddc4a3921e137f31fd8014be96e807">More...</a><br /></td></tr>
<tr class="separator:a0eddc4a3921e137f31fd8014be96e807"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8c95b2109070847b13d355120344380"><td class="memItemLeft" align="right" valign="top">typedef integral_constant&lt; bool, false &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#ad8c95b2109070847b13d355120344380">cutlass::platform::false_type</a></td></tr>
<tr class="memdesc:ad8c95b2109070847b13d355120344380"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type used as a compile-time boolean with false value. <a href="namespacecutlass_1_1platform.html#ad8c95b2109070847b13d355120344380">More...</a><br /></td></tr>
<tr class="separator:ad8c95b2109070847b13d355120344380"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a57c071d2a7305dd4ec60542e66b0c81c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a57c071d2a7305dd4ec60542e66b0c81c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="platform_8h.html#a72f0657181cca64b44eb186b707eb380">constexpr</a> const T &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a57c071d2a7305dd4ec60542e66b0c81c">cutlass::platform::min</a> (const T &amp;a, const T &amp;b)</td></tr>
<tr class="memdesc:a57c071d2a7305dd4ec60542e66b0c81c"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::min <a href="namespacecutlass_1_1platform.html#a57c071d2a7305dd4ec60542e66b0c81c">More...</a><br /></td></tr>
<tr class="separator:a57c071d2a7305dd4ec60542e66b0c81c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6a9a165e53d7e85ae121d5789aa03e0"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:af6a9a165e53d7e85ae121d5789aa03e0"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="platform_8h.html#a72f0657181cca64b44eb186b707eb380">constexpr</a> const T &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#af6a9a165e53d7e85ae121d5789aa03e0">cutlass::platform::max</a> (const T &amp;a, const T &amp;b)</td></tr>
<tr class="memdesc:af6a9a165e53d7e85ae121d5789aa03e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::max <a href="namespacecutlass_1_1platform.html#af6a9a165e53d7e85ae121d5789aa03e0">More...</a><br /></td></tr>
<tr class="separator:af6a9a165e53d7e85ae121d5789aa03e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9b8306ae9dc21fa646c49b68fa8e197"><td class="memTemplParams" colspan="2">template&lt;class T1 , class T2 &gt; </td></tr>
<tr class="memitem:ab9b8306ae9dc21fa646c49b68fa8e197"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="platform_8h.html#a72f0657181cca64b44eb186b707eb380">constexpr</a> bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#ab9b8306ae9dc21fa646c49b68fa8e197">cutlass::platform::operator==</a> (const pair&lt; T1, T2 &gt; &amp;lhs, const pair&lt; T1, T2 &gt; &amp;rhs)</td></tr>
<tr class="separator:ab9b8306ae9dc21fa646c49b68fa8e197"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a248f49adf09654d2cd04bd2760ab2566"><td class="memTemplParams" colspan="2">template&lt;class T1 , class T2 &gt; </td></tr>
<tr class="memitem:a248f49adf09654d2cd04bd2760ab2566"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="platform_8h.html#a72f0657181cca64b44eb186b707eb380">constexpr</a> bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a248f49adf09654d2cd04bd2760ab2566">cutlass::platform::operator!=</a> (const pair&lt; T1, T2 &gt; &amp;lhs, const pair&lt; T1, T2 &gt; &amp;rhs)</td></tr>
<tr class="separator:a248f49adf09654d2cd04bd2760ab2566"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a412dbdbc678ecd12b55fcad4ef4155bd"><td class="memTemplParams" colspan="2">template&lt;class T1 , class T2 &gt; </td></tr>
<tr class="memitem:a412dbdbc678ecd12b55fcad4ef4155bd"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="platform_8h.html#a72f0657181cca64b44eb186b707eb380">constexpr</a> bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a412dbdbc678ecd12b55fcad4ef4155bd">cutlass::platform::operator&lt;</a> (const pair&lt; T1, T2 &gt; &amp;lhs, const pair&lt; T1, T2 &gt; &amp;rhs)</td></tr>
<tr class="separator:a412dbdbc678ecd12b55fcad4ef4155bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41d573133357bd555f78d33afc1152d3"><td class="memTemplParams" colspan="2">template&lt;class T1 , class T2 &gt; </td></tr>
<tr class="memitem:a41d573133357bd555f78d33afc1152d3"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="platform_8h.html#a72f0657181cca64b44eb186b707eb380">constexpr</a> bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a41d573133357bd555f78d33afc1152d3">cutlass::platform::operator&lt;=</a> (const pair&lt; T1, T2 &gt; &amp;lhs, const pair&lt; T1, T2 &gt; &amp;rhs)</td></tr>
<tr class="separator:a41d573133357bd555f78d33afc1152d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e8e698d40b8df881991fde9ba2a1b12"><td class="memTemplParams" colspan="2">template&lt;class T1 , class T2 &gt; </td></tr>
<tr class="memitem:a9e8e698d40b8df881991fde9ba2a1b12"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="platform_8h.html#a72f0657181cca64b44eb186b707eb380">constexpr</a> bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a9e8e698d40b8df881991fde9ba2a1b12">cutlass::platform::operator&gt;</a> (const pair&lt; T1, T2 &gt; &amp;lhs, const pair&lt; T1, T2 &gt; &amp;rhs)</td></tr>
<tr class="separator:a9e8e698d40b8df881991fde9ba2a1b12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0f21e67c0a4b5c6952042b502c6816f"><td class="memTemplParams" colspan="2">template&lt;class T1 , class T2 &gt; </td></tr>
<tr class="memitem:ab0f21e67c0a4b5c6952042b502c6816f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> <a class="el" href="platform_8h.html#a72f0657181cca64b44eb186b707eb380">constexpr</a> bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#ab0f21e67c0a4b5c6952042b502c6816f">cutlass::platform::operator&gt;=</a> (const pair&lt; T1, T2 &gt; &amp;lhs, const pair&lt; T1, T2 &gt; &amp;rhs)</td></tr>
<tr class="separator:ab0f21e67c0a4b5c6952042b502c6816f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90ce74c7faa4e27c888ce56e957b73d5"><td class="memTemplParams" colspan="2">template&lt;class T1 , class T2 &gt; </td></tr>
<tr class="memitem:a90ce74c7faa4e27c888ce56e957b73d5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1">CUTLASS_HOST_DEVICE</a> std::pair&lt; T1, T2 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a90ce74c7faa4e27c888ce56e957b73d5">cutlass::platform::make_pair</a> (T1 t, T2 u)</td></tr>
<tr class="separator:a90ce74c7faa4e27c888ce56e957b73d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9068e2d027ffdf5cd564deecc2cb9e8"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:ac9068e2d027ffdf5cd564deecc2cb9e8"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#ac9068e2d027ffdf5cd564deecc2cb9e8">cutlass::platform::__align__</a> (1) aligned_chunk&lt; 1 &gt;</td></tr>
<tr class="separator:ac9068e2d027ffdf5cd564deecc2cb9e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bcb016704ec57f9499e662ba6156f98"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a0bcb016704ec57f9499e662ba6156f98"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a0bcb016704ec57f9499e662ba6156f98">cutlass::platform::__align__</a> (2) aligned_chunk&lt; 2 &gt;</td></tr>
<tr class="separator:a0bcb016704ec57f9499e662ba6156f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71be5af25eeffa4077777f919e67d8da"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a71be5af25eeffa4077777f919e67d8da"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a71be5af25eeffa4077777f919e67d8da">cutlass::platform::__align__</a> (4) aligned_chunk&lt; 4 &gt;</td></tr>
<tr class="separator:a71be5af25eeffa4077777f919e67d8da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42440254a16d4b6b95b95cc3360ee372"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a42440254a16d4b6b95b95cc3360ee372"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a42440254a16d4b6b95b95cc3360ee372">cutlass::platform::__align__</a> (8) aligned_chunk&lt; 8 &gt;</td></tr>
<tr class="separator:a42440254a16d4b6b95b95cc3360ee372"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91d5e970d6ebe619914f40a9510bdb1e"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a91d5e970d6ebe619914f40a9510bdb1e"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a91d5e970d6ebe619914f40a9510bdb1e">cutlass::platform::__align__</a> (16) aligned_chunk&lt; 16 &gt;</td></tr>
<tr class="separator:a91d5e970d6ebe619914f40a9510bdb1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a210f4d360b1f9c3d074e71129fe4c0d9"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a210f4d360b1f9c3d074e71129fe4c0d9"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a210f4d360b1f9c3d074e71129fe4c0d9">cutlass::platform::__align__</a> (32) aligned_chunk&lt; 32 &gt;</td></tr>
<tr class="separator:a210f4d360b1f9c3d074e71129fe4c0d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae792b1c7ada1a33e306cd552f583bdce"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:ae792b1c7ada1a33e306cd552f583bdce"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#ae792b1c7ada1a33e306cd552f583bdce">cutlass::platform::__align__</a> (64) aligned_chunk&lt; 64 &gt;</td></tr>
<tr class="separator:ae792b1c7ada1a33e306cd552f583bdce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5712ec4fed335a9b7f863fb3abe3c5eb"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a5712ec4fed335a9b7f863fb3abe3c5eb"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a5712ec4fed335a9b7f863fb3abe3c5eb">cutlass::platform::__align__</a> (128) aligned_chunk&lt; 128 &gt;</td></tr>
<tr class="separator:a5712ec4fed335a9b7f863fb3abe3c5eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a595cc98db29fb4d59772d2e2f52e347a"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a595cc98db29fb4d59772d2e2f52e347a"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a595cc98db29fb4d59772d2e2f52e347a">cutlass::platform::__align__</a> (256) aligned_chunk&lt; 256 &gt;</td></tr>
<tr class="separator:a595cc98db29fb4d59772d2e2f52e347a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae70bb5d14a66500b47d2e3f83063d4a5"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:ae70bb5d14a66500b47d2e3f83063d4a5"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#ae70bb5d14a66500b47d2e3f83063d4a5">cutlass::platform::__align__</a> (512) aligned_chunk&lt; 512 &gt;</td></tr>
<tr class="separator:ae70bb5d14a66500b47d2e3f83063d4a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a181e44e9c66f704175590727aaa9e5a1"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a181e44e9c66f704175590727aaa9e5a1"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a181e44e9c66f704175590727aaa9e5a1">cutlass::platform::__align__</a> (1024) aligned_chunk&lt; 1024 &gt;</td></tr>
<tr class="separator:a181e44e9c66f704175590727aaa9e5a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae72c8fa997bb251d4140dceb03147154"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:ae72c8fa997bb251d4140dceb03147154"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#ae72c8fa997bb251d4140dceb03147154">cutlass::platform::__align__</a> (2048) aligned_chunk&lt; 2048 &gt;</td></tr>
<tr class="separator:ae72c8fa997bb251d4140dceb03147154"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada29683f1b408ae7b73cc8fbe2108628"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:ada29683f1b408ae7b73cc8fbe2108628"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#ada29683f1b408ae7b73cc8fbe2108628">cutlass::platform::__align__</a> (4096) aligned_chunk&lt; 4096 &gt;</td></tr>
<tr class="separator:ada29683f1b408ae7b73cc8fbe2108628"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e83320a39137d92042eb0bf93be9678"><td class="memTemplParams" colspan="2">template&lt;typename T , typename Deleter &gt; </td></tr>
<tr class="memitem:a3e83320a39137d92042eb0bf93be9678"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecutlass_1_1platform.html#a3e83320a39137d92042eb0bf93be9678">cutlass::platform::swap</a> (unique_ptr&lt; T, Deleter &gt; &amp;lhs, unique_ptr&lt; T, Deleter &gt; &amp;rhs) <a class="el" href="platform_8h.html#a189faadd7f99f6c354db09acbb2aafcd">noexcept</a></td></tr>
<tr class="memdesc:a3e83320a39137d92042eb0bf93be9678"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specializes the swap algorithm. <a href="namespacecutlass_1_1platform.html#a3e83320a39137d92042eb0bf93be9678">More...</a><br /></td></tr>
<tr class="separator:a3e83320a39137d92042eb0bf93be9678"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This file has three components:</p>
<p>(1) Macros:</p><ul>
<li>Empty macro defines for C++ keywords not supported by the current version of C++. These simply allow compilation to proceed (but do not provide the added semantics).<ul>
<li><code>noexcept</code> </li>
<li><code>constexpr</code> </li>
<li><code>nullptr</code> </li>
<li><code>static_assert</code> </li>
</ul>
</li>
<li>Macro functions that we need in constant expressions because the C++ equivalents require constexpr compiler support. These are prefixed with <code>__NV_STD_*</code> <ul>
<li><code>__NV_STD_MAX</code> </li>
<li><code>__NV_STD_MIN</code> </li>
</ul>
</li>
</ul>
<p>(2) Re-implementations of STL functions and types:</p><ul>
<li>C++ features that need the <code><b>device</b></code> annotation. These are placed into the <code>platform</code> namespace.<ul>
<li><code>plus</code> </li>
<li><code>less</code> </li>
<li><code>greater</code> </li>
<li><code>min</code> </li>
<li><code>max</code> </li>
<li><code>methods</code> on std::pair (==, !=, &lt;, &lt;=, &gt;, &gt;=, and <a class="el" href="namespacecutlass_1_1platform.html#a90ce74c7faa4e27c888ce56e957b73d5">make_pair()</a>)</li>
</ul>
</li>
</ul>
<p>(3) Stop-gap implementations of unsupported STL functions and types:</p><ul>
<li>STL functions and types defined by C++ 11/14/17/etc. that are not provided by the current version of C++. These are placed into the <code>platform</code> namespace<ul>
<li><code>integral_constant</code> </li>
<li><code>nullptr_t</code> </li>
<li><code>true_type</code> </li>
<li><code>false_type</code> </li>
<li><code>bool_constant</code> </li>
<li><code>enable_if</code> </li>
<li><code>conditional</code> </li>
<li><code>is_same</code> </li>
<li><code>is_base_of</code> </li>
<li><code>remove_const</code> </li>
<li><code>remove_volatile</code> </li>
<li><code>remove_cv</code> </li>
<li><code>is_volatile</code> </li>
<li><code>is_pointer</code> </li>
<li><code>is_void</code> </li>
<li><code>is_integral</code> </li>
<li><code>is_floating_point</code> </li>
<li><code>is_arithmetic</code> </li>
<li><code>is_fundamental</code> </li>
<li><code>is_trivially_copyable</code> </li>
<li><code>alignment_of</code> </li>
<li><code>aligned_storage</code> </li>
</ul>
</li>
</ul>
<p>(4) Functions and types that are STL-like (but aren't in the STL):</p><ul>
<li><code>TODO:</code> min and max functors?</li>
</ul>
<p>The idea is that, as we drop support for older compilers, we can simply #define the <code>__NV_STD_XYZ</code> macros and <code>platform</code> namespace to alias their C++ counterparts (or trivially find-and-replace their occurrences in code text). </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="abd31f291635329bc15292954f1f01d38"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define __NV_STD_MAX</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">b&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;(((b) &gt; (a)) ? (b) : (a))</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a39e234a3e3b0018b58df720bcb143420"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define __NV_STD_MIN</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">b&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;(((b) &lt; (a)) ? (b) : (a))</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aece7fe71be5aaf8d12dc9e2372f97de4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define __platform_cat</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">b&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;<a class="el" href="platform_8h.html#acd148999a5caeba8f6fd52e7e288e659">__platform_cat_</a>(a, b)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acd148999a5caeba8f6fd52e7e288e659"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define __platform_cat_</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">b&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;a##b</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a72f0657181cca64b44eb186b707eb380"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define constexpr</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a189faadd7f99f6c354db09acbb2aafcd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define noexcept</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab979d9d4b4923f7c54d6caa6e1a61936"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define nullptr&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="adde4c9ea91b753491851361a4198c009"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define static_assert</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">__e, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">__m&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;typedef int <a class="el" href="platform_8h.html#aece7fe71be5aaf8d12dc9e2372f97de4">__platform_cat</a>(AsSeRt, __LINE__)[(__e) ? 1 : -1]</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>