/// <summary>
/// decomposes matrix and stores the results to user-provided matrices
/// </summary>
/// <param name="src"></param>
/// <param name="w"></param>
/// <param name="u"></param>
/// <param name="vt"></param>
/// <param name="flags"></param>
public static void Compute(InputArray src, OutputArray w,
OutputArray u, OutputArray vt, Flags flags = 0)
{
if (src == null)
{
throw new ArgumentNullException(nameof(src));
}
if (w == null)
{
throw new ArgumentNullException(nameof(w));
}
if (u == null)
{
throw new ArgumentNullException(nameof(u));
}
if (vt == null)
{
throw new ArgumentNullException(nameof(vt));
}
src.ThrowIfDisposed();
w.ThrowIfNotReady();
u.ThrowIfNotReady();
vt.ThrowIfNotReady();
NativeMethods.core_SVD_static_compute(src.CvPtr, w.CvPtr, u.CvPtr, vt.CvPtr, (int)flags);
w.Fix();
u.Fix();
vt.Fix();
}