arm_compute v17.06
diff --git a/documentation/_validate_8h.xhtml b/documentation/_validate_8h.xhtml
index 1c5e9a1..ce5a89e 100644
--- a/documentation/_validate_8h.xhtml
+++ b/documentation/_validate_8h.xhtml
@@ -6,7 +6,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.11"/>
 <meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
-<title>ARM Compute Library: arm_compute/core/Validate.h File Reference</title>
+<title>Compute Library: arm_compute/core/Validate.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>
@@ -39,8 +39,8 @@
  <tbody>
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
-   <div id="projectname">ARM Compute Library
-   &#160;<span id="projectnumber">17.05</span>
+   <div id="projectname">Compute Library
+   &#160;<span id="projectnumber">v17.06</span>
    </div>
   </td>
  </tr>
@@ -55,6 +55,7 @@
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
       <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
       <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
       <li class="current"><a href="files.xhtml"><span>Files</span></a></li>
@@ -113,6 +114,7 @@
 
 <div class="header">
   <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
 <a href="#namespaces">Namespaces</a> &#124;
 <a href="#define-members">Macros</a> &#124;
 <a href="#func-members">Functions</a>  </div>
@@ -132,13 +134,23 @@
 </div>
 <p><a href="_validate_8h_source.xhtml">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>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1detail_1_1compare__dimension.xhtml">compare_dimension&lt; T &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functor to compare two <a class="el" href="classarm__compute_1_1_dimensions.xhtml">Dimensions</a> objects and throw an error on mismatch.  <a href="classarm__compute_1_1detail_1_1compare__dimension.xhtml#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:namespacearm__compute"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespacearm__compute_1_1detail"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1detail.xhtml">arm_compute::detail</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:a921b705e9e3e0fe928928447869e62a5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#a921b705e9e3e0fe928928447869e62a5">ARM_COMPUTE_ERROR_ON_NULLPTR</a>(...)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a078507835115009a81ee2974d6073bb9">arm_compute::error_on_nullptr</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td></tr>
+<tr class="separator:a921b705e9e3e0fe928928447869e62a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a57b20c050f8af67775d6da1b6febf038"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#a57b20c050f8af67775d6da1b6febf038">ARM_COMPUTE_ERROR_ON_MISMATCHING_WINDOWS</a>(f,  w)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a26a9847c05c48bd1470f22f898ee254d">arm_compute::error_on_mismatching_windows</a>(__func__, __FILE__, __LINE__, f, w)</td></tr>
 <tr class="separator:a57b20c050f8af67775d6da1b6febf038"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a6eb9ce82815fe429250189da7592ba75"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#a6eb9ce82815fe429250189da7592ba75">ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW</a>(f,  s)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a0916477887763c20822b43be144963eb">arm_compute::error_on_invalid_subwindow</a>(__func__, __FILE__, __LINE__, f, s)</td></tr>
@@ -147,10 +159,14 @@
 <tr class="separator:aecee2852b71597de947ff5ec4b9765f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af5084ef537306d09b1ef82aed5d1f63f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#af5084ef537306d09b1ef82aed5d1f63f">ARM_COMPUTE_ERROR_ON_WINDOW_DIMENSIONS_GTE</a>(w,  md)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a6fed5543ae383442a51362e6607c4e65">arm_compute::error_on_window_dimensions_gte</a>(__func__, __FILE__, __LINE__, w, md)</td></tr>
 <tr class="separator:af5084ef537306d09b1ef82aed5d1f63f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9fd47433ba6091668c207e21dd6385f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#ad9fd47433ba6091668c207e21dd6385f">ARM_COMPUTE_ERROR_ON_MISMATCHING_DIMENSIONS</a>(...)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#aff062b84c57c614a2de4d54db2cbc31c">arm_compute::error_on_mismatching_dimensions</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td></tr>
