Archived issue #0031130
Foundation Classes - Expr_NamedUnknown get wrong Derivative
Description
my code like this
TCollection_AsciiString strExpr("cos(x)");
Handle(ExprIntrp_GenExp) exprIntrp = ExprIntrp_GenExp::Create();
Handle(Expr_GeneralExpression) genExpr = NULL;
exprIntrp->Process(strExpr);
genExpr = exprIntrp->Expression();
Handle(Expr_NamedUnknown) var = new Expr_NamedUnknown("x");
std::cout << genExpr->Contains(var) << std::endl;
Handle(Expr_GeneralExpression) genExpr1 = genExpr->Derivative(var);
std::cout << genExpr1->String() << std::endl;
Handle(Expr_GeneralExpression) genExpr2 = genExpr->NDerivative(var, 2);
std::cout << genExpr2->String() << std::endl;
the result Derivative is 0,in file Expr_NamedUnknown.cxx line 133 (OCC 7.4.0),the code if (me != X) may can be if(!me.IsIdentical(X))
TCollection_AsciiString strExpr("cos(x)");
Handle(ExprIntrp_GenExp) exprIntrp = ExprIntrp_GenExp::Create();
Handle(Expr_GeneralExpression) genExpr = NULL;
exprIntrp->Process(strExpr);
genExpr = exprIntrp->Expression();
Handle(Expr_NamedUnknown) var = new Expr_NamedUnknown("x");
std::cout << genExpr->Contains(var) << std::endl;
Handle(Expr_GeneralExpression) genExpr1 = genExpr->Derivative(var);
std::cout << genExpr1->String() << std::endl;
Handle(Expr_GeneralExpression) genExpr2 = genExpr->NDerivative(var, 2);
std::cout << genExpr2->String() << std::endl;
the result Derivative is 0,in file Expr_NamedUnknown.cxx line 133 (OCC 7.4.0),the code if (me != X) may can be if(!me.IsIdentical(X))
Public activity
No public notes
Participants are labeled by their role within this record.