diff --git a/src/Numerics/Algorithms/LinearAlgebra/ILinearAlgebraProvider.cs b/src/Numerics/Algorithms/LinearAlgebra/ILinearAlgebraProvider.cs
index 46c32cfd..1c40850a 100644
--- a/src/Numerics/Algorithms/LinearAlgebra/ILinearAlgebraProvider.cs
+++ b/src/Numerics/Algorithms/LinearAlgebra/ILinearAlgebraProvider.cs
@@ -392,10 +392,10 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra
/// singular vectors.
/// If is true, on exit VT contains the transposed
/// right singular vectors.
- /// The work array. The array must have a length of at least N,
- /// but should be N*blocksize. The blocksize is machine dependent. Use
- /// to determine the optimal size of the work array. On exit, work[0] contains the optimal
- /// work size value.
+ /// The work array. For real matrices, the work array should be at least
+ /// Max(3*Min(M, N) + Max(M, N), 5*Min(M,N)). For complex matrices, 2*Min(M, N) + Max(M, N).
+ /// On exit, work[0] contains the optimal work size value.
+ ///
/// This is equivalent to the GESVD LAPACK routine.
void SingularValueDecomposition(bool computeVectors, double[] a, double[] s, double[] u, double[] vt, double[] work);
@@ -419,10 +419,10 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra
/// On exit VT contains the transposed right singular vectors.
/// The B matrix.
/// On exit, the solution matrix.
- /// The work array. The array must have a length of at least N,
- /// but should be N*blocksize. The blocksize is machine dependent. Use
- /// to determine the optimal size of the work array. On exit, work[0] contains the optimal
- /// work size value.
+ /// The work array. For real matrices, the work array should be at least
+ /// Max(3*Min(M, N) + Max(M, N), 5*Min(M,N)). For complex matrices, 2*Min(M, N) + Max(M, N).
+ /// On exit, work[0] contains the optimal work size value.
+ ///
void SvdSolve(double[] a, double[] s, double[] u, double[] vt, double[] b, double[] x, double[] work);
///