---
name: "beagle_cpu_BeagleCPUImpl"
section: "3"
platform: "linux"
package: "libhmsbeagle-dev"
version: "1.0-6"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/beagle_cpu_BeagleCPUImpl"
---

# beagle\_cpu\_BeagleCPUImpl(3)

## NAME

beagle::cpu::BeagleCPUImpl -

## SYNOPSIS

Inherits **beagle::BeagleImpl**.

### Public Member Functions

int **createInstance** (int tipCount, int partialsBufferCount, int compactBufferCount, int stateCount, int patternCount, int eigenDecompositionCount, int matrixCount, int categoryCount, int scaleBufferCount, int resourceNumber, long preferenceFlags, long requirementFlags)\
 int **getInstanceDetails** (**BeagleInstanceDetails** \*returnInfo)\
 int **setTipStates** (int tipIndex, const int \*inStates)\
 int **setTipPartials** (int tipIndex, const double \*inPartials)\
 int **setPartials** (int bufferIndex, const double \*inPartials)\
 int **getPartials** (int bufferIndex, int scaleBuffer, double \*outPartials)\
 int **setEigenDecomposition** (int eigenIndex, const double \*inEigenVectors, const double \*inInverseEigenVectors, const double \*inEigenValues)\
 int **setStateFrequencies** (int stateFrequenciesIndex, const double \*inStateFrequencies)\
 int **setCategoryWeights** (int categoryWeightsIndex, const double \*inCategoryWeights)\
 int **setPatternWeights** (const double \*inPatternWeights)\
 int **setCategoryRates** (const double \*inCategoryRates)\
 int **setTransitionMatrix** (int matrixIndex, const double \*inMatrix, double paddedValue)\
 int **setTransitionMatrices** (const int \*matrixIndices, const double \*inMatrices, const double \*paddedValues, int count)\
 int **getTransitionMatrix** (int matrixIndex, double \*outMatrix)\
 int **updateTransitionMatrices** (int eigenIndex, const int \*probabilityIndices, const int \*firstDerivativeIndices, const int \*secondDerivativeIndices, const double \*edgeLengths, int count)\
 int **updatePartials** (const int \*operations, int operationCount, int cumulativeScalingIndex)\
 int **waitForPartials** (const int \*destinationPartials, int destinationPartialsCount)\
 int **accumulateScaleFactors** (const int \*scalingIndices, int count, int cumulativeScalingIndex)\
 int **removeScaleFactors** (const int \*scalingIndices, int count, int cumulativeScalingIndex)\
 int **resetScaleFactors** (int cumulativeScalingIndex)\
 int **copyScaleFactors** (int destScalingIndex, int srcScalingIndex)\
 int **calculateRootLogLikelihoods** (const int \*bufferIndices, const int \*categoryWeightsIndices, const int \*stateFrequenciesIndices, const int \*cumulativeScaleIndices, int count, double \*outSumLogLikelihood)\
 int **calculateEdgeLogLikelihoods** (const int \*parentBufferIndices, const int \*childBufferIndices, const int \*probabilityIndices, const int \*firstDerivativeIndices, const int \*secondDerivativeIndices, const int \*categoryWeightsIndices, const int \*stateFrequenciesIndices, const int \*cumulativeScaleIndices, int count, double \*outSumLogLikelihood, double \*outSumFirstDerivative, double \*outSumSecondDerivative)\
 int **getSiteLogLikelihoods** (double \*outLogLikelihoods)\
 int **getSiteDerivatives** (double \*outFirstDerivatives, double \*outSecondDerivatives)\
 int **block** (void)\
 virtual const char \* **getName** ()\
 virtual const long **getFlags** ()\

### Protected Member Functions

