Fixed a bug in the pdb-writing code.
[gromacs.git] / src / tools / cmat.h
blobb60e4046b0aacf928e0413e4c8c5999a80558e13
1 /*
2 * $Id$
3 *
4 * This source code is part of
5 *
6 * G R O M A C S
7 *
8 * GROningen MAchine for Chemical Simulations
9 *
10 * VERSION 3.1
11 * Copyright (c) 1991-2001, University of Groningen, The Netherlands
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * If you want to redistribute modifications, please consider that
18 * scientific software is very special. Version control is crucial -
19 * bugs must be traceable. We will be happy to consider code for
20 * inclusion in the official distribution, but derived work must not
21 * be called official GROMACS. Details are found in the README & COPYING
22 * files - if they are missing, get the official version at www.gromacs.org.
24 * To help us fund GROMACS development, we humbly ask that you cite
25 * the papers on the package - you can find them in the top README file.
27 * For more info, check our website at http://www.gromacs.org
29 * And Hey:
30 * Gromacs Runs One Microsecond At Cannonball Speeds
33 #ifndef _cmat_h
34 #define _cmat_h
36 static char *SRCID_cmat_h = "$Id$";
37 #include "typedefs.h"
39 typedef struct {
40 int i,j;
41 real dist;
42 } t_dist;
44 typedef struct {
45 int conf,clust;
46 } t_clustid;
48 typedef struct {
49 int n1,nn;
50 int *m_ind;
51 bool b1D;
52 real emat,minrms,maxrms,sumrms;
53 real *erow;
54 real **mat;
55 } t_mat;
57 /* The matrix is indexed using the matrix index */
58 #define EROW(m,i) m->erow[i]
60 extern t_mat *init_mat(int n1,bool b1D);
62 extern void enlarge_mat(t_mat *m,int deltan);
64 extern void reset_index(t_mat *m);
66 extern void swap_rows(t_mat *m,int isw,int jsw);
68 extern void set_mat_entry(t_mat *m,int i,int j,real val);
70 extern void done_mat(t_mat **m);
72 extern real row_energy(int n1,int row,real *mat);
74 extern real mat_energy(t_mat *mat);
76 extern void swap_mat(t_mat *m);
78 extern void low_rmsd_dist(char *fn,real maxrms,int nn,real **mat);
80 extern void rmsd_distribution(char *fn,t_mat *m);
82 extern t_clustid *new_clustid(int n1);
84 #endif