This file is indexed.

/usr/share/doc/libeigen3-dev/html/TopicUsingIntelMKL.html is in libeigen3-doc 3.3.4-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<!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.13"/>
<title>Eigen: Using Intel® MKL from Eigen</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</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>
<link href="doxygen.css"   rel="stylesheet" type="text/css" />
<link href="eigendoxy.css" rel="stylesheet" type="text/css">
<!--  -->
<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
<!-- <script type="text/javascript"> -->
<!-- </script> -->
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<!-- <a name="top"></a> -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Eigen_Silly_Professor_64x64.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://eigen.tuxfamily.org">Eigen</a>
   &#160;<span id="projectnumber">3.3.4</span>
   </div>
  </td>
   <td>        <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>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('TopicUsingIntelMKL.html','');});
</script>
<div id="doc-content">
<!-- 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 class="header">
  <div class="headertitle">
<div class="title">Using Intel® MKL from Eigen </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Since Eigen version 3.1 and later, users can benefit from built-in Intel® Math Kernel Library (MKL) optimizations with an installed copy of Intel MKL 10.3 (or later).</p>
<p><a href="http://eigen.tuxfamily.org/Counter/redirect_to_mkl.php">Intel MKL </a> provides highly optimized multi-threaded mathematical routines for x86-compatible architectures. Intel MKL is available on Linux, Mac and Windows for both Intel64 and IA32 architectures.</p>
<dl class="section note"><dt>Note</dt><dd>Intel® MKL is a proprietary software and it is the responsibility of users to buy or register for community (free) Intel MKL licenses for their products. Moreover, the license of the user product has to allow linking to proprietary software that excludes any unmodified versions of the GPL.</dd></dl>
<p>Using Intel MKL through Eigen is easy:</p><ol type="1">
<li>define the <code>EIGEN_USE_MKL_ALL</code> macro before including any Eigen's header</li>
<li>link your program to MKL libraries (see the <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/">MKL linking advisor</a>)</li>
<li>on a 64bits system, you must use the LP64 interface (not the ILP64 one)</li>
</ol>
<p>When doing so, a number of Eigen's algorithms are silently substituted with calls to Intel MKL routines. These substitutions apply only for <b>Dynamic</b> <b>or</b> <b>large</b> enough objects with one of the following four standard scalar types: <code>float</code>, <code>double</code>, <code>complex&lt;float&gt;</code>, and <code>complex&lt;double&gt;</code>. Operations on other scalar types or mixing reals and complexes will continue to use the built-in algorithms.</p>
<p>In addition you can choose which parts will be substituted by defining one or multiple of the following macros:</p>
<table class="manual">
<tr>
<td><code>EIGEN_USE_BLAS</code> </td><td>Enables the use of external BLAS level 2 and 3 routines </td></tr>
<tr class="alt">
<td><code>EIGEN_USE_LAPACKE</code> </td><td>Enables the use of external Lapack routines via the <a href="http://www.netlib.org/lapack/lapacke.html">Lapacke</a> C interface to Lapack </td></tr>
<tr>
<td><code>EIGEN_USE_LAPACKE_STRICT</code> </td><td>Same as <code>EIGEN_USE_LAPACKE</code> but algorithm of lower robustness are disabled. <br />
 This currently concerns only <a class="el" href="classEigen_1_1JacobiSVD.html" title="Two-sided Jacobi SVD decomposition of a rectangular matrix. ">JacobiSVD</a> which otherwise would be replaced by <code>gesvd</code> that is less robust than Jacobi rotations. </td></tr>
<tr class="alt">
<td><code>EIGEN_USE_MKL_VML</code> </td><td>Enables the use of Intel VML (vector operations) </td></tr>
<tr>
<td><code>EIGEN_USE_MKL_ALL</code> </td><td>Defines <code>EIGEN_USE_BLAS</code>, <code>EIGEN_USE_LAPACKE</code>, and <code>EIGEN_USE_MKL_VML</code>  </td></tr>
</table>
<p>Note that the BLAS and LAPACKE backends can be enabled for any F77 compatible BLAS and LAPACK libraries. See this <a class="el" href="TopicUsingBlasLapack.html">page </a> for the details.</p>
<p>Finally, the PARDISO sparse solver shipped with Intel MKL can be used through the <a class="el" href="classEigen_1_1PardisoLU.html">PardisoLU</a>, <a class="el" href="classEigen_1_1PardisoLLT.html">PardisoLLT</a> and <a class="el" href="classEigen_1_1PardisoLDLT.html">PardisoLDLT</a> classes of the <a class="el" href="group__PardisoSupport__Module.html">PardisoSupport module</a>.</p>
<p>The following table summarizes the list of functions covered by <code>EIGEN_USE_MKL_VML:</code> </p><table class="manual">
<tr>
<th>Code example</th><th>MKL routines </th></tr>
<tr>
<td><div class="fragment"><div class="line">v2=v1.array().sin();</div><div class="line">v2=v1.array().asin();</div><div class="line">v2=v1.array().cos();</div><div class="line">v2=v1.array().acos();</div><div class="line">v2=v1.array().tan();</div><div class="line">v2=v1.array().exp();</div><div class="line">v2=v1.array().log();</div><div class="line">v2=v1.array().sqrt();</div><div class="line">v2=v1.array().square();</div><div class="line">v2=v1.array().pow(1.5);</div></div><!-- fragment --></td><td><div class="fragment"><div class="line">v?Sin</div><div class="line">v?Asin</div><div class="line">v?Cos</div><div class="line">v?Acos</div><div class="line">v?Tan</div><div class="line">v?Exp</div><div class="line">v?Ln</div><div class="line">v?Sqrt</div><div class="line">v?Sqr</div><div class="line">v?Powx</div></div><!-- fragment --> </td></tr>
</table>
<p>In the examples, v1 and v2 are dense vectors.</p>
<h1><a class="anchor" id="TopicUsingIntelMKL_Links"></a>
Links</h1>
<ul>
<li>Intel MKL can be purchased and downloaded <a href="http://eigen.tuxfamily.org/Counter/redirect_to_mkl.php">here</a>.</li>
<li>Intel MKL is also bundled with <a href="http://software.intel.com/en-us/articles/intel-composer-xe/">Intel Composer XE</a>. </li>
</ul>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>