home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / EDUCATIN / PR11.LBR / PR11_C.LQR / PR11_C.LBR / HILGEN.C < prev    next >
Text File  |  2000-06-30  |  2KB  |  58 lines

  1. /* Copyright (C) 1986 Adam Fritz, 133 Main St., Afton, N.Y. 13730 */
  2.  
  3. MATGEN ( A, lda, n )
  4.    float A[][ldx] ;
  5.    int lda, n ;
  6.  
  7.      /* Program:                                            */
  8.      /*                                                     */
  9.      /*    MATGEN                                           */
  10.      /*                                                     */
  11.      /* Version:                       Date:                */
  12.      /*                                                     */
  13.      /*    C                              04/25/86          */
  14.      /*                                                     */
  15.      /* Description:                                        */
  16.      /*                                                     */
  17.      /*    Generate a test matrix using Hilbert co-         */
  18.      /*    efficients.  The matrix is symmetric and         */
  19.      /*    poorly conditioned.                              */
  20.      /*                                                     */
  21.      /* Author:                                             */
  22.      /*                                                     */
  23.      /*    Adam Fritz                                       */
  24.      /*    133 Main Street                                  */
  25.      /*    Afton, New York 13730                            */
  26.  
  27. {
  28.    int i, j, ip1 ;
  29.                                 /* Validate Leading Dimension */
  30.    if ( lda > 0 )
  31.    {
  32.                                 /* Validate Order */
  33.       if ((n > 1) && (n <= lda))
  34.       {
  35.                                 /* Form Matrix */
  36.          for ( i=0; i<n; i++ )
  37.          {
  38.             A[i][i] = 1.0/((float) 2*i+1) ;
  39.             ip1 = i + 1 ;
  40.             for ( j=ip1; j<n; j++ )
  41.                A[i][j] = A[j][i] = 1.0/((float) i+j+1) ;
  42.          }
  43.       }
  44.       else
  45.       {
  46.          printf("Error: Invalid MATRIX Order, %d\n", n) ;
  47.          bios(0) ;
  48.       }
  49.    }
  50.    else
  51.    {
  52.       printf("Error: Invalid LEADING DIMENSION, %d\n", lda) ;
  53.       bios(0) ;
  54.    }
  55. }
  56.  
  57. /* Copyright (C) 1986 Adam Fritz, 133 Main St., Afton, N.Y. 13730 */
  58.