seismic :: Array U DIM2 Float -> Array U DIM2 Float -> Array U DIM2 Float -> SeismicData
seismic !cppf !capf !cvel = SeismicData {ppf = capf, apf = npf, vel = cvel}
  where
    {-# INLINE stencil #-}
    stencil = mapStencil2 (BoundConst 0.0) [stencil2|   0  0  -1  0  0
                                                        0  0  16  0  0
                                                        -1 16 -60 16 -1
                                                        0  0  16  0  0
                                                        0  0  -1  0  0 |] capf
    {-# INLINE npf #-}
    npf = capf `deepSeqArray` suspendedComputeP $ R.czipWith (-) (R.cmap (*2) capf) $ R.czipWith (-) cppf $ R.czipWith (*) cvel stencil
seismic :: Array U DIM2 Float -> Array U DIM2 Float -> Array U DIM2 Float -> SeismicData
seismic !cppf !capf !cvel = SeismicData {ppf = capf, apf = npf, vel = cvel}
  where
    {-# INLINE stencil #-}
    stencil = mapStencil2 (BoundConst 0.0) [stencil2|   0  0  -1  0  0
                                                        0  0  16  0  0
                                                        -1 16 -60 16 -1
                                                        0  0  16  0  0
                                                        0  0  -1  0  0 |] capf
    {-# INLINE npf #-}
    npf = capf `deepSeqArray` suspendedComputeP $ R.czipWith (-) (R.cmap (*2) capf) $ R.czipWith (-) cppf $ R.czipWith (*) cvel stencil
seismic !cppf !capf !cvel = SeismicData {ppf = capf, apf = npf, vel = cvel}
  where
    {-# INLINE stencil #-}
    stencil = mapStencil2 (BoundConst 0.0) [stencil2|   0  0  -1  0  0
                                                        0  0  16  0  0
                                                        -1 16 -60 16 -1
                                                        0  0  16  0  0
                                                        0  0  -1  0  0 |] capf
    {-# INLINE npf #-}
    npf = capf `deepSeqArray` suspendedComputeP $ R.czipWith (-) (R.cmap (*2) capf) $ R.czipWith (-) cppf $ R.czipWith (*) cvel stencil