types_overview.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta name="generator" content=
  6. "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" />
  7. <meta name="GENERATOR" content="Quanta Plus" />
  8. <link rel="stylesheet" href="../../../../boost.css" type="text/css"/>
  9. <link rel="stylesheet" href="ublas.css" type="text/css" />
  10. <script type="text/javascript" src="js/jquery-1.3.2.min.js" async="async" ></script>
  11. <script type="text/javascript" src="js/jquery.toc-gw.js" async="async" ></script>
  12. <title>Types Overview</title>
  13. </head>
  14. <body>
  15. <h1><img src="../../../../boost.png" align="middle" />Overview of Tensor, Matrix- and Vector Types </h1>
  16. <div class="toc" id="toc"></div>
  17. <dl>
  18. <dt>Contents:</dt>
  19. <dd><a href="#vectors">Vectors</a></dd>
  20. <dd><a href="#vector_proxies">Vector Proxies</a></dd>
  21. <dd><a href="#matrices">Matrices</a></dd>
  22. <dd><a href="#matrix_proxies">Matrix Proxies</a></dd>
  23. <dd><a href="#tensors">Tensors</a></dd>
  24. <dd><a href="#storage_layout">Special Storage Layouts</a></dd>
  25. </dl>
  26. <h2>Notation</h2>
  27. <table style="border: none;" summary="notation">
  28. <tr><td><code>T</code></td>
  29. <td>is the data type. For general linear algebra operations this will be a real type e.g. <code>double</code>, ...</td></tr>
  30. <tr><td><code>F</code></td>
  31. <td>is the orientation type, either
  32. <code>row_major</code> or <code>column_major</code> for matrices and <code>first_order</code> or <code>last_order</code> for tensors</td></tr>
  33. <tr><td><code>A, IA, TA</code></td> <td>is an array storage type, e.g. <code>std::vector,
  34. bounded_array, unbounded_array, ...</code></td></tr>
  35. <tr><td><code>TRI</code></td>
  36. <td>is a triangular functor: <code>lower,
  37. unit_lower, strict_lower, upper, unit_upper,
  38. strict_upper</code></td></tr>
  39. <tr><td><code>M, N, K</code></td>
  40. <td>are unsigned integer sizes
  41. (<code>std::size_t</code>)</td></tr>
  42. <tr><td><code>IB</code></td>
  43. <td>is an index base
  44. (<code>std::size_t</code>)</td></tr>
  45. <tr><td><code>VEC</code></td>
  46. <td>is any vector type</td></tr>
  47. <tr><td><code>MAT</code> </td>
  48. <td>is any matrix type</td></tr>
  49. <tr><td><code>TEN</code> </td>
  50. <td>is any tensor type</td></tr>
  51. <tr><td><code>[...]</code></td>
  52. <td>denote optional arguments - for more details
  53. look at the section "storage layout".</td></tr>
  54. </table>
  55. <h2><a id="vectors">Vectors</a></h2>
  56. <table border="1" summary="vector types">
  57. <thead>
  58. <tr>
  59. <th width="30%">Definition</th>
  60. <th>Description</th>
  61. </tr>
  62. </thead>
  63. <tbody>
  64. <tr>
  65. <td><code>vector&lt;T [, A]&gt;<br />&nbsp;&nbsp; v(size);</code></td>
  66. <td>a dense vector of values of type <code>T</code> of variable
  67. size. A storage type <code>A</code> can be specified
  68. which defaults to <code>unbounded_array</code>.
  69. Elements are constructed by <code>A</code>, which need not initialise their value.</td>
  70. </tr>
  71. <tr>
  72. <td><code>bounded_vector&lt;T, N&gt;<br />&nbsp;&nbsp; v;</code></td>
  73. <td>a dense vector of values of type <code>T</code> of variable size but with maximum
  74. <code>N</code>. The default constructor creates <code>v</code>
  75. with size <code>N</code>.
  76. Elements are constructed by the storage type <code>bounded_array</code>, which need not initialise their value.</td>
  77. </tr>
  78. <tr>
  79. <td><code>c_vector&lt;T, M&gt;<br />&nbsp;&nbsp; v(size);</code></td>
  80. <td>a dense vector of values of type <code>T</code> with the given size.
  81. The data is stored as an ordinary C++ array <code>T
  82. data_[M]</code></td>
  83. </tr>
  84. <tr>
  85. <td><code>zero_vector&lt;T&gt;<br />&nbsp;&nbsp; v(size);</code></td>
  86. <td>the zero vector of type <code>T</code> with the given
  87. size.</td>
  88. </tr>
  89. <tr>
  90. <td><code>unit_vector&lt;T&gt;<br />&nbsp;&nbsp; v(size,&nbsp;index);</code></td>
  91. <td>the unit vector of type <code>T</code> with the given size. The
  92. vector is zero other then a single specified element.
  93. <br/><code>index</code> should be less than <code>size</code>.</td>
  94. </tr>
  95. <tr>
  96. <td><code>mapped_vector&lt;T [, S]&gt;<br />&nbsp;&nbsp; v(size);</code></td>
  97. <td>a sparse vector of values of type <code>T</code> of variable
  98. size. The sparse storage type <code>S</code> can be <code>std::map&lt;size_t,
  99. T&gt;</code> or <code>map_array&lt;size_t, T&gt;</code>.</td>
  100. </tr>
  101. <tr>
  102. <td><code>compressed_vector&lt;T [,IB, IA, TA]&gt;<br />&nbsp;&nbsp; v(size);</code></td>
  103. <td>a sparse vector of values of type <code>T</code> of variable
  104. size. The non zero values are stored as two seperate arrays - an
  105. index array and a value array. The index array is always sorted and
  106. there is at most one entry for each index.</td>
  107. </tr>
  108. <tr>
  109. <td><code>coordinate_vector&lt;T [,IB, IA, TA]&gt;<br />&nbsp;&nbsp; v(size);</code></td>
  110. <td>a sparse vector of values of type <code>T</code> of variable
  111. size. The non zero values are stored as two seperate arrays - an
  112. index array and a value array. The arrays may be out of order with
  113. multiple entries for each vector element. If there are multiple
  114. values for the same index the sum of these values is the real
  115. value.</td>
  116. </tr>
  117. </tbody>
  118. </table>
  119. <p><em>Note:</em> the default types are defined in
  120. <code>boost/numeric/ublas/fwd.hpp</code>.</p>
  121. <h2><a id="vector_proxies">Vector Proxies</a></h2>
  122. <table border="1" summary="vector proxies">
  123. <thead>
  124. <tr>
  125. <th width="30%">Definition</th>
  126. <th>Description</th>
  127. </tr>
  128. </thead>
  129. <tbody>
  130. <tr>
  131. <td><code>vector_range&lt;VEC&gt;<br />&nbsp;&nbsp; vr(v, range);</code></td>
  132. <td>a vector referencing a continuous subvector of elements of
  133. vector <code>v</code> containing all elements specified by
  134. <code>range</code>.</td>
  135. </tr>
  136. <tr>
  137. <td><code>vector_slice&lt;VEC&gt;<br />&nbsp;&nbsp; vs(v, slice);</code></td>
  138. <td>a vector referencing a non continuous subvector of elements of
  139. vector <code>v</code> containing all elements specified by
  140. <code>slice</code>.</td>
  141. </tr>
  142. <tr>
  143. <td><code>matrix_row&lt;MAT&gt;<br />&nbsp;&nbsp; vr(m, index);</code></td>
  144. <td>a vector referencing the <code>index</code>-th row of matrix
  145. <code>m</code></td>
  146. </tr>
  147. <tr>
  148. <td><code>matrix_column&lt;MAT&gt;<br />&nbsp;&nbsp; vc(m, index);</code></td>
  149. <td>a vector referencing the <code>index</code>-th column of matrix
  150. <code>m</code></td>
  151. </tr>
  152. </tbody>
  153. </table>
  154. <h2><a id="matrices">Matrices</a></h2>
  155. <table border="1" summary="matrix types">
  156. <thead>
  157. <tr>
  158. <th width="30%">Definition</th>
  159. <th>Description</th>
  160. </tr>
  161. </thead>
  162. <tbody>
  163. <tr>
  164. <td><code>matrix&lt;T [, F, A]&gt;<br />&nbsp;&nbsp; m(size1, size2);</code></td>
  165. <td>a dense matrix of values of type <code>T</code> of variable
  166. size. A storage type <code>A</code> can be specified
  167. which defaults to <code>unbounded_array</code>.
  168. The orientation functor <code>F</code> defaults to
  169. <code>row_major</code>.
  170. Elements are constructed by <code>A</code>, which need not initialise their value.</td>
  171. </tr>
  172. <tr>
  173. <td><code>bounded_matrix&lt;T, M, N [, F]&gt;<br />&nbsp;&nbsp; m;</code></td>
  174. <td>a dense matrix of type <code>T</code> with variable size with maximum <code>M</code>-by-<code>N</code>. The orientation functor <code>F</code>
  175. defaults to <code>row_major</code>. The default constructor creates
  176. <code>m</code> with size <code>M</code>-by-<code>N</code>.
  177. Elements are constructed by the storage type <code>bounded_array</code>, which need not initialise their value.</td>
  178. </tr>
  179. <tr>
  180. <td><code>c_matrix&lt;T, M, N&gt;<br />&nbsp;&nbsp; m(size1, size2);</code></td>
  181. <td>a dense matrix of values of type <code>T</code> with the given size.
  182. The data is stored as an ordinary C++ array <code>T
  183. data_[N][M]</code></td>
  184. </tr>
  185. <tr>
  186. <td><code>vector_of_vector&lt;T [, F, A]&gt;<br />&nbsp;&nbsp; m(size1,
  187. size2);</code></td>
  188. <td>a dense matrix of values of type <code>T</code> with the given size.
  189. The data is stored as a vector of vectors. The orientation
  190. <code>F</code> defaults to <code>row_major</code>. The storage
  191. type <code>S</code> defaults to
  192. <code>unbounded_array&lt;unbounded_array&lt;T&gt;&nbsp;&gt;</code></td>
  193. </tr>
  194. <tr>
  195. <td><code>zero_matrix&lt;T&gt;<br />&nbsp;&nbsp; m(size1, size2);</code></td>
  196. <td>a zero matrix of type <code>T</code> with the given size.</td>
  197. </tr>
  198. <tr>
  199. <td><code>identity_matrix&lt;T&gt;<br />&nbsp;&nbsp; m(size1, size2);</code></td>
  200. <td>an identity matrix of type <code>T</code> with the given size.
  201. The values are <code>v(i,j) = (i==j)?T(1):T()</code>.</td>
  202. </tr>
  203. <tr>
  204. <td><code>scalar_matrix&lt;T&gt;<br />&nbsp;&nbsp; m(size1, size2,
  205. value);</code></td>
  206. <td>a matrix of type <code>T</code> with the given size that has the
  207. value <code>value</code> everywhere.</td>
  208. </tr>
  209. <tr>
  210. <td><code>triangular_matrix&lt;T [, TRI, F, A]&gt;<br />&nbsp;&nbsp;
  211. m(size);</code></td>
  212. <td>a triangular matrix of values of type <code>T</code> of
  213. variable size. Only the nonzero elements are stored in the given
  214. order <code>F</code>. ("triangular packed storage") The triangular
  215. type <code>F</code> defaults to <code>lower</code>, the orientation
  216. type <code>F</code> defaults to <code>row_major</code>.</td>
  217. </tr>
  218. <tr>
  219. <td><code>banded_matrix&lt;T [, F, A]&gt;<br />&nbsp;&nbsp; m(size1, size2, n_lower,
  220. n_upper);</code></td>
  221. <td>a banded matrix of values of type <code>T</code> of variable
  222. size with <code>n_lower</code> sub diagonals and
  223. <code>n_upper</code> super diagonals. Only the nonzero elements are
  224. stored in the given order <code>F</code>. ("packed storage")</td>
  225. </tr>
  226. <tr>
  227. <td><code>symmetric_matrix&lt;T [, TRI, F, A]&gt;<br />&nbsp;&nbsp;
  228. m(size);</code></td>
  229. <td>a symmetric matrix of values of type <code>T</code> of
  230. variable size. Only the given triangular matrix is stored in the
  231. given order <code>F</code>.</td>
  232. </tr>
  233. <tr>
  234. <td><code>hermitian_matrix&lt;T [, TRI, F, A]&gt;<br />&nbsp;&nbsp;
  235. m(size);</code></td>
  236. <td>a hermitian matrix of values of type <code>T</code> of
  237. variable size. Only the given triangular matrix is stored using
  238. the order <code>F</code>.</td>
  239. </tr>
  240. <tr>
  241. <td><code>mapped_matrix&lt;T, [F, S]&gt;<br />&nbsp;&nbsp; m(size1, size2 [,
  242. non_zeros]);</code></td>
  243. <td>a sparse matrix of values of type <code>T</code> of variable
  244. size. The sparse storage type <code>S</code> can be either <code>std::map&lt;size_t,
  245. std::map&lt;size_t, T&gt;&nbsp;&gt;</code> or
  246. <code>map_array&lt;size_t, map_array&lt;size_t,
  247. T&gt;&nbsp;&gt;</code>.</td>
  248. </tr>
  249. <tr>
  250. <td><code>sparse_vector_of_sparse_vector&lt;T, [F, C]&gt;<br />&nbsp;&nbsp; m(size1,
  251. size2 [, non_zeros]);</code></td>
  252. <td>a sparse matrix of values of type <code>T</code> of variable
  253. size.</td>
  254. </tr>
  255. <tr>
  256. <td><code>compressed_matrix&lt;T, [F, IB, IA, TA]&gt;<br />&nbsp;&nbsp; m(size1,
  257. size2 [, non_zeros]);</code></td>
  258. <td>a sparse matrix of values of type <code>T</code> of variable
  259. size. The values are stored in compressed row/column storage.</td>
  260. </tr>
  261. <tr>
  262. <td><code>coordinate_matrix&lt;T, [F, IB, IA, TA]&gt;<br />&nbsp;&nbsp; m(size1,
  263. size2 [, non_zeros]);</code></td>
  264. <td>a sparse matrix of values of type <code>T</code> of variable
  265. size. The values are stored in 3 parallel array as triples (i, j,
  266. value). More than one value for each pair of indices is possible,
  267. the real value is the sum of all.</td>
  268. </tr>
  269. <tr>
  270. <td><code>generalized_vector_of_vector&lt;T, F, A&gt;<br />&nbsp;&nbsp; m(size1,
  271. size2 [, non_zeros]);</code></td>
  272. <td>a sparse matrix of values of type <code>T</code> of variable
  273. size. The values are stored as a vector of sparse vectors, e.g.
  274. <code>generalized_vector_of_vector&lt;double, row_major,
  275. unbounded_array&lt;coordinate_vector&lt;double&gt;&nbsp;&gt;&nbsp;&gt;</code></td>
  276. </tr>
  277. </tbody>
  278. </table>
  279. <p><em>Note:</em> the default types are defined in
  280. <code>boost/numeric/ublas/fwd.hpp</code>.</p>
  281. <h2><a id="matrix_proxies">Matrix Proxies</a></h2>
  282. <table border="1" summary="matrix proxies">
  283. <thead>
  284. <tr>
  285. <th width="30%">Definition</th>
  286. <th>Description</th>
  287. </tr>
  288. </thead>
  289. <tbody>
  290. <tr>
  291. <td><code>triangular_adaptor&lt;MAT, TRI&gt;<br />&nbsp;&nbsp; ta(m);</code></td>
  292. <td>a triangular matrix referencing a selection of elements of the
  293. matrix <code>m</code>.</td>
  294. </tr>
  295. <tr>
  296. <td><code>symmetric_adaptor&lt;MAT, TRI&gt;<br />&nbsp;&nbsp; sa(m);</code></td>
  297. <td>a symmetric matrix referencing a selection of elements of the
  298. matrix <code>m</code>.</td>
  299. </tr>
  300. <tr>
  301. <td><code>hermitian_adaptor&lt;MAT, TRI&gt;<br />&nbsp;&nbsp; ha(m);</code></td>
  302. <td>a hermitian matrix referencing a selection of elements of the
  303. matrix <code>m</code>.</td>
  304. </tr>
  305. <tr>
  306. <td><code>banded_adaptor&lt;MAT&gt;<br />&nbsp;&nbsp; ba(m, n_lower,
  307. n_upper);</code></td>
  308. <td>a banded matrix referencing a selection of elements of the
  309. matrix <code>m</code>.</td>
  310. </tr>
  311. <tr>
  312. <td><code>matrix_range&lt;MAT, TRI&gt;<br />&nbsp;&nbsp; mr(m, range1,
  313. range2);</code></td>
  314. <td>a matrix referencing a submatrix of elements in the matrix
  315. <code>m</code>.</td>
  316. </tr>
  317. <tr>
  318. <td><code>matrix_slice&lt;MAT, TRI&gt;<br />&nbsp;&nbsp; ms(m, slice1,
  319. slice2);</code></td>
  320. <td>a matrix referencing a non continues submatrix of elements in
  321. the matrix <code>m</code>.</td>
  322. </tr>
  323. </tbody>
  324. </table>
  325. <h2><a id="tensors">Tensors</a></h2>
  326. <table border="1" summary="tensor types">
  327. <thead>
  328. <tr>
  329. <th width="10%">Definition</th>
  330. <th>Description</th>
  331. </tr>
  332. </thead>
  333. <tbody>
  334. <tr>
  335. <td><code>tensor&lt;T [, F, A]&gt;<br />&nbsp;&nbsp; t(size1, size2, ... );</code></td>
  336. <td>a dense matrix of values of type <code>T</code> of variable
  337. size. A storage type <code>A</code> can be specified
  338. which defaults to <code>std::vector&lt;T&gt;</code>.
  339. The orientation type <code>F</code> defaults to
  340. <code>first_order</code>.
  341. Elements are constructed by <code>A</code>, which need not initialise their value.</td>
  342. </tr>
  343. </tbody>
  344. </table>
  345. <h2><a id="storage_layout">Special Storage Layouts</a></h2>
  346. <p>The library supports conventional dense, packed and basic sparse
  347. vector and matrix storage layouts. The description of the most
  348. common constructions of vectors and matrices comes next.</p>
  349. <table border="1" summary="storage layouts">
  350. <tbody>
  351. <tr>
  352. <th width="30%">Construction</th>
  353. <th>Comment</th>
  354. </tr>
  355. <tr>
  356. <td><code>vector&lt;T,<br />
  357. &nbsp;std::vector&lt;T&gt; &gt;<br />
  358. &nbsp;&nbsp;v (size)</code></td>
  359. <td>a dense vector, storage is provided by a standard
  360. vector.<br />
  361. The storage layout usually is BLAS compliant.</td>
  362. </tr>
  363. <tr>
  364. <td><code>vector&lt;T,<br />
  365. &nbsp;unbounded_array&lt;T&gt; &gt;<br />
  366. &nbsp;&nbsp;v (size)</code></td>
  367. <td>a dense vector, storage is provided by a heap-based
  368. array.<br />
  369. The storage layout usually is BLAS compliant.</td>
  370. </tr>
  371. <tr>
  372. <td><code>vector&lt;T,<br />
  373. &nbsp;bounded_array&lt;T, N&gt; &gt;<br />
  374. &nbsp;&nbsp;v (size)</code></td>
  375. <td>a dense vector, storage is provided by a stack-based
  376. array.<br />
  377. The storage layout usually is BLAS compliant.</td>
  378. </tr>
  379. <tr>
  380. <td><code>mapped_vector&lt;T,<br />
  381. &nbsp;std::map&lt;std::size_t, T&gt; &gt;<br />
  382. &nbsp;&nbsp;v (size, non_zeros)</code></td>
  383. <td>a sparse vector, storage is provided by a standard
  384. map.</td>
  385. </tr>
  386. <tr>
  387. <td><code>mapped_vector&lt;T,<br />
  388. &nbsp;map_array&lt;std::size_t, T&gt; &gt;<br />
  389. &nbsp;&nbsp;v (size, non_zeros)</code></td>
  390. <td>a sparse vector, storage is provided by a map
  391. array.</td>
  392. </tr>
  393. <tr>
  394. <td><code>matrix&lt;T,<br />
  395. &nbsp;row_major,<br />
  396. &nbsp;std::vector&lt;T&gt; &gt;<br />
  397. &nbsp;&nbsp;m (size1, size2)</code></td>
  398. <td>a dense matrix, orientation is row major, storage is
  399. provided by a standard vector.</td>
  400. </tr>
  401. <tr>
  402. <td><code>matrix&lt;T,<br />
  403. &nbsp;column_major,<br />
  404. &nbsp;std::vector&lt;T&gt; &gt;<br />
  405. &nbsp;&nbsp;m (size1, size2)</code></td>
  406. <td>a dense matrix, orientation is column major, storage
  407. is provided by a standard vector.<br />
  408. The storage layout usually is BLAS compliant.</td>
  409. </tr>
  410. <tr>
  411. <td><code>matrix&lt;T,<br />
  412. &nbsp;row_major,<br />
  413. &nbsp;unbounded_array&lt;T&gt; &gt;<br />
  414. &nbsp;&nbsp;m (size1, size2)</code></td>
  415. <td>a dense matrix, orientation is row major, storage is
  416. provided by a heap-based array.</td>
  417. </tr>
  418. <tr>
  419. <td><code>matrix&lt;T,<br />
  420. &nbsp;column_major,<br />
  421. &nbsp;unbounded_array&lt;T&gt; &gt;<br />
  422. &nbsp;&nbsp;m (size1, size2)</code></td>
  423. <td>a dense matrix, orientation is column major, storage
  424. is provided by a heap-based array.<br />
  425. The storage layout usually is BLAS compliant.</td>
  426. </tr>
  427. <tr>
  428. <td><code>matrix&lt;T,<br />
  429. &nbsp;row_major,<br />
  430. &nbsp;bounded_array&lt;T, N1 * N2&gt; &gt;<br />
  431. &nbsp;&nbsp;m (size1, size2)</code></td>
  432. <td>a dense matrix, orientation is row major, storage is
  433. provided by a stack-based array.</td>
  434. </tr>
  435. <tr>
  436. <td><code>matrix&lt;T,<br />
  437. &nbsp;column_major,<br />
  438. &nbsp;bounded_array&lt;T, N1 * N2&gt; &gt;<br />
  439. &nbsp;&nbsp;m (size1, size2)</code></td>
  440. <td>a dense matrix, orientation is column major, storage
  441. is provided by a stack-based array.<br />
  442. The storage layout usually is BLAS compliant.</td>
  443. </tr>
  444. <tr>
  445. <td><code>triangular_matrix&lt;T,<br />
  446. &nbsp;row_major, F, A&gt;<br />
  447. &nbsp;&nbsp;m (size)</code></td>
  448. <td>a packed triangular matrix, orientation is row
  449. major.</td>
  450. </tr>
  451. <tr>
  452. <td><code>triangular_matrix&lt;T,<br />
  453. &nbsp;column_major, F, A&gt;<br />
  454. &nbsp;&nbsp;m (size)</code></td>
  455. <td>a packed triangular matrix, orientation is column
  456. major.<br />
  457. The storage layout usually is BLAS compliant.</td>
  458. </tr>
  459. <tr>
  460. <td><code>banded_matrix&lt;T,<br />
  461. &nbsp;row_major, A&gt;<br />
  462. &nbsp;&nbsp;m (size1, size2, lower, upper)</code></td>
  463. <td>a packed banded matrix, orientation is row
  464. major.</td>
  465. </tr>
  466. <tr>
  467. <td><code>banded_matrix&lt;T,<br />
  468. &nbsp;column_major, A&gt;<br />
  469. &nbsp;&nbsp;m (size1, size2, lower, upper)</code></td>
  470. <td>a packed banded matrix, orientation is column
  471. major.<br />
  472. The storage layout usually is BLAS compliant.</td>
  473. </tr>
  474. <tr>
  475. <td><code>symmetric_matrix&lt;T,<br />
  476. &nbsp;row_major, F, A&gt;<br />
  477. &nbsp;&nbsp;m (size)</code></td>
  478. <td>a packed symmetric matrix, orientation is row
  479. major.</td>
  480. </tr>
  481. <tr>
  482. <td><code>symmetric_matrix&lt;T,<br />
  483. &nbsp;column_major, F, A&gt;<br />
  484. &nbsp;&nbsp;m (size)</code></td>
  485. <td>a packed symmetric matrix, orientation is column
  486. major.<br />
  487. The storage layout usually is BLAS compliant.</td>
  488. </tr>
  489. <tr>
  490. <td><code>hermitian_matrix&lt;T,<br />
  491. &nbsp;row_major, F, A&gt;<br />
  492. &nbsp;&nbsp;m (size)</code></td>
  493. <td>a packed hermitian matrix, orientation is row
  494. major.</td>
  495. </tr>
  496. <tr>
  497. <td><code>hermitian_matrix&lt;T,<br />
  498. &nbsp;column_major, F, A&gt;<br />
  499. &nbsp;&nbsp;m (size)</code></td>
  500. <td>a packed hermitian matrix, orientation is column
  501. major.<br />
  502. The storage layout usually is BLAS compliant.</td>
  503. </tr>
  504. <tr>
  505. <td><code>mapped_matrix&lt;T,<br />
  506. &nbsp;row_major,<br />
  507. &nbsp;std::map&lt;std::size_t, T&gt; &gt;<br />
  508. &nbsp;&nbsp;m (size1, size2, non_zeros)</code></td>
  509. <td>a sparse matrix, orientation is row major, storage
  510. is provided by a standard map.</td>
  511. </tr>
  512. <tr>
  513. <td><code>mapped_matrix&lt;T,<br />
  514. &nbsp;column_major,<br />
  515. &nbsp;std::map&lt;std::size_t, T&gt; &gt;<br />
  516. &nbsp;&nbsp;m (size1, size2, non_zeros)</code></td>
  517. <td>a sparse matrix, orientation is column major,
  518. storage is provided by a standard map.</td>
  519. </tr>
  520. <tr>
  521. <td><code>mapped_matrix&lt;T,<br />
  522. &nbsp;row_major,<br />
  523. &nbsp;map_array&lt;std::size_t, T&gt; &gt;<br />
  524. &nbsp;&nbsp;m (size1, size2, non_zeros)</code></td>
  525. <td>a sparse matrix, orientation is row major, storage
  526. is provided by a map array.</td>
  527. </tr>
  528. <tr>
  529. <td><code>mapped_matrix&lt;T,<br />
  530. &nbsp;column_major,<br />
  531. &nbsp;map_array&lt;std::size_t, T&gt; &gt;<br />
  532. &nbsp;&nbsp;m (size1, size2, non_zeros)</code></td>
  533. <td>a sparse matrix, orientation is column major,
  534. storage is provided by a map array.</td>
  535. </tr>
  536. <tr>
  537. <td><code>compressed_matrix&lt;T,<br />
  538. &nbsp;row_major&gt;<br />
  539. &nbsp;&nbsp;m (size1, size2, non_zeros)</code></td>
  540. <td>a compressed matrix, orientation is row major.<br />
  541. The storage layout usually is BLAS compliant.</td>
  542. </tr>
  543. <tr>
  544. <td><code>compressed_matrix&lt;T,<br />
  545. &nbsp;column_major&gt;<br />
  546. &nbsp;&nbsp;m (size1, size2, non_zeros)</code></td>
  547. <td>a compressed matrix, orientation is column
  548. major.<br />
  549. The storage layout usually is BLAS compliant.</td>
  550. </tr>
  551. <tr>
  552. <td><code>coordinate_matrix&lt;T,<br />
  553. &nbsp;row_major&gt;<br />
  554. &nbsp;&nbsp;m (size1, size2, non_zeros)</code></td>
  555. <td>a coordinate matrix, orientation is row major.<br />
  556. The storage layout usually is BLAS compliant.</td>
  557. </tr>
  558. <tr>
  559. <td><code>coordinate_matrix&lt;T,<br />
  560. &nbsp;column_major&gt;<br />
  561. &nbsp;&nbsp;m (size1, size2, non_zeros)</code></td>
  562. <td>a coordinate matrix, orientation is column
  563. major.<br />
  564. The storage layout usually is BLAS compliant.</td>
  565. </tr>
  566. </tbody>
  567. </table>
  568. <hr />
  569. <p>Copyright (&copy;) 2000-2004 Joerg Walter, Mathias Koch, Gunter
  570. Winkler, Michael Stevens<br />
  571. Use, modification and distribution are subject to the
  572. Boost Software License, Version 1.0.
  573. (See accompanying file LICENSE_1_0.txt
  574. or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
  575. http://www.boost.org/LICENSE_1_0.txt
  576. </a>).
  577. </p>
  578. <script type="text/javascript">
  579. (function($) {
  580. $('#toc').toc();
  581. })(jQuery);
  582. </script>
  583. </body>
  584. </html>