HMSBEAGLE  1.0.0
KernelResource.h
1 /*
2  * KernelResource.h
3  * BEAGLE
4  *
5  * Copyright 2009 Phylogenetic Likelihood Working Group
6  *
7  * This file is part of BEAGLE.
8  *
9  * BEAGLE is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU Lesser General Public License as
11  * published by the Free Software Foundation, either version 3 of
12  * the License, or (at your option) any later version.
13  *
14  * BEAGLE is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with BEAGLE. If not, see
21  * <http://www.gnu.org/licenses/>.
22  *
23  * @author Marc Suchard
24  */
25 
26 #ifndef KERNELRESOURCE_H_
27 #define KERNELRESOURCE_H_
28 
30 public:
32 
34  int inPaddedStateCount,
35  char* inKernelString,
36  int inPatternBlockSize,
37  int inMatrixBlockSize,
38  int inBlockPeelingSize,
39  int inSlowReweighing,
40  int inMultiplyBlockSize,
41  int inCategoryCount,
42  int inPatternCount,
43  long inFlags
44  );
45 
46  KernelResource(const KernelResource& krIn,
47  char* inKernelCode);
48 
49  virtual ~KernelResource();
50 
51  int paddedStateCount;
52  int categoryCount;
53  int patternCount;
54  char* kernelCode;
55  int patternBlockSize;
56  int matrixBlockSize;
57  int blockPeelingSize;
58  int isPowerOfTwo;
59  int smallestPowerOfTwo;
60  int slowReweighing;
61  int multiplyBlockSize;
62  long flags;
63 
64  KernelResource* copy();
65 };
66 
67 #endif /* KERNELRESOURCE_H_ */