~ubuntu-branches/ubuntu/karmic/psicode/karmic

« back to all changes in this revision

Viewing changes to src/lib/libdpd/buf4_symm2.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck, Michael Banck, Daniel Leidert
  • Date: 2009-02-23 00:12:02 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090223001202-rutldoy3dimfpesc
Tags: 3.4.0-1
* New upstream release.

[ Michael Banck ]
* debian/patches/01_DESTDIR.dpatch: Refreshed.
* debian/patches/02_FHS.dpatch: Removed, applied upstream.
* debian/patches/03_debian_docdir: Likewise.
* debian/patches/04_man.dpatch: Likewise.
* debian/patches/06_466828_fix_gcc_43_ftbfs.dpatch: Likewise.
* debian/patches/07_464867_move_executables: Fixed and refreshed.
* debian/patches/00list: Adjusted.
* debian/control: Improved description.
* debian/patches-held: Removed.
* debian/rules (install/psi3): Do not ship the ruby bindings for now.

[ Daniel Leidert ]
* debian/rules: Fix txtdir via DEB_MAKE_INSTALL_TARGET.
* debian/patches/01_DESTDIR.dpatch: Refreshed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#include <stdio.h>
2
 
#include "dpd.h"
3
 
 
4
 
/* dpd_buf4_symm2(): Symmetrizes two dpdbuf4's by
5
 
** taking, I'(pq,rs) = 1/2 [I1(pq,rs) + I2(pq,rs)] (note the
6
 
** indices!).  Users should keep in mind that the first! buffer will
7
 
** be overwritten when this function is called.  Also note that this
8
 
** routine will NOT check to see if the row and column dimensions of
9
 
** the input buffers are identical, which is necessary for this to
10
 
** work.
11
 
**
12
 
** Arguments:
13
 
**   dpdbuf4 *Buf1: A pointer to the left dpdbuf4 to be symmetrized.
14
 
**   dpdbuf4 *Buf2: A pointer to the right dpdbuf4 to be symmetrized.  */
15
 
 
16
 
int dpd_buf4_symm2(dpdbuf4 *Buf1, dpdbuf4 *Buf2)
17
 
{
18
 
  int h, row, col, all_buf_irrep;
19
 
  double value;
20
 
 
21
 
  all_buf_irrep = Buf1->file.my_irrep;
22
 
 
23
 
  for(h=0; h < Buf1->params->nirreps; h++) {
24
 
      dpd_buf4_mat_irrep_init(Buf1, h);
25
 
      dpd_buf4_mat_irrep_rd(Buf1, h);
26
 
 
27
 
      dpd_buf4_mat_irrep_init(Buf2, h);
28
 
      dpd_buf4_mat_irrep_rd(Buf2, h);
29
 
 
30
 
      for(row=0; row < Buf1->params->rowtot[h]; row++)
31
 
          for(col=0; col < Buf1->params->coltot[h^all_buf_irrep]; col++) {
32
 
              value = 0.5*(Buf1->matrix[h][row][col]+Buf2->matrix[h][col][row]);
33
 
              Buf1->matrix[h][row][col] = value;
34
 
            }
35
 
 
36
 
      dpd_buf4_mat_irrep_wrt(Buf1, h);
37
 
      dpd_buf4_mat_irrep_close(Buf1, h);
38
 
      dpd_buf4_mat_irrep_close(Buf2, h);
39
 
    }
40
 
 
41
 
  return 0;
42
 
}
43