virtual void **calcStatesStates** (REALTYPE \*destP, const int \*states1, const REALTYPE \*matrices1, const int \*states2, const REALTYPE \*matrices2)\
 virtual void **calcStatesPartials** (REALTYPE \*destP, const int \*states1, const REALTYPE \*matrices1, const REALTYPE \*partials2, const REALTYPE \*matrices2)\
 virtual void **calcPartialsPartials** (REALTYPE \*destP, const REALTYPE \*partials1, const REALTYPE \*matrices1, const REALTYPE \*partials2, const REALTYPE \*matrices2)\
 virtual int **calcRootLogLikelihoods** (const int bufferIndex, const int categoryWeightsIndex, const int stateFrequenciesIndex, const int scaleBufferIndex, double \*outSumLogLikelihood)\
 virtual int **calcRootLogLikelihoodsMulti** (const int \*bufferIndices, const int \*categoryWeightsIndices, const int \*stateFrequenciesIndices, const int \*scaleBufferIndices, int count, double \*outSumLogLikelihood)\
 virtual int **calcEdgeLogLikelihoods** (const int parentBufferIndex, const int childBufferIndex, const int probabilityIndex, const int categoryWeightsIndex, const int stateFrequenciesIndex, const int scalingFactorsIndex, double \*outSumLogLikelihood)\
 virtual int **calcEdgeLogLikelihoodsMulti** (const int \*parentBufferIndices, const int \*childBufferIndices, const int \*probabilityIndices, const int \*categoryWeightsIndices, const int \*stateFrequenciesIndices, const int \*scalingFactorsIndices, int count, double \*outSumLogLikelihood)\
 virtual int **calcEdgeLogLikelihoodsFirstDeriv** (const int parentBufferIndex, const int childBufferIndex, const int probabilityIndex, const int firstDerivativeIndex, const int categoryWeightsIndex, const int stateFrequenciesIndex, const int scalingFactorsIndex, double \*outSumLogLikelihood, double \*outSumFirstDerivative)\
 virtual int **calcEdgeLogLikelihoodsSecondDeriv** (const int parentBufferIndex, const int childBufferIndex, const int probabilityIndex, const int firstDerivativeIndex, const int secondDerivativeIndex, const int categoryWeightsIndex, const int stateFrequenciesIndex, const int scalingFactorsIndex, double \*outSumLogLikelihood, double \*outSumFirstDerivative, double \*outSumSecondDerivative)\
 virtual void **calcStatesStatesFixedScaling** (REALTYPE \*destP, const int \*child0States, const REALTYPE \*child0TransMat, const int \*child1States, const REALTYPE \*child1TransMat, const REALTYPE \*scaleFactors)\
 virtual void **calcStatesPartialsFixedScaling** (REALTYPE \*destP, const int \*child0States, const REALTYPE \*child0TransMat, const REALTYPE \*child1Partials, const REALTYPE \*child1TransMat, const REALTYPE \*scaleFactors)\
 virtual void **calcPartialsPartialsFixedScaling** (REALTYPE \*destP, const REALTYPE \*child0States, const REALTYPE \*child0TransMat, const REALTYPE \*child1Partials, const REALTYPE \*child1TransMat, const REALTYPE \*scaleFactors)\
 virtual void **calcPartialsPartialsAutoScaling** (REALTYPE \*destP, const REALTYPE \*partials1, const REALTYPE \*matrices1, const REALTYPE \*partials2, const REALTYPE \*matrices2, int \*activateScaling)\
 virtual void **rescalePartials** (REALTYPE \*destP, REALTYPE \*scaleFactors, REALTYPE \*cumulativeScaleFactors, const int fillWithOnes)\
 virtual void **autoRescalePartials** (REALTYPE \*destP, signed short \*scaleFactors)\
 virtual int **getPaddedPatternsModulus** ()\
 void \* **mallocAligned** (size\_t size)\

### Protected Attributes

int **kBufferCount**\
 int **kTipCount**\
 *(we don't really need this field)*  int **kPatternCount**\
 *(we don't really need this field, but it is handy)*  int **kPaddedPatternCount**\
 *the number of data patterns in each partial and tipStates element*  int **kExtraPatterns**\
 *the number of data patterns padded to be a multiple of 2 or 4*  int **kMatrixCount**\
 *kPaddedPatternCount - kPatternCount*  int **kStateCount**\
 *the number of transition matrices to alloc and store*  int **kTransPaddedStateCount**\
 *the number of states*  int **kPartialsPaddedStateCount**\
 int **kEigenDecompCount**\
 int **kCategoryCount**\
 *the number of eigen solutions to alloc and store*  int **kScaleBufferCount**\
 int **kPartialsSize**\
 int **kMatrixSize**\
 *stored for convenience. kPartialsSize = kStateCount\*kPatternCount*  int **kInternalPartialsBufferCount**\
 *stored for convenience. kMatrixSize = kStateCount\*(kStateCount + 1)*  long **kFlags**\
 REALTYPE **realtypeMin**\
 int **scalingExponentThreshhold**\
 **EigenDecomposition**\
 \< BEAGLE\_CPU\_EIGEN\_GENERIC \> \* **gEigenDecomposition**"\
 double \* **gCategoryRates**\
 double \* **gPatternWeights**\
 REALTYPE \*\* **gCategoryWeights**\
 REALTYPE \*\* **gStateFrequencies**\
 REALTYPE \*\* **gPartials**\
 int \*\* **gTipStates**\
 REALTYPE \*\* **gScaleBuffers**\
 signed short \*\* **gAutoScaleBuffers**\
 int \* **gActiveScalingFactors**\
 REALTYPE \*\* **gTransitionMatrices**\
 REALTYPE \* **integrationTmp**\
 REALTYPE \* **firstDerivTmp**\
 REALTYPE \* **secondDerivTmp**\
 REALTYPE \* **outLogLikelihoodsTmp**\
 REALTYPE \* **outFirstDerivativesTmp**\
 REALTYPE \* **outSecondDerivativesTmp**\
 REALTYPE \* **ones**\
 REALTYPE \* **zeros**\

### Additional Inherited Members

## Member Data Documentation

### int beagle::cpu::BeagleCPUImpl::kPatternCount` [protected]`

(we don't really need this field, but it is handy) after initialize this will be tipStates.size()

### int beagle::cpu::BeagleCPUImpl::kTipCount` [protected]`

(we don't really need this field) after initialize this will be partials.size()

## Author

Generated automatically by Doxygen for HMSBEAGLE from the source code.
