28 #ifndef __BeagleCPU4StateImpl__
29 #define __BeagleCPU4StateImpl__
32 #include "libhmsbeagle/config.h"
35 #include "libhmsbeagle/CPU/BeagleCPUImpl.h"
70 virtual const char* getName();
73 virtual void calcStatesStates(REALTYPE* destP,
75 const REALTYPE* matrices1,
77 const REALTYPE* matrices2);
79 virtual void calcStatesPartials(REALTYPE* destP,
81 const REALTYPE* matrices1,
82 const REALTYPE* partials2,
83 const REALTYPE* matrices2);
85 virtual void calcPartialsPartials(REALTYPE* destP,
86 const REALTYPE* partials1,
87 const REALTYPE* matrices1,
88 const REALTYPE* partials2,
89 const REALTYPE* matrices2);
91 virtual int calcRootLogLikelihoods(
const int bufferIndex,
92 const int categoryWeightsIndex,
93 const int stateFrequenciesIndex,
94 const int scalingFactorsIndex,
95 double* outSumLogLikelihood);
97 virtual int calcRootLogLikelihoodsMulti(
const int* bufferIndices,
98 const int* categoryWeightsIndices,
99 const int* stateFrequenciesIndices,
100 const int* scaleBufferIndices,
102 double* outSumLogLikelihood);
104 virtual int calcEdgeLogLikelihoods(
const int parentBufferIndex,
105 const int childBufferIndex,
106 const int probabilityIndex,
107 const int categoryWeightsIndex,
108 const int stateFrequenciesIndex,
109 const int scalingFactorsIndex,
110 double* outSumLogLikelihood);
112 virtual void calcStatesStatesFixedScaling(REALTYPE *destP,
113 const int *child0States,
114 const REALTYPE *child0TransMat,
115 const int *child1States,
116 const REALTYPE *child1TransMat,
117 const REALTYPE *scaleFactors);
119 virtual void calcStatesPartialsFixedScaling(REALTYPE *destP,
120 const int *child0States,
121 const REALTYPE *child0TransMat,
122 const REALTYPE *child1Partials,
123 const REALTYPE *child1TransMat,
124 const REALTYPE *scaleFactors);
126 virtual void calcPartialsPartialsFixedScaling(REALTYPE *destP,
127 const REALTYPE *child0Partials,
128 const REALTYPE *child0TransMat,
129 const REALTYPE *child1Partials,
130 const REALTYPE *child1TransMat,
131 const REALTYPE *scaleFactors);
133 virtual void calcPartialsPartialsAutoScaling(REALTYPE *destP,
134 const REALTYPE *child0Partials,
135 const REALTYPE *child0TransMat,
136 const REALTYPE *child1Partials,
137 const REALTYPE *child1TransMat,
138 int *activateScaling);
141 inline int integrateOutStatesAndScale(
const REALTYPE* integrationTmp,
142 const int stateFrequenciesIndex,
143 const int scalingFactorsIndex,
144 double* outSumLogLikelihood);
146 virtual void rescalePartials(REALTYPE *destP,
147 REALTYPE *scaleFactors,
148 REALTYPE *cumulativeScaleFactors,
149 const int fillWithOnes);
153 BEAGLE_CPU_FACTORY_TEMPLATE
157 int partialsBufferCount,
158 int compactBufferCount,
161 int eigenBufferCount,
162 int matrixBufferCount,
164 int scaleBufferCount,
166 long preferenceFlags,
167 long requirementFlags,
170 virtual const char* getName();
171 virtual const long getFlags();
178 #include "libhmsbeagle/CPU/BeagleCPU4StateImpl.hpp"
180 #endif // __BeagleCPU4StateImpl__