diff options
author | Eike Rathke <erack@redhat.com> | 2015-09-25 13:42:04 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2015-09-25 13:50:50 +0200 |
commit | c1780ad265ce5f6abb3b91a4f70bf2b3d7a47149 (patch) | |
tree | 4689d7d9d17b31eeafb34500ba63359b71587182 /sc | |
parent | 72d082a6f04283c2d50d2c19c7d8ce1805b377ac (diff) |
fix IterateMatrix for ifPRODUCT and ifSUMSQ
... if more than one argument is passed to PRODUCT() or SUMSQ() and
matrix/array arguments are involved the functions returned wrong
results.
For example, wrong behavior
=PRODUCT({2,3},{4,5}) gave 6
=SUMSQ({2,3},{4,5}) gave 34
Correct is
=PRODUCT({2,3},{4,5}) result 120
=SUMSQ({2,3},{4,5}) result 54
Change-Id: Iec7b136a5cc678416f28b1abfe19cd0901ef22b6
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/core/tool/interpr6.cxx | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sc/source/core/tool/interpr6.cxx b/sc/source/core/tool/interpr6.cxx index 69a11a0abde9..c6ae7c9ad863 100644 --- a/sc/source/core/tool/interpr6.cxx +++ b/sc/source/core/tool/interpr6.cxx @@ -400,7 +400,7 @@ void IterateMatrix( case ifPRODUCT: { ScMatrix::IterateResult aRes = pMat->Product(bTextAsZero); - fRes = aRes.mfFirst; + fRes *= aRes.mfFirst; fRes *= aRes.mfRest; rCount += aRes.mnCount; } @@ -408,6 +408,7 @@ void IterateMatrix( case ifSUMSQ: { ScMatrix::IterateResult aRes = pMat->SumSquare(bTextAsZero); + fRes += aRes.mfFirst; fRes += aRes.mfRest; rCount += aRes.mnCount; } |