home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / BarlaA / sw / OLD / Simo / SVM_mono / swap.c < prev    next >
C/C++ Source or Header  |  2002-06-25  |  564b  |  26 lines

  1. void 
  2. swap (a, i1, k1, ip, kp)
  3.      int i1, k1, ip, kp;
  4.      double **a;
  5. {
  6.    register int kk, ii;
  7.    register double piv;
  8.  
  9. /* aggiornamento della matrice a, dove ip e kp + 1 sono rispettivamente 
  10.    la riga e la colonna da scambiare */
  11.  
  12.    piv = 1.0 / a[ip][kp + 1];
  13.    for (ii = 1; ii <= i1; ii++)
  14.       if (ii != ip)
  15.     {
  16.        a[ii][kp + 1] *= piv;
  17.        for (kk = 1; kk <= k1 + 1; kk++)
  18.           if (kk - 1 != kp)
  19.          a[ii][kk] -= a[ip][kk] * a[ii][kp + 1];
  20.     }
  21.    for (kk = 1; kk <= k1 + 1; kk++)
  22.       if (kk - 1 != kp)
  23.      a[ip][kk] *= -piv;
  24.    a[ip][kp + 1] = piv;
  25. }
  26.