From 7971518a3858835ba7f80d82f8cf3c74ab654d85 Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Sun, 24 Mar 2013 21:34:24 +0000
Subject: [PATCH] doc: Use latex for vectors

[[Imported from SVN: r8352]]
---
 doc/doxygen/Doxylocal                     |  2 +
 dune/solvers/common/genericvectortools.hh | 72 +++++++++++++----------
 2 files changed, 44 insertions(+), 30 deletions(-)

diff --git a/doc/doxygen/Doxylocal b/doc/doxygen/Doxylocal
index f1d67f68..be34fb5f 100644
--- a/doc/doxygen/Doxylocal
+++ b/doc/doxygen/Doxylocal
@@ -4,3 +4,5 @@ EXAMPLE_PATH           +=
 EXAMPLE_PATTERNS       +=
 IMAGE_PATH             +=
 PREDEFINED             += DOXYGEN 
+
+EXTRA_PACKAGES         = amsmath
diff --git a/dune/solvers/common/genericvectortools.hh b/dune/solvers/common/genericvectortools.hh
index 8c79fc66..049ccedd 100644
--- a/dune/solvers/common/genericvectortools.hh
+++ b/dune/solvers/common/genericvectortools.hh
@@ -138,36 +138,48 @@ struct GenericVector
     }
 
     /** \brief weave two vector blocks into each other e.g. [[u1...un][w1...wn]] --> [[u1 w1]...[un wn]]
-
-    interlace: \f$\left((R^k)^m\right)^n\longrightarrow(R^k\cdot n)^m\f$, i.e. for example
-      / / /a11\ \ \               / /a11\ \
-     | |  \a12/  | |             | | a12 | |
-     | |  /a21\  | |             | | b11 | |
-     | |  \a22/  | |             | | b12 | |
-     | |  /a31\  | |             | | c11 | |
-     |  \ \a32/ /  |             | | c12 | |
-     |             |             | | d11 | |
-     |  / /b11\ \  |             |  \d12/  |
-     | |  \b12/  | |             |         |
-     | |  /b21\  | |             |  /a21\  |
-     | |  \b22/  | |             | | a22 | |
-     | |  /b31\  | |             | | b21 | |
-     |  \ \b32/ /  |  interlace  | | b22 | |
-     |             | ----------> | | c11 | |
-     |  / /c11\ \  |             | | c22 | |
-     | |  \c12/  | |             | | d21 | |
-     | |  /c21\  | |             |  \d22/  |
-     | |  \c22/  | |             |         |
-     | |  /c31\  | |             |  /a31\  |
-     |  \ \c32/ /  |             | | a32 | |
-     |             |             | | b31 | |
-     |  / /d11\ \  |             | | b32 | |
-     | |  \d12/  | |             | | c31 | |
-     | |  /d21\  | |             | | c32 | |
-     | |  \d22/  | |             | | d31 | |
-     | |  /d31\  | |             |  \d32/  |
-      \ \ \d32/ / /               \       /
-    */
+     *
+     * interlace: \f$\left((R^k)^m\right)^n\longrightarrow(R^k\cdot n)^m\f$, i.e. for example
+     *
+     * \f[
+     *   \begin{pmatrix}
+     *    \begin{pmatrix}
+     *     \begin{pmatrix} a_{11}\\ a_{12} \end{pmatrix}\\
+     *     \begin{pmatrix} a_{21}\\ a_{22} \end{pmatrix}\\
+     *     \begin{pmatrix} a_{31}\\ a_{32} \end{pmatrix}
+     *    \end{pmatrix}\\
+     *    \begin{pmatrix}
+     *     \begin{pmatrix} b_{11}\\ b_{12} \end{pmatrix}\\
+     *     \begin{pmatrix} b_{21}\\ b_{22} \end{pmatrix}\\
+     *     \begin{pmatrix} b_{31}\\ b_{32} \end{pmatrix}
+     *    \end{pmatrix}\\
+     *    \begin{pmatrix}
+     *     \begin{pmatrix} c_{11}\\ c_{12} \end{pmatrix}\\
+     *     \begin{pmatrix} c_{21}\\ c_{22} \end{pmatrix}\\
+     *     \begin{pmatrix} c_{31}\\ c_{32} \end{pmatrix}
+     *    \end{pmatrix}\\
+     *    \begin{pmatrix}
+     *     \begin{pmatrix} d_{11}\\ d_{12} \end{pmatrix}\\
+     *     \begin{pmatrix} d_{21}\\ d_{22} \end{pmatrix}\\
+     *     \begin{pmatrix} d_{31}\\ d_{32} \end{pmatrix}
+     *    \end{pmatrix}
+     *   \end{pmatrix}
+     *
+     *   \xrightarrow{interlace}
+     *
+     *   \begin{pmatrix}
+     *    \begin{pmatrix}
+     *     a_{11}\\ a_{12}\\ b_{11}\\ b_{12}\\ c_{11}\\ c_{12}\\ d_{11}\\ d_{12}
+     *    \end{pmatrix}\\
+     *    \begin{pmatrix}
+     *     a_{21}\\ a_{22}\\ b_{21}\\ b_{22}\\ c_{21}\\ c_{22}\\ d_{21}\\ d_{22}
+     *    \end{pmatrix}\\
+     *    \begin{pmatrix}
+     *     a_{31}\\ a_{32}\\ b_{31}\\ b_{32}\\ c_{31}\\ c_{32}\\ d_{31}\\ d_{32}
+     *    \end{pmatrix}
+     *   \end{pmatrix}
+     * \f]
+     */
     template <class LVectorBlock, class RVectorBlock>
     static void interlace(const Dune::BlockVector<Dune::BlockVector<LVectorBlock> >& lvec, Dune::BlockVector<RVectorBlock>& rvec)
     {
-- 
GitLab