+<tr class="separator:ad9fd47433ba6091668c207e21dd6385f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aafce5e9928fac427dcd29d960bcf2ae3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#aafce5e9928fac427dcd29d960bcf2ae3">ARM_COMPUTE_ERROR_ON_MISMATCHING_SHAPES</a>(...)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a7b689868b627ba9e22c8473c5f985512">arm_compute::error_on_mismatching_shapes</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td></tr>
 <tr class="separator:aafce5e9928fac427dcd29d960bcf2ae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5befbfaf6bc224eabc58b5e88b1de6d1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#a5befbfaf6bc224eabc58b5e88b1de6d1">ARM_COMPUTE_ERROR_ON_MISMATCHING_DATA_TYPES</a>(...)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#ad35d92af32949e38ec38b3d8e46b566c">arm_compute::error_on_mismatching_data_types</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td></tr>
 <tr class="separator:a5befbfaf6bc224eabc58b5e88b1de6d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab92ec8ea3d2b4661f61e26599931ef62"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#ab92ec8ea3d2b4661f61e26599931ef62">ARM_COMPUTE_ERROR_ON_MISMATCHING_FIXED_POINT</a>(...)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a526ed43a37ba0faf2c1789175ec1a350">arm_compute::error_on_mismatching_fixed_point</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td></tr>
+<tr class="separator:ab92ec8ea3d2b4661f61e26599931ef62"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a0d34a8aa07600727e4e5034c7cdad47d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#a0d34a8aa07600727e4e5034c7cdad47d">ARM_COMPUTE_ERROR_ON_FORMAT_NOT_IN</a>(t, ...)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a0b360558b516e256f0af005a164c674e">arm_compute::error_on_format_not_in</a>(__func__, __FILE__, __LINE__, t, __VA_ARGS__)</td></tr>
 <tr class="separator:a0d34a8aa07600727e4e5034c7cdad47d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a4264d7e3318c4188e48127a75f3f0f8a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#a4264d7e3318c4188e48127a75f3f0f8a">ARM_COMPUTE_ERROR_ON_DATA_TYPE_NOT_IN</a>(t, ...)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a0c52339d3cb372d145deeafb5a313807">arm_compute::error_on_data_type_not_in</a>(__func__, __FILE__, __LINE__, t, __VA_ARGS__)</td></tr>
@@ -167,9 +183,24 @@
 <tr class="separator:abced8d9603a5927ebad9de2528f48962"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1b35b0d258183cf9ef36adf684d0b88c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#a1b35b0d258183cf9ef36adf684d0b88c">ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL</a>(k)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a21a4884cd1dbfa83351b8efa265f526a">arm_compute::error_on_unconfigured_kernel</a>(__func__, __FILE__, __LINE__, k)</td></tr>
 <tr class="separator:a1b35b0d258183cf9ef36adf684d0b88c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af36b307b96ac52bc11ac9ee2ac93df16"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#af36b307b96ac52bc11ac9ee2ac93df16">ARM_COMPUTE_ERROR_ON_INVALID_SUBTENSOR</a>(p,  c,  s)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a36ffb104aed50deb360db6f3afa4c394">arm_compute::error_on_invalid_subtensor</a>(__func__, __FILE__, __LINE__, p, c, s)</td></tr>
