48 virtual void InitConst()
50 m_MuParser.DefineConst(
"e",
CONST_E );
53 m_MuParser.DefineConst(
"ln2",
CONST_LN2 );
55 m_MuParser.DefineConst(
"pi",
CONST_PI );
60 virtual void InitFun()
62 m_MuParser.DefineFun(
"ndvi", NDVI);
63 m_MuParser.DefineFun(
"NDVI", NDVI);
67 virtual void SetExpr(
const std::string & Expression)
69 m_MuParser.SetExpr(Expression);
78 result = m_MuParser.Eval();
89 void DefineVar(
const std::string &sName,
ValueType *fVar)
93 m_MuParser.DefineVar(sName, fVar);
104 m_MuParser.ClearVar();
108 const std::string& GetExpr()
const
110 return m_MuParser.GetExpr();
114 const std::map<std::string, ValueType*>& GetVar()
const
116 return m_MuParser.GetVar();
129 ExceptionHandlerDebug(e);
140 const mu::funmap_type& funmap = m_MuParser.GetFunDef();
142 mu::funmap_type::const_iterator funItem;
144 for (funItem = funmap.begin(); funItem != funmap.end(); ++funItem)
146 output[funItem->first] = funItem->second.GetArgc();
154 itkExceptionMacro( << std::endl
155 <<
"Message: " << e.GetMsg() << std::endl
156 <<
"Formula: " << e.GetExpr() << std::endl
157 <<
"Token: " << e.GetToken() << std::endl
158 <<
"Position: " << e.GetPos() << std::endl
167 <<
"Message: " << e.GetMsg() << std::endl
168 <<
"Formula: " << e.GetExpr() << std::endl
169 <<
"Token: " << e.GetToken() << std::endl
170 <<
"Position: " << e.GetPos() << std::endl
187 virtual void PrintSelf(std::ostream& os,
itk::Indent indent)
const
189 Superclass::PrintSelf(os, indent);
195 void operator =(
const Self &);
202 if ( vcl_abs(r + niri) < 1E-6 )
206 return (niri-r)/(niri+r);