From 4f3cfdc92ebf846f132f7b27352cab232829deb9 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Sat, 11 Jun 2022 21:10:07 +0100 Subject: [PATCH] Clang says nan and isnan aren't in std namespace.... --- pcbnew/ibis/ibis_parser.cpp | 54 ++++++++++++++++++------------------- pcbnew/ibis/ibis_parser.h | 6 ++--- pcbnew/ibis/kibis.cpp | 6 ++--- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/pcbnew/ibis/ibis_parser.cpp b/pcbnew/ibis/ibis_parser.cpp index 0c4238e83f..4a7e1e5b11 100644 --- a/pcbnew/ibis/ibis_parser.cpp +++ b/pcbnew/ibis/ibis_parser.cpp @@ -61,7 +61,7 @@ bool IBIS_MATRIX_BANDED::Check() for( int i = 0; i < m_bandwidth * m_dim; i++ ) { - if( std::isnan( m_data[i] ) ) + if( isnan( m_data[i] ) ) { Report( _( "There are NaN elements in a matrix." ), RPT_SEVERITY_ERROR ); status = false; @@ -84,7 +84,7 @@ bool IBIS_MATRIX_FULL::Check() for( int i = 0; i < m_dim * m_dim; i++ ) { - if( std::isnan( m_data[i] ) ) + if( isnan( m_data[i] ) ) { Report( _( "There are NaN elements in a matrix." ), RPT_SEVERITY_ERROR ); status = false; @@ -107,7 +107,7 @@ bool IBIS_MATRIX_SPARSE::Check() for( int i = 0; i < m_dim * m_dim; i++ ) { - if( std::isnan( m_data[i] ) ) + if( isnan( m_data[i] ) ) { Report( _( "There are NaN elements in a matrix." ), RPT_SEVERITY_ERROR ); status = false; @@ -121,7 +121,7 @@ bool IBIS_MATRIX_SPARSE::Check() bool isNumberNA( double aNumber ) { bool result = false; - double NA = std::nan( NAN_NA ); + double NA = nan( NAN_NA ); return *reinterpret_cast(&aNumber) == *reinterpret_cast( &NA ); } @@ -129,11 +129,11 @@ bool TypMinMaxValue::Check() { bool status = true; - if( std::isnan( value[IBIS_CORNER::TYP] ) ) + if( isnan( value[IBIS_CORNER::TYP] ) ) status = false; - if( std::isnan( value[IBIS_CORNER::MIN] ) && !isNumberNA( value[IBIS_CORNER::MIN] ) ) + if( isnan( value[IBIS_CORNER::MIN] ) && !isNumberNA( value[IBIS_CORNER::MIN] ) ) status = false; - if( std::isnan( value[IBIS_CORNER::MAX] ) && !isNumberNA( value[IBIS_CORNER::MAX] ) ) + if( isnan( value[IBIS_CORNER::MAX] ) && !isNumberNA( value[IBIS_CORNER::MAX] ) ) status = false; return status; @@ -188,17 +188,17 @@ bool IbisComponentPin::Check() Report( _( "Model name cannot be empty." ), RPT_SEVERITY_ERROR ); status = false; } - if( std::isnan( m_Rpin ) && !isNumberNA( m_Rpin ) ) + if( isnan( m_Rpin ) && !isNumberNA( m_Rpin ) ) { Report( _( "Rpin is not valid." ), RPT_SEVERITY_ERROR ); status = false; } - if( std::isnan( m_Lpin )&& !isNumberNA( m_Lpin ) ) + if( isnan( m_Lpin )&& !isNumberNA( m_Lpin ) ) { Report( _( "Lpin is not valid." ), RPT_SEVERITY_ERROR ); status = false; } - if( std::isnan( m_Cpin )&& !isNumberNA( m_Cpin ) ) + if( isnan( m_Cpin )&& !isNumberNA( m_Cpin ) ) { Report( _( "Cpin is not valid." ), RPT_SEVERITY_ERROR ); status = false; @@ -336,12 +336,12 @@ double IVtable::InterpolatedI( double aV, IBIS_CORNER aCorner ) } } Report( _( "Cannot interpolate the current based on this IV table." ), RPT_SEVERITY_ERROR ); - return std::nan( "" ); + return nan( "" ); } else { // exiting the function here would mean the IV table is reversed. - return std::nan( "" ); + return nan( "" ); } // @TODO prefer another method such as a dichotomy } @@ -351,7 +351,7 @@ bool IVtable::Check() bool status = true; for( IVtableEntry& entry : m_entries ) { - if( std::isnan( entry.V ) ) + if( isnan( entry.V ) ) { Report( _( "There is a Nan voltage in an IV table" ), RPT_SEVERITY_ERROR ); status = false; @@ -377,20 +377,20 @@ bool dvdtTypMinMax::Check() { bool status = true; - if( std::isnan( value[IBIS_CORNER::TYP].m_dv ) ) + if( isnan( value[IBIS_CORNER::TYP].m_dv ) ) status = false; - if( std::isnan( value[IBIS_CORNER::TYP].m_dt ) ) + if( isnan( value[IBIS_CORNER::TYP].m_dt ) ) status = false; - if( std::isnan( value[IBIS_CORNER::MIN].m_dv ) && !isNumberNA( value[IBIS_CORNER::MIN].m_dv ) ) + if( isnan( value[IBIS_CORNER::MIN].m_dv ) && !isNumberNA( value[IBIS_CORNER::MIN].m_dv ) ) status = false; - if( std::isnan( value[IBIS_CORNER::MIN].m_dt ) && !isNumberNA( value[IBIS_CORNER::MIN].m_dt ) ) + if( isnan( value[IBIS_CORNER::MIN].m_dt ) && !isNumberNA( value[IBIS_CORNER::MIN].m_dt ) ) status = false; - if( std::isnan( value[IBIS_CORNER::MIN].m_dv ) && !isNumberNA( value[IBIS_CORNER::MIN].m_dv ) ) + if( isnan( value[IBIS_CORNER::MIN].m_dv ) && !isNumberNA( value[IBIS_CORNER::MIN].m_dv ) ) status = false; - if( std::isnan( value[IBIS_CORNER::MIN].m_dt ) && !isNumberNA( value[IBIS_CORNER::MIN].m_dt ) ) + if( isnan( value[IBIS_CORNER::MIN].m_dt ) && !isNumberNA( value[IBIS_CORNER::MIN].m_dt ) ) status = false; return status; @@ -400,7 +400,7 @@ bool IbisRamp::Check() { bool status = true; - if( std::isnan( m_Rload ) ) + if( isnan( m_Rload ) ) { status = false; Report( _( "Invalid R_load." ), RPT_SEVERITY_ERROR ); @@ -610,7 +610,7 @@ bool IbisPackageModel::Check() status = false; } - if( std::isnan( m_numberOfPins ) ) + if( isnan( m_numberOfPins ) ) { Report( _( "Number of pins is invalid." ), RPT_SEVERITY_ERROR ); status = false; @@ -813,8 +813,8 @@ bool IbisParser::readDvdt( std::string& aString, dvdt& aDest ) else if( aString == "NA" ) { - aDest.m_dv = std::nan( NAN_NA ); - aDest.m_dt = std::nan( NAN_NA ); + aDest.m_dv = nan( NAN_NA ); + aDest.m_dt = nan( NAN_NA ); } else { @@ -848,11 +848,11 @@ bool IbisParser::parseDouble( double& aDest, std::string& aStr, bool aAllowModif { if( str == "NA" ) { - result = std::nan( NAN_NA ); + result = nan( NAN_NA ); } else { - result = std::nan( NAN_INVALID ); + result = nan( NAN_INVALID ); status = false; } } @@ -976,11 +976,11 @@ bool IbisParser::readInt( int& aDest ) { if( str == "NA" ) { - result = std::nan( NAN_NA ); + result = nan( NAN_NA ); } else { - result = std::nan( NAN_INVALID ); + result = nan( NAN_INVALID ); status = false; } } diff --git a/pcbnew/ibis/ibis_parser.h b/pcbnew/ibis/ibis_parser.h index ac76d3d2a4..2a0dd7d517 100644 --- a/pcbnew/ibis/ibis_parser.h +++ b/pcbnew/ibis/ibis_parser.h @@ -227,9 +227,9 @@ public: std::string m_pinName; std::string m_signalName; std::string m_modelName; - double m_Rpin = std::nan( NAN_NA ); - double m_Lpin = std::nan( NAN_NA ); - double m_Cpin = std::nan( NAN_NA ); + double m_Rpin = nan( NAN_NA ); + double m_Lpin = nan( NAN_NA ); + double m_Cpin = nan( NAN_NA ); int m_Rcol = 0; int m_Lcol = 0; diff --git a/pcbnew/ibis/kibis.cpp b/pcbnew/ibis/kibis.cpp index 509ffdfb0a..4fe8c00d3a 100644 --- a/pcbnew/ibis/kibis.cpp +++ b/pcbnew/ibis/kibis.cpp @@ -131,19 +131,19 @@ KIBIS_PIN::KIBIS_PIN( KIBIS* aTopLevel, IbisComponentPin& aPin, IbisComponentPac // @TODO : Reading the IBIS standard, I can't figure out if we are supposed // to replace typ, min, and max, or just the typ ? - if( !std::isnan( aPin.m_Lpin ) ) + if( !isnan( aPin.m_Lpin ) ) { R_pin->value[IBIS_CORNER::TYP] = aPin.m_Rpin; R_pin->value[IBIS_CORNER::MIN] = aPin.m_Rpin; R_pin->value[IBIS_CORNER::MAX] = aPin.m_Rpin; } - if( !std::isnan( aPin.m_Lpin ) ) + if( !isnan( aPin.m_Lpin ) ) { L_pin->value[IBIS_CORNER::TYP] = aPin.m_Lpin; L_pin->value[IBIS_CORNER::MIN] = aPin.m_Lpin; L_pin->value[IBIS_CORNER::MAX] = aPin.m_Lpin; } - if( !std::isnan( aPin.m_Cpin ) ) + if( !isnan( aPin.m_Cpin ) ) { C_pin->value[IBIS_CORNER::TYP] = aPin.m_Cpin; C_pin->value[IBIS_CORNER::MIN] = aPin.m_Cpin;