HMSBEAGLE
1.0.0
|
00001 /* 00002 * KernelResource.h 00003 * BEAGLE 00004 * 00005 * Copyright 2009 Phylogenetic Likelihood Working Group 00006 * 00007 * This file is part of BEAGLE. 00008 * 00009 * BEAGLE is free software: you can redistribute it and/or modify 00010 * it under the terms of the GNU Lesser General Public License as 00011 * published by the Free Software Foundation, either version 3 of 00012 * the License, or (at your option) any later version. 00013 * 00014 * BEAGLE is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU Lesser General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU Lesser General Public 00020 * License along with BEAGLE. If not, see 00021 * <http://www.gnu.org/licenses/>. 00022 * 00023 * @author Marc Suchard 00024 */ 00025 00026 #ifndef KERNELRESOURCE_H_ 00027 #define KERNELRESOURCE_H_ 00028 00029 class KernelResource { 00030 public: 00031 KernelResource(); 00032 00033 KernelResource( 00034 int inPaddedStateCount, 00035 char* inKernelString, 00036 int inPatternBlockSize, 00037 int inMatrixBlockSize, 00038 int inBlockPeelingSize, 00039 int inSlowReweighing, 00040 int inMultiplyBlockSize, 00041 int inCategoryCount, 00042 int inPatternCount, 00043 long inFlags 00044 ); 00045 00046 KernelResource(const KernelResource& krIn, 00047 char* inKernelCode); 00048 00049 virtual ~KernelResource(); 00050 00051 int paddedStateCount; 00052 int categoryCount; 00053 int patternCount; 00054 char* kernelCode; 00055 int patternBlockSize; 00056 int matrixBlockSize; 00057 int blockPeelingSize; 00058 int isPowerOfTwo; 00059 int smallestPowerOfTwo; 00060 int slowReweighing; 00061 int multiplyBlockSize; 00062 long flags; 00063 00064 KernelResource* copy(); 00065 }; 00066 00067 #endif /* KERNELRESOURCE_H_ */