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 |