`Y = g(X) = DCT(X)`

, where DCT type is indicated by the type arg`R/bijectors.R`

`tfb_discrete_cosine_transform.Rd`

The discrete cosine transform
efficiently applies a unitary DCT operator. This can be useful for mixing and decorrelating across
the innermost event dimension.
The inverse `X = g^{-1}(Y) = IDCT(Y)`

, where IDCT is DCT-III for type==2.
This bijector can be interleaved with Affine bijectors to build a cascade of
structured efficient linear layers as in Moczulski et al., 2016.
Note that the operator applied is orthonormal (i.e. norm='ortho').

tfb_discrete_cosine_transform(validate_args = FALSE, dct_type = 2, name = "dct")

validate_args | Logical, default FALSE. Whether to validate input with asserts. If validate_args is FALSE, and the inputs are invalid, correct behavior is not guaranteed. |
---|---|

dct_type | integer, the DCT type performed by the forward transformation. Currently, only 2 and 3 are supported. |

name | name prefixed to Ops created by this class. |

a bijector instance.

For usage examples see `tfb_forward()`

, `tfb_inverse()`

, `tfb_inverse_log_det_jacobian()`

.

Other bijectors: `tfb_absolute_value`

,
`tfb_affine_linear_operator`

,
`tfb_affine_scalar`

,
`tfb_affine`

,
`tfb_batch_normalization`

,
`tfb_blockwise`

, `tfb_chain`

,
`tfb_cholesky_outer_product`

,
`tfb_cholesky_to_inv_cholesky`

,
`tfb_correlation_cholesky`

,
`tfb_cumsum`

, `tfb_expm1`

,
`tfb_exp`

, `tfb_ffjord`

,
`tfb_fill_scale_tri_l`

,
`tfb_fill_triangular`

,
`tfb_gumbel_cdf`

, `tfb_gumbel`

,
`tfb_identity`

, `tfb_inline`

,
`tfb_invert`

,
`tfb_iterated_sigmoid_centered`

,
`tfb_kumaraswamy_cdf`

,
`tfb_kumaraswamy`

,
`tfb_masked_autoregressive_default_template`

,
`tfb_masked_autoregressive_flow`

,
`tfb_masked_dense`

,
`tfb_matrix_inverse_tri_l`

,
`tfb_matvec_lu`

,
`tfb_normal_cdf`

, `tfb_ordered`

,
`tfb_pad`

, `tfb_permute`

,
`tfb_power_transform`

,
`tfb_rational_quadratic_spline`

,
`tfb_real_nvp_default_template`

,
`tfb_real_nvp`

, `tfb_reciprocal`

,
`tfb_reshape`

,
`tfb_scale_matvec_diag`

,
`tfb_scale_matvec_linear_operator`

,
`tfb_scale_matvec_lu`

,
`tfb_scale_matvec_tri_l`

,
`tfb_scale_tri_l`

, `tfb_scale`

,
`tfb_shift`

, `tfb_sigmoid`

,
`tfb_sinh_arcsinh`

,
`tfb_softmax_centered`

,
`tfb_softplus`

, `tfb_softsign`

,
`tfb_square`

, `tfb_tanh`

,
`tfb_transform_diagonal`

,
`tfb_transpose`

,
`tfb_weibull_cdf`

, `tfb_weibull`