Skip to content

Commit

Permalink
Refs #6814 check axes ends
Browse files Browse the repository at this point in the history
  • Loading branch information
Vickie Lynch committed Apr 1, 2013
1 parent 7f1c3ef commit f7bf043
Showing 1 changed file with 18 additions and 6 deletions.
24 changes: 18 additions & 6 deletions Code/Mantid/Framework/API/src/WorkspaceOpOverloads.cpp
Expand Up @@ -393,8 +393,12 @@ bool WorkspaceHelpers::commonBoundaries(const MatrixWorkspace_const_sptr WS)
// If this results in infinity or NaN, then we can't tell - return false
if ( sum == std::numeric_limits<double>::infinity() || sum != sum ) return false;

if ( std::abs(commonSum) < 1.0E-7 && std::abs(sum) < 1.0E-7 ) return true;
if ( std::abs(commonSum-sum)/std::max<double>(commonSum,sum) > 1.0E-7 ) return false;
if ( std::abs(commonSum) < 1.0E-7 && std::abs(sum) < 1.0E-7 )
{
if (std::abs(*WS->readX(0).begin() - *WS->readX(j).begin()) > 1.0E-7 ) return false;
if (std::abs(*WS->readX(0).end() - *WS->readX(j).end()) > 1.0E-7 ) return false;
}
else if ( std::abs(commonSum-sum)/std::max<double>(commonSum,sum) > 1.0E-7 ) return false;
}
return true;
}
Expand All @@ -415,8 +419,12 @@ bool WorkspaceHelpers::matchingBins(const MatrixWorkspace_const_sptr ws1,
// Now check the first spectrum
const double firstWS = std::accumulate(ws1->readX(0).begin(),ws1->readX(0).end(),0.);
const double secondWS = std::accumulate(ws2->readX(0).begin(),ws2->readX(0).end(),0.);
if ( std::abs(firstWS) < 1.0E-7 && std::abs(secondWS) < 1.0E-7 ) return true;
if ( std::abs(firstWS-secondWS)/std::max<double>(firstWS,secondWS) > 1.0E-7 ) return false;
if ( std::abs(firstWS) < 1.0E-7 && std::abs(secondWS) < 1.0E-7 )
{
if (std::abs(*ws1->readX(0).begin() - *ws2->readX(0).begin()) > 1.0E-7 ) return false;
if (std::abs(*ws1->readX(0).end() - *ws2->readX(0).end()) > 1.0E-7 ) return false;
}
else if ( std::abs(firstWS-secondWS)/std::max<double>(firstWS,secondWS) > 1.0E-7 ) return false;

// If we were only asked to check the first spectrum, return now
if (firstOnly) return true;
Expand All @@ -437,8 +445,12 @@ bool WorkspaceHelpers::matchingBins(const MatrixWorkspace_const_sptr ws1,
{
const double firstWS = std::accumulate(ws1->readX(i).begin(),ws1->readX(i).end(),0.);
const double secondWS = std::accumulate(ws2->readX(i).begin(),ws2->readX(i).end(),0.);
if ( std::abs(firstWS) < 1.0E-7 && std::abs(secondWS) < 1.0E-7 ) return true;
if ( std::abs(firstWS-secondWS)/std::max<double>(firstWS,secondWS) > 1.0E-7 ) return false;
if ( std::abs(firstWS) < 1.0E-7 && std::abs(secondWS) < 1.0E-7 )
{
if (std::abs(*ws1->readX(i).begin() - *ws2->readX(i).begin()) > 1.0E-7 ) return false;
if (std::abs(*ws1->readX(i).end() - *ws2->readX(i).end()) > 1.0E-7 ) return false;
}
else if ( std::abs(firstWS-secondWS)/std::max<double>(firstWS,secondWS) > 1.0E-7 ) return false;
}

return true;
Expand Down

0 comments on commit f7bf043

Please sign in to comment.