Clustal Omega  1.0.3
src/clustal/symmatrix.h
Go to the documentation of this file.
00001 /*********************************************************************
00002  * Clustal Omega - Multiple sequence alignment
00003  *
00004  * Copyright (C) 2010 University College Dublin
00005  *
00006  * Clustal-Omega is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU General Public License as
00008  * published by the Free Software Foundation; either version 2 of the
00009  * License, or (at your option) any later version.
00010  *
00011  * This file is part of Clustal-Omega.
00012  *
00013  ********************************************************************/
00014 
00015 /*
00016  *  RCS $Id: symmatrix.h 216 2011-03-19 10:11:53Z andreas $
00017  */
00018 
00036 #ifndef CLUSTALO_SYMMATRIX_H
00037 #define CLUSTALO_SYMMATRIX_H
00038 
00039 
00043 typedef struct {
00044     int nrows; 
00045     int ncols; 
00054     double **data; 
00055 } symmatrix_t;
00056 
00057 
00058 
00059 extern int
00060 NewSymMatrix(symmatrix_t **symmat, const int nrows, const int ncols);
00061 
00062 extern void
00063 SymMatrixSetValue(symmatrix_t *symmat, const int i, const int j, const double value);
00064 
00065 extern double
00066 SymMatrixGetValue(symmatrix_t *symmat, const int i, const int j);
00067 
00068 extern void
00069 SymMatrixGetValueP(double **value, symmatrix_t *symmat, const int i, const int j);
00070 
00071 extern void
00072 FreeSymMatrix(symmatrix_t **symmat);
00073 
00074 extern void
00075 SymMatrixPrint(symmatrix_t *symmat, char **labels,  const char *path);
00076 
00077 extern int
00078 SymMatrixRead(char *pcFileIn, symmatrix_t **prSymMat_p);
00079 
00080 #endif