4mat_irrep_print.cc

Go to the documentation of this file.
00001 
00005 #include <stdio.h>
00006 #include <stdlib.h>
00007 #include "dpd.h"
00008 
00009 extern "C" {
00010         
00011 int dpd_4mat_irrep_print(double **matrix, dpdparams4 *Params,
00012                          int block, int my_irrep, FILE *outfile)
00013 {
00014   div_t fraction;
00015   int i,j,r_irrep;
00016   int rows, cols, cols_per_page, num_pages, last_page, page, first_col;
00017 
00018   cols_per_page = 5;
00019 
00020   r_irrep = block^my_irrep;
00021 
00022   rows = Params->rowtot[block];
00023   cols = Params->coltot[r_irrep];
00024 
00025   /* Determine the number of cols_per_page groups */
00026   fraction = div(cols,cols_per_page);
00027   num_pages = fraction.quot;  /* Number of complete column groups */
00028   last_page = fraction.rem;  /* Number of columns in last group */
00029 
00030   /* Loop over the complete column groups */
00031   for(page=0; page < num_pages; page++) {
00032       first_col = page*cols_per_page;
00033 
00034       fprintf(outfile,"\n           ");
00035       for(i=first_col; i < first_col+cols_per_page; i++) 
00036           fprintf(outfile,"              %5d",i);
00037 
00038       fprintf(outfile,"\n               ");
00039       for(i=first_col; i < first_col+cols_per_page; i++) 
00040           fprintf(outfile,"          (%3d,%3d)",
00041                   Params->colorb[r_irrep][i][0], Params->colorb[r_irrep][i][1]);
00042 
00043       fprintf (outfile,"\n");
00044       for(i=0; i < rows; i++) {
00045           fprintf(outfile,"\n%5d  (%3d,%3d)",i,
00046                   Params->roworb[block][i][0], Params->roworb[block][i][1]);
00047 
00048           for(j=first_col; j < first_col+cols_per_page; j++)        
00049               fprintf (outfile,"%19.15f",matrix[i][j]);
00050         }
00051 
00052       fprintf (outfile,"\n");
00053     }
00054 
00055   /* Now print the remaining columns */
00056   if(last_page) {
00057       first_col = page*cols_per_page;
00058 
00059       fprintf(outfile,"\n           ");
00060       for(i=first_col; i < first_col+last_page; i++) 
00061           fprintf(outfile,"              %5d",i);
00062       
00063       fprintf(outfile,"\n               ");
00064       for(i=first_col; i < first_col+last_page; i++) 
00065           fprintf(outfile,"          (%3d,%3d)",
00066                   Params->colorb[r_irrep][i][0], Params->colorb[r_irrep][i][1]);
00067 
00068       fprintf (outfile,"\n");
00069       for(i=0; i < rows; i++) {
00070           fprintf(outfile,"\n%5d  (%3d,%3d)",i,
00071                   Params->roworb[block][i][0], Params->roworb[block][i][1]);
00072 
00073           for(j=first_col; j < first_col+last_page; j++)
00074               fprintf (outfile,"%19.15f",matrix[i][j]);
00075         }
00076 
00077       fprintf (outfile,"\n");
00078     }
00079 
00080   return 0;
00081 
00082 }
00083 
00084 } /* extern "C" */

Generated on Wed Feb 13 16:35:39 2008 for PSI by  doxygen 1.5.4