Remove hard-coded muParser expression library-wise

What changes will be made and why they would make a better Orfeo ToolBox?

High level description

Some filters and classes use the muParser based filters with hard-coded expressions. This is bad for at least 2 reasons:

  • muParser based filters are not as fast as their functor based counter-parts
  • muParser is an optional dependency. Using it heavily results in many applications and filters disabled if muParser is disabled (see #1670 (closed) for instance)

Risks and benefits

Only risk might be small changing with floating point baselines. Benefit is a faster OTB less dependent on muParser.

Alternatives for implementations

We need to spot places where muParser is mis-used:

$ grep -R -l BandMath Modules/ | grep -v BandMath | grep -v Parser
Modules/Applications/AppProjection/app/otbGridBasedImageResampling.cxx
Modules/Applications/AppImageUtils/app/otbCompareImages.cxx
Modules/Applications/AppStereo/app/otbStereoFramework.cxx
Modules/Applications/AppStereo/app/otbBlockMatching.cxx

Who will be developing the proposed changes?

TDB.

Edited by Yannick TANGUY