Purge out rtl::math::setNan
Change-Id: If8794c105e279afd4437517d3e61f2f900eb6490 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118123 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This commit is contained in:
committed by
Mike Kaganski
parent
e9dc82b761
commit
7838efe4b7
@@ -442,9 +442,6 @@ std::vector<std::vector<double> > getDataSeriesYValuesFromChartType( const Refer
|
||||
CPPUNIT_ASSERT(xDSCont.is());
|
||||
const Sequence<uno::Reference<chart2::XDataSeries> > aDataSeriesSeq = xDSCont->getDataSeries();
|
||||
|
||||
double fNan;
|
||||
rtl::math::setNan(&fNan);
|
||||
|
||||
std::vector<std::vector<double> > aRet;
|
||||
for (uno::Reference<chart2::XDataSeries> const & ds : aDataSeriesSeq)
|
||||
{
|
||||
@@ -472,7 +469,7 @@ std::vector<std::vector<double> > getDataSeriesYValuesFromChartType( const Refer
|
||||
if (any >>= fVal)
|
||||
aValues.push_back(fVal);
|
||||
else
|
||||
aValues.push_back(fNan);
|
||||
aValues.push_back(std::numeric_limits<double>::quiet_NaN());
|
||||
}
|
||||
aRet.push_back(aValues);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
#include <com/sun/star/chart/XChartDocument.hpp>
|
||||
|
||||
#include <float.h>
|
||||
#include <rtl/math.hxx>
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
#include <osl/diagnose.h>
|
||||
|
||||
using namespace ::com::sun::star;
|
||||
@@ -57,7 +58,7 @@ uno::Sequence< uno::Sequence< double > > lcl_getNANInsteadDBL_MIN( const uno::Se
|
||||
aRet[nOuter][nInner] = rData[nOuter][nInner];
|
||||
double& rValue = aRet[nOuter][nInner];
|
||||
if( rValue == DBL_MIN )
|
||||
::rtl::math::setNan( &rValue );
|
||||
rValue = std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
}
|
||||
return aRet;
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
#include <vcl/settings.hxx>
|
||||
#include <vcl/svapp.hxx>
|
||||
#include <vcl/virdev.hxx>
|
||||
#include <rtl/math.hxx>
|
||||
#include <o3tl/safeint.hxx>
|
||||
#include <osl/diagnose.h>
|
||||
#include <toolkit/helper/vclunohelper.hxx>
|
||||
@@ -45,6 +44,7 @@
|
||||
#include <com/sun/star/container/XIndexReplace.hpp>
|
||||
|
||||
#include <algorithm>
|
||||
#include <limits>
|
||||
|
||||
|
||||
using namespace ::com::sun::star;
|
||||
@@ -489,10 +489,8 @@ DataBrowser::DataBrowser(const css::uno::Reference<css::awt::XWindow> &rParent,
|
||||
m_rNumberEditController( new ::svt::FormattedFieldCellController( m_aNumberEditField.get() )),
|
||||
m_rTextEditController( new ::svt::EditCellController( m_aTextEditField.get() ))
|
||||
{
|
||||
double fNan;
|
||||
::rtl::math::setNan( & fNan );
|
||||
Formatter& rFormatter = m_aNumberEditField->get_formatter();
|
||||
rFormatter.SetDefaultValue( fNan );
|
||||
rFormatter.SetDefaultValue( std::numeric_limits<double>::quiet_NaN() );
|
||||
rFormatter.TreatAsNumber( true );
|
||||
RenewTable();
|
||||
}
|
||||
@@ -741,16 +739,13 @@ OUString DataBrowser::GetCellText( sal_Int32 nRow, sal_uInt16 nColumnId ) const
|
||||
|
||||
double DataBrowser::GetCellNumber( sal_Int32 nRow, sal_uInt16 nColumnId ) const
|
||||
{
|
||||
double fResult;
|
||||
::rtl::math::setNan( & fResult );
|
||||
|
||||
if(( nColumnId >= 1 ) && ( nRow >= 0 ) && m_apDataBrowserModel)
|
||||
{
|
||||
fResult = m_apDataBrowserModel->getCellNumber(
|
||||
return m_apDataBrowserModel->getCellNumber(
|
||||
static_cast< sal_Int32 >( nColumnId ) - 1, nRow );
|
||||
}
|
||||
|
||||
return fResult;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
void DataBrowser::Resize()
|
||||
|
||||
@@ -45,9 +45,8 @@
|
||||
#include <tools/diagnose_ex.h>
|
||||
#include <comphelper/property.hxx>
|
||||
|
||||
#include <rtl/math.hxx>
|
||||
|
||||
#include <algorithm>
|
||||
#include <limits>
|
||||
|
||||
using namespace ::com::sun::star;
|
||||
|
||||
@@ -582,9 +581,6 @@ DataBrowserModel::eCellType DataBrowserModel::getCellType( sal_Int32 nAtColumn )
|
||||
|
||||
double DataBrowserModel::getCellNumber( sal_Int32 nAtColumn, sal_Int32 nAtRow )
|
||||
{
|
||||
double fResult;
|
||||
::rtl::math::setNan( & fResult );
|
||||
|
||||
tDataColumnVector::size_type nIndex( nAtColumn );
|
||||
if( nIndex < m_aColumns.size() &&
|
||||
m_aColumns[ nIndex ].m_xLabeledDataSequence.is())
|
||||
@@ -595,10 +591,10 @@ double DataBrowserModel::getCellNumber( sal_Int32 nAtColumn, sal_Int32 nAtRow )
|
||||
{
|
||||
Sequence< double > aValues( xData->getNumericalData());
|
||||
if( nAtRow < aValues.getLength())
|
||||
fResult = aValues[nAtRow];
|
||||
return aValues[nAtRow];
|
||||
}
|
||||
}
|
||||
return fResult;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
uno::Any DataBrowserModel::getCellAny( sal_Int32 nAtColumn, sal_Int32 nAtRow )
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
#include <rtl/ustring.hxx>
|
||||
#include "charttoolsdllapi.hxx"
|
||||
|
||||
#include <limits>
|
||||
|
||||
namespace chart::CommonFunctors
|
||||
{
|
||||
|
||||
@@ -43,15 +45,13 @@ template< typename T >
|
||||
|
||||
/** unary function to convert css::uno::Any into a double number.
|
||||
|
||||
<p>In case no number can be generated from the Any, NaN (see
|
||||
rtl::math::SetNAN()) is returned.</p>
|
||||
<p>In case no number can be generated from the Any, NaN is returned.</p>
|
||||
*/
|
||||
struct OOO_DLLPUBLIC_CHARTTOOLS AnyToDouble
|
||||
{
|
||||
double operator() ( const css::uno::Any & rAny )
|
||||
{
|
||||
double fResult;
|
||||
::rtl::math::setNan( & fResult );
|
||||
double fResult = std::numeric_limits<double>::quiet_NaN();
|
||||
rAny >>= fResult;
|
||||
return fResult;
|
||||
}
|
||||
@@ -97,7 +97,7 @@ struct OOO_DLLPUBLIC_CHARTTOOLS OUStringToDouble
|
||||
double fResult = ::rtl::math::stringToDouble( rStr, '.', ',', & eConversionStatus );
|
||||
|
||||
if( eConversionStatus != rtl_math_ConversionStatus_Ok )
|
||||
::rtl::math::setNan( & fResult );
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
return fResult;
|
||||
}
|
||||
|
||||
@@ -24,10 +24,11 @@
|
||||
#include <com/sun/star/chart2/data/XDataSequence.hpp>
|
||||
#include <com/sun/star/chart2/data/XNumericalDataSequence.hpp>
|
||||
#include <com/sun/star/chart2/data/XTextualDataSequence.hpp>
|
||||
#include <rtl/math.hxx>
|
||||
#include <osl/diagnose.h>
|
||||
#include <basegfx/matrix/b3dhommatrix.hxx>
|
||||
|
||||
#include <limits>
|
||||
|
||||
namespace chart
|
||||
{
|
||||
|
||||
@@ -429,7 +430,7 @@ uno::Sequence< double > DataSequenceToDoubleSequence(
|
||||
for(sal_Int32 nN=aValues.getLength();nN--;)
|
||||
{
|
||||
if( !(aValues[nN] >>= aResult[nN]) )
|
||||
::rtl::math::setNan( &aResult[nN] );
|
||||
aResult[nN] = std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -57,6 +57,8 @@
|
||||
#include <tools/diagnose_ex.h>
|
||||
#include <sal/log.hxx>
|
||||
|
||||
#include <limits>
|
||||
|
||||
using namespace ::com::sun::star;
|
||||
using namespace ::com::sun::star::chart2;
|
||||
using namespace ::std;
|
||||
@@ -975,8 +977,6 @@ void lcl_switchToDateCategories( const Reference< XChartDocument >& xChartDoc, c
|
||||
{
|
||||
Sequence< Sequence< Any > > aAnyCategories( xDataAccess->getAnyRowDescriptions() );
|
||||
double fTest = 0.0;
|
||||
double fNan = 0.0;
|
||||
::rtl::math::setNan( & fNan );
|
||||
sal_Int32 nN = aAnyCategories.getLength();
|
||||
for( ; nN--; )
|
||||
{
|
||||
@@ -988,7 +988,7 @@ void lcl_switchToDateCategories( const Reference< XChartDocument >& xChartDoc, c
|
||||
Any& rAny = rCat[0];
|
||||
if( !(rAny>>=fTest) )
|
||||
{
|
||||
rAny <<= fNan;
|
||||
rAny <<= std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,9 +29,11 @@
|
||||
|
||||
#include <com/sun/star/chart2/AxisType.hpp>
|
||||
#include <o3tl/safeint.hxx>
|
||||
#include <rtl/math.hxx>
|
||||
#include <rtl/ustrbuf.hxx>
|
||||
#include <tools/diagnose_ex.h>
|
||||
|
||||
#include <limits>
|
||||
|
||||
namespace chart
|
||||
{
|
||||
|
||||
@@ -453,8 +455,7 @@ static bool lcl_fillDateCategories( const uno::Reference< data::XDataSequence >&
|
||||
{
|
||||
if( aAny.hasValue() && !bContainsEmptyString )//empty string does not count as non date value!
|
||||
bOnlyDatesFound=false;
|
||||
::rtl::math::setNan( &aDate );
|
||||
rDateCategories.push_back( aDate );
|
||||
rDateCategories.push_back( std::numeric_limits<double>::quiet_NaN() );
|
||||
}
|
||||
}
|
||||
std::sort( rDateCategories.begin(), rDateCategories.end() );
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
#include <sal/config.h>
|
||||
|
||||
#include <limits>
|
||||
#include <string_view>
|
||||
|
||||
#include <ExponentialRegressionCurveCalculator.hxx>
|
||||
@@ -34,12 +35,10 @@ namespace chart
|
||||
{
|
||||
|
||||
ExponentialRegressionCurveCalculator::ExponentialRegressionCurveCalculator()
|
||||
: m_fLogSlope(0.0)
|
||||
, m_fLogIntercept(0.0)
|
||||
: m_fLogSlope(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fLogIntercept(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fSign(1.0)
|
||||
{
|
||||
::rtl::math::setNan( & m_fLogSlope );
|
||||
::rtl::math::setNan( & m_fLogIntercept );
|
||||
}
|
||||
|
||||
ExponentialRegressionCurveCalculator::~ExponentialRegressionCurveCalculator()
|
||||
@@ -65,9 +64,9 @@ void SAL_CALL ExponentialRegressionCurveCalculator::recalculateRegression(
|
||||
nMax = aValues.first.size();
|
||||
if( nMax <= 1 )
|
||||
{
|
||||
::rtl::math::setNan( & m_fLogSlope );
|
||||
::rtl::math::setNan( & m_fLogIntercept );
|
||||
::rtl::math::setNan( & m_fCorrelationCoefficient );// actual it is coefficient of determination
|
||||
m_fLogSlope = std::numeric_limits<double>::quiet_NaN();
|
||||
m_fLogIntercept = std::numeric_limits<double>::quiet_NaN();
|
||||
m_fCorrelationCoefficient = std::numeric_limits<double>::quiet_NaN();// actual it is coefficient of determination
|
||||
return;
|
||||
}
|
||||
m_fSign = -1.0;
|
||||
@@ -116,16 +115,13 @@ void SAL_CALL ExponentialRegressionCurveCalculator::recalculateRegression(
|
||||
|
||||
double SAL_CALL ExponentialRegressionCurveCalculator::getCurveValue( double x )
|
||||
{
|
||||
double fResult;
|
||||
::rtl::math::setNan( & fResult );
|
||||
|
||||
if( ! ( std::isnan( m_fLogSlope ) ||
|
||||
std::isnan( m_fLogIntercept )))
|
||||
{
|
||||
fResult = m_fSign * exp(m_fLogIntercept + x * m_fLogSlope);
|
||||
return m_fSign * exp(m_fLogIntercept + x * m_fLogSlope);
|
||||
}
|
||||
|
||||
return fResult;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
uno::Sequence< geometry::RealPoint2D > SAL_CALL ExponentialRegressionCurveCalculator::getCurveValues(
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
#include <strings.hrc>
|
||||
|
||||
#include <osl/diagnose.h>
|
||||
#include <rtl/math.hxx>
|
||||
|
||||
#ifdef DEBUG_CHART2_TOOLS
|
||||
#define DEBUG_INTERNAL_DATA 1
|
||||
@@ -34,6 +33,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
#include <iterator>
|
||||
#include <limits>
|
||||
|
||||
using ::com::sun::star::uno::Sequence;
|
||||
|
||||
@@ -129,10 +129,8 @@ void InternalData::setData( const Sequence< Sequence< double > >& rDataInRows )
|
||||
m_aColumnLabels.resize( m_nColumnCount );
|
||||
|
||||
m_aData.resize( m_nRowCount * m_nColumnCount );
|
||||
double fNan;
|
||||
::rtl::math::setNan( & fNan );
|
||||
// set all values to Nan
|
||||
m_aData = fNan;
|
||||
m_aData = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
for( sal_Int32 nRow=0; nRow<m_nRowCount; ++nRow )
|
||||
{
|
||||
@@ -296,9 +294,7 @@ bool InternalData::enlargeData( sal_Int32 nColumnCount, sal_Int32 nRowCount )
|
||||
|
||||
if( bGrow )
|
||||
{
|
||||
double fNan;
|
||||
::rtl::math::setNan( &fNan );
|
||||
tDataType aNewData( fNan, nNewSize );
|
||||
tDataType aNewData( std::numeric_limits<double>::quiet_NaN(), nNewSize );
|
||||
// copy old data
|
||||
for( int nCol=0; nCol<m_nColumnCount; ++nCol )
|
||||
static_cast< tDataType >(
|
||||
@@ -322,9 +318,7 @@ void InternalData::insertColumn( sal_Int32 nAfterIndex )
|
||||
sal_Int32 nNewColumnCount = m_nColumnCount + 1;
|
||||
sal_Int32 nNewSize( nNewColumnCount * m_nRowCount );
|
||||
|
||||
double fNan;
|
||||
::rtl::math::setNan( &fNan );
|
||||
tDataType aNewData( fNan, nNewSize );
|
||||
tDataType aNewData( std::numeric_limits<double>::quiet_NaN(), nNewSize );
|
||||
|
||||
// copy old data
|
||||
int nCol=0;
|
||||
@@ -379,9 +373,7 @@ void InternalData::insertRow( sal_Int32 nAfterIndex )
|
||||
sal_Int32 nNewRowCount = m_nRowCount + 1;
|
||||
sal_Int32 nNewSize( m_nColumnCount * nNewRowCount );
|
||||
|
||||
double fNan;
|
||||
::rtl::math::setNan( &fNan );
|
||||
tDataType aNewData( fNan, nNewSize );
|
||||
tDataType aNewData( std::numeric_limits<double>::quiet_NaN(), nNewSize );
|
||||
|
||||
// copy old data
|
||||
sal_Int32 nIndex = nAfterIndex + 1;
|
||||
@@ -416,9 +408,7 @@ void InternalData::deleteColumn( sal_Int32 nAtIndex )
|
||||
sal_Int32 nNewColumnCount = m_nColumnCount - 1;
|
||||
sal_Int32 nNewSize( nNewColumnCount * m_nRowCount );
|
||||
|
||||
double fNan;
|
||||
::rtl::math::setNan( &fNan );
|
||||
tDataType aNewData( fNan, nNewSize );
|
||||
tDataType aNewData( std::numeric_limits<double>::quiet_NaN(), nNewSize );
|
||||
|
||||
// copy old data
|
||||
int nCol=0;
|
||||
@@ -450,9 +440,7 @@ void InternalData::deleteRow( sal_Int32 nAtIndex )
|
||||
sal_Int32 nNewRowCount = m_nRowCount - 1;
|
||||
sal_Int32 nNewSize( m_nColumnCount * nNewRowCount );
|
||||
|
||||
double fNan;
|
||||
::rtl::math::setNan( &fNan );
|
||||
tDataType aNewData( fNan, nNewSize );
|
||||
tDataType aNewData( std::numeric_limits<double>::quiet_NaN(), nNewSize );
|
||||
|
||||
// copy old data
|
||||
sal_Int32 nIndex = nAtIndex;
|
||||
|
||||
@@ -17,8 +17,6 @@
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#include <rtl/math.hxx>
|
||||
|
||||
#include <iterator>
|
||||
|
||||
#include <InternalDataProvider.hxx>
|
||||
@@ -40,6 +38,7 @@
|
||||
#include <comphelper/property.hxx>
|
||||
#include <tools/diagnose_ex.h>
|
||||
|
||||
#include <limits>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
|
||||
@@ -1365,16 +1364,15 @@ uno::Sequence< OUString > SplitCategoriesProvider_ForComplexDescriptions::getStr
|
||||
// ____ XDateCategories ____
|
||||
Sequence< double > SAL_CALL InternalDataProvider::getDateCategories()
|
||||
{
|
||||
double fNan = InternalDataProvider::getNotANumber();
|
||||
double fValue = fNan;
|
||||
vector< vector< uno::Any > > aCategories( m_bDataInColumns ? m_aInternalData.getComplexRowLabels() : m_aInternalData.getComplexColumnLabels());
|
||||
sal_Int32 nCount = aCategories.size();
|
||||
Sequence< double > aDoubles( nCount );
|
||||
sal_Int32 nN=0;
|
||||
for (auto const& category : aCategories)
|
||||
{
|
||||
double fValue;
|
||||
if( category.empty() || !(category[0]>>=fValue) )
|
||||
fValue = fNan;
|
||||
fValue = std::numeric_limits<double>::quiet_NaN();
|
||||
aDoubles[nN++]=fValue;
|
||||
}
|
||||
return aDoubles;
|
||||
@@ -1489,9 +1487,7 @@ void SAL_CALL InternalDataProvider::removeChartDataChangeEventListener(
|
||||
|
||||
double SAL_CALL InternalDataProvider::getNotANumber()
|
||||
{
|
||||
double fNan;
|
||||
::rtl::math::setNan( & fNan );
|
||||
return fNan;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
sal_Bool SAL_CALL InternalDataProvider::isNotANumber( double nNumber )
|
||||
|
||||
@@ -30,11 +30,9 @@ namespace chart
|
||||
{
|
||||
|
||||
LogarithmicRegressionCurveCalculator::LogarithmicRegressionCurveCalculator() :
|
||||
m_fSlope( 0.0 ),
|
||||
m_fIntercept( 0.0 )
|
||||
m_fSlope( std::numeric_limits<double>::quiet_NaN() ),
|
||||
m_fIntercept( std::numeric_limits<double>::quiet_NaN() )
|
||||
{
|
||||
::rtl::math::setNan( & m_fSlope );
|
||||
::rtl::math::setNan( & m_fIntercept );
|
||||
}
|
||||
|
||||
LogarithmicRegressionCurveCalculator::~LogarithmicRegressionCurveCalculator()
|
||||
@@ -53,9 +51,9 @@ void SAL_CALL LogarithmicRegressionCurveCalculator::recalculateRegression(
|
||||
const size_t nMax = aValues.first.size();
|
||||
if( nMax <= 1 ) // at least 2 points
|
||||
{
|
||||
::rtl::math::setNan( & m_fSlope );
|
||||
::rtl::math::setNan( & m_fIntercept );
|
||||
::rtl::math::setNan( & m_fCorrelationCoefficient );
|
||||
m_fSlope = std::numeric_limits<double>::quiet_NaN();
|
||||
m_fIntercept = std::numeric_limits<double>::quiet_NaN();
|
||||
m_fCorrelationCoefficient = std::numeric_limits<double>::quiet_NaN();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -89,16 +87,13 @@ void SAL_CALL LogarithmicRegressionCurveCalculator::recalculateRegression(
|
||||
|
||||
double SAL_CALL LogarithmicRegressionCurveCalculator::getCurveValue( double x )
|
||||
{
|
||||
double fResult;
|
||||
::rtl::math::setNan( & fResult );
|
||||
|
||||
if( ! ( std::isnan( m_fSlope ) ||
|
||||
std::isnan( m_fIntercept )))
|
||||
{
|
||||
fResult = m_fSlope * log( x ) + m_fIntercept;
|
||||
return m_fSlope * log( x ) + m_fIntercept;
|
||||
}
|
||||
|
||||
return fResult;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
uno::Sequence< geometry::RealPoint2D > SAL_CALL LogarithmicRegressionCurveCalculator::getCurveValues(
|
||||
|
||||
@@ -20,7 +20,9 @@
|
||||
#include <MeanValueRegressionCurveCalculator.hxx>
|
||||
|
||||
#include <osl/diagnose.h>
|
||||
#include <rtl/math.hxx>
|
||||
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
|
||||
using namespace ::com::sun::star;
|
||||
|
||||
@@ -28,9 +30,8 @@ namespace chart
|
||||
{
|
||||
|
||||
MeanValueRegressionCurveCalculator::MeanValueRegressionCurveCalculator() :
|
||||
m_fMeanValue( 0.0 )
|
||||
m_fMeanValue( std::numeric_limits<double>::quiet_NaN() )
|
||||
{
|
||||
::rtl::math::setNan( & m_fMeanValue );
|
||||
}
|
||||
|
||||
MeanValueRegressionCurveCalculator::~MeanValueRegressionCurveCalculator()
|
||||
@@ -59,7 +60,7 @@ void SAL_CALL MeanValueRegressionCurveCalculator::recalculateRegression(
|
||||
|
||||
if( nMax == 0 )
|
||||
{
|
||||
::rtl::math::setNan( & m_fMeanValue );
|
||||
m_fMeanValue = std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <ResId.hxx>
|
||||
#include <strings.hrc>
|
||||
|
||||
#include <rtl/math.hxx>
|
||||
#include <limits>
|
||||
|
||||
#include <com/sun/star/chart2/MovingAverageType.hpp>
|
||||
|
||||
@@ -43,7 +43,7 @@ void SAL_CALL MovingAverageRegressionCurveCalculator::recalculateRegression(
|
||||
const uno::Sequence< double >& aXValues,
|
||||
const uno::Sequence< double >& aYValues )
|
||||
{
|
||||
::rtl::math::setNan( & m_fCorrelationCoefficient );
|
||||
m_fCorrelationCoefficient = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
RegressionCalculationHelper::tDoubleVectorPair aValues(
|
||||
RegressionCalculationHelper::cleanup(
|
||||
@@ -134,9 +134,7 @@ void MovingAverageRegressionCurveCalculator::calculateValues(
|
||||
|
||||
double SAL_CALL MovingAverageRegressionCurveCalculator::getCurveValue( double /*x*/ )
|
||||
{
|
||||
double fResult;
|
||||
rtl::math::setNan(&fResult);
|
||||
return fResult;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
uno::Sequence< geometry::RealPoint2D > SAL_CALL MovingAverageRegressionCurveCalculator::getCurveValues(
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <RegressionCalculationHelper.hxx>
|
||||
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
#include <rtl/math.hxx>
|
||||
#include <rtl/ustrbuf.hxx>
|
||||
|
||||
@@ -90,7 +91,7 @@ void SAL_CALL PolynomialRegressionCurveCalculator::recalculateRegression(
|
||||
const uno::Sequence< double >& aXValues,
|
||||
const uno::Sequence< double >& aYValues )
|
||||
{
|
||||
rtl::math::setNan(&m_fCorrelationCoefficient);
|
||||
m_fCorrelationCoefficient = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
RegressionCalculationHelper::tDoubleVectorPair aValues(
|
||||
RegressionCalculationHelper::cleanup( aXValues, aYValues, RegressionCalculationHelper::isValid()));
|
||||
@@ -269,18 +270,13 @@ void SAL_CALL PolynomialRegressionCurveCalculator::recalculateRegression(
|
||||
|
||||
double SAL_CALL PolynomialRegressionCurveCalculator::getCurveValue( double x )
|
||||
{
|
||||
double fResult;
|
||||
rtl::math::setNan(&fResult);
|
||||
|
||||
if (mCoefficients.empty())
|
||||
{
|
||||
return fResult;
|
||||
}
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
sal_Int32 aNoCoefficients = static_cast<sal_Int32>(mCoefficients.size());
|
||||
|
||||
// Horner's method
|
||||
fResult = 0.0;
|
||||
double fResult = 0.0;
|
||||
for (sal_Int32 i = aNoCoefficients - 1; i >= 0; i--)
|
||||
{
|
||||
fResult = mCoefficients[i] + (x * fResult);
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <RegressionCalculationHelper.hxx>
|
||||
#include <SpecialCharacters.hxx>
|
||||
|
||||
#include <limits>
|
||||
#include <rtl/math.hxx>
|
||||
#include <rtl/ustrbuf.hxx>
|
||||
|
||||
@@ -30,12 +31,10 @@ namespace chart
|
||||
{
|
||||
|
||||
PotentialRegressionCurveCalculator::PotentialRegressionCurveCalculator()
|
||||
: m_fSlope(0.0)
|
||||
, m_fIntercept(0.0)
|
||||
: m_fSlope(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fIntercept(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fSign(1.0)
|
||||
{
|
||||
::rtl::math::setNan( & m_fSlope );
|
||||
::rtl::math::setNan( & m_fIntercept );
|
||||
}
|
||||
|
||||
PotentialRegressionCurveCalculator::~PotentialRegressionCurveCalculator()
|
||||
@@ -61,9 +60,9 @@ void SAL_CALL PotentialRegressionCurveCalculator::recalculateRegression(
|
||||
nMax = aValues.first.size();
|
||||
if( nMax <= 1 )
|
||||
{
|
||||
::rtl::math::setNan( & m_fSlope );
|
||||
::rtl::math::setNan( & m_fIntercept );
|
||||
::rtl::math::setNan( & m_fCorrelationCoefficient );
|
||||
m_fSlope = std::numeric_limits<double>::quiet_NaN();
|
||||
m_fIntercept = std::numeric_limits<double>::quiet_NaN();
|
||||
m_fCorrelationCoefficient = std::numeric_limits<double>::quiet_NaN();
|
||||
return;
|
||||
}
|
||||
m_fSign = -1.0;
|
||||
@@ -101,16 +100,13 @@ void SAL_CALL PotentialRegressionCurveCalculator::recalculateRegression(
|
||||
|
||||
double SAL_CALL PotentialRegressionCurveCalculator::getCurveValue( double x )
|
||||
{
|
||||
double fResult;
|
||||
::rtl::math::setNan( & fResult );
|
||||
|
||||
if( ! ( std::isnan( m_fSlope ) ||
|
||||
std::isnan( m_fIntercept )))
|
||||
{
|
||||
fResult = m_fIntercept * pow( x, m_fSlope );
|
||||
return m_fIntercept * pow( x, m_fSlope );
|
||||
}
|
||||
|
||||
return fResult;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
uno::Sequence< geometry::RealPoint2D > SAL_CALL PotentialRegressionCurveCalculator::getCurveValues(
|
||||
|
||||
@@ -37,17 +37,15 @@ namespace chart
|
||||
{
|
||||
|
||||
RegressionCurveCalculator::RegressionCurveCalculator()
|
||||
: m_fCorrelationCoefficient(0.0)
|
||||
: m_fCorrelationCoefficient(std::numeric_limits<double>::quiet_NaN())
|
||||
, mDegree(2)
|
||||
, mForceIntercept(false)
|
||||
, mInterceptValue(0.0)
|
||||
, mInterceptValue(std::numeric_limits<double>::quiet_NaN())
|
||||
, mPeriod(2)
|
||||
, mXName("x")
|
||||
, mYName("f(x)")
|
||||
, mnMovingType(0)
|
||||
{
|
||||
rtl::math::setNan( &m_fCorrelationCoefficient );
|
||||
rtl::math::setNan( &mInterceptValue );
|
||||
}
|
||||
|
||||
RegressionCurveCalculator::~RegressionCurveCalculator()
|
||||
|
||||
@@ -18,10 +18,12 @@
|
||||
*/
|
||||
|
||||
#include <Scaling.hxx>
|
||||
#include <rtl/math.hxx>
|
||||
#include <com/sun/star/uno/RuntimeException.hpp>
|
||||
#include <cppuhelper/supportsservice.hxx>
|
||||
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
|
||||
namespace com::sun::star::uno { class XComponentContext; }
|
||||
|
||||
namespace
|
||||
@@ -57,12 +59,9 @@ LogarithmicScaling::~LogarithmicScaling()
|
||||
|
||||
double SAL_CALL LogarithmicScaling::doScaling( double value )
|
||||
{
|
||||
double fResult;
|
||||
if( std::isnan( value ) || std::isinf( value ) )
|
||||
::rtl::math::setNan( & fResult );
|
||||
else
|
||||
fResult = log( value ) / m_fLogOfBase;
|
||||
return fResult;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return std::log( value ) / m_fLogOfBase;
|
||||
}
|
||||
|
||||
uno::Reference< XScaling > SAL_CALL LogarithmicScaling::getInverseScaling()
|
||||
@@ -106,12 +105,9 @@ ExponentialScaling::~ExponentialScaling()
|
||||
|
||||
double SAL_CALL ExponentialScaling::doScaling( double value )
|
||||
{
|
||||
double fResult;
|
||||
if( std::isnan( value ) || std::isinf( value ) )
|
||||
::rtl::math::setNan( & fResult );
|
||||
else
|
||||
fResult = pow( m_fBase, value );
|
||||
return fResult;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return std::pow( m_fBase, value );
|
||||
}
|
||||
|
||||
uno::Reference< XScaling > SAL_CALL ExponentialScaling::getInverseScaling()
|
||||
@@ -154,12 +150,9 @@ LinearScaling::~LinearScaling()
|
||||
|
||||
double SAL_CALL LinearScaling::doScaling( double value )
|
||||
{
|
||||
double fResult;
|
||||
if( std::isnan( value ) || std::isinf( value ) )
|
||||
::rtl::math::setNan( & fResult );
|
||||
else
|
||||
fResult = m_fOffset + m_fSlope * value;
|
||||
return fResult;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return m_fOffset + m_fSlope * value;
|
||||
}
|
||||
|
||||
uno::Reference< XScaling > SAL_CALL
|
||||
@@ -205,12 +198,9 @@ PowerScaling::~PowerScaling()
|
||||
|
||||
double SAL_CALL PowerScaling::doScaling( double value )
|
||||
{
|
||||
double fResult;
|
||||
if( std::isnan( value ) || std::isinf( value ) )
|
||||
::rtl::math::setNan( & fResult );
|
||||
else
|
||||
fResult = pow( value, m_fExponent );
|
||||
return fResult;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return std::pow( value, m_fExponent );
|
||||
}
|
||||
|
||||
uno::Reference< XScaling > SAL_CALL
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
#include <ErrorBar.hxx>
|
||||
#include <unonames.hxx>
|
||||
|
||||
#include <rtl/math.hxx>
|
||||
#include <rtl/ustrbuf.hxx>
|
||||
#include <comphelper/processfactory.hxx>
|
||||
#include <com/sun/star/chart2/XDataSeries.hpp>
|
||||
@@ -33,6 +32,9 @@
|
||||
#include <com/sun/star/chart/ErrorBarStyle.hpp>
|
||||
#include <tools/diagnose_ex.h>
|
||||
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
|
||||
using ::com::sun::star::uno::Sequence;
|
||||
using ::com::sun::star::uno::Reference;
|
||||
using namespace ::com::sun::star;
|
||||
@@ -60,16 +62,11 @@ double lcl_getVariance( const Sequence< double > & rData, sal_Int32 & rOutValidC
|
||||
}
|
||||
}
|
||||
|
||||
double fResult;
|
||||
if( rOutValidCount == 0 )
|
||||
::rtl::math::setNan( & fResult );
|
||||
else
|
||||
{
|
||||
const double fN = static_cast< double >( rOutValidCount );
|
||||
fResult = (fQuadSum - fSum*fSum/fN) / fN;
|
||||
}
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
return fResult;
|
||||
const double fN = static_cast< double >( rOutValidCount );
|
||||
return (fQuadSum - fSum*fSum/fN) / fN;
|
||||
}
|
||||
|
||||
Reference< chart2::data::XLabeledDataSequence > lcl_getErrorBarLabeledSequence(
|
||||
@@ -183,20 +180,11 @@ double StatisticsHelper::getStandardError( const Sequence< double > & rData )
|
||||
{
|
||||
sal_Int32 nValCount;
|
||||
double fVar = lcl_getVariance( rData, nValCount );
|
||||
double fResult;
|
||||
|
||||
if( nValCount == 0 ||
|
||||
std::isnan( fVar ))
|
||||
{
|
||||
::rtl::math::setNan( & fResult );
|
||||
}
|
||||
else
|
||||
{
|
||||
// standard-deviation / sqrt(n)
|
||||
fResult = sqrt( fVar ) / sqrt( double(nValCount) );
|
||||
}
|
||||
|
||||
return fResult;
|
||||
if( nValCount == 0 || std::isnan( fVar ))
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
// standard-deviation / sqrt(n)
|
||||
return sqrt( fVar ) / sqrt( double(nValCount) );
|
||||
}
|
||||
|
||||
Reference< chart2::data::XLabeledDataSequence > StatisticsHelper::getErrorLabeledDataSequenceFromDataSource(
|
||||
@@ -238,8 +226,7 @@ double StatisticsHelper::getErrorFromDataSource(
|
||||
bool bPositiveValue,
|
||||
bool bYError /* = true */ )
|
||||
{
|
||||
double fResult = 0.0;
|
||||
::rtl::math::setNan( & fResult );
|
||||
double fResult = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
Reference< chart2::data::XDataSequence > xValues(
|
||||
StatisticsHelper::getErrorDataSequenceFromDataSource( xDataSource, bPositiveValue, bYError ));
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
#include <rtl/math.hxx>
|
||||
#include <cppuhelper/supportsservice.hxx>
|
||||
|
||||
#include <limits>
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
@@ -55,7 +57,7 @@ double SAL_CALL DateScaling::doScaling( double value )
|
||||
{
|
||||
double fResult(value);
|
||||
if( std::isnan( value ) || std::isinf( value ) )
|
||||
::rtl::math::setNan( & fResult );
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
else
|
||||
{
|
||||
Date aDate(m_aNullDate);
|
||||
@@ -131,7 +133,7 @@ double SAL_CALL InverseDateScaling::doScaling( double value )
|
||||
{
|
||||
double fResult(value);
|
||||
if( std::isnan( value ) || std::isinf( value ) )
|
||||
::rtl::math::setNan( & fResult );
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
else
|
||||
{
|
||||
switch( m_nTimeUnit )
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
|
||||
#include <rtl/math.hxx>
|
||||
|
||||
#include <limits>
|
||||
|
||||
namespace chart
|
||||
{
|
||||
using namespace ::com::sun::star;
|
||||
@@ -56,7 +58,7 @@ double MergedMinimumAndMaximumSupplier::getMinimumX()
|
||||
fGlobalExtremum=fLocalExtremum;
|
||||
}
|
||||
if(std::isinf(fGlobalExtremum))
|
||||
::rtl::math::setNan(&fGlobalExtremum);
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return fGlobalExtremum;
|
||||
}
|
||||
|
||||
@@ -71,7 +73,7 @@ double MergedMinimumAndMaximumSupplier::getMaximumX()
|
||||
fGlobalExtremum=fLocalExtremum;
|
||||
}
|
||||
if(std::isinf(fGlobalExtremum))
|
||||
::rtl::math::setNan(&fGlobalExtremum);
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return fGlobalExtremum;
|
||||
}
|
||||
|
||||
@@ -86,7 +88,7 @@ double MergedMinimumAndMaximumSupplier::getMinimumYInRange( double fMinimumX, do
|
||||
fGlobalExtremum=fLocalExtremum;
|
||||
}
|
||||
if(std::isinf(fGlobalExtremum))
|
||||
::rtl::math::setNan(&fGlobalExtremum);
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return fGlobalExtremum;
|
||||
}
|
||||
|
||||
@@ -101,7 +103,7 @@ double MergedMinimumAndMaximumSupplier::getMaximumYInRange( double fMinimumX, do
|
||||
fGlobalExtremum=fLocalExtremum;
|
||||
}
|
||||
if(std::isinf(fGlobalExtremum))
|
||||
::rtl::math::setNan(&fGlobalExtremum);
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return fGlobalExtremum;
|
||||
}
|
||||
|
||||
@@ -116,7 +118,7 @@ double MergedMinimumAndMaximumSupplier::getMinimumZ()
|
||||
fGlobalExtremum=fLocalExtremum;
|
||||
}
|
||||
if(std::isinf(fGlobalExtremum))
|
||||
::rtl::math::setNan(&fGlobalExtremum);
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return fGlobalExtremum;
|
||||
}
|
||||
|
||||
@@ -131,7 +133,7 @@ double MergedMinimumAndMaximumSupplier::getMaximumZ()
|
||||
fGlobalExtremum=fLocalExtremum;
|
||||
}
|
||||
if(std::isinf(fGlobalExtremum))
|
||||
::rtl::math::setNan(&fGlobalExtremum);
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return fGlobalExtremum;
|
||||
}
|
||||
|
||||
|
||||
@@ -109,8 +109,8 @@ ScaleAutomatism::ScaleAutomatism( const ScaleData& rSourceScale, const Date& rNu
|
||||
|
||||
void ScaleAutomatism::resetValueRange( )
|
||||
{
|
||||
::rtl::math::setNan( &m_fValueMinimum );
|
||||
::rtl::math::setNan( &m_fValueMaximum );
|
||||
m_fValueMinimum = std::numeric_limits<double>::quiet_NaN();
|
||||
m_fValueMaximum = std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
void ScaleAutomatism::expandValueRange( double fMinimum, double fMaximum )
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
#include <basegfx/numeric/ftools.hxx>
|
||||
|
||||
#include <algorithm>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
|
||||
using namespace ::com::sun::star;
|
||||
@@ -1109,18 +1110,15 @@ double VCartesianAxis::getLabelLineIntersectionValue() const
|
||||
|
||||
double VCartesianAxis::getExtraLineIntersectionValue() const
|
||||
{
|
||||
double fNan;
|
||||
rtl::math::setNan(&fNan);
|
||||
|
||||
if( !m_aAxisProperties.m_pfExrtaLinePositionAtOtherAxis )
|
||||
return fNan;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
double fMin = (m_nDimensionIndex==1) ? m_pPosHelper->getLogicMinX() : m_pPosHelper->getLogicMinY();
|
||||
double fMax = (m_nDimensionIndex==1) ? m_pPosHelper->getLogicMaxX() : m_pPosHelper->getLogicMaxY();
|
||||
|
||||
if( *m_aAxisProperties.m_pfExrtaLinePositionAtOtherAxis <= fMin
|
||||
|| *m_aAxisProperties.m_pfExrtaLinePositionAtOtherAxis >= fMax )
|
||||
return fNan;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
return *m_aAxisProperties.m_pfExrtaLinePositionAtOtherAxis;
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#include <com/sun/star/chart/DataLabelPlacement.hpp>
|
||||
#include <com/sun/star/chart/MissingValueTreatment.hpp>
|
||||
|
||||
#include <rtl/math.hxx>
|
||||
#include <sal/log.hxx>
|
||||
#include <osl/diagnose.h>
|
||||
|
||||
@@ -45,10 +44,11 @@
|
||||
#include <com/sun/star/beans/XPropertySet.hpp>
|
||||
#include <officecfg/Office/Compatibility.hxx>
|
||||
|
||||
#include <limits>
|
||||
|
||||
namespace chart
|
||||
{
|
||||
using namespace ::com::sun::star;
|
||||
using namespace ::rtl::math;
|
||||
using namespace ::com::sun::star::chart2;
|
||||
|
||||
AreaChart::AreaChart( const uno::Reference<XChartType>& xChartTypeModel
|
||||
@@ -589,10 +589,10 @@ struct FormerPoint
|
||||
: m_fX(fX), m_fY(fY), m_fZ(fZ)
|
||||
{}
|
||||
FormerPoint()
|
||||
: m_fX(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fY(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fZ(std::numeric_limits<double>::quiet_NaN())
|
||||
{
|
||||
::rtl::math::setNan( &m_fX );
|
||||
::rtl::math::setNan( &m_fY );
|
||||
::rtl::math::setNan( &m_fZ );
|
||||
}
|
||||
|
||||
double m_fX;
|
||||
|
||||
@@ -394,11 +394,11 @@ struct FormerBarPoint
|
||||
: m_fX(fX), m_fUpperY(fUpperY), m_fLowerY(fLowerY), m_fZ(fZ)
|
||||
{}
|
||||
FormerBarPoint()
|
||||
: m_fX(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fUpperY(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fLowerY(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fZ(std::numeric_limits<double>::quiet_NaN())
|
||||
{
|
||||
::rtl::math::setNan( &m_fX );
|
||||
::rtl::math::setNan( &m_fUpperY );
|
||||
::rtl::math::setNan( &m_fLowerY );
|
||||
::rtl::math::setNan( &m_fZ );
|
||||
}
|
||||
|
||||
double m_fX;
|
||||
|
||||
@@ -24,16 +24,16 @@
|
||||
#include <LabelPositionHelper.hxx>
|
||||
|
||||
#include <com/sun/star/chart/DataLabelPlacement.hpp>
|
||||
#include <rtl/math.hxx>
|
||||
#include <sal/log.hxx>
|
||||
#include <osl/diagnose.h>
|
||||
#include <com/sun/star/drawing/XShapes.hpp>
|
||||
#include <com/sun/star/beans/XPropertySet.hpp>
|
||||
|
||||
#include <limits>
|
||||
|
||||
namespace chart
|
||||
{
|
||||
using namespace ::com::sun::star;
|
||||
using namespace ::rtl::math;
|
||||
using namespace ::com::sun::star::chart2;
|
||||
|
||||
BubbleChart::BubbleChart( const uno::Reference<XChartType>& xChartTypeModel
|
||||
@@ -145,10 +145,10 @@ struct FormerPoint
|
||||
: m_fX(fX), m_fY(fY), m_fZ(fZ)
|
||||
{}
|
||||
FormerPoint()
|
||||
: m_fX(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fY(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fZ(std::numeric_limits<double>::quiet_NaN())
|
||||
{
|
||||
::rtl::math::setNan( &m_fX );
|
||||
::rtl::math::setNan( &m_fY );
|
||||
::rtl::math::setNan( &m_fZ );
|
||||
}
|
||||
|
||||
double m_fX;
|
||||
|
||||
@@ -32,16 +32,16 @@
|
||||
#include <com/sun/star/chart/DataLabelPlacement.hpp>
|
||||
#include <com/sun/star/chart/MissingValueTreatment.hpp>
|
||||
|
||||
#include <rtl/math.hxx>
|
||||
#include <osl/diagnose.h>
|
||||
|
||||
#include <com/sun/star/drawing/XShapes.hpp>
|
||||
#include <officecfg/Office/Compatibility.hxx>
|
||||
|
||||
#include <limits>
|
||||
|
||||
namespace chart
|
||||
{
|
||||
using namespace ::com::sun::star;
|
||||
using namespace ::rtl::math;
|
||||
using namespace ::com::sun::star::chart2;
|
||||
|
||||
NetChart::NetChart( const uno::Reference<XChartType>& xChartTypeModel
|
||||
@@ -301,10 +301,11 @@ struct FormerPoint
|
||||
: m_fX(fX), m_fY(fY), m_fZ(fZ)
|
||||
{}
|
||||
FormerPoint()
|
||||
: m_fX(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fY(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fZ(std::numeric_limits<double>::quiet_NaN())
|
||||
|
||||
{
|
||||
::rtl::math::setNan( &m_fX );
|
||||
::rtl::math::setNan( &m_fY );
|
||||
::rtl::math::setNan( &m_fZ );
|
||||
}
|
||||
|
||||
double m_fX;
|
||||
|
||||
@@ -34,12 +34,12 @@
|
||||
#include <com/sun/star/drawing/XShape.hpp>
|
||||
#include <com/sun/star/drawing/XShapes.hpp>
|
||||
#include <com/sun/star/beans/XPropertySet.hpp>
|
||||
#include <rtl/math.hxx>
|
||||
#include <sal/log.hxx>
|
||||
#include <osl/diagnose.h>
|
||||
#include <tools/diagnose_ex.h>
|
||||
#include <tools/helpers.hxx>
|
||||
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
|
||||
using namespace ::com::sun::star;
|
||||
@@ -198,9 +198,8 @@ PieChart::PieChart( const uno::Reference<XChartType>& xChartTypeModel
|
||||
, m_pPosHelper( new PiePositionHelper( (m_nDimension==3) ? 0.0 : 90.0 ) )
|
||||
, m_bUseRings(false)
|
||||
, m_bSizeExcludesLabelsAndExplodedSegments(bExcludingPositioning)
|
||||
, m_fMaxOffset(std::numeric_limits<double>::quiet_NaN())
|
||||
{
|
||||
::rtl::math::setNan(&m_fMaxOffset);
|
||||
|
||||
PlotterBase::m_pPosHelper = m_pPosHelper.get();
|
||||
VSeriesPlotter::m_pMainPosHelper = m_pPosHelper.get();
|
||||
m_pPosHelper->m_fRadiusOffset = 0.0;
|
||||
@@ -711,7 +710,7 @@ void PieChart::createShapes()
|
||||
nExplodeableSlot = m_aZSlots.front().size()-1;
|
||||
|
||||
m_aLabelInfoList.clear();
|
||||
::rtl::math::setNan(&m_fMaxOffset);
|
||||
m_fMaxOffset = std::numeric_limits<double>::quiet_NaN();
|
||||
sal_Int32 n3DRelativeHeight = 100;
|
||||
uno::Reference< beans::XPropertySet > xPropertySet( m_xChartTypeModel, uno::UNO_QUERY );
|
||||
if ( (m_nDimension==3) && xPropertySet.is())
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <VSeriesPlotter.hxx>
|
||||
#include <BaseGFXHelper.hxx>
|
||||
@@ -808,8 +809,7 @@ double lcl_getErrorBarLogicLength(
|
||||
bool bPositive,
|
||||
bool bYError )
|
||||
{
|
||||
double fResult;
|
||||
::rtl::math::setNan( & fResult );
|
||||
double fResult = std::numeric_limits<double>::quiet_NaN();
|
||||
try
|
||||
{
|
||||
switch( nErrorBarStyle )
|
||||
@@ -1726,7 +1726,7 @@ double VSeriesPlotter::getMinimumYInRange( double fMinimumX, double fMaximumX, s
|
||||
}
|
||||
}
|
||||
if(std::isinf(fMinimum))
|
||||
::rtl::math::setNan(&fMinimum);
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return fMinimum;
|
||||
}
|
||||
|
||||
@@ -1759,7 +1759,7 @@ double VSeriesPlotter::getMaximumYInRange( double fMinimumX, double fMaximumX, s
|
||||
}
|
||||
}
|
||||
if(std::isinf(fMaximum))
|
||||
::rtl::math::setNan(&fMaximum);
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return fMaximum;
|
||||
}
|
||||
|
||||
@@ -1833,9 +1833,9 @@ void VSeriesPlotter::getMinimumAndMaximumX( double& rfMinimum, double& rfMaximum
|
||||
}
|
||||
}
|
||||
if(std::isinf(rfMinimum))
|
||||
::rtl::math::setNan(&rfMinimum);
|
||||
rfMinimum = std::numeric_limits<double>::quiet_NaN();
|
||||
if(std::isinf(rfMaximum))
|
||||
::rtl::math::setNan(&rfMaximum);
|
||||
rfMaximum = std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
void VSeriesPlotter::getMinimumAndMaximumYInContinuousXRange( double& rfMinY, double& rfMaxY, double fMinX, double fMaxX, sal_Int32 nAxisIndex ) const
|
||||
@@ -1856,9 +1856,9 @@ void VSeriesPlotter::getMinimumAndMaximumYInContinuousXRange( double& rfMinY, do
|
||||
}
|
||||
}
|
||||
if(std::isinf(rfMinY))
|
||||
::rtl::math::setNan(&rfMinY);
|
||||
rfMinY = std::numeric_limits<double>::quiet_NaN();
|
||||
if(std::isinf(rfMaxY))
|
||||
::rtl::math::setNan(&rfMaxY);
|
||||
rfMaxY = std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
sal_Int32 VSeriesPlotter::getPointCount() const
|
||||
@@ -1944,9 +1944,9 @@ void VDataSeriesGroup::getMinimumAndMaximumX( double& rfMinimum, double& rfMaxim
|
||||
}
|
||||
}
|
||||
if(std::isinf(rfMinimum))
|
||||
::rtl::math::setNan(&rfMinimum);
|
||||
rfMinimum = std::numeric_limits<double>::quiet_NaN();
|
||||
if(std::isinf(rfMaximum))
|
||||
::rtl::math::setNan(&rfMaximum);
|
||||
rfMaximum = std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
namespace {
|
||||
@@ -2007,14 +2007,15 @@ public:
|
||||
|
||||
void getTotalRange(double& rfMin, double& rfMax) const
|
||||
{
|
||||
rtl::math::setNan(&rfMin);
|
||||
rtl::math::setNan(&rfMax);
|
||||
|
||||
TotalStoreType aStore;
|
||||
getTotalStore(aStore);
|
||||
|
||||
if (aStore.empty())
|
||||
{
|
||||
rfMin = std::numeric_limits<double>::quiet_NaN();
|
||||
rfMax = std::numeric_limits<double>::quiet_NaN();
|
||||
return;
|
||||
}
|
||||
|
||||
TotalStoreType::const_iterator it = aStore.begin(), itEnd = aStore.end();
|
||||
rfMin = it->second.first;
|
||||
@@ -2085,8 +2086,8 @@ private:
|
||||
void VDataSeriesGroup::getMinimumAndMaximumYInContinuousXRange(
|
||||
double& rfMinY, double& rfMaxY, double fMinX, double fMaxX, sal_Int32 nAxisIndex ) const
|
||||
{
|
||||
::rtl::math::setNan(&rfMinY);
|
||||
::rtl::math::setNan(&rfMaxY);
|
||||
rfMinY = std::numeric_limits<double>::quiet_NaN();
|
||||
rfMaxY = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
if (m_aSeriesVector.empty())
|
||||
// No data series. Bail out.
|
||||
@@ -2145,12 +2146,11 @@ void VDataSeriesGroup::calculateYMinAndMaxForCategory( sal_Int32 nCategoryIndex
|
||||
return;
|
||||
}
|
||||
|
||||
double fTotalSum, fPositiveSum, fNegativeSum, fFirstPositiveY, fFirstNegativeY;
|
||||
::rtl::math::setNan( &fTotalSum );
|
||||
::rtl::math::setNan( &fPositiveSum );
|
||||
::rtl::math::setNan( &fNegativeSum );
|
||||
::rtl::math::setNan( &fFirstPositiveY );
|
||||
::rtl::math::setNan( &fFirstNegativeY );
|
||||
double fTotalSum = std::numeric_limits<double>::quiet_NaN();
|
||||
double fPositiveSum = std::numeric_limits<double>::quiet_NaN();
|
||||
double fNegativeSum = std::numeric_limits<double>::quiet_NaN();
|
||||
double fFirstPositiveY = std::numeric_limits<double>::quiet_NaN();
|
||||
double fFirstNegativeY = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
if( bSeparateStackingForDifferentSigns )
|
||||
{
|
||||
@@ -2233,8 +2233,8 @@ void VDataSeriesGroup::calculateYMinAndMaxForCategoryRange(
|
||||
nEndCategoryIndex=0;
|
||||
for( sal_Int32 nCatIndex = nStartCategoryIndex; nCatIndex <= nEndCategoryIndex; nCatIndex++ )
|
||||
{
|
||||
double fMinimumY; ::rtl::math::setNan(&fMinimumY);
|
||||
double fMaximumY; ::rtl::math::setNan(&fMaximumY);
|
||||
double fMinimumY = std::numeric_limits<double>::quiet_NaN();
|
||||
double fMaximumY = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
calculateYMinAndMaxForCategory( nCatIndex
|
||||
, bSeparateStackingForDifferentSigns, fMinimumY, fMaximumY, nAxisIndex );
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <VDataSeries.hxx>
|
||||
#include <ObjectIdentifier.hxx>
|
||||
@@ -67,12 +68,7 @@ double VDataSequence::getValue( sal_Int32 index ) const
|
||||
{
|
||||
if( 0<=index && index<Doubles.getLength() )
|
||||
return Doubles[index];
|
||||
else
|
||||
{
|
||||
double fNan;
|
||||
::rtl::math::setNan( & fNan );
|
||||
return fNan;
|
||||
}
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
sal_Int32 VDataSequence::detectNumberFormatKey( sal_Int32 index ) const
|
||||
@@ -152,8 +148,8 @@ VDataSeries::VDataSeries( const uno::Reference< XDataSeries >& xDataSeries )
|
||||
|
||||
, m_pValueSequenceForDataLabelNumberFormatDetection(&m_aValues_Y)
|
||||
|
||||
, m_fXMeanValue(1.0)
|
||||
, m_fYMeanValue(1.0)
|
||||
, m_fXMeanValue(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_fYMeanValue(std::numeric_limits<double>::quiet_NaN())
|
||||
|
||||
, m_aAttributedDataPointIndexList()
|
||||
|
||||
@@ -171,9 +167,6 @@ VDataSeries::VDataSeries( const uno::Reference< XDataSeries >& xDataSeries )
|
||||
, mpOldSeries(nullptr)
|
||||
, mnPercent(0.0)
|
||||
{
|
||||
::rtl::math::setNan( & m_fXMeanValue );
|
||||
::rtl::math::setNan( & m_fYMeanValue );
|
||||
|
||||
uno::Reference<data::XDataSource> xDataSource( xDataSeries, uno::UNO_QUERY );
|
||||
|
||||
uno::Sequence< uno::Reference<
|
||||
@@ -272,14 +265,14 @@ void VDataSeries::doSortByXValues()
|
||||
|
||||
//prepare a vector for sorting
|
||||
std::vector< std::vector< double > > aTmp;//outer vector are points, inner vector are the different values of the point
|
||||
double fNan;
|
||||
::rtl::math::setNan( & fNan );
|
||||
sal_Int32 nPointIndex = 0;
|
||||
for( nPointIndex=0; nPointIndex < m_nPointCount; nPointIndex++ )
|
||||
{
|
||||
aTmp.push_back(
|
||||
{ ((nPointIndex < m_aValues_X.Doubles.getLength()) ? m_aValues_X.Doubles[nPointIndex] : fNan),
|
||||
((nPointIndex < m_aValues_Y.Doubles.getLength()) ? m_aValues_Y.Doubles[nPointIndex] : fNan)
|
||||
{ ((nPointIndex < m_aValues_X.Doubles.getLength()) ? m_aValues_X.Doubles[nPointIndex]
|
||||
: std::numeric_limits<double>::quiet_NaN()),
|
||||
((nPointIndex < m_aValues_Y.Doubles.getLength()) ? m_aValues_Y.Doubles[nPointIndex]
|
||||
: std::numeric_limits<double>::quiet_NaN())
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -435,7 +428,7 @@ void VDataSeries::setAttachedAxisIndex( sal_Int32 nAttachedAxisIndex )
|
||||
|
||||
double VDataSeries::getXValue( sal_Int32 index ) const
|
||||
{
|
||||
double fRet = 0.0;
|
||||
double fRet = std::numeric_limits<double>::quiet_NaN();
|
||||
if(m_aValues_X.is())
|
||||
{
|
||||
if( 0<=index && index<m_aValues_X.getLength() )
|
||||
@@ -447,16 +440,12 @@ double VDataSeries::getXValue( sal_Int32 index ) const
|
||||
fRet = nOldVal + (fRet - nOldVal) * mnPercent;
|
||||
}
|
||||
}
|
||||
else
|
||||
::rtl::math::setNan( &fRet );
|
||||
}
|
||||
else
|
||||
{
|
||||
// #i70133# always return correct X position - needed for short data series
|
||||
if( 0<=index /*&& index < m_nPointCount*/ )
|
||||
fRet = index+1;//first category (index 0) matches with real number 1.0
|
||||
else
|
||||
::rtl::math::setNan( &fRet );
|
||||
}
|
||||
lcl_maybeReplaceNanWithZero( fRet, getMissingValueTreatment() );
|
||||
return fRet;
|
||||
@@ -464,7 +453,7 @@ double VDataSeries::getXValue( sal_Int32 index ) const
|
||||
|
||||
double VDataSeries::getYValue( sal_Int32 index ) const
|
||||
{
|
||||
double fRet = 0.0;
|
||||
double fRet = std::numeric_limits<double>::quiet_NaN();
|
||||
if(m_aValues_Y.is())
|
||||
{
|
||||
if( 0<=index && index<m_aValues_Y.getLength() )
|
||||
@@ -476,16 +465,12 @@ double VDataSeries::getYValue( sal_Int32 index ) const
|
||||
fRet = nOldVal + (fRet - nOldVal) * mnPercent;
|
||||
}
|
||||
}
|
||||
else
|
||||
::rtl::math::setNan( &fRet );
|
||||
}
|
||||
else
|
||||
{
|
||||
// #i70133# always return correct X position - needed for short data series
|
||||
if( 0<=index /*&& index < m_nPointCount*/ )
|
||||
fRet = index+1;//first category (index 0) matches with real number 1.0
|
||||
else
|
||||
::rtl::math::setNan( &fRet );
|
||||
}
|
||||
lcl_maybeReplaceNanWithZero( fRet, getMissingValueTreatment() );
|
||||
return fRet;
|
||||
@@ -493,8 +478,8 @@ double VDataSeries::getYValue( sal_Int32 index ) const
|
||||
|
||||
void VDataSeries::getMinMaxXValue(double& fMin, double& fMax) const
|
||||
{
|
||||
rtl::math::setNan( &fMax );
|
||||
rtl::math::setNan( &fMin );
|
||||
fMax = std::numeric_limits<double>::quiet_NaN();
|
||||
fMin = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
uno::Sequence< double > aValuesX = getAllX();
|
||||
|
||||
@@ -701,7 +686,7 @@ double VDataSeries::getMinimumofAllDifferentYValues( sal_Int32 index ) const
|
||||
}
|
||||
|
||||
if( std::isinf(fMin) )
|
||||
::rtl::math::setNan(&fMin);
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
return fMin;
|
||||
}
|
||||
@@ -737,7 +722,7 @@ double VDataSeries::getMaximumofAllDifferentYValues( sal_Int32 index ) const
|
||||
}
|
||||
|
||||
if( std::isinf(fMax) )
|
||||
::rtl::math::setNan(&fMax);
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
return fMax;
|
||||
}
|
||||
@@ -1112,11 +1097,7 @@ double VDataSeries::getValueByProperty( sal_Int32 nIndex, const OUString& rPropN
|
||||
{
|
||||
auto const itr = m_PropertyMap.find(rPropName);
|
||||
if (itr == m_PropertyMap.end())
|
||||
{
|
||||
double fNan;
|
||||
::rtl::math::setNan( &fNan );
|
||||
return fNan;
|
||||
}
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
const VDataSequence* pData = &itr->second;
|
||||
double fValue = pData->getValue(nIndex);
|
||||
|
||||
@@ -738,11 +738,7 @@ void DatabaseDataProvider::impl_fillInternalDataProvider_throw(bool _bHasCategor
|
||||
|
||||
aValue.fill( column.nResultSetPosition, column.nDataType, xRow );
|
||||
if ( aValue.isNull() )
|
||||
{
|
||||
double nValue;
|
||||
::rtl::math::setNan( &nValue );
|
||||
aRow.push_back( nValue );
|
||||
}
|
||||
aRow.push_back( std::numeric_limits<double>::quiet_NaN() );
|
||||
else
|
||||
aRow.push_back( aValue.getDouble() );
|
||||
}
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
#include <sal/mathconf.h>
|
||||
#include <sal/types.h>
|
||||
|
||||
#include <limits>
|
||||
|
||||
// Store as 16-bits, since error values are stored in tokens and formula results,
|
||||
// and that can matter
|
||||
enum class FormulaError : sal_uInt16
|
||||
@@ -96,7 +98,7 @@ enum class FormulaError : sal_uInt16
|
||||
inline double CreateDoubleError( FormulaError nErr )
|
||||
{
|
||||
sal_math_Double smVal;
|
||||
::rtl::math::setNan( &smVal.value );
|
||||
smVal.value = std::numeric_limits<double>::quiet_NaN();
|
||||
smVal.nan_parts.fraction_lo = static_cast<unsigned>(nErr);
|
||||
return smVal.value;
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <drawingml/chart/typegroupconverter.hxx>
|
||||
|
||||
#include <cstdio>
|
||||
#include <limits>
|
||||
|
||||
#include <com/sun/star/awt/Gradient.hpp>
|
||||
#include <com/sun/star/chart/XChartDocument.hpp>
|
||||
@@ -104,7 +105,6 @@
|
||||
#include <set>
|
||||
#include <unordered_set>
|
||||
|
||||
#include <rtl/math.hxx>
|
||||
#include <o3tl/temporary.hxx>
|
||||
#include <o3tl/sorted_vector.hxx>
|
||||
|
||||
@@ -416,8 +416,6 @@ static void lcl_fillCategoriesIntoStringVector(
|
||||
|
||||
static ::std::vector< double > lcl_getAllValuesFromSequence( const Reference< chart2::data::XDataSequence > & xSeq )
|
||||
{
|
||||
double fNan = 0.0;
|
||||
::rtl::math::setNan( &fNan );
|
||||
::std::vector< double > aResult;
|
||||
|
||||
Reference< chart2::data::XNumericalDataSequence > xNumSeq( xSeq, uno::UNO_QUERY );
|
||||
@@ -429,7 +427,7 @@ static ::std::vector< double > lcl_getAllValuesFromSequence( const Reference< ch
|
||||
else if( xSeq.is())
|
||||
{
|
||||
Sequence< uno::Any > aAnies( xSeq->getData());
|
||||
aResult.resize( aAnies.getLength(), fNan );
|
||||
aResult.resize( aAnies.getLength(), std::numeric_limits<double>::quiet_NaN() );
|
||||
for( sal_Int32 i=0; i<aAnies.getLength(); ++i )
|
||||
aAnies[i] >>= aResult[i];
|
||||
}
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
#include <svl/lstner.hxx>
|
||||
#include <svl/itemprop.hxx>
|
||||
#include <cppuhelper/implbase.hxx>
|
||||
#include <rtl/math.hxx>
|
||||
|
||||
#include <limits>
|
||||
|
||||
class ScDocument;
|
||||
|
||||
@@ -44,12 +45,11 @@ struct ValueAndFormat
|
||||
sal_uInt32 m_nNumberFormat;
|
||||
|
||||
explicit ValueAndFormat()
|
||||
: m_fValue(0.0)
|
||||
: m_fValue(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_aString()
|
||||
, m_eType(ValueType::Empty)
|
||||
, m_nNumberFormat(0)
|
||||
{
|
||||
rtl::math::setNan(&m_fValue);
|
||||
}
|
||||
|
||||
explicit ValueAndFormat(double fValue, sal_uInt32 nNumberFormat)
|
||||
@@ -60,12 +60,11 @@ struct ValueAndFormat
|
||||
{}
|
||||
|
||||
explicit ValueAndFormat(OUString const & rString)
|
||||
: m_fValue(0.0)
|
||||
: m_fValue(std::numeric_limits<double>::quiet_NaN())
|
||||
, m_aString(rString)
|
||||
, m_eType(ValueType::String)
|
||||
, m_nNumberFormat(0)
|
||||
{
|
||||
rtl::math::setNan(&m_fValue);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -90,6 +90,7 @@
|
||||
#include <sfx2/sfxsids.hrc>
|
||||
|
||||
#include <iostream>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
@@ -2143,8 +2144,7 @@ void Test::testMatrix()
|
||||
pMat->PutDouble(2.3, 2, 1);
|
||||
pMat->PutDouble(-20, 2, 2);
|
||||
|
||||
double fNaN;
|
||||
rtl::math::setNan(&fNaN);
|
||||
static const double fNaN = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
std::vector<double> aDoubles;
|
||||
pMat->GetDoubleArray(aDoubles);
|
||||
|
||||
@@ -64,8 +64,6 @@
|
||||
#include <memory>
|
||||
#include <numeric>
|
||||
|
||||
#include <math.h>
|
||||
|
||||
// factor from font size to optimal cell height (text width)
|
||||
#define SC_ROT_BREAK_FACTOR 6
|
||||
|
||||
@@ -2472,8 +2470,6 @@ bool appendToBlock(
|
||||
{
|
||||
svl::SharedStringPool& rPool = pDoc->GetSharedStringPool();
|
||||
size_t nLenRemain = nArrayLen - nPos;
|
||||
double fNan;
|
||||
rtl::math::setNan(&fNan);
|
||||
|
||||
for (sc::CellStoreType::iterator it = _it; it != itEnd; ++it)
|
||||
{
|
||||
@@ -2627,9 +2623,6 @@ copyFirstFormulaBlock(
|
||||
sc::FormulaGroupContext& rCxt, const sc::CellStoreType::iterator& itBlk, size_t nArrayLen,
|
||||
SCTAB nTab, SCCOL nCol )
|
||||
{
|
||||
double fNan;
|
||||
rtl::math::setNan(&fNan);
|
||||
|
||||
size_t nLen = std::min(itBlk->size, nArrayLen);
|
||||
|
||||
sc::formula_block::iterator it = sc::formula_block::begin(*itBlk->data);
|
||||
@@ -2661,7 +2654,8 @@ copyFirstFormulaBlock(
|
||||
if (!pNumArray)
|
||||
{
|
||||
rCxt.m_NumArrays.push_back(
|
||||
std::make_unique<sc::FormulaGroupContext::NumArrayType>(nArrayLen, fNan));
|
||||
std::make_unique<sc::FormulaGroupContext::NumArrayType>(nArrayLen,
|
||||
std::numeric_limits<double>::quiet_NaN()));
|
||||
pNumArray = rCxt.m_NumArrays.back().get();
|
||||
}
|
||||
|
||||
@@ -2741,9 +2735,6 @@ formula::VectorRefArray ScColumn::FetchVectorRefArray( SCROW nRow1, SCROW nRow2
|
||||
// So temporarily block the discarding.
|
||||
ProtectFormulaGroupContext protectContext(&GetDoc());
|
||||
|
||||
double fNan;
|
||||
rtl::math::setNan(&fNan);
|
||||
|
||||
// We need to fetch all cell values from row 0 to nRow2 for caching purposes.
|
||||
sc::CellStoreType::iterator itBlk = maCells.begin();
|
||||
switch (itBlk->type)
|
||||
@@ -2763,7 +2754,8 @@ formula::VectorRefArray ScColumn::FetchVectorRefArray( SCROW nRow1, SCROW nRow2
|
||||
rCxt.m_NumArrays.push_back(
|
||||
std::make_unique<sc::FormulaGroupContext::NumArrayType>(it, itEnd));
|
||||
sc::FormulaGroupContext::NumArrayType& rArray = *rCxt.m_NumArrays.back();
|
||||
rArray.resize(nRow2+1, fNan); // allocate to the requested length.
|
||||
// allocate to the requested length.
|
||||
rArray.resize(nRow2+1, std::numeric_limits<double>::quiet_NaN());
|
||||
|
||||
pColArray = rCxt.setCachedColArray(nTab, nCol, &rArray, nullptr);
|
||||
if (!pColArray)
|
||||
@@ -2877,7 +2869,8 @@ formula::VectorRefArray ScColumn::FetchVectorRefArray( SCROW nRow1, SCROW nRow2
|
||||
{
|
||||
// Fill the whole length with NaN's.
|
||||
rCxt.m_NumArrays.push_back(
|
||||
std::make_unique<sc::FormulaGroupContext::NumArrayType>(nRow2+1, fNan));
|
||||
std::make_unique<sc::FormulaGroupContext::NumArrayType>(nRow2+1,
|
||||
std::numeric_limits<double>::quiet_NaN()));
|
||||
sc::FormulaGroupContext::NumArrayType& rArray = *rCxt.m_NumArrays.back();
|
||||
pColArray = rCxt.setCachedColArray(nTab, nCol, &rArray, nullptr);
|
||||
if (!pColArray)
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
#include <osl/diagnose.h>
|
||||
|
||||
#include <algorithm>
|
||||
#include <limits>
|
||||
#include <vector>
|
||||
|
||||
using ::rtl::math::approxEqual;
|
||||
@@ -745,10 +746,10 @@ bool ScDBQueryDataIterator::DataAccessMatrix::isValidQuery(SCROW nRow, const ScM
|
||||
return std::find(aResults.begin(), aResults.end(), true) != aResults.end();
|
||||
}
|
||||
|
||||
ScDBQueryDataIterator::Value::Value() :
|
||||
mnError(FormulaError::NONE), mbIsNumber(true)
|
||||
ScDBQueryDataIterator::Value::Value()
|
||||
: mfValue(std::numeric_limits<double>::quiet_NaN())
|
||||
, mnError(FormulaError::NONE), mbIsNumber(true)
|
||||
{
|
||||
::rtl::math::setNan(&mfValue);
|
||||
}
|
||||
|
||||
ScDBQueryDataIterator::ScDBQueryDataIterator(ScDocument& rDocument, const ScInterpreterContext& rContext, std::unique_ptr<ScDBQueryParamBase> pParam) :
|
||||
|
||||
@@ -1355,30 +1355,28 @@ public:
|
||||
|
||||
double ScDPObject::GetPivotData(const OUString& rDataFieldName, std::vector<sheet::DataPilotFieldFilter>& rFilters)
|
||||
{
|
||||
double fRet;
|
||||
rtl::math::setNan(&fRet);
|
||||
if (!mbEnableGetPivotData)
|
||||
return fRet;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
CreateObjects();
|
||||
|
||||
std::vector<const ScDPSaveDimension*> aDataDims;
|
||||
pSaveData->GetAllDimensionsByOrientation(sheet::DataPilotFieldOrientation_DATA, aDataDims);
|
||||
if (aDataDims.empty())
|
||||
return fRet;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
std::vector<const ScDPSaveDimension*>::iterator it = std::find_if(
|
||||
aDataDims.begin(), aDataDims.end(),
|
||||
FindByName(ScGlobal::getCharClassPtr()->uppercase(rDataFieldName)));
|
||||
|
||||
if (it == aDataDims.end())
|
||||
return fRet;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
size_t nDataIndex = std::distance(aDataDims.begin(), it);
|
||||
|
||||
uno::Reference<sheet::XDataPilotResults> xDPResults(xSource, uno::UNO_QUERY);
|
||||
if (!xDPResults.is())
|
||||
return fRet;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
// Dimensions must be sorted in order of appearance, and row dimensions
|
||||
// must come before column dimensions.
|
||||
@@ -1391,7 +1389,7 @@ double ScDPObject::GetPivotData(const OUString& rDataFieldName, std::vector<shee
|
||||
|
||||
uno::Sequence<double> aRes = xDPResults->getFilteredResults(aFilters);
|
||||
if (static_cast<sal_Int32>(nDataIndex) >= aRes.getLength())
|
||||
return fRet;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
return aRes[nDataIndex];
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
#include <com/sun/star/sheet/XMembersAccess.hpp>
|
||||
#include <com/sun/star/sheet/XMembersSupplier.hpp>
|
||||
|
||||
#include <limits>
|
||||
#include <string_view>
|
||||
#include <vector>
|
||||
|
||||
@@ -486,9 +487,7 @@ uno::Sequence<sheet::MemberResult> getVisiblePageMembersAsResults( const uno::Re
|
||||
if (bVisible)
|
||||
{
|
||||
/* TODO: any numeric value to obtain? */
|
||||
double fValue;
|
||||
rtl::math::setNan(&fValue);
|
||||
aRes.emplace_back(rName, aCaption, 0, fValue);
|
||||
aRes.emplace_back(rName, aCaption, 0, std::numeric_limits<double>::quiet_NaN());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,13 +11,14 @@
|
||||
#include <global.hxx>
|
||||
|
||||
#include <unotools/charclass.hxx>
|
||||
#include <rtl/math.hxx>
|
||||
#include <sal/log.hxx>
|
||||
#include <o3tl/hash_combine.hxx>
|
||||
|
||||
#include <com/sun/star/sheet/DataPilotFieldFilter.hpp>
|
||||
#include <com/sun/star/uno/Sequence.hxx>
|
||||
|
||||
#include <limits>
|
||||
|
||||
using namespace com::sun::star;
|
||||
using namespace std;
|
||||
|
||||
@@ -171,7 +172,7 @@ void ScDPResultTree::add(
|
||||
else
|
||||
{
|
||||
// This name pair already exists. Set the value to NaN.
|
||||
rtl::math::setNan(&it->second);
|
||||
it->second = std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -259,9 +260,7 @@ double ScDPResultTree::getLeafResult(const css::sheet::DataPilotFieldFilter& rFi
|
||||
return it->second;
|
||||
|
||||
// Not found. Return an NaN.
|
||||
double fNan;
|
||||
rtl::math::setNan(&fNan);
|
||||
return fNan;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
#if DEBUG_PIVOT_TABLE
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
#include <math.h>
|
||||
#include <float.h>
|
||||
#include <algorithm>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <unordered_map>
|
||||
|
||||
@@ -1335,8 +1336,7 @@ void ScDPResultMember::FillMemberResults(
|
||||
OSL_ENSURE( rPos+nSize <= pSequences->getLength(), "bumm" );
|
||||
|
||||
bool bIsNumeric = false;
|
||||
double fValue;
|
||||
rtl::math::setNan(&fValue);
|
||||
double fValue = std::numeric_limits<double>::quiet_NaN();
|
||||
OUString aName;
|
||||
if ( pMemberName ) // if pMemberName != NULL, use instead of real member name
|
||||
{
|
||||
@@ -1498,7 +1498,7 @@ void ScDPResultMember::FillMemberResults(
|
||||
}
|
||||
}
|
||||
|
||||
rtl::math::setNan(&fValue); /* TODO: any numeric value to obtain? */
|
||||
fValue = std::numeric_limits<double>::quiet_NaN(); /* TODO: any numeric value to obtain? */
|
||||
pArray[rPos].Name = aName;
|
||||
pArray[rPos].Caption = aSubStr;
|
||||
pArray[rPos].Flags = ( pArray[rPos].Flags |
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
#include <formula/vectortoken.hxx>
|
||||
#include <scmatrix.hxx>
|
||||
#include <sal/log.hxx>
|
||||
#include <rtl/math.hxx>
|
||||
|
||||
#include <opencl/openclwrapper.hxx>
|
||||
#include <opencl/OpenCLZone.hxx>
|
||||
@@ -31,6 +30,8 @@
|
||||
#include "op_spreadsheet.hxx"
|
||||
#include "op_addin.hxx"
|
||||
|
||||
#include <limits>
|
||||
|
||||
#include <com/sun/star/sheet/FormulaLanguage.hpp>
|
||||
|
||||
// FIXME: The idea that somebody would bother to (now and then? once a year? once a month?) manually
|
||||
@@ -322,7 +323,7 @@ size_t VectorRef::Marshal( cl_kernel k, int argno, int, cl_program )
|
||||
throw OpenCLError("clEnqueueMapBuffer", err, __FILE__, __LINE__);
|
||||
|
||||
for (size_t i = 0; i < szHostBuffer / sizeof(double); i++)
|
||||
rtl::math::setNan(&pNanBuffer[i]);
|
||||
pNanBuffer[i] = std::numeric_limits<double>::quiet_NaN();
|
||||
err = clEnqueueUnmapMemObject(kEnv.mpkCmdQueue, mpClmem,
|
||||
pNanBuffer, 0, nullptr, nullptr);
|
||||
// FIXME: Is it intentional to not throw an OpenCLError even if the clEnqueueUnmapMemObject() fails?
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <sal/log.hxx>
|
||||
|
||||
#include <cstdio>
|
||||
#include <limits>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
@@ -118,11 +119,9 @@ void FormulaGroupContext::ensureNumArray( ColArray& rColArray, size_t nArrayLen
|
||||
if (rColArray.mpNumArray)
|
||||
return;
|
||||
|
||||
double fNan;
|
||||
rtl::math::setNan(&fNan);
|
||||
|
||||
m_NumArrays.push_back(
|
||||
std::make_unique<sc::FormulaGroupContext::NumArrayType>(nArrayLen, fNan));
|
||||
std::make_unique<sc::FormulaGroupContext::NumArrayType>(nArrayLen,
|
||||
std::numeric_limits<double>::quiet_NaN()));
|
||||
rColArray.mpNumArray = m_NumArrays.back().get();
|
||||
}
|
||||
|
||||
|
||||
@@ -3902,9 +3902,7 @@ double applyImplicitIntersection(const sc::RangeMatrix& rMat, const ScAddress& r
|
||||
return rMat.mpMat->GetDouble(nOffset, 0);
|
||||
}
|
||||
|
||||
double fVal;
|
||||
rtl::math::setNan(&fVal);
|
||||
return fVal;
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
// Test for Functions that evaluate an error code and directly set nGlobalError to 0
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
#include <osl/diagnose.h>
|
||||
#include <oox/helper/binaryinputstream.hxx>
|
||||
|
||||
#include <limits>
|
||||
|
||||
namespace oox::xls {
|
||||
|
||||
namespace {
|
||||
@@ -68,7 +70,7 @@ const sal_Int32 BIFF_RK_VALUEMASK = 0xFFFFFFFC;
|
||||
default: OSL_FAIL( "BiffHelper::calcDoubleFromError - unknown error code" );
|
||||
}
|
||||
sal_math_Double aMathDouble;
|
||||
::rtl::math::setNan( &aMathDouble.value );
|
||||
aMathDouble.value = std::numeric_limits<double>::quiet_NaN();
|
||||
aMathDouble.nan_parts.fraction_lo = nApiError;
|
||||
return aMathDouble.value;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <orcusinterface.hxx>
|
||||
|
||||
@@ -259,11 +260,11 @@ void ScOrcusNamedExpression::commit()
|
||||
ScOrcusFactory::CellStoreToken::CellStoreToken(const ScAddress& rPos, Type eType)
|
||||
: maPos(rPos)
|
||||
, meType(eType)
|
||||
, mfValue(std::numeric_limits<double>::quiet_NaN())
|
||||
, mnIndex1(0)
|
||||
, mnIndex2(0)
|
||||
, meGrammar(formula::FormulaGrammar::GRAM_UNSPECIFIED)
|
||||
{
|
||||
rtl::math::setNan(&mfValue);
|
||||
}
|
||||
|
||||
ScOrcusFactory::CellStoreToken::CellStoreToken(const ScAddress& rPos, double fValue)
|
||||
@@ -279,11 +280,11 @@ ScOrcusFactory::CellStoreToken::CellStoreToken(const ScAddress& rPos, double fVa
|
||||
ScOrcusFactory::CellStoreToken::CellStoreToken(const ScAddress& rPos, uint32_t nIndex)
|
||||
: maPos(rPos)
|
||||
, meType(Type::String)
|
||||
, mfValue(std::numeric_limits<double>::quiet_NaN())
|
||||
, mnIndex1(nIndex)
|
||||
, mnIndex2(0)
|
||||
, meGrammar(formula::FormulaGrammar::GRAM_UNSPECIFIED)
|
||||
{
|
||||
rtl::math::setNan(&mfValue);
|
||||
}
|
||||
|
||||
ScOrcusFactory::CellStoreToken::CellStoreToken(const ScAddress& rPos, const OUString& rFormula,
|
||||
@@ -291,11 +292,11 @@ ScOrcusFactory::CellStoreToken::CellStoreToken(const ScAddress& rPos, const OUSt
|
||||
: maPos(rPos)
|
||||
, meType(Type::Formula)
|
||||
, maStr1(rFormula)
|
||||
, mfValue(std::numeric_limits<double>::quiet_NaN())
|
||||
, mnIndex1(0)
|
||||
, mnIndex2(0)
|
||||
, meGrammar(eGrammar)
|
||||
{
|
||||
rtl::math::setNan(&mfValue);
|
||||
}
|
||||
|
||||
ScOrcusFactory::ScOrcusFactory(ScDocument& rDoc, bool bSkipDefaultStyles) :
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include "xmlcelli.hxx"
|
||||
#include "xmlimprt.hxx"
|
||||
@@ -117,7 +118,7 @@ ScXMLTableRowCellContext::ScXMLTableRowCellContext( ScXMLImport& rImport,
|
||||
ScXMLImportContext( rImport ),
|
||||
mpEditEngine(GetScImport().GetEditEngine()),
|
||||
mnCurParagraph(0),
|
||||
fValue(0.0),
|
||||
fValue(std::numeric_limits<double>::quiet_NaN()),
|
||||
nMergedRows(1),
|
||||
nMatrixRows(0),
|
||||
nRepeatedRows(nTempRepeatedRows),
|
||||
@@ -142,8 +143,6 @@ ScXMLTableRowCellContext::ScXMLTableRowCellContext( ScXMLImport& rImport,
|
||||
mbHasStyle(false),
|
||||
mbPossibleEmptyDisplay(false)
|
||||
{
|
||||
rtl::math::setNan(&fValue); // NaN by default
|
||||
|
||||
rXMLImport.GetTables().AddColumn(bTempIsCovered);
|
||||
|
||||
std::optional<OUString> xStyleName;
|
||||
|
||||
@@ -373,8 +373,8 @@ ScSolverValueDialog::ScSolverValueDialog(weld::Window* pParent)
|
||||
: GenericDialogController(pParent, "modules/scalc/ui/doubledialog.ui", "DoubleDialog")
|
||||
, m_xFrame(m_xBuilder->weld_frame("frame"))
|
||||
, m_xEdValue(m_xBuilder->weld_entry("value"))
|
||||
, m_fMaxValue(std::numeric_limits<double>::quiet_NaN())
|
||||
{
|
||||
::rtl::math::setNan(&m_fMaxValue);
|
||||
}
|
||||
|
||||
ScSolverValueDialog::~ScSolverValueDialog()
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <sal/config.h>
|
||||
|
||||
@@ -287,9 +288,6 @@ void PivotTableDataProvider::collectPivotTableData()
|
||||
return;
|
||||
const uno::Sequence<uno::Sequence<sheet::DataResult>> xDataResultsSequence = xDPResults->getResults();
|
||||
|
||||
double fNan;
|
||||
rtl::math::setNan(&fNan);
|
||||
|
||||
std::unordered_set<size_t> aValidRowIndex;
|
||||
|
||||
size_t nRowIndex = 0;
|
||||
@@ -304,7 +302,8 @@ void PivotTableDataProvider::collectPivotTableData()
|
||||
continue;
|
||||
if (rDataResult.Flags == 0 || rDataResult.Flags & css::sheet::DataResultFlags::HASDATA)
|
||||
{
|
||||
aRow.emplace_back(rDataResult.Flags ? rDataResult.Value : fNan, 0);
|
||||
aRow.emplace_back(rDataResult.Flags ? rDataResult.Value
|
||||
: std::numeric_limits<double>::quiet_NaN(), 0);
|
||||
if (rDataResult.Flags != 0) // set as valid only if we have data
|
||||
{
|
||||
bRowEmpty = false;
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
#include <comphelper/processfactory.hxx>
|
||||
#include <comphelper/sequence.hxx>
|
||||
|
||||
#include <rtl/math.hxx>
|
||||
#include <limits>
|
||||
|
||||
SC_SIMPLE_SERVICE_INFO( ScChart2DataProvider, "ScChart2DataProvider",
|
||||
"com.sun.star.chart2.data.DataProvider")
|
||||
@@ -2323,10 +2323,10 @@ void ScChart2DataSource::AddLabeledSequence(const uno::Reference < chart2::data:
|
||||
|
||||
// DataSequence ==============================================================
|
||||
|
||||
ScChart2DataSequence::Item::Item() :
|
||||
mfValue(0.0), mbIsValue(false)
|
||||
ScChart2DataSequence::Item::Item()
|
||||
: mfValue(std::numeric_limits<double>::quiet_NaN())
|
||||
, mbIsValue(false)
|
||||
{
|
||||
::rtl::math::setNan(&mfValue);
|
||||
}
|
||||
|
||||
ScChart2DataSequence::HiddenRangeListener::HiddenRangeListener(ScChart2DataSequence& rParent) :
|
||||
@@ -2907,15 +2907,12 @@ uno::Sequence< double > SAL_CALL ScChart2DataSequence::getNumericalData()
|
||||
|
||||
BuildDataCache();
|
||||
|
||||
double fNAN;
|
||||
::rtl::math::setNan(&fNAN);
|
||||
|
||||
sal_Int32 nCount = m_aDataArray.size();
|
||||
uno::Sequence<double> aSeq(nCount);
|
||||
double* pArr = aSeq.getArray();
|
||||
for (const Item& rItem : m_aDataArray)
|
||||
{
|
||||
*pArr = rItem.mbIsValue ? rItem.mfValue : fNAN;
|
||||
*pArr = rItem.mbIsValue ? rItem.mfValue : std::numeric_limits<double>::quiet_NaN();
|
||||
++pArr;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
#include <com/sun/star/util/DateTime.hpp>
|
||||
#include <com/sun/star/util/XNumberFormatTypes.hpp>
|
||||
#include <com/sun/star/util/NumberFormat.hpp>
|
||||
#include <rtl/math.hxx>
|
||||
#include <sal/log.hxx>
|
||||
#include <tools/date.hxx>
|
||||
#include <tools/time.hxx>
|
||||
@@ -37,6 +36,7 @@
|
||||
#include <i18nlangtag/languagetag.hxx>
|
||||
#include <comphelper/processfactory.hxx>
|
||||
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <unordered_map>
|
||||
|
||||
@@ -152,8 +152,7 @@ namespace svt
|
||||
|
||||
virtual double convertToDouble( Any const & i_value ) const override
|
||||
{
|
||||
double returnValue(0);
|
||||
::rtl::math::setNan( &returnValue );
|
||||
double returnValue = std::numeric_limits<double>::quiet_NaN();
|
||||
OSL_VERIFY( i_value >>= returnValue );
|
||||
return returnValue;
|
||||
}
|
||||
@@ -210,8 +209,7 @@ namespace svt
|
||||
|
||||
virtual double convertToDouble( Any const & i_value ) const override
|
||||
{
|
||||
double returnValue(0);
|
||||
::rtl::math::setNan( &returnValue );
|
||||
double returnValue = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
// extract actual UNO value
|
||||
DateTime aDateTimeValue;
|
||||
@@ -242,8 +240,7 @@ namespace svt
|
||||
|
||||
virtual double convertToDouble( Any const & i_value ) const override
|
||||
{
|
||||
double returnValue(0);
|
||||
::rtl::math::setNan( &returnValue );
|
||||
double returnValue = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
// extract
|
||||
css::util::Date aDateValue;
|
||||
@@ -270,8 +267,7 @@ namespace svt
|
||||
|
||||
virtual double convertToDouble( Any const & i_value ) const override
|
||||
{
|
||||
double returnValue(0);
|
||||
::rtl::math::setNan( &returnValue );
|
||||
double returnValue = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
// extract
|
||||
css::util::Time aTimeValue;
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <limits>
|
||||
|
||||
#include <cppuhelper/interfacecontainer.hxx>
|
||||
#include <o3tl/any.hxx>
|
||||
@@ -92,7 +93,6 @@
|
||||
#include <SwStyleNameMapper.hxx>
|
||||
#include <frmatr.hxx>
|
||||
#include <sortopt.hxx>
|
||||
#include <rtl/math.hxx>
|
||||
#include <sal/log.hxx>
|
||||
#include <editeng/frmdiritem.hxx>
|
||||
#include <comphelper/interfacecontainer2.hxx>
|
||||
@@ -885,12 +885,9 @@ double SwXCell::getValue()
|
||||
{
|
||||
SolarMutexGuard aGuard;
|
||||
// #i112652# a table cell may contain NaN as a value, do not filter that
|
||||
double fRet;
|
||||
if(IsValid() && !getString().isEmpty())
|
||||
fRet = m_pBox->GetFrameFormat()->GetTableBoxValue().GetValue();
|
||||
else
|
||||
::rtl::math::setNan( &fRet );
|
||||
return fRet;
|
||||
return m_pBox->GetFrameFormat()->GetTableBoxValue().GetValue();
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
void SwXCell::setValue(double rValue)
|
||||
@@ -1212,7 +1209,7 @@ double SwXCell::GetForcedNumericalValue() const
|
||||
}
|
||||
double fTmp;
|
||||
if (!const_cast<SwDoc*>(GetDoc())->IsNumberFormat(const_cast<SwXCell*>(this)->getString(), nFIndex, fTmp))
|
||||
::rtl::math::setNan(&fTmp);
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
return fTmp;
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <vcl/weld.hxx>
|
||||
#include <i18nlangtag/languagetag.hxx>
|
||||
#include <unotools/syslocale.hxx>
|
||||
#include <limits>
|
||||
#include <map>
|
||||
#include <rtl/math.hxx>
|
||||
#include <rtl/ustrbuf.hxx>
|
||||
@@ -859,14 +860,7 @@ void Formatter::SetValue(double dVal)
|
||||
double Formatter::GetValue()
|
||||
{
|
||||
if ( !ImplGetValue( m_dCurrentValue ) )
|
||||
{
|
||||
double dValue;
|
||||
if (m_bEnableNaN)
|
||||
::rtl::math::setNan(&dValue);
|
||||
else
|
||||
dValue = m_dDefaultValue;
|
||||
UpdateCurrentValue(dValue);
|
||||
}
|
||||
UpdateCurrentValue(m_bEnableNaN ? std::numeric_limits<double>::quiet_NaN() : m_dDefaultValue);
|
||||
|
||||
m_ValueState = valueDouble;
|
||||
return m_dCurrentValue;
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
#include <rtl/math.hxx>
|
||||
#include <o3tl/sorted_vector.hxx>
|
||||
|
||||
#include <limits>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <queue>
|
||||
@@ -629,8 +630,6 @@ uno::Sequence< OUString > lcl_DataSequenceToStringSequence(
|
||||
}
|
||||
::std::vector< double > lcl_getAllValuesFromSequence( const Reference< chart2::data::XDataSequence > & xSeq )
|
||||
{
|
||||
double fNan = 0.0;
|
||||
::rtl::math::setNan( &fNan );
|
||||
::std::vector< double > aResult;
|
||||
if(!xSeq.is())
|
||||
return aResult;
|
||||
@@ -810,11 +809,9 @@ lcl_TableData lcl_getDataForLocalTable(
|
||||
|
||||
// resize data
|
||||
aResult.aDataInRows.resize( nNumRows );
|
||||
double fNan = 0.0;
|
||||
::rtl::math::setNan( &fNan );
|
||||
|
||||
for (auto& aData: aResult.aDataInRows)
|
||||
aData.resize(nNumColumns, fNan);
|
||||
aData.resize(nNumColumns, std::numeric_limits<double>::quiet_NaN());
|
||||
aResult.aColumnDescriptions.resize( nNumColumns );
|
||||
aResult.aComplexColumnDescriptions.realloc( nNumColumns );
|
||||
aResult.aRowDescriptions.resize( nNumRows );
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
#include "transporttypes.hxx"
|
||||
#include <XMLStringBufferImportContext.hxx>
|
||||
#include <o3tl/safeint.hxx>
|
||||
#include <rtl/math.hxx>
|
||||
#include <sal/log.hxx>
|
||||
#include <xmloff/xmlnamespace.hxx>
|
||||
#include <xmloff/xmltoken.hxx>
|
||||
@@ -42,6 +41,7 @@
|
||||
|
||||
#include <com/sun/star/chart2/XCoordinateSystemContainer.hpp>
|
||||
|
||||
#include <limits>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <iterator>
|
||||
@@ -65,10 +65,8 @@ struct lcl_ApplyCellToData
|
||||
explicit lcl_ApplyCellToData( Sequence< double > & rOutData ) :
|
||||
m_rData( rOutData ),
|
||||
m_nIndex( 0 ),
|
||||
m_nSize( rOutData.getLength()),
|
||||
m_fNaN( 0.0 )
|
||||
m_nSize( rOutData.getLength())
|
||||
{
|
||||
::rtl::math::setNan( &m_fNaN );
|
||||
}
|
||||
|
||||
void operator() ( const SchXMLCell & rCell )
|
||||
@@ -78,7 +76,7 @@ struct lcl_ApplyCellToData
|
||||
if( rCell.eType == SCH_CELL_TYPE_FLOAT )
|
||||
m_rData[m_nIndex] = rCell.fValue;
|
||||
else
|
||||
m_rData[m_nIndex] = m_fNaN;
|
||||
m_rData[m_nIndex] = std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
++m_nIndex;
|
||||
}
|
||||
@@ -92,7 +90,6 @@ private:
|
||||
Sequence< double > & m_rData;
|
||||
sal_Int32 m_nIndex;
|
||||
sal_Int32 m_nSize;
|
||||
double m_fNaN;
|
||||
};
|
||||
|
||||
void lcl_fillRangeMapping(
|
||||
@@ -741,10 +738,8 @@ void SchXMLTableHelper::applyTableToInternalDataProvider(
|
||||
// values
|
||||
Sequence< double >& rTargetRow = aDataInRows[nRow];
|
||||
lcl_ApplyCellToData aApplyCellToData = ::std::for_each( rRow.begin() + nColOffset, rRow.end(), lcl_ApplyCellToData( rTargetRow ) );
|
||||
double fNaN = 0.0;
|
||||
::rtl::math::setNan( &fNaN );
|
||||
for( sal_Int32 nCurrentIndex = aApplyCellToData.getCurrentIndex(); nCurrentIndex<nNumColumns; nCurrentIndex++ )
|
||||
rTargetRow[nCurrentIndex] = fNaN;//#i110615#
|
||||
rTargetRow[nCurrentIndex] = std::numeric_limits<double>::quiet_NaN();//#i110615#
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user