+<tr class="separator:af36b307b96ac52bc11ac9ee2ac93df16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abce948c8b82a9d127299e3dcdefdf652"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#abce948c8b82a9d127299e3dcdefdf652">ARM_COMPUTE_ERROR_ON_INVALID_SUBTENSOR_VALID_REGION</a>(pv,  sv)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a858e835f22c359080a09709c6dd950b1">arm_compute::error_on_invalid_subtensor_valid_region</a>(__func__, __FILE__, __LINE__, pv, sv)</td></tr>
+<tr class="separator:abce948c8b82a9d127299e3dcdefdf652"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7ffc9f13a83131b59e2a250a7438101"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#af7ffc9f13a83131b59e2a250a7438101">ARM_COMPUTE_ERROR_ON_MISMATCHING_FIXED_POINT_POSITION</a>(...)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a064db352a2f4153e6237054343d5fe7a">arm_compute::error_on_mismatching_fixed_point_position</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td></tr>
+<tr class="separator:af7ffc9f13a83131b59e2a250a7438101"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c48a8f0fea0f127b56dcc7c107fd168"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_validate_8h.xhtml#a6c48a8f0fea0f127b56dcc7c107fd168">ARM_COMPUTE_ERROR_ON_VALUE_NOT_REPRESENTABLE_IN_FIXED_POINT</a>(...)&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a9afdaa4d8bbb78938110ada1daf87f8b">arm_compute::error_on_value_not_representable_in_fixed_point</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td></tr>
+<tr class="separator:a6c48a8f0fea0f127b56dcc7c107fd168"><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:a45d610a8bc262f7007c934293361e888"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a45d610a8bc262f7007c934293361e888"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1detail.xhtml#a45d610a8bc262f7007c934293361e888">have_different_dimensions</a> (const Dimensions&lt; T &gt; &amp;dim1, const Dimensions&lt; T &gt; &amp;dim2, unsigned int upper_dim)</td></tr>
+<tr class="separator:a45d610a8bc262f7007c934293361e888"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a078507835115009a81ee2974d6073bb9"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
+<tr class="memitem:a078507835115009a81ee2974d6073bb9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a078507835115009a81ee2974d6073bb9">error_on_nullptr</a> (const char *function, const char *file, const int line, Ts &amp;&amp;...pointers)</td></tr>
+<tr class="memdesc:a078507835115009a81ee2974d6073bb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if one of the pointers is a nullptr.  <a href="namespacearm__compute.xhtml#a078507835115009a81ee2974d6073bb9">More...</a><br /></td></tr>
+<tr class="separator:a078507835115009a81ee2974d6073bb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a26a9847c05c48bd1470f22f898ee254d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a26a9847c05c48bd1470f22f898ee254d">error_on_mismatching_windows</a> (const char *function, const char *file, const int line, const Window &amp;full, const Window &amp;win)</td></tr>
 <tr class="memdesc:a26a9847c05c48bd1470f22f898ee254d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed window is invalid.  <a href="namespacearm__compute.xhtml#a26a9847c05c48bd1470f22f898ee254d">More...</a><br /></td></tr>
 <tr class="separator:a26a9847c05c48bd1470f22f898ee254d"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -182,16 +213,26 @@
 <tr class="memitem:a6fed5543ae383442a51362e6607c4e65"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a6fed5543ae383442a51362e6607c4e65">error_on_window_dimensions_gte</a> (const char *function, const char *file, const int line, const Window &amp;win, unsigned int max_dim)</td></tr>
 <tr class="memdesc:a6fed5543ae383442a51362e6607c4e65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed window has too many dimensions.  <a href="namespacearm__compute.xhtml#a6fed5543ae383442a51362e6607c4e65">More...</a><br /></td></tr>
 <tr class="separator:a6fed5543ae383442a51362e6607c4e65"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a98c979818eae59f104fcaf8de723aeda"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a98c979818eae59f104fcaf8de723aeda">have_different_shapes</a> (const ITensor *tensor_1, const ITensor *tensor_2)</td></tr>
-<tr class="separator:a98c979818eae59f104fcaf8de723aeda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff062b84c57c614a2de4d54db2cbc31c"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Ts&gt; </td></tr>
+<tr class="memitem:aff062b84c57c614a2de4d54db2cbc31c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#aff062b84c57c614a2de4d54db2cbc31c">error_on_mismatching_dimensions</a> (const char *function, const char *file, int line, const Dimensions&lt; T &gt; &amp;dim1, const Dimensions&lt; T &gt; &amp;dim2, Ts &amp;&amp;...dims)</td></tr>
+<tr class="memdesc:aff062b84c57c614a2de4d54db2cbc31c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed dimension objects differ.  <a href="namespacearm__compute.xhtml#aff062b84c57c614a2de4d54db2cbc31c">More...</a><br /></td></tr>
+<tr class="separator:aff062b84c57c614a2de4d54db2cbc31c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a7b689868b627ba9e22c8473c5f985512"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
 <tr class="memitem:a7b689868b627ba9e22c8473c5f985512"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a7b689868b627ba9e22c8473c5f985512">error_on_mismatching_shapes</a> (const char *function, const char *file, const int line, const ITensor *tensor_1, const ITensor *tensor_2, Ts...tensors)</td></tr>
