Ignore:
Timestamp:
Nov 22, 2011, 9:22:10 PM (14 years ago)
Author:
Julian Iseringhausen <isering@…>
Children:
facba0
Parents:
66f24d
Message:

Major vmg update.

git-svn-id: https://svn.version.fz-juelich.de/scafacos/trunk@1136 5161e1c8-67bf-11de-9fd5-51895aff932f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/unit_test/solver_test.cpp

    r66f24d rdfed1c  
    1717#endif
    1818#include "solver/givens.hpp"
    19 #include "solver/solver_dirichlet.hpp"
     19#include "solver/solver_regular.hpp"
    2020
    2121#include "solver_test.hpp"
     
    2929{
    3030#ifdef HAVE_LAPACK
    31   dgesv = new DGESV<SolverDirichlet>();
    32   dsysv = new DSYSV<SolverDirichlet>();
    33 
    34   dgesv->x = new double[5];
    35   dsysv->x = new double[10];
    36 
    37   dgesv->vec_size = dgesv->max_size = 5;
    38   dsysv->vec_size = dsysv->max_size = 10;
    39 
    40   dgesv->b = new double[5];
    41   dsysv->b = new double[10];
    42 
    43   dgesv->A = new double*[5];
    44   dsysv->A = new double*[10];
    45 
    46   for (int i=0; i<5; ++i) {
    47     dgesv->A[i] = new double[5];
    48   }
    49 
    50   for (int i=0; i<10; ++i)
    51     dsysv->A[i] = new double[10];
    52 #endif
    53 
    54   givens = new Givens<SolverDirichlet>();
    55   givens->vec_size = givens->max_size = 5;
    56   givens->x = new double[5];
    57   givens->b = new double[5];
    58   givens->A = new double*[5];
    59 
    60   for (int i=0; i<5; ++i) {
    61     givens->A[i] = new double[5];
    62   }
     31  dgesv = new DGESV<SolverRegular>();
     32  dsysv = new DSYSV<SolverRegular>();
     33
     34  dgesv->Realloc(5);
     35  dsysv->Realloc(10);
     36#endif
     37
     38  givens = new Givens<SolverRegular>();
     39  givens->Realloc(5);
    6340}
    6441
    6542void SolverTestSuite::tearDown()
    6643{
     44  MG::Destroy();
     45
    6746#ifdef HAVE_LAPACK
    6847  delete dgesv;
     
    7554{
    7655#ifdef HAVE_LAPACK
    77   dgesv->A[0][0] = 1.0;
    78   dgesv->A[0][1] = -4.0;
    79   dgesv->A[0][2] = 0.0;
    80   dgesv->A[0][3] = -5.0;
    81   dgesv->A[0][4] = 0.0;
    82 
    83   dgesv->A[1][0] = 0.0;
    84   dgesv->A[1][1] = 2.0;
    85   dgesv->A[1][2] = 2.0;
    86   dgesv->A[1][3] = 5.0;
    87   dgesv->A[1][4] = 4.0;
    88 
    89   dgesv->A[2][0] = 4.0;
    90   dgesv->A[2][1] = -16.0;
    91   dgesv->A[2][2] = 0.0;
    92   dgesv->A[2][3] = -25.0;
    93   dgesv->A[2][4] = 0.0;
    94 
    95   dgesv->A[3][0] = -1.0;
    96   dgesv->A[3][1] = -2.0;
    97   dgesv->A[3][2] = -4.0;
    98   dgesv->A[3][3] = -5.0;
    99   dgesv->A[3][4] = -8.0;
    100 
    101   dgesv->A[4][0] = 0.0;
    102   dgesv->A[4][1] = 0.0;
    103   dgesv->A[4][2] = 2.0;
    104   dgesv->A[4][3] = 0.0;
    105   dgesv->A[4][4] = 5.0;
    106 
    107   dgesv->b[0] = 12.5;
    108   dgesv->b[1] = 8.0;
    109   dgesv->b[2] = -10.0;
    110   dgesv->b[3] = 3.5;
    111   dgesv->b[4] = -16.0;
     56  dgesv->Mat(0, 0) = 1.0;
     57  dgesv->Mat(0, 1) = -4.0;
     58  dgesv->Mat(0, 2) = 0.0;
     59  dgesv->Mat(0, 3) = -5.0;
     60  dgesv->Mat(0, 4) = 0.0;
     61
     62  dgesv->Mat(1, 0) = 0.0;
     63  dgesv->Mat(1, 1) = 2.0;
     64  dgesv->Mat(1, 2) = 2.0;
     65  dgesv->Mat(1, 3) = 5.0;
     66  dgesv->Mat(1, 4) = 4.0;
     67
     68  dgesv->Mat(2, 0) = 4.0;
     69  dgesv->Mat(2, 1) = -16.0;
     70  dgesv->Mat(2, 2) = 0.0;
     71  dgesv->Mat(2, 3) = -25.0;
     72  dgesv->Mat(2, 4) = 0.0;
     73
     74  dgesv->Mat(3, 0) = -1.0;
     75  dgesv->Mat(3, 1) = -2.0;
     76  dgesv->Mat(3, 2) = -4.0;
     77  dgesv->Mat(3, 3) = -5.0;
     78  dgesv->Mat(3, 4) = -8.0;
     79
     80  dgesv->Mat(4, 0) = 0.0;
     81  dgesv->Mat(4, 1) = 0.0;
     82  dgesv->Mat(4, 2) = 2.0;
     83  dgesv->Mat(4, 3) = 0.0;
     84  dgesv->Mat(4, 4) = 5.0;
     85
     86  dgesv->Rhs(0) = 12.5;
     87  dgesv->Rhs(1) = 8.0;
     88  dgesv->Rhs(2) = -10.0;
     89  dgesv->Rhs(3) = 3.5;
     90  dgesv->Rhs(4) = -16.0;
    11291
    11392  dgesv->Compute();
    11493
    115   CPPUNIT_ASSERT_DOUBLES_EQUAL(  8.5, dgesv->x[0], 1.0e-12);
    116   CPPUNIT_ASSERT_DOUBLES_EQUAL(-16.0, dgesv->x[1], 1.0e-12);
    117   CPPUNIT_ASSERT_DOUBLES_EQUAL(-18.0, dgesv->x[2], 1.0e-12);
    118   CPPUNIT_ASSERT_DOUBLES_EQUAL( 12.0, dgesv->x[3], 1.0e-12);
    119   CPPUNIT_ASSERT_DOUBLES_EQUAL(  4.0, dgesv->x[4], 1.0e-12);
     94  CPPUNIT_ASSERT_DOUBLES_EQUAL(  8.5, dgesv->Sol(0), 1.0e-12);
     95  CPPUNIT_ASSERT_DOUBLES_EQUAL(-16.0, dgesv->Sol(1), 1.0e-12);
     96  CPPUNIT_ASSERT_DOUBLES_EQUAL(-18.0, dgesv->Sol(2), 1.0e-12);
     97  CPPUNIT_ASSERT_DOUBLES_EQUAL( 12.0, dgesv->Sol(3), 1.0e-12);
     98  CPPUNIT_ASSERT_DOUBLES_EQUAL(  4.0, dgesv->Sol(4), 1.0e-12);
    12099#endif
    121100}
     
    125104{
    126105#ifdef HAVE_LAPACK
    127   dsysv->A[0][0] = 4.0;
    128   dsysv->A[0][1] = -1.0;
    129   dsysv->A[0][2] = -1.0;
    130   dsysv->A[0][3] = -1.0;
    131   dsysv->A[0][4] = 0.0;
    132   dsysv->A[0][5] = 0.0;
    133   dsysv->A[0][6] = -1.0;
    134   dsysv->A[0][7] = 0.0;
    135   dsysv->A[0][8] = 0.0;
    136   dsysv->A[0][9] = 1.0;
    137 
    138   dsysv->A[1][0] = -1.0;
    139   dsysv->A[1][1] = 4.0;
    140   dsysv->A[1][2] = -1.0;
    141   dsysv->A[1][3] = 0.0;
    142   dsysv->A[1][4] = -1.0;
    143   dsysv->A[1][5] = 0.0;
    144   dsysv->A[1][6] = 0.0;
    145   dsysv->A[1][7] = -1.0;
    146   dsysv->A[1][8] = 0.0;
    147   dsysv->A[1][9] = 1.0;
    148 
    149   dsysv->A[2][0] = -1.0;
    150   dsysv->A[2][1] = -1.0;
    151   dsysv->A[2][2] = 4.0;
    152   dsysv->A[2][3] = 0.0;
    153   dsysv->A[2][4] = 0.0;
    154   dsysv->A[2][5] = -1.0;
    155   dsysv->A[2][6] = 0.0;
    156   dsysv->A[2][7] = 0.0;
    157   dsysv->A[2][8] = -1.0;
    158   dsysv->A[2][9] = 1.0;
    159 
    160   dsysv->A[3][0] = -1.0;
    161   dsysv->A[3][1] = 0.0;
    162   dsysv->A[3][2] = 0.0;
    163   dsysv->A[3][3] = 4.0;
    164   dsysv->A[3][4] = -1.0;
    165   dsysv->A[3][5] = -1.0;
    166   dsysv->A[3][6] = -1.0;
    167   dsysv->A[3][7] = 0.0;
    168   dsysv->A[3][8] = 0.0;
    169   dsysv->A[3][9] = 1.0;
    170 
    171   dsysv->A[4][0] = 0.0;
    172   dsysv->A[4][1] = -1.0;
    173   dsysv->A[4][2] = 0.0;
    174   dsysv->A[4][3] = -1.0;
    175   dsysv->A[4][4] = 4.0;
    176   dsysv->A[4][5] = -1.0;
    177   dsysv->A[4][6] = 0.0;
    178   dsysv->A[4][7] = -1.0;
    179   dsysv->A[4][8] = 0.0;
    180   dsysv->A[4][9] = 1.0;
    181 
    182   dsysv->A[5][0] = 0.0;
    183   dsysv->A[5][1] = 0.0;
    184   dsysv->A[5][2] = -1.0;
    185   dsysv->A[5][3] = -1.0;
    186   dsysv->A[5][4] = -1.0;
    187   dsysv->A[5][5] = 4.0;
    188   dsysv->A[5][6] = 0.0;
    189   dsysv->A[5][7] = 0.0;
    190   dsysv->A[5][8] = -1.0;
    191   dsysv->A[5][9] = 1.0;
    192 
    193   dsysv->A[6][0] = -1.0;
    194   dsysv->A[6][1] = 0.0;
    195   dsysv->A[6][2] = 0.0;
    196   dsysv->A[6][3] = -1.0;
    197   dsysv->A[6][4] = 0.0;
    198   dsysv->A[6][5] = 0.0;
    199   dsysv->A[6][6] = 4.0;
    200   dsysv->A[6][7] = -1.0;
    201   dsysv->A[6][8] = -1.0;
    202   dsysv->A[6][9] = 1.0;
    203 
    204   dsysv->A[7][0] = 0.0;
    205   dsysv->A[7][1] = -1.0;
    206   dsysv->A[7][2] = 0.0;
    207   dsysv->A[7][3] = 0.0;
    208   dsysv->A[7][4] = -1.0;
    209   dsysv->A[7][5] = 0.0;
    210   dsysv->A[7][6] = -1.0;
    211   dsysv->A[7][7] = 4.0;
    212   dsysv->A[7][8] = -1.0;
    213   dsysv->A[7][9] = 1.0;
    214 
    215   dsysv->A[8][0] = 0.0;
    216   dsysv->A[8][1] = 0.0;
    217   dsysv->A[8][2] = -1.0;
    218   dsysv->A[8][3] = 0.0;
    219   dsysv->A[8][4] = 0.0;
    220   dsysv->A[8][5] = -1.0;
    221   dsysv->A[8][6] = -1.0;
    222   dsysv->A[8][7] = -1.0;
    223   dsysv->A[8][8] = 4.0;
    224   dsysv->A[8][9] = 1.0;
    225 
    226   dsysv->A[9][0] = 1.0;
    227   dsysv->A[9][1] = 1.0;
    228   dsysv->A[9][2] = 1.0;
    229   dsysv->A[9][3] = 1.0;
    230   dsysv->A[9][4] = 1.0;
    231   dsysv->A[9][5] = 1.0;
    232   dsysv->A[9][6] = 1.0;
    233   dsysv->A[9][7] = 1.0;
    234   dsysv->A[9][8] = 1.0;
    235   dsysv->A[9][9] = 0.0;
    236 
    237 
    238   dsysv->b[0] = -0.125;
    239   dsysv->b[1] = -0.125;
    240   dsysv->b[2] = -0.125;
    241   dsysv->b[3] = -0.125;
    242   dsysv->b[4] = 1.0;
    243   dsysv->b[5] = -0.125;
    244   dsysv->b[6] = -0.125;
    245   dsysv->b[7] = -0.125;
    246   dsysv->b[8] = -0.125;
    247   dsysv->b[9] = 0.0;
     106  dsysv->Mat(0, 0) = 4.0;
     107  dsysv->Mat(0, 1) = -1.0;
     108  dsysv->Mat(0, 2) = -1.0;
     109  dsysv->Mat(0, 3) = -1.0;
     110  dsysv->Mat(0, 4) = 0.0;
     111  dsysv->Mat(0, 5) = 0.0;
     112  dsysv->Mat(0, 6) = -1.0;
     113  dsysv->Mat(0, 7) = 0.0;
     114  dsysv->Mat(0, 8) = 0.0;
     115  dsysv->Mat(0, 9) = 1.0;
     116
     117  dsysv->Mat(1, 0) = -1.0;
     118  dsysv->Mat(1, 1) = 4.0;
     119  dsysv->Mat(1, 2) = -1.0;
     120  dsysv->Mat(1, 3) = 0.0;
     121  dsysv->Mat(1, 4) = -1.0;
     122  dsysv->Mat(1, 5) = 0.0;
     123  dsysv->Mat(1, 6) = 0.0;
     124  dsysv->Mat(1, 7) = -1.0;
     125  dsysv->Mat(1, 8) = 0.0;
     126  dsysv->Mat(1, 9) = 1.0;
     127
     128  dsysv->Mat(2, 0) = -1.0;
     129  dsysv->Mat(2, 1) = -1.0;
     130  dsysv->Mat(2, 2) = 4.0;
     131  dsysv->Mat(2, 3) = 0.0;
     132  dsysv->Mat(2, 4) = 0.0;
     133  dsysv->Mat(2, 5) = -1.0;
     134  dsysv->Mat(2, 6) = 0.0;
     135  dsysv->Mat(2, 7) = 0.0;
     136  dsysv->Mat(2, 8) = -1.0;
     137  dsysv->Mat(2, 9) = 1.0;
     138
     139  dsysv->Mat(3, 0) = -1.0;
     140  dsysv->Mat(3, 1) = 0.0;
     141  dsysv->Mat(3, 2) = 0.0;
     142  dsysv->Mat(3, 3) = 4.0;
     143  dsysv->Mat(3, 4) = -1.0;
     144  dsysv->Mat(3, 5) = -1.0;
     145  dsysv->Mat(3, 6) = -1.0;
     146  dsysv->Mat(3, 7) = 0.0;
     147  dsysv->Mat(3, 8) = 0.0;
     148  dsysv->Mat(3, 9) = 1.0;
     149
     150  dsysv->Mat(4, 0) = 0.0;
     151  dsysv->Mat(4, 1) = -1.0;
     152  dsysv->Mat(4, 2) = 0.0;
     153  dsysv->Mat(4, 3) = -1.0;
     154  dsysv->Mat(4, 4) = 4.0;
     155  dsysv->Mat(4, 5) = -1.0;
     156  dsysv->Mat(4, 6) = 0.0;
     157  dsysv->Mat(4, 7) = -1.0;
     158  dsysv->Mat(4, 8) = 0.0;
     159  dsysv->Mat(4, 9) = 1.0;
     160
     161  dsysv->Mat(5, 0) = 0.0;
     162  dsysv->Mat(5, 1) = 0.0;
     163  dsysv->Mat(5, 2) = -1.0;
     164  dsysv->Mat(5, 3) = -1.0;
     165  dsysv->Mat(5, 4) = -1.0;
     166  dsysv->Mat(5, 5) = 4.0;
     167  dsysv->Mat(5, 6) = 0.0;
     168  dsysv->Mat(5, 7) = 0.0;
     169  dsysv->Mat(5, 8) = -1.0;
     170  dsysv->Mat(5, 9) = 1.0;
     171
     172  dsysv->Mat(6, 0) = -1.0;
     173  dsysv->Mat(6, 1) = 0.0;
     174  dsysv->Mat(6, 2) = 0.0;
     175  dsysv->Mat(6, 3) = -1.0;
     176  dsysv->Mat(6, 4) = 0.0;
     177  dsysv->Mat(6, 5) = 0.0;
     178  dsysv->Mat(6, 6) = 4.0;
     179  dsysv->Mat(6, 7) = -1.0;
     180  dsysv->Mat(6, 8) = -1.0;
     181  dsysv->Mat(6, 9) = 1.0;
     182
     183  dsysv->Mat(7, 0) = 0.0;
     184  dsysv->Mat(7, 1) = -1.0;
     185  dsysv->Mat(7, 2) = 0.0;
     186  dsysv->Mat(7, 3) = 0.0;
     187  dsysv->Mat(7, 4) = -1.0;
     188  dsysv->Mat(7, 5) = 0.0;
     189  dsysv->Mat(7, 6) = -1.0;
     190  dsysv->Mat(7, 7) = 4.0;
     191  dsysv->Mat(7, 8) = -1.0;
     192  dsysv->Mat(7, 9) = 1.0;
     193
     194  dsysv->Mat(8, 0) = 0.0;
     195  dsysv->Mat(8, 1) = 0.0;
     196  dsysv->Mat(8, 2) = -1.0;
     197  dsysv->Mat(8, 3) = 0.0;
     198  dsysv->Mat(8, 4) = 0.0;
     199  dsysv->Mat(8, 5) = -1.0;
     200  dsysv->Mat(8, 6) = -1.0;
     201  dsysv->Mat(8, 7) = -1.0;
     202  dsysv->Mat(8, 8) = 4.0;
     203  dsysv->Mat(8, 9) = 1.0;
     204
     205  dsysv->Mat(9, 0) = 1.0;
     206  dsysv->Mat(9, 1) = 1.0;
     207  dsysv->Mat(9, 2) = 1.0;
     208  dsysv->Mat(9, 3) = 1.0;
     209  dsysv->Mat(9, 4) = 1.0;
     210  dsysv->Mat(9, 5) = 1.0;
     211  dsysv->Mat(9, 6) = 1.0;
     212  dsysv->Mat(9, 7) = 1.0;
     213  dsysv->Mat(9, 8) = 1.0;
     214  dsysv->Mat(9, 9) = 0.0;
     215
     216
     217  dsysv->Rhs(0) = -0.125;
     218  dsysv->Rhs(1) = -0.125;
     219  dsysv->Rhs(2) = -0.125;
     220  dsysv->Rhs(3) = -0.125;
     221  dsysv->Rhs(4) = 1.0;
     222  dsysv->Rhs(5) = -0.125;
     223  dsysv->Rhs(6) = -0.125;
     224  dsysv->Rhs(7) = -0.125;
     225  dsysv->Rhs(8) = -0.125;
     226  dsysv->Rhs(9) = 0.0;
    248227
    249228  dsysv->Compute();
    250229
    251   CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0625, dsysv->x[0], std::numeric_limits<double>::epsilon());
    252   CPPUNIT_ASSERT_DOUBLES_EQUAL(    0.0, dsysv->x[1], std::numeric_limits<double>::epsilon());
    253   CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0625, dsysv->x[2], std::numeric_limits<double>::epsilon());
    254   CPPUNIT_ASSERT_DOUBLES_EQUAL(    0.0, dsysv->x[3], std::numeric_limits<double>::epsilon());
    255   CPPUNIT_ASSERT_DOUBLES_EQUAL(   0.25, dsysv->x[4], std::numeric_limits<double>::epsilon());
    256   CPPUNIT_ASSERT_DOUBLES_EQUAL(    0.0, dsysv->x[5], std::numeric_limits<double>::epsilon());
    257   CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0625, dsysv->x[6], std::numeric_limits<double>::epsilon());
    258   CPPUNIT_ASSERT_DOUBLES_EQUAL(    0.0, dsysv->x[7], std::numeric_limits<double>::epsilon());
    259   CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0625, dsysv->x[8], std::numeric_limits<double>::epsilon());
     230  CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0625, dsysv->Sol(0), std::numeric_limits<double>::epsilon());
     231  CPPUNIT_ASSERT_DOUBLES_EQUAL(    0.0, dsysv->Sol(1), std::numeric_limits<double>::epsilon());
     232  CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0625, dsysv->Sol(2), std::numeric_limits<double>::epsilon());
     233  CPPUNIT_ASSERT_DOUBLES_EQUAL(    0.0, dsysv->Sol(3), std::numeric_limits<double>::epsilon());
     234  CPPUNIT_ASSERT_DOUBLES_EQUAL(   0.25, dsysv->Sol(4), std::numeric_limits<double>::epsilon());
     235  CPPUNIT_ASSERT_DOUBLES_EQUAL(    0.0, dsysv->Sol(5), std::numeric_limits<double>::epsilon());
     236  CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0625, dsysv->Sol(6), std::numeric_limits<double>::epsilon());
     237  CPPUNIT_ASSERT_DOUBLES_EQUAL(    0.0, dsysv->Sol(7), std::numeric_limits<double>::epsilon());
     238  CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0625, dsysv->Sol(8), std::numeric_limits<double>::epsilon());
    260239#endif
    261240}
     
    263242void SolverTestSuite::GivensTest()
    264243{
    265   givens->A[0][0] = 1.0;
    266   givens->A[0][1] = -4.0;
    267   givens->A[0][2] = 0.0;
    268   givens->A[0][3] = -5.0;
    269   givens->A[0][4] = 0.0;
    270 
    271   givens->A[1][0] = 0.0;
    272   givens->A[1][1] = 2.0;
    273   givens->A[1][2] = 2.0;
    274   givens->A[1][3] = 5.0;
    275   givens->A[1][4] = 4.0;
    276 
    277   givens->A[2][0] = 4.0;
    278   givens->A[2][1] = -16.0;
    279   givens->A[2][2] = 0.0;
    280   givens->A[2][3] = -25.0;
    281   givens->A[2][4] = 0.0;
    282 
    283   givens->A[3][0] = -1.0;
    284   givens->A[3][1] = -2.0;
    285   givens->A[3][2] = -4.0;
    286   givens->A[3][3] = -5.0;
    287   givens->A[3][4] = -8.0;
    288 
    289   givens->A[4][0] = 0.0;
    290   givens->A[4][1] = 0.0;
    291   givens->A[4][2] = 2.0;
    292   givens->A[4][3] = 0.0;
    293   givens->A[4][4] = 5.0;
    294 
    295   givens->b[0] = 12.5;
    296   givens->b[1] = 8.0;
    297   givens->b[2] = -10.0;
    298   givens->b[3] = 3.5;
    299   givens->b[4] = -16.0;
     244  givens->Mat(0, 0) = 1.0;
     245  givens->Mat(0, 1) = -4.0;
     246  givens->Mat(0, 2) = 0.0;
     247  givens->Mat(0, 3) = -5.0;
     248  givens->Mat(0, 4) = 0.0;
     249
     250  givens->Mat(1, 0) = 0.0;
     251  givens->Mat(1, 1) = 2.0;
     252  givens->Mat(1, 2) = 2.0;
     253  givens->Mat(1, 3) = 5.0;
     254  givens->Mat(1, 4) = 4.0;
     255
     256  givens->Mat(2, 0) = 4.0;
     257  givens->Mat(2, 1) = -16.0;
     258  givens->Mat(2, 2) = 0.0;
     259  givens->Mat(2, 3) = -25.0;
     260  givens->Mat(2, 4) = 0.0;
     261
     262  givens->Mat(3, 0) = -1.0;
     263  givens->Mat(3, 1) = -2.0;
     264  givens->Mat(3, 2) = -4.0;
     265  givens->Mat(3, 3) = -5.0;
     266  givens->Mat(3, 4) = -8.0;
     267
     268  givens->Mat(4, 0) = 0.0;
     269  givens->Mat(4, 1) = 0.0;
     270  givens->Mat(4, 2) = 2.0;
     271  givens->Mat(4, 3) = 0.0;
     272  givens->Mat(4, 4) = 5.0;
     273
     274  givens->Rhs(0) = 12.5;
     275  givens->Rhs(1) = 8.0;
     276  givens->Rhs(2) = -10.0;
     277  givens->Rhs(3) = 3.5;
     278  givens->Rhs(4) = -16.0;
    300279
    301280  givens->Compute();
    302281
    303   CPPUNIT_ASSERT_DOUBLES_EQUAL(  8.5, givens->x[0], 1.0e-12);
    304   CPPUNIT_ASSERT_DOUBLES_EQUAL(-16.0, givens->x[1], 1.0e-12);
    305   CPPUNIT_ASSERT_DOUBLES_EQUAL(-18.0, givens->x[2], 1.0e-12);
    306   CPPUNIT_ASSERT_DOUBLES_EQUAL( 12.0, givens->x[3], 1.0e-12);
    307   CPPUNIT_ASSERT_DOUBLES_EQUAL(  4.0, givens->x[4], 1.0e-12);
    308 }
     282  CPPUNIT_ASSERT_DOUBLES_EQUAL(  8.5, givens->Sol(0), 1.0e-12);
     283  CPPUNIT_ASSERT_DOUBLES_EQUAL(-16.0, givens->Sol(1), 1.0e-12);
     284  CPPUNIT_ASSERT_DOUBLES_EQUAL(-18.0, givens->Sol(2), 1.0e-12);
     285  CPPUNIT_ASSERT_DOUBLES_EQUAL( 12.0, givens->Sol(3), 1.0e-12);
     286  CPPUNIT_ASSERT_DOUBLES_EQUAL(  4.0, givens->Sol(4), 1.0e-12);
     287}
Note: See TracChangeset for help on using the changeset viewer.