From 0d89dd1b6080f0e1b4d0f5feada4d807e1c80ef0 Mon Sep 17 00:00:00 2001 From: tobolar Date: Tue, 7 May 2024 14:25:35 +0200 Subject: [PATCH] Refer to martix-related functions from vector-related ones --- Modelica/Math/package.mo | 168 ++------------------------------------- 1 file changed, 8 insertions(+), 160 deletions(-) diff --git a/Modelica/Math/package.mo b/Modelica/Math/package.mo index 806e9646ac..a551fb02e6 100644 --- a/Modelica/Math/package.mo +++ b/Modelica/Math/package.mo @@ -6228,117 +6228,10 @@ Lapack documentation info) annotation (Library="lapack"); annotation (Documentation(info="

-Lapack documentation +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.

-
-    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.
-
")); end dgelsy_vec; @@ -7572,7 +7465,7 @@ Lapack documentation 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)] @@ -7653,7 +7546,7 @@ Lapack documentation 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)] @@ -7682,55 +7575,10 @@ Lapack documentation info) annotation (Library="lapack"); annotation (Documentation(info="

-Lapack documentation +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.

-
-    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
-
")); end dgetrs_vec;