This PR is the third part in a series of updates to the wave simulation to improve performance.
Details
Add performance tests under test/performance and add examples for spectrum and FFT simulation calculations.
Replace the component wise implementation of spectrum and spreading function calculations with a std::transform call using the unary / binary version of the evaluate function. This is many times faster than the array based calculation.
Split the reference implementation of the FFT calculation out into a separate class.
Relabel the indices for the elevation, displacement, etc. data in OceanTile - preparation for aligning the storage order to match the storage used in FFTW to reduce extra copies each update.
This PR is the third part in a series of updates to the wave simulation to improve performance.
Details