This PR is the second part in a series of updates to the wave simulation to improve performance.
The main change is to replace the use of ffwt_complex arrays for storage with Eigen types. This removes copies before and after the FFT execution. The base amplitude calculation is vectorised.
Details
Extend tests to non-square grids ie. (nx != ny), both nx and ny must be a power of 2.
Formatting changes to google coding standards.
Replace gravity constant hardcoding with parameter.
Add vectorised version of the base amplitude calculation.
Add partial vectorised version of current amplitude calculation (remainder is for part 3).
Factor out initialisation and cleanup of FFTW storage to separate functions.
Use Eigen::RowMajor matrices for FFTW storage (recommended by FFTW docs).
This PR is the second part in a series of updates to the wave simulation to improve performance.
The main change is to replace the use of
ffwt_complex
arrays for storage with Eigen types. This removes copies before and after the FFT execution. The base amplitude calculation is vectorised.Details