1*bf2c3715SXin Li // This file is part of Eigen, a lightweight C++ template library 2*bf2c3715SXin Li // for linear algebra. 3*bf2c3715SXin Li // 4*bf2c3715SXin Li // Copyright (C) 2012 Désiré Nuentsa-Wakam <[email protected]> 5*bf2c3715SXin Li // 6*bf2c3715SXin Li // This Source Code Form is subject to the terms of the Mozilla 7*bf2c3715SXin Li // Public License v. 2.0. If a copy of the MPL was not distributed 8*bf2c3715SXin Li // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9*bf2c3715SXin Li 10*bf2c3715SXin Li #ifndef SPBENCHSTYLE_H 11*bf2c3715SXin Li #define SPBENCHSTYLE_H 12*bf2c3715SXin Li printBenchStyle(std::ofstream & out)13*bf2c3715SXin Livoid printBenchStyle(std::ofstream& out) 14*bf2c3715SXin Li { 15*bf2c3715SXin Li out << "<xsl:stylesheet id='stylesheet' version='1.0' \ 16*bf2c3715SXin Li xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >\n \ 17*bf2c3715SXin Li <xsl:template match='xsl:stylesheet' />\n \ 18*bf2c3715SXin Li <xsl:template match='/'> <!-- Root of the document -->\n \ 19*bf2c3715SXin Li <html>\n \ 20*bf2c3715SXin Li <head> \n \ 21*bf2c3715SXin Li <style type='text/css'> \n \ 22*bf2c3715SXin Li td { white-space: nowrap;}\n \ 23*bf2c3715SXin Li </style>\n \ 24*bf2c3715SXin Li </head>\n \ 25*bf2c3715SXin Li <body>"; 26*bf2c3715SXin Li out<<"<table border='1' width='100%' height='100%'>\n \ 27*bf2c3715SXin Li <TR> <!-- Write the table header -->\n \ 28*bf2c3715SXin Li <TH>Matrix</TH> <TH>N</TH> <TH> NNZ</TH> <TH> Sym</TH> <TH> SPD</TH> <TH> </TH>\n \ 29*bf2c3715SXin Li <xsl:for-each select='BENCH/AVAILSOLVER/SOLVER'>\n \ 30*bf2c3715SXin Li <xsl:sort select='@ID' data-type='number'/>\n \ 31*bf2c3715SXin Li <TH>\n \ 32*bf2c3715SXin Li <xsl:value-of select='TYPE' />\n \ 33*bf2c3715SXin Li <xsl:text></xsl:text>\n \ 34*bf2c3715SXin Li <xsl:value-of select='PACKAGE' />\n \ 35*bf2c3715SXin Li <xsl:text></xsl:text>\n \ 36*bf2c3715SXin Li </TH>\n \ 37*bf2c3715SXin Li </xsl:for-each>\n \ 38*bf2c3715SXin Li </TR>"; 39*bf2c3715SXin Li 40*bf2c3715SXin Li out<<" <xsl:for-each select='BENCH/LINEARSYSTEM'>\n \ 41*bf2c3715SXin Li <TR> <!-- print statistics for one linear system-->\n \ 42*bf2c3715SXin Li <TH rowspan='4'> <xsl:value-of select='MATRIX/NAME' /> </TH>\n \ 43*bf2c3715SXin Li <TD rowspan='4'> <xsl:value-of select='MATRIX/SIZE' /> </TD>\n \ 44*bf2c3715SXin Li <TD rowspan='4'> <xsl:value-of select='MATRIX/ENTRIES' /> </TD>\n \ 45*bf2c3715SXin Li <TD rowspan='4'> <xsl:value-of select='MATRIX/SYMMETRY' /> </TD>\n \ 46*bf2c3715SXin Li <TD rowspan='4'> <xsl:value-of select='MATRIX/POSDEF' /> </TD>\n \ 47*bf2c3715SXin Li <TH> Compute Time </TH>\n \ 48*bf2c3715SXin Li <xsl:for-each select='SOLVER_STAT'>\n \ 49*bf2c3715SXin Li <xsl:sort select='@ID' data-type='number'/>\n \ 50*bf2c3715SXin Li <TD> <xsl:value-of select='TIME/COMPUTE' /> </TD>\n \ 51*bf2c3715SXin Li </xsl:for-each>\n \ 52*bf2c3715SXin Li </TR>"; 53*bf2c3715SXin Li out<<" <TR>\n \ 54*bf2c3715SXin Li <TH> Solve Time </TH>\n \ 55*bf2c3715SXin Li <xsl:for-each select='SOLVER_STAT'>\n \ 56*bf2c3715SXin Li <xsl:sort select='@ID' data-type='number'/>\n \ 57*bf2c3715SXin Li <TD> <xsl:value-of select='TIME/SOLVE' /> </TD>\n \ 58*bf2c3715SXin Li </xsl:for-each>\n \ 59*bf2c3715SXin Li </TR>\n \ 60*bf2c3715SXin Li <TR>\n \ 61*bf2c3715SXin Li <TH> Total Time </TH>\n \ 62*bf2c3715SXin Li <xsl:for-each select='SOLVER_STAT'>\n \ 63*bf2c3715SXin Li <xsl:sort select='@ID' data-type='number'/>\n \ 64*bf2c3715SXin Li <xsl:choose>\n \ 65*bf2c3715SXin Li <xsl:when test='@ID=../BEST_SOLVER/@ID'>\n \ 66*bf2c3715SXin Li <TD style='background-color:red'> <xsl:value-of select='TIME/TOTAL' /> </TD>\n \ 67*bf2c3715SXin Li </xsl:when>\n \ 68*bf2c3715SXin Li <xsl:otherwise>\n \ 69*bf2c3715SXin Li <TD> <xsl:value-of select='TIME/TOTAL' /></TD>\n \ 70*bf2c3715SXin Li </xsl:otherwise>\n \ 71*bf2c3715SXin Li </xsl:choose>\n \ 72*bf2c3715SXin Li </xsl:for-each>\n \ 73*bf2c3715SXin Li </TR>"; 74*bf2c3715SXin Li out<<" <TR>\n \ 75*bf2c3715SXin Li <TH> Error </TH>\n \ 76*bf2c3715SXin Li <xsl:for-each select='SOLVER_STAT'>\n \ 77*bf2c3715SXin Li <xsl:sort select='@ID' data-type='number'/>\n \ 78*bf2c3715SXin Li <TD> <xsl:value-of select='ERROR' />\n \ 79*bf2c3715SXin Li <xsl:if test='ITER'>\n \ 80*bf2c3715SXin Li <xsl:text>(</xsl:text>\n \ 81*bf2c3715SXin Li <xsl:value-of select='ITER' />\n \ 82*bf2c3715SXin Li <xsl:text>)</xsl:text>\n \ 83*bf2c3715SXin Li </xsl:if> </TD>\n \ 84*bf2c3715SXin Li </xsl:for-each>\n \ 85*bf2c3715SXin Li </TR>\n \ 86*bf2c3715SXin Li </xsl:for-each>\n \ 87*bf2c3715SXin Li </table>\n \ 88*bf2c3715SXin Li </body>\n \ 89*bf2c3715SXin Li </html>\n \ 90*bf2c3715SXin Li </xsl:template>\n \ 91*bf2c3715SXin Li </xsl:stylesheet>\n\n"; 92*bf2c3715SXin Li 93*bf2c3715SXin Li } 94*bf2c3715SXin Li 95*bf2c3715SXin Li #endif 96