diff options
author | Winfried Donkers <winfrieddonkers@libreoffice.org> | 2018-03-21 16:57:36 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2018-03-29 21:46:43 +0200 |
commit | fc121c32ca0effb47d219066a6848435cba562cc (patch) | |
tree | 5a24125f814443ccbfd3734384f2bbcad5b5a590 /sc/source/core/tool/interpr5.cxx | |
parent | ffc49bd2fba97659919d9232ae42ca675c1aa9d0 (diff) |
tdf#97977 make MODE.MULT fully compatible with Excel.
Also, improve efficiency of function.
Change-Id: Id01542bdd997e0cacfdfd16683d1ac832d22fa35
Reviewed-on: https://gerrit.libreoffice.org/51708
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'sc/source/core/tool/interpr5.cxx')
-rw-r--r-- | sc/source/core/tool/interpr5.cxx | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/sc/source/core/tool/interpr5.cxx b/sc/source/core/tool/interpr5.cxx index 1e61811ab997..739be97c0176 100644 --- a/sc/source/core/tool/interpr5.cxx +++ b/sc/source/core/tool/interpr5.cxx @@ -837,69 +837,6 @@ void ScInterpreter::ScMatDet() } } -void ScInterpreter::ScModalValue_Multi() -{ - sal_uInt8 nParamCount = GetByte(); - if ( !MustHaveParamCountMin( nParamCount, 1 ) ) - return; - vector<double> aSortArray; - GetSortArray( nParamCount, aSortArray, nullptr, false, false ); - SCSIZE nSize = aSortArray.size(); - if ( aSortArray.empty() || nSize == 0 || nGlobalError != FormulaError::NONE ) - PushNoValue(); - else - { - SCSIZE nMax = 1, nCount = 1; - double nOldVal = aSortArray[0]; - vector<double> aResultArray; - aResultArray.resize( 1 ); - aResultArray[ 0 ] = aSortArray[ 0 ]; - SCSIZE i; - - for ( i = 1; i < nSize; i++ ) - { - if ( aSortArray[ i ] == nOldVal ) - { - nCount++; - if ( nCount > nMax && aResultArray.size() > 1 ) - { - aResultArray.clear(); - aResultArray.resize( 1 ); - aResultArray[ 0 ] = nOldVal; - } - } - else - { - nOldVal = aSortArray[ i ]; - if ( nCount >= nMax ) - { - if ( nCount > nMax ) - nMax = nCount; - aResultArray.emplace_back(); - } - aResultArray[ aResultArray.size() -1 ] = nOldVal; - nCount = 1; - } - } - if ( nCount > nMax ) - nMax = nCount; - else - { - if ( nCount < nMax ) - aResultArray.resize( aResultArray.size() - 1 ); - } - - if ( nMax == 1 && nCount == 1 ) - PushNoValue(); - else - { - ScMatrixRef pResMatrix = GetNewMat( 1, aResultArray.size(), true ); - pResMatrix->PutDoubleVector( aResultArray, 0, 0 ); - PushMatrix( pResMatrix ); - } - } -} - void ScInterpreter::ScMatInv() { if ( MustHaveParamCount( GetByte(), 1 ) ) |