-<tr class="memdesc:a7b689868b627ba9e22c8473c5f985512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed two tensors have different shapes.  <a href="namespacearm__compute.xhtml#a7b689868b627ba9e22c8473c5f985512">More...</a><br /></td></tr>
+<tr class="memdesc:a7b689868b627ba9e22c8473c5f985512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed two tensors have different shapes from the given dimension.  <a href="namespacearm__compute.xhtml#a7b689868b627ba9e22c8473c5f985512">More...</a><br /></td></tr>
 <tr class="separator:a7b689868b627ba9e22c8473c5f985512"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a496e03102bca40f666c12a575d4a6157"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
+<tr class="memitem:a496e03102bca40f666c12a575d4a6157"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a496e03102bca40f666c12a575d4a6157">error_on_mismatching_shapes</a> (const char *function, const char *file, const int line, unsigned int upper_dim, const ITensor *tensor_1, const ITensor *tensor_2, Ts...tensors)</td></tr>
+<tr class="memdesc:a496e03102bca40f666c12a575d4a6157"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed two tensors have different shapes from the given dimension.  <a href="namespacearm__compute.xhtml#a496e03102bca40f666c12a575d4a6157">More...</a><br /></td></tr>
+<tr class="separator:a496e03102bca40f666c12a575d4a6157"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad35d92af32949e38ec38b3d8e46b566c"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
 <tr class="memitem:ad35d92af32949e38ec38b3d8e46b566c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#ad35d92af32949e38ec38b3d8e46b566c">error_on_mismatching_data_types</a> (const char *function, const char *file, const int line, const ITensor *tensor_1, const ITensor *tensor_2, Ts...tensors)</td></tr>
 <tr class="memdesc:ad35d92af32949e38ec38b3d8e46b566c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed two tensors have different data types.  <a href="namespacearm__compute.xhtml#ad35d92af32949e38ec38b3d8e46b566c">More...</a><br /></td></tr>
 <tr class="separator:ad35d92af32949e38ec38b3d8e46b566c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a526ed43a37ba0faf2c1789175ec1a350"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
+<tr class="memitem:a526ed43a37ba0faf2c1789175ec1a350"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a526ed43a37ba0faf2c1789175ec1a350">error_on_mismatching_fixed_point</a> (const char *function, const char *file, const int line, const ITensor *tensor_1, const ITensor *tensor_2, Ts...tensors)</td></tr>
+<tr class="memdesc:a526ed43a37ba0faf2c1789175ec1a350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the passed tensors have different fixed point data types or different fixed point positions.  <a href="namespacearm__compute.xhtml#a526ed43a37ba0faf2c1789175ec1a350">More...</a><br /></td></tr>
+<tr class="separator:a526ed43a37ba0faf2c1789175ec1a350"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a0b360558b516e256f0af005a164c674e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename F , typename... Fs&gt; </td></tr>
 <tr class="memitem:a0b360558b516e256f0af005a164c674e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a0b360558b516e256f0af005a164c674e">error_on_format_not_in</a> (const char *function, const char *file, const int line, const T *object, F &amp;&amp;format, Fs &amp;&amp;...formats)</td></tr>
 <tr class="memdesc:a0b360558b516e256f0af005a164c674e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the format of the passed tensor/multi-image does not match any of the formats provided.  <a href="namespacearm__compute.xhtml#a0b360558b516e256f0af005a164c674e">More...</a><br /></td></tr>
@@ -220,6 +261,20 @@
 <tr class="memitem:a21a4884cd1dbfa83351b8efa265f526a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a21a4884cd1dbfa83351b8efa265f526a">error_on_unconfigured_kernel</a> (const char *function, const char *file, const int line, const IKernel *kernel)</td></tr>
 <tr class="memdesc:a21a4884cd1dbfa83351b8efa265f526a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the kernel is not configured.  <a href="namespacearm__compute.xhtml#a21a4884cd1dbfa83351b8efa265f526a">More...</a><br /></td></tr>
 <tr class="separator:a21a4884cd1dbfa83351b8efa265f526a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36ffb104aed50deb360db6f3afa4c394"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a36ffb104aed50deb360db6f3afa4c394">error_on_invalid_subtensor</a> (const char *function, const char *file, const int line, const TensorShape &amp;parent_shape, const Coordinates &amp;coords, const TensorShape &amp;shape)</td></tr>
