- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

(There is the existing 'ippsSVDSort_64f_D2' method but when we need this operaion on 32 bit floating point data, we must convert first, call the 64 bit method, then convert back.)

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

I'm very sorry, but we have no current plans to enhance this function.

'ippSVDSort' is part of the speech recognition domain. The speech recognition domain has been removed from the 7.0 product and will only continue to be supported in the 6.1 product.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Are you using just this one function from that domain? We are still in a beta phase on 7.0 and are looking for feedback regarding the changes that have been made. If you could provide a list of the functions you are using we can provide alternatives or consider retaining some key functions.

If you do not wish to share the list publicly then be sure to push the "yes" button next to the "Mark this post private?" item at the bottom of the thread reply editing box, before you push submit.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

For example, I have a 10x6 input matrix, so my output U will be 10x6 (according to the documentation - while in Matlab it is 10x10, and I think this is source of my confusion and/or error in IPP), W is a vector with 6 elements and V is 6x6 (so VT will be 6x6).

It's not complete clear the size of W in the above equation (A = U W VT) but I'm not sure you can multiply a [10x6] * 'W' * [6x6] and get a 10x6 result.

Is there an example showing that the original input can be produced by the SVD result?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

I'm not aware of any sample for this function, and I'm not expert at this function. According to the documentation:

This function performs Single Value Decomposition (SVD) on the input matrix A. The output matrices U, W, and V meet the following condition:

A = U W V^{T},

where the matrix U is column-orthogonal, the matrix W is diagonal (stored as a vector), and the matrix V is orthogonal. V^{T}is the transpose of the matrix V.

The function ippsSVDSort transforms output matrices so that elements of the matrix W are sorted in descending order of their absolute values.

One thing that is confusing me is the term "column-orthogonal matrix." I suspect that "column-orthogonal" means the columns of the matrix U all satisfy the conditions of an orthogonal matrix, but the rows do not, and this might then allow for U to be a non-square matrix?

V must be a square matrix. My interpretation is that W is being represented in short-hand notation as a vector, but that it represents a diagonal matrix, which means it must also be square(all the non-diagonal members are zero). This would imply then that U must also be a square matrix of the same size as V, otherwise, as you noted, the matrix arithmetic won't work.

Will make a request to engineering for clarification.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

W isdiagonal, somay berepresented byavector, additionally, in IPPmatrix U is cut tom-by-

*matrix, so as other columns(with index higher than n) just make no difference, and there is a little or no reason to output them. That is why IPP can do in-place SVD, i.e. replacinginput A with output U.*

**n**Vyacheslav

IPP

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

I think you can see why we are having this discussion however. This interpretation of U is not clear from the current documentation. It would still be nice to have some example (C) code to make things clearer.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page