![]() |
(git:b77b4be)
|
the type I Discrete Cosine Transform (DCT-I) More...
Data Types | |
type | dct_type |
Functions/Subroutines | |
subroutine, public | dct_type_init (pw_grid, neumann_directions, dct_env) |
Initializes a dct_type. | |
subroutine, public | dct_type_release (dct_env) |
Releases a dct_type. | |
subroutine, public | setup_dct_pw_grids (pw_grid, cell_hmat, neumann_directions, dct_pw_grid) |
sets up an extended pw_grid for Discrete Cosine Transform (DCT) calculations | |
subroutine, public | pw_expand (neumann_directions, recv_msgs_bnds, dests_expand, srcs_expand, flipg_stat, bounds_shftd, pw_in, pw_expanded) |
expands a pw_r3d_rs_type data to an evenly symmetric pw_r3d_rs_type data that is 8 times larger than the original one: the even symmetry for a 1D sequence of length n is defined as: 1 2 3 ... n-2 n-1 n --> 1 2 3 ... n-2 n-1 n n-1 n-2 ... 3 2 and is generalized to 3D by applying the same rule in all three directions | |
subroutine, public | pw_shrink (neumann_directions, dests_shrink, srcs_shrink, bounds_local_shftd, pw_in, pw_shrinked) |
shrinks an evenly symmetric pw_r3d_rs_type data to a pw_r3d_rs_type data that is 8 times smaller (the reverse procedure of pw_expand). | |
Variables | |
integer, parameter, public | neumannxyz = 111 |
integer, parameter, public | neumannxy = 110 |
integer, parameter, public | neumannxz = 101 |
integer, parameter, public | neumannyz = 011 |
integer, parameter, public | neumannx = 100 |
integer, parameter, public | neumanny = 010 |
integer, parameter, public | neumannz = 001 |
the type I Discrete Cosine Transform (DCT-I)
subroutine, public dct::dct_type_init | ( | type(pw_grid_type), intent(in), pointer | pw_grid, |
integer, intent(in) | neumann_directions, | ||
type(dct_type), intent(inout) | dct_env | ||
) |
subroutine, public dct::dct_type_release | ( | type(dct_type), intent(inout) | dct_env | ) |
subroutine, public dct::setup_dct_pw_grids | ( | type(pw_grid_type), intent(in), pointer | pw_grid, |
real(dp), dimension(3, 3), intent(in) | cell_hmat, | ||
integer, intent(in) | neumann_directions, | ||
type(pw_grid_type), intent(inout), pointer | dct_pw_grid | ||
) |
sets up an extended pw_grid for Discrete Cosine Transform (DCT) calculations
pw_grid | the original plane wave grid |
cell_hmat | cell hmat |
neumann_directions | directions in which dct should be performed |
dct_pw_grid | DCT plane-wave grid |
Definition at line 161 of file dct.F.
subroutine, public dct::pw_expand | ( | integer, intent(in) | neumann_directions, |
integer, dimension(:, :, :), intent(in), pointer | recv_msgs_bnds, | ||
integer, dimension(:), intent(in), pointer | dests_expand, | ||
integer, dimension(:), intent(in), pointer | srcs_expand, | ||
integer, dimension(:), intent(in), pointer | flipg_stat, | ||
integer, dimension(2, 3), intent(in) | bounds_shftd, | ||
type(pw_r3d_rs_type), intent(in) | pw_in, | ||
type(pw_r3d_rs_type), intent(inout) | pw_expanded | ||
) |
expands a pw_r3d_rs_type data to an evenly symmetric pw_r3d_rs_type data that is 8 times larger than the original one: the even symmetry for a 1D sequence of length n is defined as: 1 2 3 ... n-2 n-1 n --> 1 2 3 ... n-2 n-1 n n-1 n-2 ... 3 2 and is generalized to 3D by applying the same rule in all three directions
neumann_directions | directions in which dct should be performed |
recv_msgs_bnds | bounds of the messages to be received |
dests_expand | list of the destination processes |
srcs_expand | list of the source processes |
flipg_stat | flipping status for the received data chunks |
bounds_shftd | bounds of the original grid shifted to have g0 in the middle of the cell |
pw_in | the original plane wave data |
pw_expanded | the pw data after expansion |
Definition at line 514 of file dct.F.
subroutine, public dct::pw_shrink | ( | integer, intent(in) | neumann_directions, |
integer, dimension(:), intent(in), pointer | dests_shrink, | ||
integer, intent(inout) | srcs_shrink, | ||
integer, dimension(2, 3), intent(in) | bounds_local_shftd, | ||
type(pw_r3d_rs_type), intent(in) | pw_in, | ||
type(pw_r3d_rs_type), intent(inout) | pw_shrinked | ||
) |
shrinks an evenly symmetric pw_r3d_rs_type data to a pw_r3d_rs_type data that is 8 times smaller (the reverse procedure of pw_expand).
neumann_directions | directions in which dct should be performed |
dests_shrink | list of the destination processes |
srcs_shrink | list of the source processes |
bounds_local_shftd | local bounds of the original grid after shifting |
pw_in | the original plane wave data |
pw_shrinked | the shrunk plane wave data |
Definition at line 698 of file dct.F.