+<tr class="memdesc:a36ffb104aed50deb360db6f3afa4c394"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if if the coordinates and shape of the subtensor are within the parent tensor.  <a href="namespacearm__compute.xhtml#a36ffb104aed50deb360db6f3afa4c394">More...</a><br /></td></tr>
+<tr class="separator:a36ffb104aed50deb360db6f3afa4c394"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a858e835f22c359080a09709c6dd950b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a858e835f22c359080a09709c6dd950b1">error_on_invalid_subtensor_valid_region</a> (const char *function, const char *file, const int line, const ValidRegion &amp;parent_valid_region, const ValidRegion &amp;valid_region)</td></tr>
+<tr class="memdesc:a858e835f22c359080a09709c6dd950b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the valid region of a subtensor is not inside the valid region of the parent tensor.  <a href="namespacearm__compute.xhtml#a858e835f22c359080a09709c6dd950b1">More...</a><br /></td></tr>
+<tr class="separator:a858e835f22c359080a09709c6dd950b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a064db352a2f4153e6237054343d5fe7a"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
+<tr class="memitem:a064db352a2f4153e6237054343d5fe7a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a064db352a2f4153e6237054343d5fe7a">error_on_mismatching_fixed_point_position</a> (const char *function, const char *file, const int line, const ITensor *tensor_1, const ITensor *tensor_2, Ts...tensors)</td></tr>
+<tr class="memdesc:a064db352a2f4153e6237054343d5fe7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the input fixed-point positions are different.  <a href="namespacearm__compute.xhtml#a064db352a2f4153e6237054343d5fe7a">More...</a><br /></td></tr>
+<tr class="separator:a064db352a2f4153e6237054343d5fe7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9afdaa4d8bbb78938110ada1daf87f8b"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
+<tr class="memitem:a9afdaa4d8bbb78938110ada1daf87f8b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute.xhtml#a9afdaa4d8bbb78938110ada1daf87f8b">error_on_value_not_representable_in_fixed_point</a> (const char *function, const char *file, int line, float value, const ITensor *tensor)</td></tr>
+<tr class="memdesc:a9afdaa4d8bbb78938110ada1daf87f8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throw an error if the fixed-point value is not representable in the specified Q format.  <a href="namespacearm__compute.xhtml#a9afdaa4d8bbb78938110ada1daf87f8b">More...</a><br /></td></tr>
+<tr class="separator:a9afdaa4d8bbb78938110ada1daf87f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Macro Definition Documentation</h2>
 <a class="anchor" id="a350e28d20c8bd44408f14ad634c9c2ff"></a>
@@ -246,7 +301,7 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00305">305</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00449">449</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
 </div>
 </div>
@@ -274,7 +329,7 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00317">317</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00461">461</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
 </div>
 </div>
@@ -302,7 +357,7 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00086">86</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00162">162</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
 </div>
 </div>
@@ -336,7 +391,7 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00269">269</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00413">413</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
 </div>
 </div>
@@ -364,7 +419,7 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00246">246</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00390">390</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
 </div>
 </div>
@@ -392,9 +447,9 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00215">215</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00359">359</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
-<p>Referenced by <a class="el" href="_utils_8cpp_source.xhtml#l00101">test_helpers::draw_detection_rectangle()</a>, <a class="el" href="test__helpers_2_utils_8h_source.xhtml#l00140">PPMLoader::fill_image()</a>, and <a class="el" href="test__helpers_2_utils_8h_source.xhtml#l00243">test_helpers::save_to_ppm()</a>.</p>
+<p>Referenced by <a class="el" href="utils_2_utils_8cpp_source.xhtml#l00103">arm_compute::utils::draw_detection_rectangle()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00142">PPMLoader::fill_image()</a>, and <a class="el" href="utils_2_utils_8h_source.xhtml#l00245">arm_compute::utils::save_to_ppm()</a>.</p>
 
 </div>
 </div>
