Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

output length of cosine transform

Bo_Q_
Beginner
687 Views

I have a seemingly naive question: why the length of the output of cosine transform might be longer than n? For example, for staggered cosine transform, the output length is 3n/2. But just looking at its equation, the output should have the same length as the input, which is n. Thanks!

Bo

0 Kudos
1 Solution
Chao_Y_Intel
Moderator
687 Views

Bo,
I think you are talking the dpar/spar parameter for these functions. Actually, they are not used for the computed result.  They are just used for store the intermediate sin/cos data that are used in the  TT computation.

For the computation function:
 d_forward_trig_transform(double f[], DFTI_DESCRIPTOR_HANDLE *handle, MKL_INT ipar[], double dpar[], MKL_INT *stat);

Both the input and output is F[],  which is the same size.

Thanks
Chao

 

 

 

View solution in original post

0 Kudos
3 Replies
Chao_Y_Intel
Moderator
687 Views

Bo,

Are you talking to some specific MKL questions, or this just a general question regarding the DCT transform?

Thanks,
Chao

0 Kudos
Bo_Q_
Beginner
687 Views

Thanks for your reply. I am only interested in using DCT but the question is applicable to sine transforms as well. Here are the defination of the transforms:

https://software.intel.com/sites/products/documentation/hpc/mkl/mklman/GUID-48C88175-7E59-46C7-99E1-A78BCEE0E981.htm

For instance, for the staggered cosine transform, its output is F(k) with k = 0...n-1, that is n elements in total. But if you look at the documentation here:

https://software.intel.com/sites/products/documentation/hpc/mkl/mklman/GUID-3DA88A75-AC3D-45F1-B647-7D020451D010.htm

You will find the output has 3n/2 elements. Why?

 

Bo

 

0 Kudos
Chao_Y_Intel
Moderator
688 Views

Bo,
I think you are talking the dpar/spar parameter for these functions. Actually, they are not used for the computed result.  They are just used for store the intermediate sin/cos data that are used in the  TT computation.

For the computation function:
 d_forward_trig_transform(double f[], DFTI_DESCRIPTOR_HANDLE *handle, MKL_INT ipar[], double dpar[], MKL_INT *stat);

Both the input and output is F[],  which is the same size.

Thanks
Chao

 

 

 

0 Kudos
Reply