// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
//
//
// $Header$
#include "StdMeshers_Distribution.hxx"
-#include <CASCatch_CatchSignals.hxx>
-#include <CASCatch_Failure.hxx>
-#include <CASCatch_ErrorHandler.hxx>
-#include <OSD.hxx>
+#include "CASCatch.hxx"
+
#include <math_GaussSingleIntegration.hxx>
#include <utilities.h>
bool Function::value( const double, double& f ) const
{
- CASCatch_CatchSignals aCatchSignals;
- aCatchSignals.Activate();
-
bool ok = true;
if( myConv==0 )
{
{
f = pow( 10, f );
}
- CASCatch_CATCH(CASCatch_Failure)
+ CASCatch_CATCH(Standard_Failure)
{
- aCatchSignals.Deactivate();
- Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+ Handle(Standard_Failure) aFail = Standard_Failure::Caught();
f = 0.0;
ok = false;
}
double FunctionTable::integral( const int i, const double d ) const
{
- double f, res = 0.0;
- if( value( myData[2*i]+d, f ) )
- res = ( myData[2*i+1] + f ) / 2.0 * d;
-
+ double f1,f2, res = 0.0;
+ if( value( myData[2*i]+d, f1 ) )
+ if(!value(myData[2*i], f2))
+ f2 = myData[2*i+1];
+ res = (f2+f1) * d / 2.0;
return res;
}
bool FunctionTable::findBounds( const double x, int& x_ind_1, int& x_ind_2 ) const
{
- int n = myData.size();
+ int n = myData.size() / 2;
if( n==0 || x<myData[0] )
{
x_ind_1 = x_ind_2 = 0;
myVars( 1, 1 ),
myValues( 1, 1 )
{
- CASCatch_CatchSignals aCatchSignals;
- aCatchSignals.Activate();
-
bool ok = true;
CASCatch_TRY
{
myExpr = ExprIntrp_GenExp::Create();
myExpr->Process( ( Standard_CString )str );
}
- CASCatch_CATCH(CASCatch_Failure)
+ CASCatch_CATCH(Standard_Failure)
{
- aCatchSignals.Deactivate();
- Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+ Handle(Standard_Failure) aFail = Standard_Failure::Caught();
ok = false;
}
- aCatchSignals.Deactivate();
if( !ok || !myExpr->IsDone() )
myExpr.Nullify();
if( myExpr.IsNull() )
return false;
- OSD::SetSignal( true );
- CASCatch_CatchSignals aCatchSignals;
- aCatchSignals.Activate();
-
( ( TColStd_Array1OfReal& )myValues ).ChangeValue( 1 ) = t;
bool ok = true;
CASCatch_TRY {
f = myExpr->Expression()->Evaluate( myVars, myValues );
}
- CASCatch_CATCH(CASCatch_Failure) {
- aCatchSignals.Deactivate();
- Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+ CASCatch_CATCH(Standard_Failure) {
+ Handle(Standard_Failure) aFail = Standard_Failure::Caught();
f = 0.0;
ok = false;
}
- aCatchSignals.Deactivate();
ok = Function::value( t, f ) && ok;
return ok;
}
double FunctionExpr::integral( const double a, const double b ) const
{
double res = 0.0;
- CASCatch_TRY
- {
- math_GaussSingleIntegration _int( ( math_Function& )*this, a, b, 20 );
+ CASCatch_TRY {
+ // skl for IPAL13079 (bug on Mandriva) - other cast
+ //math_GaussSingleIntegration _int( ( math_Function& )*this, a, b, 20 );
+ math_GaussSingleIntegration _int( *static_cast<math_Function*>( const_cast<FunctionExpr*> (this) ), a, b, 20 );
if( _int.IsDone() )
res = _int.Value();
}
- CASCatch_CATCH(CASCatch_Failure)
+ CASCatch_CATCH(Standard_Failure)
{
res = 0.0;
MESSAGE( "Exception in integral calculating" );