@@ -412,7 +467,71 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00334">334</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00478">478</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af36b307b96ac52bc11ac9ee2ac93df16"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ARM_COMPUTE_ERROR_ON_INVALID_SUBTENSOR</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">c, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">s&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td>&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a36ffb104aed50deb360db6f3afa4c394">arm_compute::error_on_invalid_subtensor</a>(__func__, __FILE__, __LINE__, p, c, s)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00502">502</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abce948c8b82a9d127299e3dcdefdf652"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ARM_COMPUTE_ERROR_ON_INVALID_SUBTENSOR_VALID_REGION</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">pv, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">sv&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td>&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a858e835f22c359080a09709c6dd950b1">arm_compute::error_on_invalid_subtensor_valid_region</a>(__func__, __FILE__, __LINE__, pv, sv)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00514">514</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+
+<p>Referenced by <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00170">SubTensorInfo::set_valid_region()</a>.</p>
 
 </div>
 </div>
@@ -440,7 +559,7 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00072">72</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00148">148</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
 </div>
 </div>
@@ -458,7 +577,61 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00184">184</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00279">279</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad9fd47433ba6091668c207e21dd6385f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ARM_COMPUTE_ERROR_ON_MISMATCHING_DIMENSIONS</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em></td><td>)</td>
+          <td>&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#aff062b84c57c614a2de4d54db2cbc31c">arm_compute::error_on_mismatching_dimensions</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00197">197</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab92ec8ea3d2b4661f61e26599931ef62"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ARM_COMPUTE_ERROR_ON_MISMATCHING_FIXED_POINT</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em></td><td>)</td>
+          <td>&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a526ed43a37ba0faf2c1789175ec1a350">arm_compute::error_on_mismatching_fixed_point</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00328">328</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af7ffc9f13a83131b59e2a250a7438101"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ARM_COMPUTE_ERROR_ON_MISMATCHING_FIXED_POINT_POSITION</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em></td><td>)</td>
+          <td>&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a064db352a2f4153e6237054343d5fe7a">arm_compute::error_on_mismatching_fixed_point_position</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00538">538</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
 </div>
 </div>
@@ -476,7 +649,7 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00150">150</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00245">245</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
 </div>
 </div>
@@ -504,7 +677,25 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00055">55</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00131">131</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a921b705e9e3e0fe928928447869e62a5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ARM_COMPUTE_ERROR_ON_NULLPTR</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em></td><td>)</td>
+          <td>&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a078507835115009a81ee2974d6073bb9">arm_compute::error_on_nullptr</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00114">114</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
 </div>
 </div>
@@ -522,7 +713,7 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00280">280</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00424">424</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
 </div>
 </div>
@@ -540,7 +731,25 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00345">345</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00489">489</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6c48a8f0fea0f127b56dcc7c107fd168"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ARM_COMPUTE_ERROR_ON_VALUE_NOT_REPRESENTABLE_IN_FIXED_POINT</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em></td><td>)</td>
+          <td>&#160;&#160;&#160;::<a class="el" href="namespacearm__compute.xhtml#a9afdaa4d8bbb78938110ada1daf87f8b">arm_compute::error_on_value_not_representable_in_fixed_point</a>(__func__, __FILE__, __LINE__, __VA_ARGS__)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00561">561</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
 
 </div>
 </div>
@@ -568,7 +777,9 @@
       </table>
 </div><div class="memdoc">
 
-<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00100">100</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+<p>Definition at line <a class="el" href="_validate_8h_source.xhtml#l00176">176</a> of file <a class="el" href="_validate_8h_source.xhtml">Validate.h</a>.</p>
+
+<p>Referenced by <a class="el" href="_helpers_8inl_source.xhtml#l00189">Iterator::Iterator()</a>.</p>
 
 </div>
 </div>
@@ -578,7 +789,7 @@
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_214608ef36d61442cb2b0c1c4e9a7def.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="dir_1fb090f0c6070330bfaccc4236d3ca0d.xhtml">core</a></li><li class="navelem"><a class="el" href="_validate_8h.xhtml">Validate.h</a></li>
-    <li class="footer">Generated on Wed May 3 2017 17:20:04 for ARM Compute Library by
+    <li class="footer">Generated on Fri Jun 23 2017 15:44:34 for Compute Library by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
   </ul>