Skip to content

About vxl/vnl/vcl math functions (refactor)

As part of code review of !162 (merged) we identified that functions such as vcl_abs are not really need anymore. There are defined to their std equivalents in ITK master branch.

See also ITK commit 21334467:

ENH: Avoid using vnl_math_ functions

In order to isolate ITK from vnl_math_ functions an aliasing system is created to prefer to use itk::Math:: functions over the vnl_math_ versions. This is partially precipated by a need to provide backwards compatibility with vnl_math_ prior to the introduction of the vnl_math:: namespace so that we can consistently use it.

Recent cleanup of the vxl codebase identified that modern supported compilers do not need most of the aliasing infrastructure of vxl/vnl/vcl and that in many cases functions simply degrade to the std:: versions. In order to minimize dependancies, and to assist new users of ITK to more naturally understand the code, we prefer to use the std:: versions whenever possible.

In particular, there is no benefit to using vnl_math_min or vnl_math_max functions that always degenerated to equivalent functionality as std::min and std::max. Since the std:: versions are more universally understood and known by most developers, we prefer to use these common versions.

It seems like we could use std:: functions most of the time?