Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Waves simulation optimisation - part 3 (#87)
* Waves: optimise current amplitude calculation for FFT wave simulation - Investigate optimisation options for the current amplitude calculation. - vectorised assignment to fft worlspace is not faster than a single loop. - pre-calculate the fourier amplitude coefficients (reduce index lookup) - marginal gain? Signed-off-by: Rhys Mainwaring <[email protected]> * Waves: label indices in ocean tile to distinguish between vertex indices and wave indices - Vertex array index: v_idx_cm: v - vertex, cm - column major - Wave array index: w_idx_cm: v - vertex, cm - column major - Wave array index: w_idx_rm: v - vertex, rm - row major Signed-off-by: Rhys Mainwaring <[email protected]> * CI: only run macOS workflow on PR Signed-off-by: Rhys Mainwaring <[email protected]> * Waves: rename FFT wave simulation class Signed-off-by: Rhys Mainwaring <[email protected]> * Waves: duplicate FFT wave simulation class to factor out reference version Signed-off-by: Rhys Mainwaring <[email protected]> * Waves: duplicate FFT wave simulation class to factor out reference version - Complete split of reference implementation into separate class. - Remove unused code from the separated FFT wave simulation classes. Signed-off-by: Rhys Mainwaring <[email protected]> * Waves: remove commented code - Remove code referring to reference versions of the spectrum calculations. Signed-off-by: Rhys Mainwaring <[email protected]> * Waves: add performance checks for spectrum and FFT amplitude calculations - Initial performance tests. Contain debugging and timing info. - Eigen component-wise array versions are not performant... Signed-off-by: Rhys Mainwaring <[email protected]> * Waves: replace slow array versions of spectrum calcs. - Eigen component-wise array versions are not performant - replace with calls using std::transform on unary / binary versions. Signed-off-by: Rhys Mainwaring <[email protected]> * Waves: refactor wave simulation and spectrum test names - Functions are not truly vectorised - use Eigen array type to label tests instead. Signed-off-by: Rhys Mainwaring <[email protected]> * Waves: satisfy Eigen check that range iterators in STL algorithms are from the same expression. Signed-off-by: Rhys Mainwaring <[email protected]>
- Loading branch information