diff --git a/Modelica/Math/package.mo b/Modelica/Math/package.mo index 62bd4a2df8..ca7ccb51d0 100644 --- a/Modelica/Math/package.mo +++ b/Modelica/Math/package.mo @@ -4886,7 +4886,11 @@ A_fud = [-1, 2, -3; X, n, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -4905,24 +4909,24 @@ A_fud = [-1, 2, -3; N (input) INTEGER The number of linear equations, i.e., the order of the - matrix A. N >= 0. + matrix A. N ≥ 0. KL (input) INTEGER - The number of subdiagonals within the band of A. KL >= 0. + The number of subdiagonals within the band of A. KL ≥ 0. KU (input) INTEGER - The number of superdiagonals within the band of A. KU >= 0. + The number of superdiagonals within the band of A. KU ≥ 0. NRHS (input) INTEGER The number of right hand sides, i.e., the number of columns - of the matrix B. NRHS >= 0. + of the matrix B. NRHS ≥ 0. AB (input/output) DOUBLE PRECISION array, dimension (LDAB,N) On entry, the matrix A in band storage, in rows KL+1 to 2*KL+KU+1; rows 1 to KL of the array need not be set. The j-th column of A is stored in the j-th column of the array AB as follows: - AB(KL+KU+1+i-j,j) = A(i,j) for max(1,j-KU)<=i<=min(N,j+KL) + AB(KL+KU+1+i-j,j) = A(i,j) for max(1,j-KU) ≤ i ≤ min(N,j+KL) On exit, details of the factorization: U is stored as an upper triangular band matrix with KL+KU superdiagonals in rows 1 to KL+KU+1, and the multipliers used during the @@ -4930,7 +4934,7 @@ A_fud = [-1, 2, -3; See below for further details. LDAB (input) INTEGER - The leading dimension of the array AB. LDAB >= 2*KL+KU+1. + The leading dimension of the array AB. LDAB ≥ 2*KL+KU+1. IPIV (output) INTEGER array, dimension (N) The pivot indices that define the permutation matrix P; @@ -4941,12 +4945,12 @@ A_fud = [-1, 2, -3; On exit, if INFO = 0, the N-by-NRHS solution matrix X. LDB (input) INTEGER - The leading dimension of the array B. LDB >= max(1,N). + The leading dimension of the array B. LDB ≥ max(1,N). INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value - > 0: if INFO = i, U(i,i) is exactly zero. The factorization + < 0: if INFO = -i, the i-th argument had an illegal value + > 0: if INFO = i, U(i,i) is exactly zero. The factorization has been completed, but the factor U is exactly singular, and the solution has not been computed. @@ -4968,7 +4972,8 @@ A_fud = [-1, 2, -3; Array elements marked * are not used by the routine; elements marked + need not be set on entry, but are required by the routine to store elements of U because of fill-in resulting from the row interchanges. -")); ++")); end dgbsv; pure function dgbsv_vec @@ -4998,10 +5003,13 @@ A_fud = [-1, 2, -3; x, n, info) annotation (Library="lapack"); - annotation (Documentation(info=" -Same as function LAPACK.dgbsv, but right hand side is a vector and not a matrix. + annotation (Documentation(info=" +
+Same as function LAPACK.dgbsv, +but right hand side is a vector and not a matrix. For details of the arguments, see documentation of dgbsv. -")); +
+")); end dgbsv_vec; pure function dgecon @@ -5031,7 +5039,11 @@ For details of the arguments, see documentation of dgbsv. work, iwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" ++Lapack documentation +
+Purpose ======= @@ -5053,14 +5065,14 @@ For details of the arguments, see documentation of dgbsv. = 'I': Infinity-norm. N (input) INTEGER - The order of the matrix A. N >= 0. + The order of the matrix A. N ≥ 0. A (input) DOUBLE PRECISION array, dimension (LDA,N) The factors L and U from the factorization A = P*L*U as computed by DGETRF. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). ANORM (input) DOUBLE PRECISION If NORM = '1' or 'O', the 1-norm of the original matrix A. @@ -5076,8 +5088,9 @@ For details of the arguments, see documentation of dgbsv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value -")); + < 0: if INFO = -i, the i-th argument had an illegal value ++")); end dgecon; pure function dgees @@ -5118,7 +5131,11 @@ For details of the arguments, see documentation of dgbsv. lwork, bwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -5137,7 +5154,7 @@ For details of the arguments, see documentation of dgbsv. [ a b ] [ c a ] - where b*c < 0. The eigenvalues of such a block are a +- sqrt(bc). + where b*c < 0. The eigenvalues of such a block are a +- sqrt(bc). Arguments ========= @@ -5168,14 +5185,14 @@ For details of the arguments, see documentation of dgbsv. case INFO is set to N+2 (see INFO below). N (input) INTEGER - The order of the matrix A. N >= 0. + The order of the matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the N-by-N matrix A. On exit, A has been overwritten by its real Schur form T. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). SDIM (output) INTEGER If SORT = 'N', SDIM = 0. @@ -5199,14 +5216,14 @@ For details of the arguments, see documentation of dgbsv. If JOBVS = 'N', VS is not referenced. LDVS (input) INTEGER - The leading dimension of the array VS. LDVS >= 1; if - JOBVS = 'V', LDVS >= N. + The leading dimension of the array VS. LDVS ≥ 1; if + JOBVS = 'V', LDVS ≥ N. WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO = 0, WORK(1) contains the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= max(1,3*N). + The dimension of the array WORK. LWORK ≥ max(1,3*N). For good performance, LWORK must generally be larger. If LWORK = -1, then a workspace query is assumed; the routine @@ -5219,9 +5236,9 @@ For details of the arguments, see documentation of dgbsv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value. - > 0: if INFO = i, and i is - <= N: the QR algorithm failed to compute all the + < 0: if INFO = -i, the i-th argument had an illegal value. + > 0: if INFO = i, and i is + ≤ N: the QR algorithm failed to compute all the eigenvalues; elements 1:ILO-1 and i+1:N of WR and WI contain those eigenvalues which have converged; if JOBVS = 'V', VS contains the matrix which reduces A @@ -5233,7 +5250,8 @@ For details of the arguments, see documentation of dgbsv. complex eigenvalues so that leading eigenvalues in the Schur form no longer satisfy SELECT=.TRUE. This could also be caused by underflow due to scaling. -")); ++")); end dgees; pure function dgeev @@ -5268,11 +5286,17 @@ For details of the arguments, see documentation of dgbsv. work, lwork, info) annotation (Library="lapack"); - annotation (Documentation(info="This function is not a full interface to the LAPACK function DGEEV, + annotation (Documentation(info=" +
+This function is not a full interface to the LAPACK function DGEEV, but calls it in such a way that only eigenvalues and right eigenvectors are computed. +
+Lapack documentation +
+Purpose ======= @@ -5301,14 +5325,14 @@ Lapack documentation = 'V': right eigenvectors of A are computed. N (input) INTEGER - The order of the matrix A. N >= 0. + The order of the matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the N-by-N matrix A. On exit, A has been overwritten. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). WR (output) DOUBLE PRECISION array, dimension (N) WI (output) DOUBLE PRECISION array, dimension (N) @@ -5330,8 +5354,8 @@ Lapack documentation u(j+1) = VL(:,j) - i*VL(:,j+1). LDVL (input) INTEGER - The leading dimension of the array VL. LDVL >= 1; if - JOBVL = 'V', LDVL >= N. + The leading dimension of the array VL. LDVL ≥ 1; if + JOBVL = 'V', LDVL ≥ N. VR (output) DOUBLE PRECISION array, dimension (LDVR,N) If JOBVR = 'V', the right eigenvectors v(j) are stored one @@ -5345,15 +5369,15 @@ Lapack documentation v(j+1) = VR(:,j) - i*VR(:,j+1). LDVR (input) INTEGER - The leading dimension of the array VR. LDVR >= 1; if - JOBVR = 'V', LDVR >= N. + The leading dimension of the array VR. LDVR ≥ 1; if + JOBVR = 'V', LDVR ≥ N. WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= max(1,3*N), and - if JOBVL = 'V' or JOBVR = 'V', LWORK >= 4*N. For good + The dimension of the array WORK. LWORK ≥ max(1,3*N), and + if JOBVL = 'V' or JOBVR = 'V', LWORK ≥ 4*N. For good performance, LWORK must generally be larger. If LWORK = -1, then a workspace query is assumed; the routine @@ -5363,12 +5387,13 @@ Lapack documentation INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value. - > 0: if INFO = i, the QR algorithm failed to compute all the + < 0: if INFO = -i, the i-th argument had an illegal value. + > 0: if INFO = i, the QR algorithm failed to compute all the eigenvalues, and no eigenvectors have been computed; elements i+1:N of WR and WI contain eigenvalues which have converged. -")); ++")); end dgeev; pure function dgeev_eigenValues @@ -5411,7 +5436,11 @@ Lapack documentation lwork, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -5440,14 +5469,14 @@ Lapack documentation = 'V': right eigenvectors of A are computed. N (input) INTEGER - The order of the matrix A. N >= 0. + The order of the matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the N-by-N matrix A. On exit, A has been overwritten. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). WR (output) DOUBLE PRECISION array, dimension (N) WI (output) DOUBLE PRECISION array, dimension (N) @@ -5469,8 +5498,8 @@ Lapack documentation u(j+1) = VL(:,j) - i*VL(:,j+1). LDVL (input) INTEGER - The leading dimension of the array VL. LDVL >= 1; if - JOBVL = 'V', LDVL >= N. + The leading dimension of the array VL. LDVL ≥ 1; if + JOBVL = 'V', LDVL ≥ N. VR (output) DOUBLE PRECISION array, dimension (LDVR,N) If JOBVR = 'V', the right eigenvectors v(j) are stored one @@ -5484,15 +5513,15 @@ Lapack documentation v(j+1) = VR(:,j) - i*VR(:,j+1). LDVR (input) INTEGER - The leading dimension of the array VR. LDVR >= 1; if - JOBVR = 'V', LDVR >= N. + The leading dimension of the array VR. LDVR ≥ 1; if + JOBVR = 'V', LDVR ≥ N. WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= max(1,3*N), and - if JOBVL = 'V' or JOBVR = 'V', LWORK >= 4*N. For good + The dimension of the array WORK. LWORK ≥ max(1,3*N), and + if JOBVL = 'V' or JOBVR = 'V', LWORK ≥ 4*N. For good performance, LWORK must generally be larger. If LWORK = -1, then a workspace query is assumed; the routine @@ -5502,12 +5531,13 @@ Lapack documentation INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value. - > 0: if INFO = i, the QR algorithm failed to compute all the + < 0: if INFO = -i, the i-th argument had an illegal value. + > 0: if INFO = i, the QR algorithm failed to compute all the eigenvalues, and no eigenvectors have been computed; elements i+1:N of WR and WI contain eigenvalues which have converged. -")); ++")); end dgeev_eigenValues; pure function dgeevx @@ -5562,7 +5592,11 @@ Lapack documentation lwork, iwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -5637,7 +5671,7 @@ Lapack documentation must also be computed (JOBVL = 'V' and JOBVR = 'V'). N (input) INTEGER - The order of the matrix A. N >= 0. + The order of the matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the N-by-N matrix A. @@ -5646,7 +5680,7 @@ Lapack documentation version of the input matrix A. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). WR (output) DOUBLE PRECISION array, dimension (N) WI (output) DOUBLE PRECISION array, dimension (N) @@ -5668,8 +5702,8 @@ Lapack documentation u(j+1) = VL(:,j) - i*VL(:,j+1). LDVL (input) INTEGER - The leading dimension of the array VL. LDVL >= 1; if - JOBVL = 'V', LDVL >= N. + The leading dimension of the array VL. LDVL ≥ 1; if + JOBVL = 'V', LDVL ≥ N. VR (output) DOUBLE PRECISION array, dimension (LDVR,N) If JOBVR = 'V', the right eigenvectors v(j) are stored one @@ -5683,13 +5717,13 @@ Lapack documentation v(j+1) = VR(:,j) - i*VR(:,j+1). LDVR (input) INTEGER - The leading dimension of the array VR. LDVR >= 1, and if - JOBVR = 'V', LDVR >= N. + The leading dimension of the array VR. LDVR ≥ 1, and if + JOBVR = 'V', LDVR ≥ N. ILO (output) INTEGER IHI (output) INTEGER ILO and IHI are integer values determined when A was - balanced. The balanced A(i,j) = 0 if I > J and + balanced. The balanced A(i,j) = 0 if I > J and J = 1,...,ILO-1 or I = IHI+1,...,N. SCALE (output) DOUBLE PRECISION array, dimension (N) @@ -5720,8 +5754,8 @@ Lapack documentation LWORK (input) INTEGER The dimension of the array WORK. If SENSE = 'N' or 'E', - LWORK >= max(1,2*N), and if JOBVL = 'V' or JOBVR = 'V', - LWORK >= 3*N. If SENSE = 'V' or 'B', LWORK >= N*(N+6). + LWORK ≥ max(1,2*N), and if JOBVL = 'V' or JOBVR = 'V', + LWORK ≥ 3*N. If SENSE = 'V' or 'B', LWORK ≥ N*(N+6). For good performance, LWORK must generally be larger. If LWORK = -1, then a workspace query is assumed; the routine @@ -5734,12 +5768,13 @@ Lapack documentation INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value. - > 0: if INFO = i, the QR algorithm failed to compute all the + < 0: if INFO = -i, the i-th argument had an illegal value. + > 0: if INFO = i, the QR algorithm failed to compute all the eigenvalues, and no eigenvectors or condition numbers have been computed; elements 1:ILO-1 and i+1:N of WR and WI contain eigenvalues which have converged. -")); ++")); end dgeevx; pure function dgehrd @@ -5772,7 +5807,11 @@ Lapack documentation work, lwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -5783,7 +5822,7 @@ Lapack documentation ========= N (input) INTEGER - The order of the matrix A. N >= 0. + The order of the matrix A. N ≥ 0. ILO (input) INTEGER IHI (input) INTEGER @@ -5791,7 +5830,7 @@ Lapack documentation and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally set by a previous call to DGEBAL; otherwise they should be set to 1 and N respectively. See Further Details. - 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0. + 1 ≤ ILO ≤ IHI ≤ N, if N > 0; ILO=1 and IHI=0, if N=0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the N-by-N general matrix to be reduced. @@ -5802,7 +5841,7 @@ Lapack documentation reflectors. See Further Details. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). TAU (output) DOUBLE PRECISION array, dimension (N-1) The scalar factors of the elementary reflectors (see Further @@ -5813,8 +5852,8 @@ Lapack documentation On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The length of the array WORK. LWORK >= max(1,N). - For optimum performance LWORK >= N*NB, where NB is the + The length of the array WORK. LWORK ≥ max(1,N). + For optimum performance LWORK ≥ N*NB, where NB is the optimal blocksize. If LWORK = -1, then a workspace query is assumed; the routine @@ -5824,7 +5863,7 @@ Lapack documentation INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value. + < 0: if INFO = -i, the i-th argument had an illegal value. Further Details =============== @@ -5858,7 +5897,8 @@ Lapack documentation where a denotes an element of the original matrix A, h denotes a modified element of the upper Hessenberg matrix H, and vi denotes an element of the vector defining H(i). -")); ++")); end dgehrd; pure function dgels_vec @@ -5893,7 +5933,11 @@ Lapack documentation work, lwork, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -5903,17 +5947,17 @@ Lapack documentation The following options are provided: - 1. If TRANS = 'N' and m >= n: find the least squares solution of + 1. If TRANS = 'N' and m ≥ n: find the least squares solution of an overdetermined system, i.e., solve the least squares problem minimize || B - A*X ||. - 2. If TRANS = 'N' and m < n: find the minimum norm solution of + 2. If TRANS = 'N' and m < n: find the minimum norm solution of an underdetermined system A * X = B. - 3. If TRANS = 'T' and m >= n: find the minimum norm solution of + 3. If TRANS = 'T' and m ≥ n: find the minimum norm solution of an undetermined system A**T * X = B. - 4. If TRANS = 'T' and m < n: find the least squares solution of + 4. If TRANS = 'T' and m < n: find the least squares solution of an overdetermined system, i.e., solve the least squares problem minimize || B - A**T * X ||. @@ -5930,25 +5974,25 @@ Lapack documentation = 'T': the linear system involves A**T. M (input) INTEGER - The number of rows of the matrix A. M >= 0. + The number of rows of the matrix A. M ≥ 0. N (input) INTEGER - The number of columns of the matrix A. N >= 0. + The number of columns of the matrix A. N ≥ 0. NRHS (input) INTEGER The number of right hand sides, i.e., the number of - columns of the matrices B and X. NRHS >=0. + columns of the matrices B and X. NRHS ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the M-by-N matrix A. On exit, - if M >= N, A is overwritten by details of its QR + if M ≥ N, A is overwritten by details of its QR factorization as returned by DGEQRF; - if M < N, A is overwritten by details of its LQ + if M < N, A is overwritten by details of its LQ factorization as returned by DGELQF. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,M). + The leading dimension of the array A. LDA ≥ max(1,M). B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS) On entry, the matrix B of right hand side vectors, stored @@ -5956,30 +6000,30 @@ Lapack documentation if TRANS = 'T'. On exit, if INFO = 0, B is overwritten by the solution vectors, stored columnwise: - if TRANS = 'N' and m >= n, rows 1 to n of B contain the least + if TRANS = 'N' and m ≥ n, rows 1 to n of B contain the least squares solution vectors; the residual sum of squares for the solution in each column is given by the sum of squares of elements N+1 to M in that column; - if TRANS = 'N' and m < n, rows 1 to N of B contain the + if TRANS = 'N' and m < n, rows 1 to N of B contain the minimum norm solution vectors; - if TRANS = 'T' and m >= n, rows 1 to M of B contain the + if TRANS = 'T' and m ≥ n, rows 1 to M of B contain the minimum norm solution vectors; - if TRANS = 'T' and m < n, rows 1 to M of B contain the + if TRANS = 'T' and m < n, rows 1 to M of B contain the least squares solution vectors; the residual sum of squares for the solution in each column is given by the sum of squares of elements M+1 to N in that column. LDB (input) INTEGER - The leading dimension of the array B. LDB >= MAX(1,M,N). + The leading dimension of the array B. LDB ≥ MAX(1,M,N). WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER The dimension of the array WORK. - LWORK >= max( 1, MN + max( MN, NRHS ) ). + LWORK ≥ max( 1, MN + max( MN, NRHS ) ). For optimal performance, - LWORK >= max( 1, MN + max( MN, NRHS )*NB ). + LWORK ≥ max( 1, MN + max( MN, NRHS )*NB ). where MN = min(M,N) and NB is the optimum block size. If LWORK = -1, then a workspace query is assumed; the routine @@ -5989,12 +6033,13 @@ Lapack documentation INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value - > 0: if INFO = i, the i-th diagonal element of the + < 0: if INFO = -i, the i-th argument had an illegal value + > 0: if INFO = i, the i-th diagonal element of the triangular factor of A is zero, so that A does not have full rank; the least squares solution could not be computed. -")); ++")); end dgels_vec; pure function dgelsy @@ -6036,7 +6081,11 @@ Lapack documentation work, lwork, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -6081,14 +6130,14 @@ Lapack documentation ========= M (input) INTEGER - The number of rows of the matrix A. M >= 0. + The number of rows of the matrix A. M ≥ 0. N (input) INTEGER - The number of columns of the matrix A. N >= 0. + The number of columns of the matrix A. N ≥ 0. NRHS (input) INTEGER The number of right hand sides, i.e., the number of - columns of matrices B and X. NRHS >= 0. + columns of matrices B and X. NRHS ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the M-by-N matrix A. @@ -6096,14 +6145,14 @@ Lapack documentation complete orthogonal factorization. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,M). + The leading dimension of the array A. LDA ≥ max(1,M). B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS) On entry, the M-by-NRHS right hand side matrix B. On exit, the N-by-NRHS solution matrix X. LDB (input) INTEGER - The leading dimension of the array B. LDB >= max(1,M,N). + The leading dimension of the array B. LDB ≥ max(1,M,N). JPVT (input/output) INTEGER array, dimension (N) On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted @@ -6115,7 +6164,7 @@ Lapack documentation RCOND is used to determine the effective rank of A, which is defined as the order of the largest leading triangular submatrix R11 in the QR factorization with pivoting of A, - whose estimated condition number < 1/RCOND. + whose estimated condition number < 1/RCOND. RANK (output) INTEGER The effective rank of A, i.e., the order of the submatrix @@ -6128,10 +6177,10 @@ Lapack documentation LWORK (input) INTEGER The dimension of the array WORK. The unblocked strategy requires that: - LWORK >= MAX( MN+3*N+1, 2*MN+NRHS ), + LWORK ≥ MAX( MN+3*N+1, 2*MN+NRHS ), where MN = min( M, N ). The block algorithm requires that: - LWORK >= MAX( MN+2*N+NB*(N+1), 2*MN+NB*NRHS ), + LWORK ≥ MAX( MN+2*N+NB*(N+1), 2*MN+NB*NRHS ), where NB is an upper bound on the blocksize returned by ILAENV for the routines DGEQP3, DTZRZF, STZRQF, DORMQR, and DORMRZ. @@ -6143,8 +6192,9 @@ Lapack documentation INFO (output) INTEGER = 0: successful exit - < 0: If INFO = -i, the i-th argument had an illegal value. -")); + < 0: If INFO = -i, the i-th argument had an illegal value. ++")); end dgelsy; pure function dgelsy_vec @@ -6186,115 +6236,13 @@ Lapack documentation work, lwork, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation - Purpose - ======= - - DGELSY computes the minimum-norm solution to a real linear least - squares problem: - minimize || A * X - B || - using a complete orthogonal factorization of A. A is an M-by-N - matrix which may be rank-deficient. - - Several right hand side vectors b and solution vectors x can be - handled in a single call; they are stored as the columns of the - M-by-NRHS right hand side matrix B and the N-by-NRHS solution - matrix X. - - The routine first computes a QR factorization with column pivoting: - A * P = Q * [ R11 R12 ] - [ 0 R22 ] - with R11 defined as the largest leading submatrix whose estimated - condition number is less than 1/RCOND. The order of R11, RANK, - is the effective rank of A. - - Then, R22 is considered to be negligible, and R12 is annihilated - by orthogonal transformations from the right, arriving at the - complete orthogonal factorization: - A * P = Q * [ T11 0 ] * Z - [ 0 0 ] - The minimum-norm solution is then - X = P * Z' [ inv(T11)*Q1'*B ] - [ 0 ] - where Q1 consists of the first RANK columns of Q. - - This routine is basically identical to the original xGELSX except - three differences: - o The call to the subroutine xGEQPF has been substituted by - the call to the subroutine xGEQP3. This subroutine is a Blas-3 - version of the QR factorization with column pivoting. - o Matrix B (the right hand side) is updated with Blas-3. - o The permutation of matrix B (the right hand side) is faster and - more simple. - - Arguments - ========= - - M (input) INTEGER - The number of rows of the matrix A. M >= 0. - - N (input) INTEGER - The number of columns of the matrix A. N >= 0. - - NRHS (input) INTEGER - The number of right hand sides, i.e., the number of - columns of matrices B and X. NRHS >= 0. - - A (input/output) DOUBLE PRECISION array, dimension (LDA,N) - On entry, the M-by-N matrix A. - On exit, A has been overwritten by details of its - complete orthogonal factorization. - - LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,M). - - B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS) - On entry, the M-by-NRHS right hand side matrix B. - On exit, the N-by-NRHS solution matrix X. - - LDB (input) INTEGER - The leading dimension of the array B. LDB >= max(1,M,N). - - JPVT (input/output) INTEGER array, dimension (N) - On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted - to the front of AP, otherwise column i is a free column. - On exit, if JPVT(i) = k, then the i-th column of AP - was the k-th column of A. - - RCOND (input) DOUBLE PRECISION - RCOND is used to determine the effective rank of A, which - is defined as the order of the largest leading triangular - submatrix R11 in the QR factorization with pivoting of A, - whose estimated condition number < 1/RCOND. - - RANK (output) INTEGER - The effective rank of A, i.e., the order of the submatrix - R11. This is the same as the order of the submatrix T11 - in the complete orthogonal factorization of A. - - WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) - On exit, if INFO = 0, WORK(1) returns the optimal LWORK. - - LWORK (input) INTEGER - The dimension of the array WORK. - The unblocked strategy requires that: - LWORK >= MAX( MN+3*N+1, 2*MN+NRHS ), - where MN = min( M, N ). - The block algorithm requires that: - LWORK >= MAX( MN+2*N+NB*(N+1), 2*MN+NB*NRHS ), - where NB is an upper bound on the blocksize returned - by ILAENV for the routines DGEQP3, DTZRZF, STZRQF, DORMQR, - and DORMRZ. - - If LWORK = -1, then a workspace query is assumed; the routine - only calculates the optimal size of the WORK array, returns - this value as the first entry of the WORK array, and no error - message related to LWORK is issued by XERBLA. - - INFO (output) INTEGER - = 0: successful exit - < 0: If INFO = -i, the i-th argument had an illegal value. -")); + annotation (Documentation(info=" +
+Same as function LAPACK.dgelsy, +but right hand side is a vector and not a matrix. +For details of the arguments, see documentation of dgelsy. +
+")); end dgelsy_vec; pure function dgeqp3 "Compute QR factorization with column pivoting of square or rectangular matrix A" @@ -6324,7 +6272,11 @@ Lapack documentation work, lwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" ++Lapack documentation +
+Purpose ======= @@ -6335,10 +6287,10 @@ Lapack documentation ========= M (input) INTEGER - The number of rows of the matrix A. M >= 0. + The number of rows of the matrix A. M ≥ 0. N (input) INTEGER - The number of columns of the matrix A. N >= 0. + The number of columns of the matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the M-by-N matrix A. @@ -6349,7 +6301,7 @@ Lapack documentation reflectors. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,M). + The leading dimension of the array A. LDA ≥ max(1,M). JPVT (input/output) INTEGER array, dimension (N) On entry, if JPVT(J).ne.0, the J-th column of A is permuted @@ -6365,8 +6317,8 @@ Lapack documentation On exit, if INFO=0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= 3*N+1. - For optimal performance LWORK >= 2*N+( N+1 )*NB, where NB + The dimension of the array WORK. LWORK ≥ 3*N+1. + For optimal performance LWORK ≥ 2*N+( N+1 )*NB, where NB is the optimal blocksize. If LWORK = -1, then a workspace query is assumed; the routine @@ -6376,7 +6328,7 @@ Lapack documentation INFO (output) INTEGER = 0: successful exit. - < 0: if INFO = -i, the i-th argument had an illegal value. + < 0: if INFO = -i, the i-th argument had an illegal value. Further Details =============== @@ -6396,7 +6348,8 @@ Lapack documentation Based on contributions by G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain X. Sun, Computer Science Dept., Duke University, USA -")); ++")); end dgeqp3; pure function dgeqrf "Compute a QR factorization without pivoting" @@ -6424,7 +6377,11 @@ Lapack documentation work, lwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -6435,22 +6392,22 @@ Lapack documentation ========= M (input) INTEGER - The number of rows of the matrix A. M >= 0. + The number of rows of the matrix A. M ≥ 0. N (input) INTEGER - The number of columns of the matrix A. N >= 0. + The number of columns of the matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the M-by-N matrix A. On exit, the elements on and above the diagonal of the array contain the min(M,N)-by-N upper trapezoidal matrix R (R is - upper triangular if m >= n); the elements below the diagonal, + upper triangular if m ≥ n); the elements below the diagonal, with the array TAU, represent the orthogonal matrix Q as a product of min(m,n) elementary reflectors (see Further Details). LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,M). + The leading dimension of the array A. LDA ≥ max(1,M). TAU (output) DOUBLE PRECISION array, dimension (min(M,N)) The scalar factors of the elementary reflectors (see Further @@ -6460,8 +6417,8 @@ Lapack documentation On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= max(1,N). - For optimum performance LWORK >= N*NB, where NB is + The dimension of the array WORK. LWORK ≥ max(1,N). + For optimum performance LWORK ≥ N*NB, where NB is the optimal blocksize. If LWORK = -1, then a workspace query is assumed; the routine @@ -6471,7 +6428,7 @@ Lapack documentation INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value + < 0: if INFO = -i, the i-th argument had an illegal value Further Details =============== @@ -6487,7 +6444,8 @@ Lapack documentation where tau is a real scalar, and v is a real vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), and tau in TAU(i). -")); ++")); end dgeqrf; pure function dgesdd "Determine singular value decomposition" @@ -6527,7 +6485,11 @@ Lapack documentation lwork, iwork, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -6566,7 +6528,7 @@ Lapack documentation = 'S': the first min(M,N) columns of U and the first min(M,N) rows of V**T are returned in the arrays U and VT; - = 'O': If M >= N, the first N columns of U are overwritten + = 'O': If M ≥ N, the first N columns of U are overwritten on the array A and all rows of V**T are returned in the array VT; otherwise, all columns of U are returned in the @@ -6575,65 +6537,65 @@ Lapack documentation = 'N': no columns of U or rows of V**T are computed. M (input) INTEGER - The number of rows of the input matrix A. M >= 0. + The number of rows of the input matrix A. M ≥ 0. N (input) INTEGER - The number of columns of the input matrix A. N >= 0. + The number of columns of the input matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the M-by-N matrix A. On exit, if JOBZ = 'O', A is overwritten with the first N columns of U (the left singular vectors, stored - columnwise) if M >= N; + columnwise) if M ≥ N; A is overwritten with the first M rows of V**T (the right singular vectors, stored rowwise) otherwise. if JOBZ .ne. 'O', the contents of A are destroyed. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,M). + The leading dimension of the array A. LDA ≥ max(1,M). S (output) DOUBLE PRECISION array, dimension (min(M,N)) - The singular values of A, sorted so that S(i) >= S(i+1). + The singular values of A, sorted so that S(i) ≥ S(i+1). U (output) DOUBLE PRECISION array, dimension (LDU,UCOL) - UCOL = M if JOBZ = 'A' or JOBZ = 'O' and M < N; + UCOL = M if JOBZ = 'A' or JOBZ = 'O' and M < N; UCOL = min(M,N) if JOBZ = 'S'. - If JOBZ = 'A' or JOBZ = 'O' and M < N, U contains the M-by-M + If JOBZ = 'A' or JOBZ = 'O' and M < N, U contains the M-by-M orthogonal matrix U; if JOBZ = 'S', U contains the first min(M,N) columns of U (the left singular vectors, stored columnwise); - if JOBZ = 'O' and M >= N, or JOBZ = 'N', U is not referenced. + if JOBZ = 'O' and M ≥ N, or JOBZ = 'N', U is not referenced. LDU (input) INTEGER - The leading dimension of the array U. LDU >= 1; if - JOBZ = 'S' or 'A' or JOBZ = 'O' and M < N, LDU >= M. + The leading dimension of the array U. LDU ≥ 1; if + JOBZ = 'S' or 'A' or JOBZ = 'O' and M < N, LDU ≥ M. VT (output) DOUBLE PRECISION array, dimension (LDVT,N) - If JOBZ = 'A' or JOBZ = 'O' and M >= N, VT contains the + If JOBZ = 'A' or JOBZ = 'O' and M ≥ N, VT contains the N-by-N orthogonal matrix V**T; if JOBZ = 'S', VT contains the first min(M,N) rows of V**T (the right singular vectors, stored rowwise); - if JOBZ = 'O' and M < N, or JOBZ = 'N', VT is not referenced. + if JOBZ = 'O' and M < N, or JOBZ = 'N', VT is not referenced. LDVT (input) INTEGER - The leading dimension of the array VT. LDVT >= 1; if - JOBZ = 'A' or JOBZ = 'O' and M >= N, LDVT >= N; - if JOBZ = 'S', LDVT >= min(M,N). + The leading dimension of the array VT. LDVT ≥ 1; if + JOBZ = 'A' or JOBZ = 'O' and M ≥ N, LDVT ≥ N; + if JOBZ = 'S', LDVT ≥ min(M,N). WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO = 0, WORK(1) returns the optimal LWORK; LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= 1. + The dimension of the array WORK. LWORK ≥ 1. If JOBZ = 'N', - LWORK >= 3*min(M,N) + max(max(M,N),7*min(M,N)). + LWORK ≥ 3*min(M,N) + max(max(M,N),7*min(M,N)). If JOBZ = 'O', - LWORK >= 3*min(M,N) + + LWORK ≥ 3*min(M,N) + max(max(M,N),5*min(M,N)*min(M,N)+4*min(M,N)). If JOBZ = 'S' or 'A' - LWORK >= 3*min(M,N) + + LWORK ≥ 3*min(M,N) + max(max(M,N),4*min(M,N)*min(M,N)+4*min(M,N)). For good performance, LWORK should generally be larger. If LWORK = -1 but other input arguments are legal, WORK(1) @@ -6643,8 +6605,8 @@ Lapack documentation INFO (output) INTEGER = 0: successful exit. - < 0: if INFO = -i, the i-th argument had an illegal value. - > 0: DBDSDC did not converge, updating process failed. + < 0: if INFO = -i, the i-th argument had an illegal value. + > 0: DBDSDC did not converge, updating process failed. Further Details =============== @@ -6652,7 +6614,8 @@ Lapack documentation Based on contributions by Ming Gu and Huan Ren, Computer Science Division, University of California at Berkeley, USA -")); ++")); end dgesdd; pure function dgesv @@ -6679,7 +6642,11 @@ Lapack documentation X, ldb, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -6699,11 +6666,11 @@ Lapack documentation N (input) INTEGER The number of linear equations, i.e., the order of the - matrix A. N >= 0. + matrix A. N ≥ 0. NRHS (input) INTEGER The number of right hand sides, i.e., the number of columns - of the matrix B. NRHS >= 0. + of the matrix B. NRHS ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the N-by-N coefficient matrix A. @@ -6711,7 +6678,7 @@ Lapack documentation A = P*L*U; the unit diagonal elements of L are not stored. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). IPIV (output) INTEGER array, dimension (N) The pivot indices that define the permutation matrix P; @@ -6722,15 +6689,16 @@ Lapack documentation On exit, if INFO = 0, the N-by-NRHS solution matrix X. LDB (input) INTEGER - The leading dimension of the array B. LDB >= max(1,N). + The leading dimension of the array B. LDB ≥ max(1,N). INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value - > 0: if INFO = i, U(i,i) is exactly zero. The factorization + < 0: if INFO = -i, the i-th argument had an illegal value + > 0: if INFO = i, U(i,i) is exactly zero. The factorization has been completed, but the factor U is exactly singular, so the solution could not be computed. -")); ++")); end dgesv; pure function dgesv_vec @@ -6757,10 +6725,13 @@ Lapack documentation x, ldb, info) annotation (Library="lapack"); - annotation (Documentation(info=" -Same as function LAPACK.dgesv, but right hand side is a vector and not a matrix. + annotation (Documentation(info=" +
+Same as function LAPACK.dgesv, +but right hand side is a vector and not a matrix. For details of the arguments, see documentation of dgesv. -")); +
+")); end dgesv_vec; pure function dgesvd "Determine singular value decomposition" @@ -6792,7 +6763,11 @@ For details of the arguments, see documentation of dgesv. work, lwork, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" ++Lapack documentation +
+Purpose ======= @@ -6838,10 +6813,10 @@ For details of the arguments, see documentation of dgesv. JOBVT and JOBU cannot both be 'O'. M (input) INTEGER - The number of rows of the input matrix A. M >= 0. + The number of rows of the input matrix A. M ≥ 0. N (input) INTEGER - The number of columns of the input matrix A. N >= 0. + The number of columns of the input matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the M-by-N matrix A. @@ -6856,10 +6831,10 @@ For details of the arguments, see documentation of dgesv. are destroyed. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,M). + The leading dimension of the array A. LDA ≥ max(1,M). S (output) DOUBLE PRECISION array, dimension (min(M,N)) - The singular values of A, sorted so that S(i) >= S(i+1). + The singular values of A, sorted so that S(i) ≥ S(i+1). U (output) DOUBLE PRECISION array, dimension (LDU,UCOL) (LDU,M) if JOBU = 'A' or (LDU,min(M,N)) if JOBU = 'S'. @@ -6869,8 +6844,8 @@ For details of the arguments, see documentation of dgesv. if JOBU = 'N' or 'O', U is not referenced. LDU (input) INTEGER - The leading dimension of the array U. LDU >= 1; if - JOBU = 'S' or 'A', LDU >= M. + The leading dimension of the array U. LDU ≥ 1; if + JOBU = 'S' or 'A', LDU ≥ M. VT (output) DOUBLE PRECISION array, dimension (LDVT,N) If JOBVT = 'A', VT contains the N-by-N orthogonal matrix @@ -6880,12 +6855,12 @@ For details of the arguments, see documentation of dgesv. if JOBVT = 'N' or 'O', VT is not referenced. LDVT (input) INTEGER - The leading dimension of the array VT. LDVT >= 1; if - JOBVT = 'A', LDVT >= N; if JOBVT = 'S', LDVT >= min(M,N). + The leading dimension of the array VT. LDVT ≥ 1; if + JOBVT = 'A', LDVT ≥ N; if JOBVT = 'S', LDVT ≥ min(M,N). WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO = 0, WORK(1) returns the optimal LWORK; - if INFO > 0, WORK(2:MIN(M,N)) contains the unconverged + if INFO > 0, WORK(2:MIN(M,N)) contains the unconverged superdiagonal elements of an upper bidiagonal matrix B whose diagonal is in S (not necessarily sorted). B satisfies A = U * B * VT, so it has the same singular values @@ -6893,7 +6868,7 @@ For details of the arguments, see documentation of dgesv. LWORK (input) INTEGER The dimension of the array WORK. - LWORK >= MAX(1,3*MIN(M,N)+MAX(M,N),5*MIN(M,N)). + LWORK ≥ MAX(1,3*MIN(M,N)+MAX(M,N),5*MIN(M,N)). For good performance, LWORK should generally be larger. If LWORK = -1, then a workspace query is assumed; the routine @@ -6903,12 +6878,13 @@ For details of the arguments, see documentation of dgesv. INFO (output) INTEGER = 0: successful exit. - < 0: if INFO = -i, the i-th argument had an illegal value. - > 0: if DBDSQR did not converge, INFO specifies how many + < 0: if INFO = -i, the i-th argument had an illegal value. + > 0: if DBDSQR did not converge, INFO specifies how many superdiagonals of an intermediate bidiagonal form B did not converge to zero. See the description of WORK above for details. -")); ++")); end dgesvd; pure function dgesvd_sigma "Determine singular values" @@ -6940,7 +6916,11 @@ For details of the arguments, see documentation of dgesv. work, lwork, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -6986,10 +6966,10 @@ For details of the arguments, see documentation of dgesv. JOBVT and JOBU cannot both be 'O'. M (input) INTEGER - The number of rows of the input matrix A. M >= 0. + The number of rows of the input matrix A. M ≥ 0. N (input) INTEGER - The number of columns of the input matrix A. N >= 0. + The number of columns of the input matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the M-by-N matrix A. @@ -7004,10 +6984,10 @@ For details of the arguments, see documentation of dgesv. are destroyed. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,M). + The leading dimension of the array A. LDA ≥ max(1,M). S (output) DOUBLE PRECISION array, dimension (min(M,N)) - The singular values of A, sorted so that S(i) >= S(i+1). + The singular values of A, sorted so that S(i) ≥ S(i+1). U (output) DOUBLE PRECISION array, dimension (LDU,UCOL) (LDU,M) if JOBU = 'A' or (LDU,min(M,N)) if JOBU = 'S'. @@ -7017,8 +6997,8 @@ For details of the arguments, see documentation of dgesv. if JOBU = 'N' or 'O', U is not referenced. LDU (input) INTEGER - The leading dimension of the array U. LDU >= 1; if - JOBU = 'S' or 'A', LDU >= M. + The leading dimension of the array U. LDU ≥ 1; if + JOBU = 'S' or 'A', LDU ≥ M. VT (output) DOUBLE PRECISION array, dimension (LDVT,N) If JOBVT = 'A', VT contains the N-by-N orthogonal matrix @@ -7028,12 +7008,12 @@ For details of the arguments, see documentation of dgesv. if JOBVT = 'N' or 'O', VT is not referenced. LDVT (input) INTEGER - The leading dimension of the array VT. LDVT >= 1; if - JOBVT = 'A', LDVT >= N; if JOBVT = 'S', LDVT >= min(M,N). + The leading dimension of the array VT. LDVT ≥ 1; if + JOBVT = 'A', LDVT ≥ N; if JOBVT = 'S', LDVT ≥ min(M,N). WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO = 0, WORK(1) returns the optimal LWORK; - if INFO > 0, WORK(2:MIN(M,N)) contains the unconverged + if INFO > 0, WORK(2:MIN(M,N)) contains the unconverged superdiagonal elements of an upper bidiagonal matrix B whose diagonal is in S (not necessarily sorted). B satisfies A = U * B * VT, so it has the same singular values @@ -7041,7 +7021,7 @@ For details of the arguments, see documentation of dgesv. LWORK (input) INTEGER The dimension of the array WORK. - LWORK >= MAX(1,3*MIN(M,N)+MAX(M,N),5*MIN(M,N)). + LWORK ≥ MAX(1,3*MIN(M,N)+MAX(M,N),5*MIN(M,N)). For good performance, LWORK should generally be larger. If LWORK = -1, then a workspace query is assumed; the routine @@ -7051,12 +7031,13 @@ For details of the arguments, see documentation of dgesv. INFO (output) INTEGER = 0: successful exit. - < 0: if INFO = -i, the i-th argument had an illegal value. - > 0: if DBDSQR did not converge, INFO specifies how many + < 0: if INFO = -i, the i-th argument had an illegal value. + > 0: if DBDSQR did not converge, INFO specifies how many superdiagonals of an intermediate bidiagonal form B did not converge to zero. See the description of WORK above for details. -")); ++")); end dgesvd_sigma; pure function dgesvx @@ -7110,7 +7091,11 @@ For details of the arguments, see documentation of dgesv. work, iwork, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -7184,11 +7169,11 @@ For details of the arguments, see documentation of dgesv. N (input) INTEGER The number of linear equations, i.e., the order of the - matrix A. N >= 0. + matrix A. N ≥ 0. NRHS (input) INTEGER The number of right hand sides, i.e., the number of columns - of the matrices B and X. NRHS >= 0. + of the matrices B and X. NRHS ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the N-by-N matrix A. If FACT = 'F' and EQUED is @@ -7202,7 +7187,7 @@ For details of the arguments, see documentation of dgesv. EQUED = 'B': A := diag(R) * A * diag(C). LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). AF (input or output) DOUBLE PRECISION array, dimension (LDAF,N) If FACT = 'F', then AF is an input argument and on entry @@ -7220,7 +7205,7 @@ For details of the arguments, see documentation of dgesv. the form of the equilibrated matrix). LDAF (input) INTEGER - The leading dimension of the array AF. LDAF >= max(1,N). + The leading dimension of the array AF. LDAF ≥ max(1,N). IPIV (input or output) INTEGER array, dimension (N) If FACT = 'F', then IPIV is an input argument and on entry @@ -7272,7 +7257,7 @@ For details of the arguments, see documentation of dgesv. overwritten by diag(C)*B. LDB (input) INTEGER - The leading dimension of the array B. LDB >= max(1,N). + The leading dimension of the array B. LDB ≥ max(1,N). X (output) DOUBLE PRECISION array, dimension (LDX,NRHS) If INFO = 0 or INFO = N+1, the N-by-NRHS solution matrix X @@ -7283,14 +7268,14 @@ For details of the arguments, see documentation of dgesv. and EQUED = 'R' or 'B'. LDX (input) INTEGER - The leading dimension of the array X. LDX >= max(1,N). + The leading dimension of the array X. LDX ≥ max(1,N). RCOND (output) DOUBLE PRECISION The estimate of the reciprocal condition number of the matrix A after equilibration (if done). If RCOND is less than the machine precision (in particular, if RCOND = 0), the matrix is singular to working precision. This condition is - indicated by a return code of INFO > 0. + indicated by a return code of INFO > 0. FERR (output) DOUBLE PRECISION array, dimension (NRHS) The estimated forward error bound for each solution vector @@ -7314,7 +7299,7 @@ For details of the arguments, see documentation of dgesv. of the LU factorization of the (equilibrated) matrix A could be poor. This also means that the solution X, condition estimator RCOND, and forward error bound FERR could be - unreliable. If factorization fails with 0+")); end dgesvx; pure function dgetrf @@ -7358,7 +7344,11 @@ For details of the arguments, see documentation of dgesv. lda, pivots, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +0: if INFO = i, and i is - <= N: U(i,i) is exactly zero. The factorization has + < 0: if INFO = -i, the i-th argument had an illegal value + > 0: if INFO = i, and i is + ≤ N: U(i,i) is exactly zero. The factorization has been completed, but the factor U is exactly singular, so the solution and error bounds could not be computed. RCOND = 0 is returned. @@ -7335,7 +7320,8 @@ For details of the arguments, see documentation of dgesv. there are a number of situations where the computed solution can be more accurate than the value of RCOND would suggest. -")); +
+Lapack documentation +
+Purpose ======= @@ -7368,8 +7358,8 @@ For details of the arguments, see documentation of dgesv. The factorization has the form A = P * L * U where P is a permutation matrix, L is lower triangular with unit - diagonal elements (lower trapezoidal if m > n), and U is upper - triangular (upper trapezoidal if m < n). + diagonal elements (lower trapezoidal if m > n), and U is upper + triangular (upper trapezoidal if m < n). This is the right-looking Level 3 BLAS version of the algorithm. @@ -7377,10 +7367,10 @@ For details of the arguments, see documentation of dgesv. ========= M (input) INTEGER - The number of rows of the matrix A. M >= 0. + The number of rows of the matrix A. M ≥ 0. N (input) INTEGER - The number of columns of the matrix A. N >= 0. + The number of columns of the matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the M-by-N matrix to be factored. @@ -7388,20 +7378,21 @@ For details of the arguments, see documentation of dgesv. A = P*L*U; the unit diagonal elements of L are not stored. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,M). + The leading dimension of the array A. LDA ≥ max(1,M). IPIV (output) INTEGER array, dimension (min(M,N)) - The pivot indices; for 1 <= i <= min(M,N), row i of the + The pivot indices; for 1 ≤ i ≤ min(M,N), row i of the matrix was interchanged with row IPIV(i). INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value - > 0: if INFO = i, U(i,i) is exactly zero. The factorization + < 0: if INFO = -i, the i-th argument had an illegal value + > 0: if INFO = i, U(i,i) is exactly zero. The factorization has been completed, but the factor U is exactly singular, and division by zero will occur if it is used to solve a system of equations. -")); ++")); end dgetrf; pure function dgetri @@ -7429,7 +7420,11 @@ For details of the arguments, see documentation of dgesv. work, lwork, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -7443,7 +7438,7 @@ For details of the arguments, see documentation of dgesv. ========= N (input) INTEGER - The order of the matrix A. N >= 0. + The order of the matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the factors L and U from the factorization @@ -7451,18 +7446,18 @@ For details of the arguments, see documentation of dgesv. On exit, if INFO = 0, the inverse of the original matrix A. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). IPIV (input) INTEGER array, dimension (N) - The pivot indices from DGETRF; for 1<=i<=N, row i of the + The pivot indices from DGETRF; for 1 ≤ i ≤ N, row i of the matrix was interchanged with row IPIV(i). WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO=0, then WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= max(1,N). - For optimal performance LWORK >= N*NB, where NB is + The dimension of the array WORK. LWORK ≥ max(1,N). + For optimal performance LWORK ≥ N*NB, where NB is the optimal blocksize returned by ILAENV. If LWORK = -1, then a workspace query is assumed; the routine @@ -7472,14 +7467,15 @@ For details of the arguments, see documentation of dgesv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value - > 0: if INFO = i, U(i,i) is exactly zero; the matrix is + < 0: if INFO = -i, the i-th argument had an illegal value + > 0: if INFO = i, U(i,i) is exactly zero; the matrix is singular and its inverse could not be computed. -")); ++")); end dgetri; pure function dgetrs - "Solve a system of linear equations with the LU decomposition from dgetrf" + "Solve a system of linear equations with B matrix and the LU decomposition from dgetrf" extends Modelica.Icons.Function; input Real LU[:, size(LU, 1)] @@ -7505,7 +7501,11 @@ For details of the arguments, see documentation of dgesv. X, ldb, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -7524,21 +7524,21 @@ For details of the arguments, see documentation of dgesv. = 'C': A'* X = B (Conjugate transpose = Transpose) N (input) INTEGER - The order of the matrix A. N >= 0. + The order of the matrix A. N ≥ 0. NRHS (input) INTEGER The number of right hand sides, i.e., the number of columns - of the matrix B. NRHS >= 0. + of the matrix B. NRHS ≥ 0. A (input) DOUBLE PRECISION array, dimension (LDA,N) The factors L and U from the factorization A = P*L*U as computed by DGETRF. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). IPIV (input) INTEGER array, dimension (N) - The pivot indices from DGETRF; for 1<=i<=N, row i of the + The pivot indices from DGETRF; for 1 ≤ i ≤ N, row i of the matrix was interchanged with row IPIV(i). B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS) @@ -7546,16 +7546,17 @@ For details of the arguments, see documentation of dgesv. On exit, the solution matrix X. LDB (input) INTEGER - The leading dimension of the array B. LDB >= max(1,N). + The leading dimension of the array B. LDB ≥ max(1,N). INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value -")); + < 0: if INFO = -i, the i-th argument had an illegal value ++")); end dgetrs; pure function dgetrs_vec - "Solve a system of linear equations with the LU decomposition from dgetrf" + "Solve a system of linear equations with b vector and the LU decomposition from dgetrf" extends Modelica.Icons.Function; input Real LU[:, size(LU, 1)] @@ -7582,53 +7583,13 @@ For details of the arguments, see documentation of dgesv. x, ldb, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation - Purpose - ======= - - DGETRS solves a system of linear equations - A * X = B or A' * X = B - with a general N-by-N matrix A using the LU factorization computed - by DGETRF. - - Arguments - ========= - - TRANS (input) CHARACTER*1 - Specifies the form of the system of equations: - = 'N': A * X = B (No transpose) - = 'T': A'* X = B (Transpose) - = 'C': A'* X = B (Conjugate transpose = Transpose) - - N (input) INTEGER - The order of the matrix A. N >= 0. - - NRHS (input) INTEGER - The number of right hand sides, i.e., the number of columns - of the matrix B. NRHS >= 0. - - A (input) DOUBLE PRECISION array, dimension (LDA,N) - The factors L and U from the factorization A = P*L*U - as computed by DGETRF. - - LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). - - IPIV (input) INTEGER array, dimension (N) - The pivot indices from DGETRF; for 1<=i<=N, row i of the - matrix was interchanged with row IPIV(i). - - B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS) - On entry, the right hand side matrix B. - On exit, the solution matrix X. - - LDB (input) INTEGER - The leading dimension of the array B. LDB >= max(1,N). - - INFO (output) INTEGER - = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value -")); + annotation (Documentation(info=" +
+Same as function LAPACK.dgetrs, +but right hand side is a vector and not a matrix. +For details of the arguments, see documentation of dgetrs. +
+")); end dgetrs_vec; pure function dggev @@ -7675,7 +7636,11 @@ For details of the arguments, see documentation of dgesv. work, lwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" ++Lapack documentation +
+Purpose ======= @@ -7713,21 +7678,21 @@ For details of the arguments, see documentation of dgesv. = 'V': compute the right generalized eigenvectors. N (input) INTEGER - The order of the matrices A, B, VL, and VR. N >= 0. + The order of the matrices A, B, VL, and VR. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA, N) On entry, the matrix A in the pair (A,B). On exit, A has been overwritten. LDA (input) INTEGER - The leading dimension of A. LDA >= max(1,N). + The leading dimension of A. LDA ≥ max(1,N). B (input/output) DOUBLE PRECISION array, dimension (LDB, N) On entry, the matrix B in the pair (A,B). On exit, B has been overwritten. LDB (input) INTEGER - The leading dimension of B. LDB >= max(1,N). + The leading dimension of B. LDB ≥ max(1,N). ALPHAR (output) DOUBLE PRECISION array, dimension (N) ALPHAI (output) DOUBLE PRECISION array, dimension (N) @@ -7757,8 +7722,8 @@ For details of the arguments, see documentation of dgesv. Not referenced if JOBVL = 'N'. LDVL (input) INTEGER - The leading dimension of the matrix VL. LDVL >= 1, and - if JOBVL = 'V', LDVL >= N. + The leading dimension of the matrix VL. LDVL ≥ 1, and + if JOBVL = 'V', LDVL ≥ N. VR (output) DOUBLE PRECISION array, dimension (LDVR,N) If JOBVR = 'V', the right eigenvectors v(j) are stored one @@ -7772,14 +7737,14 @@ For details of the arguments, see documentation of dgesv. Not referenced if JOBVR = 'N'. LDVR (input) INTEGER - The leading dimension of the matrix VR. LDVR >= 1, and - if JOBVR = 'V', LDVR >= N. + The leading dimension of the matrix VR. LDVR ≥ 1, and + if JOBVR = 'V', LDVR ≥ N. WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= max(1,8*N). + The dimension of the array WORK. LWORK ≥ max(1,8*N). For good performance, LWORK must generally be larger. If LWORK = -1, then a workspace query is assumed; the routine @@ -7789,14 +7754,15 @@ For details of the arguments, see documentation of dgesv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value. + < 0: if INFO = -i, the i-th argument had an illegal value. = 1,...,N: The QZ iteration failed. No eigenvectors have been calculated, but ALPHAR(j), ALPHAI(j), and BETA(j) should be correct for j=INFO+1,...,N. - > N: =N+1: other than QZ iteration failed in DHGEQZ. + > N: =N+1: other than QZ iteration failed in DHGEQZ. =N+2: error return from DTGEVC. -")); ++")); end dggev; pure function dggevx @@ -7861,7 +7827,11 @@ For details of the arguments, see documentation of dgesv. iwork, bwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -7923,7 +7893,7 @@ For details of the arguments, see documentation of dgesv. = 'B': computed for eigenvalues and eigenvectors. N (input) INTEGER - The order of the matrices A, B, VL, and VR. N >= 0. + The order of the matrices A, B, VL, and VR. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA, N) On entry, the matrix A in the pair (A,B). @@ -7932,7 +7902,7 @@ For details of the arguments, see documentation of dgesv. form of the \"balanced\" versions of the input A and B. LDA (input) INTEGER - The leading dimension of A. LDA >= max(1,N). + The leading dimension of A. LDA ≥ max(1,N). B (input/output) DOUBLE PRECISION array, dimension (LDB, N) On entry, the matrix B in the pair (A,B). @@ -7941,7 +7911,7 @@ For details of the arguments, see documentation of dgesv. form of the \"balanced\" versions of the input A and B. LDB (input) INTEGER - The leading dimension of B. LDB >= max(1,N). + The leading dimension of B. LDB ≥ max(1,N). ALPHAR (output) DOUBLE PRECISION array, dimension (N) ALPHAI (output) DOUBLE PRECISION array, dimension (N) @@ -7971,8 +7941,8 @@ For details of the arguments, see documentation of dgesv. Not referenced if JOBVL = 'N'. LDVL (input) INTEGER - The leading dimension of the matrix VL. LDVL >= 1, and - if JOBVL = 'V', LDVL >= N. + The leading dimension of the matrix VL. LDVL ≥ 1, and + if JOBVL = 'V', LDVL ≥ N. VR (output) DOUBLE PRECISION array, dimension (LDVR,N) If JOBVR = 'V', the right eigenvectors v(j) are stored one @@ -7986,13 +7956,13 @@ For details of the arguments, see documentation of dgesv. Not referenced if JOBVR = 'N'. LDVR (input) INTEGER - The leading dimension of the matrix VR. LDVR >= 1, and - if JOBVR = 'V', LDVR >= N. + The leading dimension of the matrix VR. LDVR ≥ 1, and + if JOBVR = 'V', LDVR ≥ N. ILO (output) INTEGER IHI (output) INTEGER ILO and IHI are integer values such that on exit - A(i,j) = 0 and B(i,j) = 0 if i > j and + A(i,j) = 0 and B(i,j) = 0 if i > j and j = 1,...,ILO-1 or i = IHI+1,...,N. If BALANC = 'N' or 'S', ILO = 1 and IHI = N. @@ -8047,11 +8017,11 @@ For details of the arguments, see documentation of dgesv. On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= max(1,2*N). + The dimension of the array WORK. LWORK ≥ max(1,2*N). If BALANC = 'S' or 'B', or JOBVL = 'V', or JOBVR = 'V', - LWORK >= max(1,6*N). - If SENSE = 'E' or 'B', LWORK >= max(1,10*N). - If SENSE = 'V' or 'B', LWORK >= 2*N*N+8*N+16. + LWORK ≥ max(1,6*N). + If SENSE = 'E' or 'B', LWORK ≥ max(1,10*N). + If SENSE = 'V' or 'B', LWORK ≥ 2*N*N+8*N+16. If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns @@ -8066,12 +8036,12 @@ For details of the arguments, see documentation of dgesv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value. + < 0: if INFO = -i, the i-th argument had an illegal value. = 1,...,N: The QZ iteration failed. No eigenvectors have been calculated, but ALPHAR(j), ALPHAI(j), and BETA(j) should be correct for j=INFO+1,...,N. - > N: =N+1: other than QZ iteration failed in DHGEQZ. + > N: =N+1: other than QZ iteration failed in DHGEQZ. =N+2: error return from DTGEVC. Further Details @@ -8090,7 +8060,7 @@ For details of the arguments, see documentation of dgesv. computed generalized eigenvalue w and the corresponding exact eigenvalue lambda is - chord(w, lambda) <= EPS * norm(ABNRM, BBNRM) / RCONDE(I) + chord(w, lambda) ≤ EPS * norm(ABNRM, BBNRM) / RCONDE(I) An approximate error bound for the angle between the i-th computed eigenvector VL(i) or VR(i) is given by @@ -8099,7 +8069,8 @@ For details of the arguments, see documentation of dgesv. For further explanation of the reciprocal condition numbers RCONDE and RCONDV, see section 4.11 of LAPACK User's Guide. -")); ++")); end dggevx; pure function dgglse_vec @@ -8138,7 +8109,11 @@ For details of the arguments, see documentation of dgesv. lwork, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -8149,7 +8124,7 @@ For details of the arguments, see documentation of dgesv. where A is an M-by-N matrix, B is a P-by-N matrix, c is a given M-vector, and d is a given P-vector. It is assumed that - P <= N <= M+P, and + P ≤ N ≤ M+P, and rank(B) = P and rank( (A) ) = N. ( (B) ) @@ -8164,13 +8139,13 @@ For details of the arguments, see documentation of dgesv. ========= M (input) INTEGER - The number of rows of the matrix A. M >= 0. + The number of rows of the matrix A. M ≥ 0. N (input) INTEGER - The number of columns of the matrices A and B. N >= 0. + The number of columns of the matrices A and B. N ≥ 0. P (input) INTEGER - The number of rows of the matrix B. 0 <= P <= N <= M+P. + The number of rows of the matrix B. 0 ≤ P ≤ N ≤ M+P. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the M-by-N matrix A. @@ -8178,7 +8153,7 @@ For details of the arguments, see documentation of dgesv. contain the min(M,N)-by-N upper trapezoidal matrix T. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,M). + The leading dimension of the array A. LDA ≥ max(1,M). B (input/output) DOUBLE PRECISION array, dimension (LDB,N) On entry, the P-by-N matrix B. @@ -8186,7 +8161,7 @@ For details of the arguments, see documentation of dgesv. contains the P-by-P upper triangular matrix R. LDB (input) INTEGER - The leading dimension of the array B. LDB >= max(1,P). + The leading dimension of the array B. LDB ≥ max(1,P). C (input/output) DOUBLE PRECISION array, dimension (M) On entry, C contains the right hand side vector for the @@ -8207,8 +8182,8 @@ For details of the arguments, see documentation of dgesv. On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= max(1,M+N+P). - For optimum performance LWORK >= P+min(M,N)+max(M,N)*NB, + The dimension of the array WORK. LWORK ≥ max(1,M+N+P). + For optimum performance LWORK ≥ P+min(M,N)+max(M,N)*NB, where NB is an upper bound for the optimal blocksizes for DGEQRF, SGERQF, DORMQR and SORMRQ. @@ -8219,18 +8194,19 @@ For details of the arguments, see documentation of dgesv. INFO (output) INTEGER = 0: successful exit. - < 0: if INFO = -i, the i-th argument had an illegal value. + < 0: if INFO = -i, the i-th argument had an illegal value. = 1: the upper triangular factor R associated with B in the generalized RQ factorization of the pair (B, A) is - singular, so that rank(B) < P; the least squares + singular, so that rank(B) < P; the least squares solution could not be computed. = 2: the (N-P) by (N-P) part of the upper trapezoidal factor T associated with A in the generalized RQ factorization of the pair (B, A) is singular, so that - rank( (A) ) < N; the least squares solution could not + rank( (A) ) < N; the least squares solution could not ( (B) ) be computed. -")); ++")); end dgglse_vec; pure function dgtsv @@ -8260,7 +8236,11 @@ For details of the arguments, see documentation of dgesv. X, ldb, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -8278,11 +8258,11 @@ For details of the arguments, see documentation of dgesv. ========= N (input) INTEGER - The order of the matrix A. N >= 0. + The order of the matrix A. N ≥ 0. NRHS (input) INTEGER The number of right hand sides, i.e., the number of columns - of the matrix B. NRHS >= 0. + of the matrix B. NRHS ≥ 0. DL (input/output) DOUBLE PRECISION array, dimension (N-1) On entry, DL must contain the (n-1) sub-diagonal elements of @@ -8309,15 +8289,16 @@ For details of the arguments, see documentation of dgesv. On exit, if INFO = 0, the N by NRHS solution matrix X. LDB (input) INTEGER - The leading dimension of the array B. LDB >= max(1,N). + The leading dimension of the array B. LDB ≥ max(1,N). INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value - > 0: if INFO = i, U(i,i) is exactly zero, and the solution + < 0: if INFO = -i, the i-th argument had an illegal value + > 0: if INFO = i, U(i,i) is exactly zero, and the solution has not been computed. The factorization has not been completed unless i = N. -")); ++")); end dgtsv; pure function dgtsv_vec @@ -8347,10 +8328,13 @@ For details of the arguments, see documentation of dgesv. x, ldb, info) annotation (Library="lapack"); - annotation (Documentation(info=" -Same as function LAPACK.dgtsv, but right hand side is a vector and not a matrix. + annotation (Documentation(info=" +
+Same as function LAPACK.dgtsv, +but right hand side is a vector and not a matrix. For details of the arguments, see documentation of dgtsv. -")); +
+")); end dgtsv_vec; pure function dhgeqz "Compute generalized eigenvalues for a (A,B) system" @@ -8399,7 +8383,11 @@ For details of the arguments, see documentation of dgtsv. work, lwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" ++Lapack documentation +
+Purpose ======= @@ -8429,7 +8417,7 @@ For details of the arguments, see documentation of dgtsv. Additionally, the 2-by-2 upper triangular diagonal blocks of P corresponding to 2-by-2 blocks of S are reduced to positive diagonal form, i.e., if S(j+1,j) is non-zero, then P(j+1,j) = P(j,j+1) = 0, - P(j,j) > 0, and P(j+1,j+1) > 0. + P(j,j) > 0, and P(j+1,j+1) > 0. Optionally, the orthogonal matrix Q from the generalized Schur factorization may be postmultiplied into an input matrix Q1, and the @@ -8480,14 +8468,14 @@ For details of the arguments, see documentation of dgtsv. the product Z1*Z is returned. N (input) INTEGER - The order of the matrices H, T, Q, and Z. N >= 0. + The order of the matrices H, T, Q, and Z. N ≥ 0. ILO (input) INTEGER IHI (input) INTEGER ILO and IHI mark the rows and columns of H which are in Hessenberg form. It is assumed that A is already upper triangular in rows and columns 1:ILO-1 and IHI+1:N. - If N > 0, 1 <= ILO <= IHI <= N; if N = 0, ILO=1 and IHI=0. + If N > 0, 1 ≤ ILO ≤ IHI ≤ N; if N = 0, ILO=1 and IHI=0. H (input/output) DOUBLE PRECISION array, dimension (LDH, N) On entry, the N-by-N upper Hessenberg matrix H. @@ -8495,12 +8483,12 @@ For details of the arguments, see documentation of dgtsv. matrix S from the generalized Schur factorization; 2-by-2 diagonal blocks (corresponding to complex conjugate pairs of eigenvalues) are returned in standard form, with - H(i,i) = H(i+1,i+1) and H(i+1,i)*H(i,i+1) < 0. + H(i,i) = H(i+1,i+1) and H(i+1,i)*H(i,i+1) < 0. If JOB = 'E', the diagonal blocks of H match those of S, but the rest of H is unspecified. LDH (input) INTEGER - The leading dimension of the array H. LDH >= max( 1, N ). + The leading dimension of the array H. LDH ≥ max( 1, N ). T (input/output) DOUBLE PRECISION array, dimension (LDT, N) On entry, the N-by-N upper triangular matrix T. @@ -8508,13 +8496,13 @@ For details of the arguments, see documentation of dgtsv. matrix P from the generalized Schur factorization; 2-by-2 diagonal blocks of P corresponding to 2-by-2 blocks of S are reduced to positive diagonal form, i.e., if H(j+1,j) is - non-zero, then T(j+1,j) = T(j,j+1) = 0, T(j,j) > 0, and - T(j+1,j+1) > 0. + non-zero, then T(j+1,j) = T(j,j+1) = 0, T(j,j) > 0, and + T(j+1,j+1) > 0. If JOB = 'E', the diagonal blocks of T match those of P, but the rest of T is unspecified. LDT (input) INTEGER - The leading dimension of the array T. LDT >= max( 1, N ). + The leading dimension of the array T. LDT ≥ max( 1, N ). ALPHAR (output) DOUBLE PRECISION array, dimension (N) The real parts of each scalar alpha defining an eigenvalue @@ -8544,8 +8532,8 @@ For details of the arguments, see documentation of dgtsv. Not referenced if COMPZ = 'N'. LDQ (input) INTEGER - The leading dimension of the array Q. LDQ >= 1. - If COMPQ='V' or 'I', then LDQ >= N. + The leading dimension of the array Q. LDQ ≥ 1. + If COMPQ='V' or 'I', then LDQ ≥ N. Z (input/output) DOUBLE PRECISION array, dimension (LDZ, N) On entry, if COMPZ = 'V', the orthogonal matrix Z1 used in @@ -8556,14 +8544,14 @@ For details of the arguments, see documentation of dgtsv. Not referenced if COMPZ = 'N'. LDZ (input) INTEGER - The leading dimension of the array Z. LDZ >= 1. - If COMPZ='V' or 'I', then LDZ >= N. + The leading dimension of the array Z. LDZ ≥ 1. + If COMPZ='V' or 'I', then LDZ ≥ N. WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) - On exit, if INFO >= 0, WORK(1) returns the optimal LWORK. + On exit, if INFO ≥ 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= max(1,N). + The dimension of the array WORK. LWORK ≥ max(1,N). If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns @@ -8572,7 +8560,7 @@ For details of the arguments, see documentation of dgtsv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value + < 0: if INFO = -i, the i-th argument had an illegal value = 1,...,N: the QZ iteration did not converge. (H,T) is not in Schur form, but ALPHAR(i), ALPHAI(i), and BETA(i), i=INFO+1,...,N should be correct. @@ -8589,7 +8577,8 @@ For details of the arguments, see documentation of dgtsv. IITER -- counts iterations run since ILAST was last changed. This is therefore reset only when a 1-by-1 or 2-by-2 block deflates off the bottom. -")); ++")); end dhgeqz; pure function dhseqr @@ -8635,7 +8624,11 @@ For details of the arguments, see documentation of dgtsv. work, lwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -8664,7 +8657,7 @@ For details of the arguments, see documentation of dgtsv. the product Q*Z is returned. N (input) INTEGER - The order of the matrix H. N >= 0. + The order of the matrix H. N ≥ 0. ILO (input) INTEGER IHI (input) INTEGER @@ -8673,7 +8666,7 @@ For details of the arguments, see documentation of dgtsv. set by a previous call to DGEBAL, and then passed to DGEHRD when the matrix output by DGEBAL is reduced to Hessenberg form. Otherwise ILO and IHI should be set to 1 and N - respectively. If N>0, then 1<=ILO<=IHI<=N. + respectively. If N > 0, then 1 ≤ ILO ≤ IHI ≤ N. If N = 0, then ILO = 1 and IHI = 0. H (input/output) DOUBLE PRECISION array, dimension (LDH,N) @@ -8683,25 +8676,25 @@ For details of the arguments, see documentation of dgtsv. (the Schur form); 2-by-2 diagonal blocks (corresponding to complex conjugate pairs of eigenvalues) are returned in standard form, with H(i,i) = H(i+1,i+1) and - H(i+1,i)*H(i,i+1)<0. If INFO = 0 and JOB = 'E', the + H(i+1,i)*H(i,i+1)<0. If INFO = 0 and JOB = 'E', the contents of H are unspecified on exit. (The output value of - H when INFO>0 is given under the description of INFO + H when INFO>0 is given under the description of INFO below.) Unlike earlier versions of DHSEQR, this subroutine may - explicitly H(i,j) = 0 for i>j and j = 1, 2, ... ILO-1 + explicitly H(i,j) = 0 for i>j and j = 1, 2, ... ILO-1 or j = IHI+1, IHI+2, ... N. LDH (input) INTEGER - The leading dimension of the array H. LDH >= max(1,N). + The leading dimension of the array H. LDH ≥ max(1,N). WR (output) DOUBLE PRECISION array, dimension (N) WI (output) DOUBLE PRECISION array, dimension (N) The real and imaginary parts, respectively, of the computed eigenvalues. If two eigenvalues are computed as a complex conjugate pair, they are stored in consecutive elements of - WR and WI, say the i-th and (i+1)th, with WI(i) > 0 and - WI(i+1) < 0. If JOB = 'S', the eigenvalues are stored in + WR and WI, say the i-th and (i+1)th, with WI(i) > 0 and + WI(i+1) < 0. If JOB = 'S', the eigenvalues are stored in the same order as on the diagonal of the Schur form returned in H, with WR(i) = H(i,i) and, if H(i:i+1,i:i+1) is a 2-by-2 diagonal block, WI(i) = sqrt(-H(i+1,i)*H(i,i+1)) and @@ -8717,19 +8710,19 @@ For details of the arguments, see documentation of dgtsv. if INFO = 0, Z contains Q*Z. Normally Q is the orthogonal matrix generated by DORGHR after the call to DGEHRD which formed the Hessenberg matrix - H. (The output value of Z when INFO>0 is given under + H. (The output value of Z when INFO>0 is given under the description of INFO below.) LDZ (input) INTEGER The leading dimension of the array Z. if COMPZ = 'I' or - COMPZ = 'V', then LDZ>=MAX(1,N). Otherwise, LDZ>=1. + COMPZ = 'V', then LDZ ≥ MAX(1,N). Otherwise, LDZ ≥ 1. WORK (workspace/output) DOUBLE PRECISION array, dimension (LWORK) On exit, if INFO = 0, WORK(1) returns an estimate of the optimal value for LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= max(1,N) + The dimension of the array WORK. LWORK ≥ max(1,N) is sufficient and delivers very good and sometimes optimal performance. However, LWORK as large as 11*N may be required for optimal performance. A workspace @@ -8745,20 +8738,20 @@ For details of the arguments, see documentation of dgtsv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal + < 0: if INFO = -i, the i-th argument had an illegal value - > 0: if INFO = i, DHSEQR failed to compute all of + > 0: if INFO = i, DHSEQR failed to compute all of the eigenvalues. Elements 1:ilo-1 and i+1:n of WR and WI contain those eigenvalues which have been successfully computed. (Failures are rare.) - If INFO > 0 and JOB = 'E', then on exit, the + If INFO > 0 and JOB = 'E', then on exit, the remaining unconverged eigenvalues are the eigen- values of the upper Hessenberg matrix rows and columns ILO through INFO of the final, output value of H. - If INFO > 0 and JOB = 'S', then on exit + If INFO > 0 and JOB = 'S', then on exit (*) (initial value of H)*U = U*(final value of H) @@ -8766,21 +8759,22 @@ For details of the arguments, see documentation of dgtsv. value of H is upper Hessenberg and quasi-triangular in rows and columns INFO+1 through IHI. - If INFO > 0 and COMPZ = 'V', then on exit + If INFO > 0 and COMPZ = 'V', then on exit (final value of Z) = (initial value of Z)*U where U is the orthogonal matrix in (*) (regard- less of the value of JOB.) - If INFO > 0 and COMPZ = 'I', then on exit + If INFO > 0 and COMPZ = 'I', then on exit (final value of Z) = U where U is the orthogonal matrix in (*) (regard- less of the value of JOB.) - If INFO > 0 and COMPZ = 'N', then Z is not + If INFO > 0 and COMPZ = 'N', then Z is not accessed. -")); ++")); end dhseqr; pure function dlange "Norm of a matrix" @@ -8802,7 +8796,11 @@ For details of the arguments, see documentation of dgtsv. A, lda, work) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -8836,23 +8834,24 @@ For details of the arguments, see documentation of dgtsv. above. M (input) INTEGER - The number of rows of the matrix A. M >= 0. When M = 0, + The number of rows of the matrix A. M ≥ 0. When M = 0, DLANGE is set to zero. N (input) INTEGER - The number of columns of the matrix A. N >= 0. When N = 0, + The number of columns of the matrix A. N ≥ 0. When N = 0, DLANGE is set to zero. A (input) DOUBLE PRECISION array, dimension (LDA,N) The m by n matrix A. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(M,1). + The leading dimension of the array A. LDA ≥ max(M,1). WORK (workspace) DOUBLE PRECISION array, dimension (MAX(1,LWORK)), - where LWORK >= M when NORM = 'I'; otherwise, WORK is not + where LWORK ≥ M when NORM = 'I'; otherwise, WORK is not referenced. -")); ++")); end dlange; @@ -8887,7 +8886,11 @@ For details of the arguments, see documentation of dgtsv. work, lwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -8901,14 +8904,14 @@ For details of the arguments, see documentation of dgtsv. ========= N (input) INTEGER - The order of the matrix Q. N >= 0. + The order of the matrix Q. N ≥ 0. ILO (input) INTEGER IHI (input) INTEGER ILO and IHI must have the same values as in the previous call of DGEHRD. Q is equal to the unit matrix except in the submatrix Q(ilo+1:ihi,ilo+1:ihi). - 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0. + 1 ≤ ILO ≤ IHI ≤ N, if N > 0; ILO=1 and IHI=0, if N=0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the vectors which define the elementary reflectors, @@ -8916,7 +8919,7 @@ For details of the arguments, see documentation of dgtsv. On exit, the N-by-N orthogonal matrix Q. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). TAU (input) DOUBLE PRECISION array, dimension (N-1) TAU(i) must contain the scalar factor of the elementary @@ -8926,8 +8929,8 @@ For details of the arguments, see documentation of dgtsv. On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= IHI-ILO. - For optimum performance LWORK >= (IHI-ILO)*NB, where NB is + The dimension of the array WORK. LWORK ≥ IHI-ILO. + For optimum performance LWORK ≥ (IHI-ILO)*NB, where NB is the optimal blocksize. If LWORK = -1, then a workspace query is assumed; the routine @@ -8937,8 +8940,9 @@ For details of the arguments, see documentation of dgtsv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value -")); + < 0: if INFO = -i, the i-th argument had an illegal value ++")); end dorghr; pure function dorgqr @@ -8970,7 +8974,11 @@ For details of the arguments, see documentation of dgtsv. work, lwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -8986,14 +8994,14 @@ For details of the arguments, see documentation of dgtsv. ========= M (input) INTEGER - The number of rows of the matrix Q. M >= 0. + The number of rows of the matrix Q. M ≥ 0. N (input) INTEGER - The number of columns of the matrix Q. M >= N >= 0. + The number of columns of the matrix Q. M ≥ N ≥ 0. K (input) INTEGER The number of elementary reflectors whose product defines the - matrix Q. N >= K >= 0. + matrix Q. N ≥ K ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the i-th column must contain the vector which @@ -9003,7 +9011,7 @@ For details of the arguments, see documentation of dgtsv. On exit, the M-by-N matrix Q. LDA (input) INTEGER - The first dimension of the array A. LDA >= max(1,M). + The first dimension of the array A. LDA ≥ max(1,M). TAU (input) DOUBLE PRECISION array, dimension (K) TAU(i) must contain the scalar factor of the elementary @@ -9013,8 +9021,8 @@ For details of the arguments, see documentation of dgtsv. On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER - The dimension of the array WORK. LWORK >= max(1,N). - For optimum performance LWORK >= N*NB, where NB is the + The dimension of the array WORK. LWORK ≥ max(1,N). + For optimum performance LWORK ≥ N*NB, where NB is the optimal blocksize. If LWORK = -1, then a workspace query is assumed; the routine @@ -9024,8 +9032,9 @@ For details of the arguments, see documentation of dgtsv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument has an illegal value -")); + < 0: if INFO = -i, the i-th argument has an illegal value ++")); end dorgqr; pure function dormhr @@ -9068,7 +9077,11 @@ For details of the arguments, see documentation of dgtsv. work, lwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -9096,19 +9109,19 @@ For details of the arguments, see documentation of dgtsv. = 'T': Transpose, apply Q**T. M (input) INTEGER - The number of rows of the matrix C. M >= 0. + The number of rows of the matrix C. M ≥ 0. N (input) INTEGER - The number of columns of the matrix C. N >= 0. + The number of columns of the matrix C. N ≥ 0. ILO (input) INTEGER IHI (input) INTEGER ILO and IHI must have the same values as in the previous call of DGEHRD. Q is equal to the unit matrix except in the submatrix Q(ilo+1:ihi,ilo+1:ihi). - If SIDE = 'L', then 1 <= ILO <= IHI <= M, if M > 0, and + If SIDE = 'L', then 1 ≤ ILO ≤ IHI ≤ M, if M > 0, and ILO = 1 and IHI = 0, if M = 0; - if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and + if SIDE = 'R', then 1 ≤ ILO ≤ IHI ≤ N, if N > 0, and ILO = 1 and IHI = 0, if N = 0. A (input) DOUBLE PRECISION array, dimension @@ -9119,7 +9132,7 @@ For details of the arguments, see documentation of dgtsv. LDA (input) INTEGER The leading dimension of the array A. - LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'. + LDA ≥ max(1,M) if SIDE = 'L'; LDA ≥ max(1,N) if SIDE = 'R'. TAU (input) DOUBLE PRECISION array, dimension (M-1) if SIDE = 'L' @@ -9132,17 +9145,17 @@ For details of the arguments, see documentation of dgtsv. On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q. LDC (input) INTEGER - The leading dimension of the array C. LDC >= max(1,M). + The leading dimension of the array C. LDC ≥ max(1,M). WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER The dimension of the array WORK. - If SIDE = 'L', LWORK >= max(1,N); - if SIDE = 'R', LWORK >= max(1,M). - For optimum performance LWORK >= N*NB if SIDE = 'L', and - LWORK >= M*NB if SIDE = 'R', where NB is the optimal + If SIDE = 'L', LWORK ≥ max(1,N); + if SIDE = 'R', LWORK ≥ max(1,M). + For optimum performance LWORK ≥ N*NB if SIDE = 'L', and + LWORK ≥ M*NB if SIDE = 'R', where NB is the optimal blocksize. If LWORK = -1, then a workspace query is assumed; the routine @@ -9152,8 +9165,9 @@ For details of the arguments, see documentation of dgtsv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value -")); + < 0: if INFO = -i, the i-th argument had an illegal value ++")); end dormhr; pure function dormqr @@ -9193,7 +9207,11 @@ For details of the arguments, see documentation of dgtsv. work, lwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -9223,16 +9241,16 @@ For details of the arguments, see documentation of dgtsv. = 'T': Transpose, apply Q**T. M (input) INTEGER - The number of rows of the matrix C. M >= 0. + The number of rows of the matrix C. M ≥ 0. N (input) INTEGER - The number of columns of the matrix C. N >= 0. + The number of columns of the matrix C. N ≥ 0. K (input) INTEGER The number of elementary reflectors whose product defines the matrix Q. - If SIDE = 'L', M >= K >= 0; - if SIDE = 'R', N >= K >= 0. + If SIDE = 'L', M ≥ K ≥ 0; + if SIDE = 'R', N ≥ K ≥ 0. A (input) DOUBLE PRECISION array, dimension (LDA,K) The i-th column must contain the vector which defines the @@ -9242,8 +9260,8 @@ For details of the arguments, see documentation of dgtsv. LDA (input) INTEGER The leading dimension of the array A. - If SIDE = 'L', LDA >= max(1,M); - if SIDE = 'R', LDA >= max(1,N). + If SIDE = 'L', LDA ≥ max(1,M); + if SIDE = 'R', LDA ≥ max(1,N). TAU (input) DOUBLE PRECISION array, dimension (K) TAU(i) must contain the scalar factor of the elementary @@ -9254,17 +9272,17 @@ For details of the arguments, see documentation of dgtsv. On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q. LDC (input) INTEGER - The leading dimension of the array C. LDC >= max(1,M). + The leading dimension of the array C. LDC ≥ max(1,M). WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) On exit, if INFO = 0, WORK(1) returns the optimal LWORK. LWORK (input) INTEGER The dimension of the array WORK. - If SIDE = 'L', LWORK >= max(1,N); - if SIDE = 'R', LWORK >= max(1,M). - For optimum performance LWORK >= N*NB if SIDE = 'L', and - LWORK >= M*NB if SIDE = 'R', where NB is the optimal + If SIDE = 'L', LWORK ≥ max(1,N); + if SIDE = 'R', LWORK ≥ max(1,M). + For optimum performance LWORK ≥ N*NB if SIDE = 'L', and + LWORK ≥ M*NB if SIDE = 'R', where NB is the optimal blocksize. If LWORK = -1, then a workspace query is assumed; the routine @@ -9274,8 +9292,9 @@ For details of the arguments, see documentation of dgtsv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value -")); + < 0: if INFO = -i, the i-th argument had an illegal value ++")); end dormqr; pure function dpotrf @@ -9297,7 +9316,11 @@ For details of the arguments, see documentation of dgtsv. Acholesky, lda, info) annotation (Library="lapack"); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -9319,7 +9342,7 @@ For details of the arguments, see documentation of dgtsv. = 'L': Lower triangle of A is stored. N (input) INTEGER - The order of the matrix A. N >= 0. + The order of the matrix A. N ≥ 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the symmetric matrix A. If UPLO = 'U', the leading @@ -9334,15 +9357,16 @@ For details of the arguments, see documentation of dgtsv. factorization A = U**T*U or A = L*L**T. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,N). + The leading dimension of the array A. LDA ≥ max(1,N). INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value - > 0: if INFO = i, the leading minor of order i is not + < 0: if INFO = -i, the i-th argument had an illegal value + > 0: if INFO = i, the leading minor of order i is not positive definite, and the factorization could not be completed. -")); ++")); end dpotrf; pure function dtrevc @@ -9384,7 +9408,11 @@ For details of the arguments, see documentation of dgtsv. n, work, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -9436,13 +9464,13 @@ For details of the arguments, see documentation of dgtsv. Not referenced if HOWMNY = 'A' or 'B'. N (input) INTEGER - The order of the matrix T. N >= 0. + The order of the matrix T. N ≥ 0. T (input) DOUBLE PRECISION array, dimension (LDT,N) The upper quasi-triangular matrix T in Schur canonical form. LDT (input) INTEGER - The leading dimension of the array T. LDT >= max(1,N). + The leading dimension of the array T. LDT ≥ max(1,N). VL (input/output) DOUBLE PRECISION array, dimension (LDVL,MM) On entry, if SIDE = 'L' or 'B' and HOWMNY = 'B', VL must @@ -9461,8 +9489,8 @@ For details of the arguments, see documentation of dgtsv. Not referenced if SIDE = 'R'. LDVL (input) INTEGER - The leading dimension of the array VL. LDVL >= 1, and if - SIDE = 'L' or 'B', LDVL >= N. + The leading dimension of the array VL. LDVL ≥ 1, and if + SIDE = 'L' or 'B', LDVL ≥ N. VR (input/output) DOUBLE PRECISION array, dimension (LDVR,MM) On entry, if SIDE = 'R' or 'B' and HOWMNY = 'B', VR must @@ -9481,11 +9509,11 @@ For details of the arguments, see documentation of dgtsv. Not referenced if SIDE = 'L'. LDVR (input) INTEGER - The leading dimension of the array VR. LDVR >= 1, and if - SIDE = 'R' or 'B', LDVR >= N. + The leading dimension of the array VR. LDVR ≥ 1, and if + SIDE = 'R' or 'B', LDVR ≥ N. MM (input) INTEGER - The number of columns in the arrays VL and/or VR. MM >= M. + The number of columns in the arrays VL and/or VR. MM ≥ M. M (output) INTEGER The number of columns in the arrays VL and/or VR actually @@ -9498,7 +9526,7 @@ For details of the arguments, see documentation of dgtsv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value + < 0: if INFO = -i, the i-th argument had an illegal value Further Details =============== @@ -9510,7 +9538,8 @@ For details of the arguments, see documentation of dgtsv. Each eigenvector is normalized so that the element of largest magnitude has magnitude 1; here the magnitude of a complex number (x,y) is taken to be |x| + |y|. -")); ++")); end dtrevc; pure function dtrsen "Reorder the real Schur factorization of a real matrix" @@ -9566,7 +9595,11 @@ For details of the arguments, see documentation of dgtsv. iwork, liwork, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -9610,7 +9643,7 @@ For details of the arguments, see documentation of dgtsv. either both included in the cluster or both excluded. N (input) INTEGER - The order of the matrix T. N >= 0. + The order of the matrix T. N ≥ 0. T (input/output) DOUBLE PRECISION array, dimension (LDT,N) On entry, the upper quasi-triangular matrix T, in Schur @@ -9620,7 +9653,7 @@ For details of the arguments, see documentation of dgtsv. leading diagonal blocks. LDT (input) INTEGER - The leading dimension of the array T. LDT >= max(1,N). + The leading dimension of the array T. LDT ≥ max(1,N). Q (input/output) DOUBLE PRECISION array, dimension (LDQ,N) On entry, if COMPQ = 'V', the matrix Q of Schur vectors. @@ -9632,21 +9665,21 @@ For details of the arguments, see documentation of dgtsv. LDQ (input) INTEGER The leading dimension of the array Q. - LDQ >= 1; and if COMPQ = 'V', LDQ >= N. + LDQ ≥ 1; and if COMPQ = 'V', LDQ ≥ N. WR (output) DOUBLE PRECISION array, dimension (N) WI (output) DOUBLE PRECISION array, dimension (N) The real and imaginary parts, respectively, of the reordered eigenvalues of T. The eigenvalues are stored in the same order as on the diagonal of T, with WR(i) = T(i,i) and, if - T(i:i+1,i:i+1) is a 2-by-2 diagonal block, WI(i) > 0 and + T(i:i+1,i:i+1) is a 2-by-2 diagonal block, WI(i) > 0 and WI(i+1) = -WI(i). Note that if a complex eigenvalue is sufficiently ill-conditioned, then its value may differ significantly from its value before reordering. M (output) INTEGER The dimension of the specified invariant subspace. - 0 < = M <= N. + 0 < = M ≤ N. S (output) DOUBLE PRECISION If JOB = 'E' or 'B', S is a lower bound on the reciprocal @@ -9666,9 +9699,9 @@ For details of the arguments, see documentation of dgtsv. LWORK (input) INTEGER The dimension of the array WORK. - If JOB = 'N', LWORK >= max(1,N); - if JOB = 'E', LWORK >= max(1,M*(N-M)); - if JOB = 'V' or 'B', LWORK >= max(1,2*M*(N-M)). + If JOB = 'N', LWORK ≥ max(1,N); + if JOB = 'E', LWORK ≥ max(1,M*(N-M)); + if JOB = 'V' or 'B', LWORK ≥ max(1,2*M*(N-M)). If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns @@ -9680,8 +9713,8 @@ For details of the arguments, see documentation of dgtsv. LIWORK (input) INTEGER The dimension of the array IWORK. - If JOB = 'N' or 'E', LIWORK >= 1; - if JOB = 'V' or 'B', LIWORK >= max(1,M*(N-M)). + If JOB = 'N' or 'E', LIWORK ≥ 1; + if JOB = 'V' or 'B', LIWORK ≥ max(1,M*(N-M)). If LIWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the IWORK array, @@ -9690,7 +9723,7 @@ For details of the arguments, see documentation of dgtsv. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value + < 0: if INFO = -i, the i-th argument had an illegal value = 1: reordering of T failed because some eigenvalues are too close to separate (the problem is very ill-conditioned); T may have been partially reordered, and WR and WI @@ -9768,7 +9801,8 @@ For details of the arguments, see documentation of dgtsv. error in the computed right invariant subspace is EPS * norm(T) / SEP -")); ++")); end dtrsen; pure function dtrsm @@ -9808,7 +9842,11 @@ For details of the arguments, see documentation of dgtsv. lda, X, ldb) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -9918,7 +9956,8 @@ For details of the arguments, see documentation of dgtsv. Unchanged on exit. Level 3 Blas routine. -")); ++")); end dtrsm; pure function dtrsyl @@ -9959,7 +9998,11 @@ For details of the arguments, see documentation of dgtsv. lda, scale, info) annotation (Library={"lapack"}); - annotation (Documentation(info="Lapack documentation + annotation (Documentation(info=" +
+Lapack documentation +
+Purpose ======= @@ -10000,41 +10043,42 @@ For details of the arguments, see documentation of dgtsv. M (input) INTEGER The order of the matrix A, and the number of rows in the - matrices X and C. M >= 0. + matrices X and C. M ≥ 0. N (input) INTEGER The order of the matrix B, and the number of columns in the - matrices X and C. N >= 0. + matrices X and C. N ≥ 0. A (input) DOUBLE PRECISION array, dimension (LDA,M) The upper quasi-triangular matrix A, in Schur canonical form. LDA (input) INTEGER - The leading dimension of the array A. LDA >= max(1,M). + The leading dimension of the array A. LDA ≥ max(1,M). B (input) DOUBLE PRECISION array, dimension (LDB,N) The upper quasi-triangular matrix B, in Schur canonical form. LDB (input) INTEGER - The leading dimension of the array B. LDB >= max(1,N). + The leading dimension of the array B. LDB ≥ max(1,N). C (input/output) DOUBLE PRECISION array, dimension (LDC,N) On entry, the M-by-N right hand side matrix C. On exit, C is overwritten by the solution matrix X. LDC (input) INTEGER - The leading dimension of the array C. LDC >= max(1,M) + The leading dimension of the array C. LDC ≥ max(1,M) SCALE (output) DOUBLE PRECISION - The scale factor, scale, set <= 1 to avoid overflow in X. + The scale factor, scale, set ≤ 1 to avoid overflow in X. INFO (output) INTEGER = 0: successful exit - < 0: if INFO = -i, the i-th argument had an illegal value + < 0: if INFO = -i, the i-th argument had an illegal value = 1: A and B have common or very close eigenvalues; perturbed values were used to solve the equation (but the matrices A and B are unchanged). -")); ++")); end dtrsyl; annotation (Documentation(info="