def iddr_rsvd(m, n, matvect, matvec, k):
U, V, S, ier = _id.iddr_rsvd(m, n, matvect, matvec, k)<EOL>if ier != <NUM_LIT:0>:<EOL><INDENT>raise _RETCODE_ERROR<EOL><DEDENT>return U, V, S<EOL>
Compute SVD of a real matrix to a specified rank using random matrix-vector
multiplication.

:param m:
    Matrix row dimension.
:type m: int
:param n:
    Matrix column dimension.
:type n: int
:param matvect:
    Function to apply the matrix transpose to a vector, with call signature
    `y = matvect(x)`, where `x` and `y` are the input and output vectors,
    respectively.
:type matvect: function
:param matvec:
    Function to apply the matrix to a vector, with call signature
    `y = matvec(x)`, where `x` and `y` are the input and output vectors,
    respectively.
:type matvec: function
:param k:
    Rank of SVD.
:type k: int

:return:
    Left singular vectors.
:rtype: :class:`numpy.ndarray`
:return:
    Right singular vectors.
:rtype: :class:`numpy.ndarray`
:return:
    Singular values.
:rtype: :class:`numpy.ndarray`