LibreOffice Module sc (master) 1
|
Classes | |
struct | Op_ |
struct | Product |
struct | Sum |
struct | SumSquare |
Typedefs | |
using | Op = Op_< std::function< void(double &, double)>, double > |
using | kOp = Op_< std::function< void(KahanSum &, double)>, KahanSum > |
Functions | |
void | sumNeumanierNormal (double &sum, double &err, const double &value) |
Performs one step of the Neumanier sum between doubles Overwrites the summand and error @parma sum. More... | |
void | fkOpSum (KahanSum &rAccum, double fVal) |
void | fkOpSumSquare (KahanSum &rAccum, double fVal) |
KahanSum | executeSSE2 (size_t &i, size_t nSize, const double *pCurrent) |
static KahanSum | executeUnrolled (size_t &i, size_t nSize, const double *pCurrent) |
If no boosts available, Unrolled KahanSum. More... | |
static KahanSum | executeFast (size_t &i, size_t nSize, const double *pCurrent) |
This function task is to choose the fastest method available to perform the sum. More... | |
KahanSum | sumArray (const double *pArray, size_t nSize) |
Performs the sum of an array. More... | |
Variables | |
kOp | kOpSum (0.0, fkOpSum) |
kOp | kOpSumSquare (0.0, fkOpSumSquare) |
std::vector< kOp > | kOpSumAndSumSquare = { kOpSum, kOpSumSquare } |
using sc::op::kOp = typedef Op_<std::function<void(KahanSum&, double)>, KahanSum> |
Definition at line 37 of file matrixoperators.hxx.
using sc::op::Op = typedef Op_<std::function<void(double&, double)>, double> |
Definition at line 36 of file matrixoperators.hxx.
|
inlinestatic |
This function task is to choose the fastest method available to perform the sum.
i | |
nSize | |
pCurrent |
Definition at line 70 of file arraysumfunctor.hxx.
References executeSSE2(), executeUnrolled(), and i.
Referenced by sumArray().
KahanSum sc::op::executeSSE2 | ( | size_t & | i, |
size_t | nSize, | ||
const double * | pCurrent | ||
) |
Referenced by executeFast().
|
inlinestatic |
If no boosts available, Unrolled KahanSum.
Most likely to use on android.
Definition at line 39 of file arraysumfunctor.hxx.
References i.
Referenced by executeFast().
void sc::op::fkOpSum | ( | KahanSum & | rAccum, |
double | fVal | ||
) |
Definition at line 30 of file matrixoperators.cxx.
void sc::op::fkOpSumSquare | ( | KahanSum & | rAccum, |
double | fVal | ||
) |
Definition at line 34 of file matrixoperators.cxx.
|
inline |
Performs the sum of an array.
Note that align 16 will speed up the process.
pArray | |
nSize |
Definition at line 85 of file arraysumfunctor.hxx.
References executeFast(), KahanSum::get(), GetDoubleErrorValue(), and i.
|
inline |
Performs one step of the Neumanier sum between doubles Overwrites the summand and error @parma sum.
err | |
value |
Definition at line 24 of file arraysum.hxx.
Definition at line 42 of file matrixoperators.hxx.
std::vector< kOp > sc::op::kOpSumAndSumSquare = { kOpSum, kOpSumSquare } |
Definition at line 38 of file matrixoperators.cxx.
Referenced by ScInterpreter::ScFTest().
kOp sc::op::kOpSumSquare | ( | 0. | 0, |
fkOpSumSquare | |||
) |
Definition at line 43 of file matrixoperators.hxx.