1 // $Id: types.h,v 1.23 2010/03/05 21:11:25 bobgian Exp $
2 
3 /*
4   Copyright 2002 Peter Beerli, Mary Kuhner, Jon Yamato and Joseph Felsenstein
5 
6   This software is distributed free of charge for non-commercial use
7   and is copyrighted.  Of course, we do not guarantee that the software
8   works, and are not responsible for any damage you may cause or have.
9 */
10 
11 #ifndef TYPES_H
12 #define TYPES_H
13 
14 #include "vectorx.h"
15 #include <list>
16 #include <string>
17 #include <map>
18 #include <memory>
19 #include "shared_ptr.hpp"
20 
21 class Branch;
22 class DataType;
23 class DataModel;
24 class Cell;
25 class triplet;
26 class DLCalculator;
27 
28 typedef boost::shared_ptr<Cell> Cell_ptr;
29 typedef std::pair<long,long>   wakestats;
30 
31 typedef std::pair<std::string,long> TagLine;
32 
33 typedef std::map<std::string,DoubleVec2d> percentmap;     // DoubleVec2d dim:
34 // pop X reg
35 typedef std::map<std::string,DoubleVec1d> overpercentmap; // DoubleVec1d dim:
36 // dim: by pop
37 
38 typedef std::map<std::string, std::pair<long, long> > ratemap; // acceptance rate per arranger
39 
40 typedef boost::shared_ptr<Branch>  Branch_ptr;
41 typedef boost::weak_ptr<Branch>    weakBranch_ptr;
42 typedef std::list<Branch_ptr>      Branchlist;
43 typedef Branchlist::iterator       Branchiter;
44 typedef Branchlist::const_iterator Branchconstiter;
45 
46 typedef double*** cellarray;
47 typedef std::multimap<triplet, cellarray> FreeStore;
48 
49 typedef boost::shared_ptr<DataType> DataType_ptr;
50 typedef boost::shared_ptr<DataModel> DataModel_ptr;
51 
52 typedef std::pair<double, double> centilepair;
53 
54 typedef boost::shared_ptr<DLCalculator> DLCalc_ptr;
55 
56 typedef std::map<force_type, long>  FPartMap;
57 typedef std::map<force_type, long>::iterator  FPartMapiter;
58 
59 typedef short xpart_t;  // type representing a number of partitions or
60                         // cross-partitions.  Change this if you expect to
61                         // have too many population x disease state x whatever
62                         // combos to fit in the current size.
63 typedef std::vector<xpart_t> XPartVec1d;
64 typedef std::vector<std::vector<xpart_t> > XPartVec2d;
65 
66 #endif // TYPES_H
67 
68 //____________________________________________________________________________________
69