USML
|
Implements fast calculations for data_grids using a non-recursive engine on interpolation.
Takes an existing data_grid and wraps it into a new data_grid_svp and overrides the interpolate function to implement the non-recursive algorithm.
Assumes that both axes of the passed data_grid both have the same interp_type.
WARNING: This wrapper is specific to 3-dimensional grids only. For 2-dimensional grids, the user should implement the data_grid_bathy wrapper instead.
Since the data is passed in and referenced by this wrapper, the data is taken control of and destroyed at the end of its use cycle.
|
inline |
|
inlineprivate |
Utility accessor function for data grid values.
|
inline |
Overrides the interpolate function within data_grid using the non-recursive formula.
Determines which interpolate function to based on the interp_type enumeral stored within the 0th dimensional axis.
Interpolate at a single location.
location | Location to do the interpolation at |
derivative | Calculates first derivative if not NULL |
|
inline |
Interpolation 3-D specialization where the arguments, and results, are matrix<double>.
This is used frequently in the WaveQ3D model to interpolate environmental parameters.
x | First dimension of location. |
y | Second dimension of location. |
z | Third dimension of location. |
result | Interpolated values at each location (output). |
dx | First dimension of derivative (output). |
dy | Second dimension of derivative (output). |
dz | Third dimension of derivative (output). |
|
private |
|
private |
|
private |
|
private |
|
private |
Create all variables needed for each calculation once to same time and memory.
|
private |