ENH: CPU Implementation of CostFxnTensorL2WarpFieldSymmetricMaskedExcluded class

Builds on utils!18 (merged), !21 (merged), !24 (merged), !26 (merged), !32 (merged), and !33 (merged), which must be all merged first.

This MR provides a CPU implementation of the CostFxnTensorL2WarpFieldSymmetricMaskedExcluded class. The changes in this MR are very similar to the changes that were made for the CostFxnLogJacobianSingularValues class in !32 (merged).

The files have been re-arranged as follows:

CostFxnTensorL2WarpFieldSymmetricMaskedExcluded (.h/.cpp): GPU/CPU-agnostic class definition and logic which is common to both implementations.

CostFxnTensorL2WarpFieldSymmetricMaskedExcludedCore (.h/GPU.cu/CPU.cpp): Core functions with a GPU/CPU agnostic interface, but with separate GPU/CPU implementations.

CostFxnTensorL2WarpFieldSymmetricMaskedExcludedKernels (.inl/GPU.cuh/CPU.h/Impl.inl/GPU.cu/CPU.cpp): Main kernel routines - this code was automatically generated with the MATLAB Symbolic Toolbox, and remains identical for both CPU/GPU implementations, so is located in "inlined" (.inl) files, which are then included in separate CPU/GPU header and source files.

Merge request reports

Loading