.. _global-namespace: Global Namespace ================ .. index:: pair: namespace; global .. toctree:: :hidden: namespace_xf.rst Overview ~~~~~~~~ .. _doxid-krnl__control_8hpp_1a9b15f8bdf92a0e9c97b4dc21d5e07696: .. _cid-cg_widetype: .. _doxid-krnl__control_8hpp_1aceab897692a5ba9fcd0ef54cdfd01136: .. _cid-cg_interface: .. _doxid-krnl__def_8hpp_1a9b15f8bdf92a0e9c97b4dc21d5e07696: .. _cid-cg_widetype-2: .. _doxid-krnl__def_8hpp_1aceab897692a5ba9fcd0ef54cdfd01136: .. _cid-cg_interface-2: .. _doxid-krnl__def_8hpp_1a83872fcb0410f90d55c09221ded0b5ce: .. _cid-cg_vectype: .. _doxid-krnl__def_8hpp_1abcd6151115fc94be79b1c8de5fb2b42e: .. _cid-cg_vecinterface: .. _doxid-krnl__def_8hpp_1a0ed6e97a2d1a9f09756012c00bb8dbc9: .. _cid-cg_paramstrtype: .. _doxid-krnl__def_8hpp_1a114e628f0db972bacb5028197f487102: .. _cid-cg_wideparamstrtype: .. _doxid-krnl__def_8hpp_1a1c3a6b6c47678503ce4bd9700052cbb5: .. _cid-cg_widestrtype: .. _doxid-krnl__def_8hpp_1a708c44e7a7db8a9f18da37cc8ad35416: .. _cid-cg_datstrtype: .. _doxid-krnl__def_8hpp_1a0e653ef58f15d4cdcfbb3f7759e0e4c4: .. _cid-cg_tkstrtype: .. _doxid-krnl__def_8hpp_1ae1542e1691e2512fac40ec81ed3ff01a: .. _cid-cg_idxstrtype: .. _doxid-krnl__duplicate_8hpp_1a9b15f8bdf92a0e9c97b4dc21d5e07696: .. _cid-cg_widetype-3: .. _doxid-krnl__duplicate_8hpp_1aceab897692a5ba9fcd0ef54cdfd01136: .. _cid-cg_interface-3: .. _doxid-krnl__gemv_8hpp_1a9b15f8bdf92a0e9c97b4dc21d5e07696: .. _cid-cg_widetype-4: .. _doxid-krnl__gemv_8hpp_1aceab897692a5ba9fcd0ef54cdfd01136: .. _cid-cg_interface-4: .. _doxid-krnl__gemv_8hpp_1a83872fcb0410f90d55c09221ded0b5ce: .. _cid-cg_vectype-2: .. _doxid-krnl__gemv_8hpp_1abcd6151115fc94be79b1c8de5fb2b42e: .. _cid-cg_vecinterface-2: .. _doxid-krnl__update__pk_8hpp_1a1ff85685d577d8147c3e2bddc1ff0a37: .. _cid-cg_widetype-5: .. _doxid-krnl__update__pk_8hpp_1aceab897692a5ba9fcd0ef54cdfd01136: .. _cid-cg_interface-5: .. _doxid-krnl__update__rk_8hpp_1a1ff85685d577d8147c3e2bddc1ff0a37: .. _cid-cg_widetype-6: .. _doxid-krnl__update__rk_8hpp_1aceab897692a5ba9fcd0ef54cdfd01136: .. _cid-cg_interface-6: .. _doxid-krnl__update__rk__jacobi_8hpp_1a1ff85685d577d8147c3e2bddc1ff0a37: .. _cid-cg_widetype-7: .. _doxid-krnl__update__rk__jacobi_8hpp_1aceab897692a5ba9fcd0ef54cdfd01136: .. _cid-cg_interface-7: .. _doxid-krnl__update__xk_8hpp_1a1ff85685d577d8147c3e2bddc1ff0a37: .. _cid-cg_widetype-8: .. _doxid-krnl__update__xk_8hpp_1aceab897692a5ba9fcd0ef54cdfd01136: .. _cid-cg_interface-8: .. _doxid-krnl__update__xr_8hpp_1a9b15f8bdf92a0e9c97b4dc21d5e07696: .. _cid-cg_widetype-9: .. _doxid-krnl__update__xr_8hpp_1aceab897692a5ba9fcd0ef54cdfd01136: .. _cid-cg_interface-9: .. _doxid-rtmbackward_8hpp_1a8db702c5f18e2fb5782fd8dc1257c1ee: .. _cid-rtm_type: .. _doxid-rtmbackward_8hpp_1a3beeb465a3d01a861e773d1c4e9f7c65: .. _cid-rtm_pairtype: .. _doxid-rtmbackward_8hpp_1a603906c796b6ffa4b20f5fadb9e8563e: .. _cid-rtm_vttype: .. _doxid-rtmbackward_8hpp_1a5c88b114fe39642c160ee005fe6b1817: .. _cid-rtm_upbtype: .. _doxid-rtmbackward_8hpp_1af383be2d9d2b556515588e05b89b382b: .. _cid-rtm_widetype: .. _doxid-rtmbackward_8hpp_1adf51c5c8c983fbe42fa7d2d6ff958138: .. _cid-rtm_interface: .. _doxid-rtm2d_2rtmforward_8hpp_1a8db702c5f18e2fb5782fd8dc1257c1ee: .. _cid-rtm_type-2: .. _doxid-rtm2d_2rtmforward_8hpp_1a3beeb465a3d01a861e773d1c4e9f7c65: .. _cid-rtm_pairtype-2: .. _doxid-rtm2d_2rtmforward_8hpp_1a603906c796b6ffa4b20f5fadb9e8563e: .. _cid-rtm_vttype-2: .. _doxid-rtm2d_2rtmforward_8hpp_1a5c88b114fe39642c160ee005fe6b1817: .. _cid-rtm_upbtype-2: .. _doxid-rtm2d_2rtmforward_8hpp_1af383be2d9d2b556515588e05b89b382b: .. _cid-rtm_widetype-2: .. _doxid-rtm2d_2rtmforward_8hpp_1adf51c5c8c983fbe42fa7d2d6ff958138: .. _cid-rtm_interface-2: .. _doxid-rtmforward__hbc_8hpp_1a67a429e8a3076066ae96a40de959880d: .. _cid-domain_type: .. _doxid-rtmforward__hbc_8hpp_1a6b50f1a01aab413d55750a97156f96c0: .. _cid-rtm_type-3: .. _doxid-rtmforward__hbc_8hpp_1a075936ac2eedc424835287dd7158e272: .. _cid-rtm_type-4: .. _doxid-rtmforward__hbc_8hpp_1a5c88b114fe39642c160ee005fe6b1817: .. _cid-rtm_upbtype-3: .. _doxid-rtmforward__rbc_8hpp_1a67a429e8a3076066ae96a40de959880d: .. _cid-domain_type-2: .. _doxid-rtmforward__rbc_8hpp_1a6b50f1a01aab413d55750a97156f96c0: .. _cid-rtm_type-5: .. _doxid-rtmforward__rbc_8hpp_1a075936ac2eedc424835287dd7158e272: .. _cid-rtm_type-6: .. _doxid-rtmbackward_8hpp_1a7e92d8df621dd96343b3f871a19e1d15: .. _cid-backward: .. _doxid-rtm2d_2rtmforward_8hpp_1a61f5f2b6597d69d784fb98a4b3238d50: .. _cid-forward: .. _doxid-interface_8hpp_1a854d8feb06062bb419000b9f16fd127c: .. _cid-ap_ctrl_none: .. _doxid-interface_8hpp_1ad9c5c2253fbbeab901e97a1325e3bfa4: .. _cid-axis: .. _doxid-interface_8hpp_1afeb356a46fe2f30f72c24660a171c0ac: .. _cid-pointer: .. _doxid-interface_8hpp_1adc74e13db3ba0b9d96ed0833e2aa77fc: .. _cid-pragma_hls: .. _doxid-interface_8hpp_1afc8e1291dc69e71df7760323c5569b5c: .. _cid-scalar: .. ref-code-block:: cpp :class: overview-code-block // namespaces namespace :ref:`xf` namespace :ref:`xf::hpc` namespace :ref:`xf::hpc::cg` namespace :ref:`xf::hpc::rtm` // typedefs typedef xf::blas::WideType CG_wideType typedef CG_wideType::t_TypeInt CG_interface typedef xf::blas::WideType CG_wideType typedef CG_wideType::t_TypeInt CG_interface typedef xf::blas::WideType CG_vecType typedef CG_vecType::t_TypeInt CG_vecInterface typedef hls::stream CG_paramStrType typedef hls::stream > CG_wideParamStrType typedef hls::stream <:ref:`CG_interface`> CG_wideStrType typedef hls::stream > CG_datStrType typedef hls::stream > CG_tkStrType typedef hls::stream > CG_idxStrType typedef xf::blas::WideType CG_wideType typedef CG_wideType::t_TypeInt CG_interface typedef xf::blas::WideType CG_wideType typedef CG_wideType::t_TypeInt CG_interface typedef xf::blas::WideType CG_vecType typedef CG_vecType::t_TypeInt CG_vecInterface typedef xf::blas::WideType CG_wideType typedef CG_wideType::t_TypeInt CG_interface typedef xf::blas::WideType CG_wideType typedef CG_wideType::t_TypeInt CG_interface typedef xf::blas::WideType CG_wideType typedef CG_wideType::t_TypeInt CG_interface typedef xf::blas::WideType CG_wideType typedef CG_wideType::t_TypeInt CG_interface typedef xf::blas::WideType CG_wideType typedef CG_wideType::t_TypeInt CG_interface typedef RTM2D RTM_TYPE typedef RTM_TYPE::t_PairInType RTM_pairType typedef RTM_TYPE::t_InType RTM_vtType typedef RTM_TYPE::t_UpbInType RTM_upbType typedef xf::blas::WideType RTM_wideType typedef RTM_wideType::t_TypeInt RTM_interface typedef RTM2D RTM_TYPE typedef RTM_TYPE::t_PairInType RTM_pairType typedef RTM_TYPE::t_InType RTM_vtType typedef RTM_TYPE::t_UpbInType RTM_upbType typedef xf::blas::WideType RTM_wideType typedef RTM_wideType::t_TypeInt RTM_interface typedef Domain3D DOMAIN_TYPE typedef RTM3D <:ref:`DOMAIN_TYPE`, RTM_dataType, RTM_order, RTM_maxZ, RTM_maxY, RTM_MaxB, RTM_nPEZ, RTM_nPEX> RTM_TYPE typedef RTM_TYPE::t_InType RTM_type typedef RTM_TYPE::t_UpbInType RTM_upbType typedef Domain3D DOMAIN_TYPE typedef RTM3D <:ref:`DOMAIN_TYPE`, RTM_dataType, RTM_order, RTM_maxZ, RTM_maxY, RTM_MaxB, RTM_nPEZ, RTM_nPEX> RTM_TYPE typedef RTM_TYPE::t_InType RTM_type // macros #define AP_CTRL_NONE(NAME) #define AXIS(NAME) #define POINTER( \ NAME, \ BUNDLE \ ) #define PRAGMA_HLS(x) #define SCALAR(NAME) Global Functions ~~~~~~~~~~~~~~~~ .. FunctionSection .. _doxid-krnl__control_8hpp_1aabb3d2670cf4e275ab598463a0e0585f: .. _cid-krnl_control: krnl_control ------------ .. code-block:: cpp #include "cgSolver/krnl_control.hpp" .. ref-code-block:: cpp :class: title-code-block void krnl_control ( :ref:`CG_interface`* p_instr, hls::stream & p_signal, hls::stream & p_clock, hls::stream >& p_tokenIn, hls::stream >& p_tokenOut ) krnl_control kernel function to load instructions and control the cg solver .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_instr - the memory address to instructions .. _doxid-krnl__duplicate_8hpp_1aab721043ae49f9f7c9bb336922fd84f5: .. _cid-krnl_duplicate: krnl_duplicate -------------- .. code-block:: cpp #include "cgSolver/krnl_duplicate.hpp" .. ref-code-block:: cpp :class: title-code-block void krnl_duplicate ( hls::stream >& p_tokenIn, hls::stream >& p_tokenX, hls::stream >& p_tokenR ) krnl_duplicate kernel function to compute A * p .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_A - the memory address to vector A * - p_pk - the input memory address to vector pk * - p_Apk - the output memory address to vector Apk * - p_tokenIn - input stream carries the token for execution * - p_tokenOut - output stream carries the token for execution .. _doxid-krnl__gemv_8hpp_1af5f951f99b8e21738a2411eeca9cf282: .. _cid-krnl_gemv: krnl_gemv --------- .. code-block:: cpp #include "cgSolver/krnl_gemv.hpp" .. ref-code-block:: cpp :class: title-code-block void krnl_gemv ( :ref:`CG_interface`* p_A0, :ref:`CG_interface`* p_pk, :ref:`CG_vecInterface`* p_pkc, :ref:`CG_vecInterface`* p_Apk, hls::stream >& p_tokenInA, hls::stream >& p_tokenOut ) krnl_gemv kernel function to compute A * p .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_A - the memory address to vector A * - p_pk - the input memory address to vector pk * - p_Apk - the output memory address to vector Apk * - p_tokenIn - input stream carries the token for execution * - p_tokenOut - output stream carries the token for execution .. _doxid-krnl__timer_8hpp_1abf8747c223c7bd674f4ff007b5bc9ae0: .. _cid-krnl_timer: krnl_timer ---------- .. code-block:: cpp #include "cgSolver/krnl_timer.hpp" .. ref-code-block:: cpp :class: title-code-block void krnl_timer ( hls::stream & p_signal, hls::stream & p_clock ) krnl_timer kernel function to count clock cycles .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_signal - the input signal stream * - p_clock - the output clock stream .. _doxid-krnl__update__pk_8hpp_1a9a8b1e70d662c09cc066d11bb40bff7c: .. _cid-krnl_update_pk: krnl_update_pk -------------- .. code-block:: cpp #include "cgSolver/krnl_update_pk.hpp" .. ref-code-block:: cpp :class: title-code-block void krnl_update_pk ( :ref:`CG_interface`* p_rk, :ref:`CG_interface`* p_pk_in, :ref:`CG_interface`* p_pk_out, hls::stream >& p_tokenIn, hls::stream >& p_tokenOut ) krnl_update_pk kernel function to update vector pk .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_rk - the memory address to vector rk * - p_pk_in - the input memory address to vector pk * - p_pk_out - the output memory address to vector pk * - p_tokenIn - input stream carries the token for execution * - p_tokenOut - output stream carries the token for execution .. _doxid-krnl__update__rk_8hpp_1a42cd0320e44bf24ca5c814065540f8ab: .. _cid-krnl_update_rk: krnl_update_rk -------------- .. code-block:: cpp #include "cgSolver/krnl_update_rk.hpp" .. ref-code-block:: cpp :class: title-code-block void krnl_update_rk ( :ref:`CG_interface`* p_rk_in, :ref:`CG_interface`* p_rk_out, :ref:`CG_interface`* p_Apk, hls::stream >& p_tokenIn, hls::stream >& p_tokenOut ) krnl_update_xr kernel function to update the vector xk and rk .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_rk_in - the input memory address to vector rk * - p_rk_out - the output memory address to vector rk * - p_Apk - the memory address to vector Apk * - p_tokenIn - input stream carries the token for execution * - p_tokenOut - output stream carries the token for execution .. _doxid-krnl__update__rk__jacobi_8hpp_1acb2a668ecec47210b829747435edb4d5: .. _cid-krnl_update_rk_jacobi: krnl_update_rk_jacobi --------------------- .. code-block:: cpp #include "cgSolver/krnl_update_rk_jacobi.hpp" .. ref-code-block:: cpp :class: title-code-block void krnl_update_rk_jacobi ( :ref:`CG_interface`* p_rk_in, :ref:`CG_interface`* p_rk_out, :ref:`CG_interface`* p_zk, :ref:`CG_interface`* p_jacobi, :ref:`CG_interface`* p_Apk, hls::stream >& p_tokenIn, hls::stream >& p_tokenOut ) krnl_update_xr kernel function to update the vector xk and rk .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_rk_in - the input memory address to vector rk * - p_rk_out - the output memory address to vector rk * - p_Apk - the memory address to vector Apk * - p_tokenIn - input stream carries the token for execution * - p_tokenOut - output stream carries the token for execution .. _doxid-krnl__update__xk_8hpp_1a59877ad22b74705998fbd57edb32d62c: .. _cid-krnl_update_xr: krnl_update_xr -------------- krnl_update_xr overload (1) +++++++++++++++++++++++++++ .. code-block:: cpp #include "cgSolver/krnl_update_xk.hpp" .. ref-code-block:: cpp :class: title-code-block void krnl_update_xr ( :ref:`CG_interface`* p_xk_in, :ref:`CG_interface`* p_xk_out, :ref:`CG_interface`* p_pk, hls::stream >& p_tokenIn ) krnl_update_xr kernel function to update the vector xk and rk .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_xk_in - the input memory address to vector xk * - p_xk_out - the output memory address to vector xk * - p_pk - the memory address to vector pk * - p_tokenIn - input stream carries the token for execution .. _doxid-krnl__update__xr_8hpp_1a742eca96102f143ad6d946df4cc762fa: .. _cid-krnl_update_xr-2: krnl_update_xr overload (2) +++++++++++++++++++++++++++ .. code-block:: cpp #include "cgSolver/krnl_update_xr.hpp" .. ref-code-block:: cpp :class: title-code-block void krnl_update_xr ( :ref:`CG_interface`* p_xk_in, :ref:`CG_interface`* p_xk_out, :ref:`CG_interface`* p_rk_in, :ref:`CG_interface`* p_rk_out, :ref:`CG_interface`* p_pk, :ref:`CG_interface`* p_Apk, hls::stream >& p_tokenIn, hls::stream >& p_tokenOut ) krnl_update_xr kernel function to update the vector xk and rk .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_xk_in - the input memory address to vector xk * - p_xk_out - the output memory address to vector xk * - p_rk_in - the input memory address to vector rk * - p_rk_out - the output memory address to vector rk * - p_pk - the memory address to vector pk * - p_tokenIn - input stream carries the token for execution * - p_tokenOut - output stream carries the token for execution .. _doxid-fcn_kernel_8hpp_1aecbd0716f20f4ec1e5cf11df40c971aa: .. _cid-fcnkernel: fcnKernel --------- .. code-block:: cpp #include "mlp/fcnKernel.hpp" .. ref-code-block:: cpp :class: title-code-block void fcnKernel ( DdrIntType* p_DdrRd, DdrIntType* p_DdrWr ) fcnKernel defines the kernel top function, with DDR/HBM as an interface .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_DdrRd - is DDR/HBM memory address used for read * - p_DdrWr - is DDR/HBM memory address used for write .. _doxid-rtmbackward_8hpp_1a0ca1906d3db1f95b273337e273d5dd19: .. _cid-rtmbackward: rtmbackward ----------- .. code-block:: cpp #include "rtm2d/rtmbackward.hpp" .. ref-code-block:: cpp :class: title-code-block void rtmbackward ( const unsigned int p_z, const unsigned int p_x, const unsigned int p_t, const unsigned int p_recz, const RTM_dataType* p_rec, const RTM_dataType* p_coefz, const RTM_dataType* p_coefx, const RTM_dataType* p_taperz, const RTM_dataType* p_taperx, const :ref:`RTM_interface`* p_v2dt2, :ref:`RTM_interface`* p_p0, :ref:`RTM_interface`* p_p1, :ref:`RTM_interface`* p_r0, :ref:`RTM_interface`* p_r1, :ref:`RTM_interface`* p_i0, :ref:`RTM_interface`* p_i1, :ref:`RTM_upbType`* p_upb ) rfmbackward kernel function .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_z - is the number of grids along detecting depth * - p_x - is the number of grids along detecting width * - p_t - is the number of detecting time parititons * - p_recz - is the z coordinates of all receivers * - p_rec - is the receiver data wavefileds * - p_coefz - is the laplacian z-direction coefficients * - p_coefx - is the laplacian x-direction coefficients * - p_taperz - is the absorbing factor along z * - p_taperx - is the absorbing factor along x * - p_v2dt2 - is the velocity model v^2 * dt^2 * - p_upb - is the uppper bounday wavefiled * - p_p0 - is the first input memory of source wavefield * - p_p1 - is the second input memory of source wavefield * - p_r0 - is the first input memory of receiver wavefield * - p_r1 - is the second input memory of receiver wavefield * - p_i0 - is the first input memory of cross-correlation images * - p_i1 - is the second input memory of cross-correlation images .. _doxid-rtm2d_2rtmforward_8hpp_1aadf2c81b880a72d4c9c80d64a27a28e3: .. _cid-rtmforward: rtmforward ---------- rtmforward overload (1) +++++++++++++++++++++++ .. code-block:: cpp #include "rtm2d/rtmforward.hpp" .. ref-code-block:: cpp :class: title-code-block void rtmforward ( const unsigned int p_z, const unsigned int p_x, const unsigned int p_t, const unsigned int p_srcz, const unsigned int p_srcx, const RTM_dataType* p_src, const RTM_dataType* p_coefz, const RTM_dataType* p_coefx, const RTM_dataType* p_taperz, const RTM_dataType* p_taperx, const :ref:`RTM_interface`* p_v2dt2, :ref:`RTM_interface`* p_p0, :ref:`RTM_interface`* p_p1, :ref:`RTM_upbType`* p_upb ) rfmforward kernel function .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_z - is the number of grids along detecting depth * - p_x - is the number of grids along detecting width * - p_t - is the number of detecting time parititons * - p_srcz - is the source z coordinate * - p_srcx - is the source x coordinate * - p_src - is the source wavefiled * - p_coefz - is the laplacian z-direction coefficients * - p_coefx - is the laplacian x-direction coefficients * - p_taperz - is the absorbing factor along z * - p_taperx - is the absorbing factor along x * - p_v2dt2 - is the velocity model v^2 * dt^2 * - p_p0 - is the first input memory of source wavefield * - p_p1 - is the second input memory of source wavefield * - p_upb - is the uppper bounday wavefiled .. _doxid-rtmforward__hbc_8hpp_1ad695609bb3fbbc6ed72c3fdb512df58b: .. _cid-rtmforward-2: rtmforward overload (2) +++++++++++++++++++++++ .. code-block:: cpp #include "rtm3d/rtmforward_hbc.hpp" .. ref-code-block:: cpp :class: title-code-block void rtmforward ( const unsigned int p_z, const unsigned int p_y, const unsigned int p_x, const unsigned int p_t, const unsigned int p_srcz, const unsigned int p_srcy, const unsigned int p_srcx, const RTM_dataType* p_src, const RTM_dataType* p_coefz, const RTM_dataType* p_coefy, const RTM_dataType* p_coefx, const RTM_dataType* p_taperz, const RTM_dataType* p_tapery, const RTM_dataType* p_taperx, const :ref:`RTM_type`* p_v2dt2, :ref:`RTM_type`* p_pi0, :ref:`RTM_type`* p_pi1, :ref:`RTM_type`* p_po0, :ref:`RTM_type`* p_po1, :ref:`RTM_type`* p_ppi0, :ref:`RTM_type`* p_ppi1, :ref:`RTM_type`* p_ppo0, :ref:`RTM_type`* p_ppo1, :ref:`RTM_upbType`* p_upb ) rfmforward kernel function .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_z - is the number of grids along z * - p_y - is the number of grids along y * - p_x - is the number of grids along x * - p_t - is the number of detecting time parititons * - p_srcz - is the source z coordinate * - p_srcy - is the source y coordinate * - p_srcx - is the source x coordinate * - p_src - is the source wavefiled * - p_coefz - is the laplacian z-direction coefficients * - p_coefy - is the laplacian y-direction coefficients * - p_coefx - is the laplacian x-direction coefficients * - p_taperz - is the absorbing factor along z * - p_tapery - is the absorbing factor along y * - p_taperx - is the absorbing factor along x * - p_v2dt2 - is the velocity model v^2 * dt^2 * - p_pi0 - the first input memory of pressure wavefield at t-1 * - p_pi1 - the second input memory of pressure wavefield at t-1 * - p_po0 - the first output memory of pressure wavefield at t-1 * - p_po1 - the second output memory of pressure wavefield at t-1 * - p_ppi0 - the first input memory of pressure wavefield at t-2 * - p_ppi1 - the second input memory of pressure wavefield at t-2 * - p_ppo0 - the first output memory of pressure wavefield at t-2 * - p_ppo1 - the second output memory of pressure wavefield at t-2 * - p_upb - is the uppper bounday wavefiled .. _doxid-rtmforward__rbc_8hpp_1a8672f7937842f84fb5c5f7ca232c65f2: .. _cid-rtmforward-3: rtmforward overload (3) +++++++++++++++++++++++ .. code-block:: cpp #include "rtm3d/rtmforward_rbc.hpp" .. ref-code-block:: cpp :class: title-code-block void rtmforward ( const unsigned int p_z, const unsigned int p_y, const unsigned int p_x, const unsigned int p_t, const unsigned int p_srcz, const unsigned int p_srcy, const unsigned int p_srcx, const RTM_dataType* p_src, const RTM_dataType* p_coefz, const RTM_dataType* p_coefy, const RTM_dataType* p_coefx, const :ref:`RTM_type`* p_v2dt2, :ref:`RTM_type`* p_pi0, :ref:`RTM_type`* p_pi1, :ref:`RTM_type`* p_po0, :ref:`RTM_type`* p_po1, :ref:`RTM_type`* p_ppi0, :ref:`RTM_type`* p_ppi1, :ref:`RTM_type`* p_ppo0, :ref:`RTM_type`* p_ppo1 ) rfmforward kernel function .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_z - is the number of grids along z * - p_y - is the number of grids along y * - p_x - is the number of grids along x * - p_t - is the number of detecting time parititons * - p_srcz - is the source z coordinate * - p_srcy - is the source y coordinate * - p_srcx - is the source x coordinate * - p_src - is the source wavefiled * - p_coefz - is the laplacian z-direction coefficients * - p_coefy - is the laplacian y-direction coefficients * - p_coefx - is the laplacian x-direction coefficients * - p_v2dt2 - is the velocity model v^2 * dt^2 * - p_pi0 - is the first input memory of pressure wavefield at t-1 * - p_pi1 - is the second input memory of pressure wavefield at t-1 * - p_po0 - is the first output memory of pressure wavefield at t-1 * - p_po1 - is the second output memory of pressure wavefield at t-1 * - p_ppi0 - is the first input memory of pressure wavefield at t-2 * - p_ppi1 - is the second input memory of pressure wavefield at t-2 * - p_ppo0 - is the first output memory of pressure wavefield at t-2 * - p_ppo1 - is the second output memory of pressure wavefield at t-2 .. _doxid-stream_timer_8hpp_1a99f04d52331ef3b23afd8c9abb2e1e34: .. _cid-streamtimer: streamTimer ----------- .. code-block:: cpp #include "streamTimer.hpp" .. ref-code-block:: cpp :class: title-code-block void streamTimer ( hls::stream & p_signal, hls::stream & p_clock ) streamTimer kernel function to count clock cycles .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - p_signal - the input signal stream * - p_clock - the output clock stream