template class xf::hpc::rtm::RTM2D¶
#include "rtm2d.hpp"
Overview¶
RTM2D class defines the basic operations for 2D RTM2D .
Parameters:
| t_DataType | the basic wavefield datatype | 
| t_Order | the spatial discretization order | 
| t_MaxDim | the maximum height this kernel can process | 
| t_PE | the number of processing elements | 
template < typename t_DataType, int t_Order, int t_MaxDim = 1024, int t_MaxB = 40, int t_PE = t_Order / 2 > class RTM2D: public xf::hpc::rtm::Stencil2D // typedefs typedef Stencil2D <t_DataType, t_Order, t_MaxDim, t_PE>::t_PairType t_PairType typedef Stencil2D <t_DataType, t_Order, t_MaxDim, t_PE>::t_WideType t_WideType typedef t_WideType::t_TypeInt t_InType typedef t_PairType::t_TypeInt t_PairInType typedef blas::WideType <t_InType, t_HalfOrder/t_PE> t_UpbType typedef t_UpbType::t_TypeInt t_UpbInType
Inherited Members¶
// typedefs typedef blas::WideType <t_DataType, t_PE> t_WideType typedef t_WideType::t_TypeInt t_InType typedef blas::WideType <t_InType, t_NumData, t_WideType::t_TypeWidth> t_PairType typedef t_PairType::t_TypeInt t_PairInType // fields static const unsigned int t_NumData static const unsigned int t_HalfOrder static const unsigned int t_FifoDepth
Methods¶
forward¶
void forward ( const t_DataType p_src, hls::stream <t_UpbInType>& p_upb, hls::stream <t_InType>& p_v2dt2, hls::stream <t_InType>& p_vt, hls::stream <t_PairInType>& p_p0, hls::stream <t_PairInType>& p_p1 )
forward defines the forward streaming module
Parameters:
| p_src | is the source wavefield at given time stamp | 
| p_upb | is the upper boundary to be saved | 
| p_v2dt2 | is the pow(v * dt, 2) | 
| p_vt | is a copy of p_v2dt2 | 
| p_p0 | is the stream of input wavefield p(t-1) and p(t) | 
| p_p1 | is the stream of output wavefield p(t) and p(t+1) | 
backwardF¶
void backwardF ( hls::stream <t_UpbInType>& p_upb, hls::stream <t_InType>& p_v2dt2, hls::stream <t_InType>& p_vt, hls::stream <t_PairInType>& p_p0, hls::stream <t_PairInType>& p_p1, hls::stream <t_InType>& p_p, bool p_t = false )
backwardF defines the backward streaming module for source wavefield
Parameters:
| p_upb | the stream of upper boundary to be restored | 
| p_v2dt2 | the pow(v * dt, 2) | 
| p_vt | a copy of p_v2dt2 | 
| p_p0 | the stream of input wavefield p(t+1) and p(t) | 
| p_p1 | the stream of output wavefield p(t) and p(t-1) | 
| p_p | the stream of wavefield p(t-1) for cross-correlation | 
| p_t | switch to swap p(t) and p(t-1) memory | 
backwardR¶
void backwardR ( hls::stream <t_DataType>& p_rec, hls::stream <t_InType>& p_v2dt2, hls::stream <t_InType>& p_vt, hls::stream <t_PairInType>& p_r0, hls::stream <t_PairInType>& p_r1, hls::stream <t_InType>& p_r )
backwardR defines the backward streaming module for receiver wavefield
Parameters:
| p_rec | the stream of the data from receivers | 
| p_v2dt2 | the pow(v * dt, 2) | 
| p_vt | a copy of p_v2dt2 | 
| p_r0 | the stream of input wavefield r(t+1) and r(t) | 
| p_r1 | the stream of output wavefield r(t) and r(t-1) | 
| p_r | the stream of wavefield r(t-1) for cross-correlation | 
crossCorrelation¶
void crossCorrelation ( hls::stream <t_InType>& p_p, hls::stream <t_InType>& p_r, hls::stream <t_InType>& p_imgIn, hls::stream <t_InType>& p_imgOut )
crossCorrelation constructs the detecting area images
Parameters:
| p_p | the stream of wavefield p(t) for cross-correlation | 
| p_r | the stream of wavefield r(t) for cross-correlation | 
| p_imgIn | the stream of input image | 
| p_imgOut | the stream of output image |