22#include <osl/diagnose.h>
26const SCSIZE kBufferThreshold = 128;
30 : mvJump(nColsP * nRowsP)
45 , mnBufferEmptyCount(0)
46 , mnBufferEmptyPathCount(0)
64 short nStart,
short nNext)
66 mvJump[
static_cast<sal_uInt64
>(nCol) *
nRows + nRow].
SetJump(fBool, nStart, nNext, SHRT_MAX);
70 SCSIZE nCol,
SCSIZE nRow,
double& rBool,
short& rStart,
short& rNext,
short& rStop)
const
81 OSL_FAIL(
"ScJumpMatrix::GetJump: dimension error");
85 mvJump[
static_cast<sal_uInt64
>(nCol) *
nRows + nRow].
86 GetJump(rBool, rStart, rNext, rStop);
91 sal_uInt64
n =
static_cast<sal_uInt64
>(
nCols) *
nRows;
92 for (sal_uInt64 j = 0; j <
n; ++j)
94 mvJump[j].SetJump(fBool, nStart,
141 pMat =
pMat->CloneAndExtend(nNewCols, nNewRows);
212 pMat->PutDouble( fVal, nC, nR);
228 pMat->PutString( rStr, nC, nR);
244 pMat->PutEmpty( nC, nR);
260 pMat->PutEmptyPath( nC, nR);
size_t SCSIZE
size_t typedef to be able to find places where code was changed from USHORT to size_t and is used to ...
void GetDimensions(SCSIZE &rCols, SCSIZE &rRows) const
SCSIZE mnBufferEmptyCount
SCSIZE mnBufferEmptyPathCount
void PutResultString(const svl::SharedString &rStr, SCSIZE nC, SCSIZE nR)
void PutResultDouble(double fVal, SCSIZE nC, SCSIZE nR)
void SetNewResMat(SCSIZE nNewCols, SCSIZE nNewRows)
void SetJump(SCSIZE nCol, SCSIZE nRow, double fBool, short nStart, short nNext)
bool Next(SCSIZE &rCol, SCSIZE &rRow)
void FlushBufferOtherThan(BufferType eType, SCSIZE nC, SCSIZE nR)
Flush different types or non-consecutive buffers.
void GetJump(SCSIZE nCol, SCSIZE nRow, double &rBool, short &rStart, short &rNext, short &rStop) const
ScMatrix * GetResultMatrix()
also applies pending buffered values
std::vector< ScJumpMatrixEntry > mvJump
::std::vector< svl::SharedString > mvBufferStrings
void SetJumpParameters(ScTokenVec &&p)
void GetPos(SCSIZE &rCol, SCSIZE &rRow) const
::std::vector< double > mvBufferDoubles
bool HasResultMatrix() const
void SetAllJumps(double fBool, short nStart, short nNext, short nStop=SHRT_MAX)
void PutResultEmptyPath(SCSIZE nC, SCSIZE nR)
ScJumpMatrix(const ScJumpMatrix &)=delete
void GetResMatDimensions(SCSIZE &rCols, SCSIZE &rRows)
void PutResultEmpty(SCSIZE nC, SCSIZE nR)
Matrix data type that can store values of mixed types.
double CreateDoubleError(FormulaError nErr)
::std::vector< const formula::FormulaToken * > ScTokenVec
::std::vector< ScComplexRefData > ScRefList