diff options
Diffstat (limited to 'chart2/source/tools/RegressionCurveCalculator.cxx')
-rw-r--r-- | chart2/source/tools/RegressionCurveCalculator.cxx | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/chart2/source/tools/RegressionCurveCalculator.cxx b/chart2/source/tools/RegressionCurveCalculator.cxx index ff2f4d13a896..8f22f9834bdc 100644 --- a/chart2/source/tools/RegressionCurveCalculator.cxx +++ b/chart2/source/tools/RegressionCurveCalculator.cxx @@ -75,6 +75,8 @@ void RegressionCurveCalculator::setRegressionProperties( sal_Int32 aPeriod, sal_Int32 nMovingType ) { + if( aPeriod < 0 ) + throw lang::IllegalArgumentException("aPeriod may not be < 0", static_cast<cppu::OWeakObject*>(this), 3); mDegree = aDegree; mForceIntercept = aForceIntercept; mInterceptValue = aInterceptValue; @@ -98,9 +100,7 @@ OUString RegressionCurveCalculator::getFormattedString( { // round fNumber to *pStringLength characters const sal_Int32 nMinDigit = 6; // minimum significant digits for General format sal_Int32 nSignificantDigit = ( *pStringLength <= nMinDigit ? nMinDigit : *pStringLength ); - aResult = OStringToOUString( - ::rtl::math::doubleToString( fNumber, rtl_math_StringFormat_G1, nSignificantDigit, '.', true ), - RTL_TEXTENCODING_ASCII_US ); + aResult = ::rtl::math::doubleToUString( fNumber, rtl_math_StringFormat_G1, nSignificantDigit, '.', true ); // count characters different from significant digits (decimal separator, scientific notation) sal_Int32 nExtraChar = aResult.getLength() - *pStringLength; if ( nExtraChar > 0 && *pStringLength > nMinDigit ) @@ -108,9 +108,7 @@ OUString RegressionCurveCalculator::getFormattedString( nSignificantDigit = *pStringLength - nExtraChar; if ( nSignificantDigit < nMinDigit ) nSignificantDigit = nMinDigit; - aResult = OStringToOUString( - ::rtl::math::doubleToString( fNumber, rtl_math_StringFormat_G1, nSignificantDigit, '.', true ), - RTL_TEXTENCODING_ASCII_US ); + aResult = ::rtl::math::doubleToUString( fNumber, rtl_math_StringFormat_G1, nSignificantDigit, '.', true ); } fNumber = ::rtl::math::stringToDouble( aResult, '.', ',' ); } @@ -121,9 +119,7 @@ OUString RegressionCurveCalculator::getFormattedString( sal_Int32 nStringLength = 4; // default length if ( pStringLength ) nStringLength = *pStringLength; - aResult = OStringToOUString( - ::rtl::math::doubleToString( fNumber, rtl_math_StringFormat_G1, nStringLength, '.', true ), - RTL_TEXTENCODING_ASCII_US ); + aResult = ::rtl::math::doubleToUString( fNumber, rtl_math_StringFormat_G1, nStringLength, '.', true ); } return aResult; } @@ -145,6 +141,7 @@ Sequence< geometry::RealPoint2D > SAL_CALL RegressionCurveCalculator::getCurveVa bDoXScaling = bDoXScaling && xInverseScaling.is(); Sequence< geometry::RealPoint2D > aResult( nPointCount ); + auto pResult = aResult.getArray(); double fMin( min ); double fFact = (max - min) / double(nPointCount-1); @@ -160,8 +157,8 @@ Sequence< geometry::RealPoint2D > SAL_CALL RegressionCurveCalculator::getCurveVa double x = fMin + nP * fFact; if( bDoXScaling ) x = xInverseScaling->doScaling( x ); - aResult[nP].X = x; - aResult[nP].Y = getCurveValue( x ); + pResult[nP].X = x; + pResult[nP].Y = getCurveValue( x ); } return aResult; |