PERF: 15% speed improvement for registration

The speed improvement is mainly gained by avoiding smartpointer de-reference in a loop.
        After   Before
        18.72   23.63
        18.95   18.9
        19.75   23.65
        18.66   19.13
        17.49   24.93
Average 18.71   22.04  15% speed improvement
Stddev  0.810    2.81

Using small regression test from ANTs package as reference.

This patch also prefers initialization of accumulators
prior to loop running and to simplify conditionals
on the loops.

Change-Id: Ie4c5dbbfb8c2cf2835454661ccf41d4950f9c80a
PERF: Simplify conditionals in loop

This is to simplifying by removing unnecessary conditionals
to provides additional optimization opportunties.  The conditionals do not
change the values, but they do attempt to reduce the amount of computation
that needs to be done.  In reducing the amount of computation, it also
increases the complexity of the code and introduces alternate code paths
that make optimization more difficult.

        187.2   175.58
        189.42  177.67
        188.91  178.78
        190.58  183.05
        191.37  191.53
Average 189.496 181.322 4.508%
Stddev    1.605   6.323

Change-Id: I92e98ba8b44b8891c1f3277565d6d51e3b7806a3
ENH: Disable tip to enable Uncrustify from SetupForDevelopment

Uncrustify use in ITK is not yet mature, and enabling its hooks will
cause developers to get pre-commit errors from any preexisting issues
in a file. This can be very confusing to new developers who may not
realize that they are not responsible for fixing these issues or
who may not understand how to disable Uncrustify pre-commit checking
again.

Enabling Uncrustify pre-commit hooks should not be suggested as a "tip"
to all users during the standard SetupForDevelopment process. ITK
developers who want Uncrustify support can still enable it manually.

When Uncrustify support is more mature, the tip can be re-enabled.

Thanks to Julien Michel for helping to track down this issue.

Change-Id: I2168d99eadc7ece4f94e7b9099ff12dd7073cccd
STYLE: Rename TValueType template parameters to TValue

This is consistent with template naming conventions.

Change-Id: Ifed106f661a2120a4a579b5620beb2ecc770e5a4
BUG: initialize m_SmallBlock ivar in ctor; fixes garbage read

fixes clang ubsan error in itkGPUReductionTest test:
Modules/Core/GPUCommon/include/itkGPUReduction.hxx:225:20: runtime error: load of value 170, which is not a valid value for type 'bool'

Initialized a couple of other ivars while I was there.

Change-Id: I95b193876386cc7ca42f0807d2a8e9b75e76a6e1
BUG: changed some variables involved in shifting to unsigned

fixes clang ubsan error in itkGE4 test:
Modules/IO/GE/src/itkGE4ImageIO.cxx:375:29: runtime error: left shift of negative value -2113929216

Also:
- removed unused #defines
- removed useless casts
- put declarations with initializations.

Change-Id: Iab8d861afcc912934ac0bd7df486950fc59d4174
ENH: Bump CMakeLists.txt to version 4.6.0.

Change-Id: I0734aa7dcd2ecc443f4d1b015b21760903b29955
Merge topic 'Disable-Uncrustify-Tip'

ad31003 ENH: Disable tip to enable Uncrustify from SetupForDevelopment
Merge topic 'PerfImprovement'

ee79cc0 PERF: Simplify conditionals in loop
d01a48f PERF: 15% speed improvement for registration
Merge topic 'Rename-TValueType'

26354b3 STYLE: Rename TValueType template parameters to TValue
COMP: Fixed libminc to build on Windows

COMP: Improved MINCIOTransform tests

Updated to latest  version of libminc and added support
for reading compressed minc1 files (when using latest version of libminc only,
compiled with netcdf)

Change-Id: Ia01d21634d05fac38830c8d426567c40b6bd574e
Merge topic 'ubsan-fixes'

830538d BUG: changed some variables involved in shifting to unsigned
bd2c342 BUG: initialize m_SmallBlock ivar in ctor; fixes garbage read
Merge topic 'LIBMINC_UPDATE'

14d5b22 COMP: Fixed libminc to build on Windows
BUG: Remove unused itkAffineTransformXX.txt content links.

These interfere with the content link backup script.

Change-Id: Iec8b369d936b7ab4b8be857b04afd699f066c56c
COMP: Updated libminc, hopefully reducing number of warnings

Change-Id: I4ce46ecdb736382babea8f4f4a82940a30d3329c
Merge topic 'unused-content-links'

a58465b BUG: Remove unused itkAffineTransformXX.txt content links.
Merge topic 'LIBMINC_UPDATE_TOO_SOON'

8f8a8ec COMP: Updated libminc, hopefully reducing number of warnings