Class LUSOL

  • All Implemented Interfaces:
    java.io.Serializable

    public class LUSOL
    extends java.lang.Object
    implements java.io.Serializable
    LUSOL maintains LU factors of a square or rectangular sparse matrix. LUSOL is maintained by Michael Saunders, Systems Optimization Laboratory, Dept of Management Science & Engineering, Stanford University. (saunders@stanford.edu) Professor Michael Saunders has kindly granted the NIH MIPAV project permission to port LUSOL from FORTRAN to Java under a BSD license. Porting performed by William Gandler. The website for LUSOL is: [http://www.stanford.edu/group/SOL/software/lusol.html][LUSOL] LUSOL: Sparse LU for Ax = b AUTHOR: Michael Saunders CONTRIBUTORS: Philip Gill, Walter Murray, Margaret Wright, Michael O'Sullivan, Kjell Eikland, Yin Zhang, Nick Henderson, Ding Ma CONTENTS: A sparse LU factorization for square and rectangular matrices A, with Bartels-Golub-Reid updates for column replacement and other rank-1 modifications. Typically used for a sequence of linear equations as in the simplex method: Solve Ax = b and/or A'y = c Replace a column of A Repeat with different b, c The matrix A may have any shape and rank. Rectangular LU factors may be used to form a sparse null-space matrix operator. Special feature 1: Three sparse pivoting options in the Factor routine: Threshold partial pivoting (TPP) Threshold rook pivoting (TRP) Threshold complete pivoting (TCP) All options choose row and column permutations as they go, balancing sparsity and stability according to different rules. TPP is normally most efficient for solving Ax = b. TRP and TCP are rank-revealing factorizations. In practice, TRP is an effective method for estimating rank(A). TCP tends to be too dense and expensive to be useful, although MINOS and SNOPT switch from TPP to TRP and even TCP if necessary in case of persistent numerical difficulty. Special feature 2: Multiple update routines: Add, delete, or replace a column of A Add, delete, or replace a row of A Add a general (sparse) rank-1 matrix to A Numerical stability: LUSOL maintains LU factors with row and column permutations P, Q such that A = LU with PLP' lower triangular (with unit diagonals) and PUQ upper triangular. The condition of L is controlled throughout by maintaining |Lij| >> help lusol`. ## Advanced usage In Matlab: ``` % create lusol object mylu = lusol_obj(A); % solve with lusol object (ie x = A\b) x = mylu.solveA(b); % update factorization to replace a column mylu.repcol(v,1); % solve again with updated factorization x1 = mylu.solveA(b); ``` See `>>> help lusol_obj`. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean doubleCheck  
      (package private) java.text.DecimalFormat nf  
      private java.util.Random rn  
      private long seed  
      private ViewUserInterface UI  
    • Constructor Summary

      Constructors 
      Constructor Description
      LUSOL()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void Aprod​(int m, int n, int nnzero, int[] indc, int[] indr, double[] a, double[] x, double[] y)  
      private double dnormj​(int n, double[] x, int incx)  
      private void Hbuild​(double[] Ha, int[] Hj, int[] Hk, int N, int Nk, int[] hops)  
      private void Hchange​(double[] Ha, int[] Hj, int[] Hk, int N, int Nk, int k, double v, int jv, int[] hops)  
      private void Hdelete​(double[] Ha, int[] Hj, int[] Hk, int Nin, int[] N, int Nk, int k, int[] hops)  
      private void Hdown​(double[] Ha, int[] Hj, int[] Hk, int N, int Nk, int kk, int[] hops)  
      private void Hinsert​(double[] Ha, int[] Hj, int[] Hk, int[] N, int Nk, double v, int jv, int[] hops)  
      private void Hup​(double[] Ha, int[] Hj, int[] Hk, int N, int Nk, int kk, int[] hops)  
      private int jdamax​(int n, double[] x, int incx)  
      private void lu1DCP​(double[][] a, int lda, int m, int n, double small, int[] nsing, int[] ipvt, int[] q)  
      private void lu1DPP​(double[][] a, int lda, int m, int n, double small, int[] nsing, int[] ipvt, int[] q)  
      void lu1fac​(int m, int n, int nelem, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] p, int[] q, int[] lenc, int[] lenr, int[] locc, int[] locr, int[] iploc, int[] iqloc, int[] ipinv, int[] iqinv, double[] w, int[] inform)  
      private void lu1fad​(int m, int n, int nelem, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] p, int[] q, int[] lenc, int[] lenr, int[] locc, int[] locr, int[] iploc, int[] iqloc, int[] ipinv, int[] iqinv, double[] w, int lenH, double[] Ha, int[] Hj, int[] Hk, double[] Amaxr, int[] inform, int[] lenL, int[] lenU, int[] minlen, int[] mersum, int[] nUtri, int[] nLtri, int[] ndens1, int[] ndens2, int[] nrank, double[] Lmax, double[] Umax, double[] DUmax, double[] DUmin, double[] Akmax)  
      private void lu1ful​(int m, int n, int lena, int lenD, int lu1, boolean TPP, int mleft, int nleft, int nrank, int nrowu, int[] lenL, int[] lenU, int[] nsing, boolean keepLU, double small, double[] a, int lDInput, int[] indc, int[] indr, int[] p, int[] q, int[] lenc, int[] lenr, int[] locc, int[] ipinv, int[] ipvt)  
      private void lu1gau​(int m, int melim, int ncold, int nspare, double small, int lpivc1, int lpivc2, int[] lfirst, int lpivr2, int lfree, int minfre, int[] ilast, int[] jlast, int[] lrow, int[] lcol, int[] lu, int[] nfill, double[] a, int[] indc, int[] indr, int[] lenc, int[] lenr, int[] locc, int[] locr, int[] mark, int ll1, int lu1)  
      private void lu1mar​(int m, int n, int lena, int maxmn, boolean TCP, double aijtol, double Ltol, int maxcol, int maxrow, int[] ibest, int[] jbest, int[] mbest, double[] a, int[] indc, int[] indr, int[] p, int[] q, int[] lenc, int[] lenr, int[] locc, int[] locr, int[] iploc, int[] iqloc)  
      private void lu1mRP​(int m, int n, int lena, int maxmn, double Ltol, int maxcol, int maxrow, int[] ibest, int[] jbest, int[] mbest, double[] a, int[] indc, int[] indr, int[] p, int[] q, int[] lenc, int[] lenr, int[] locc, int[] locr, int[] iploc, int[] iqloc, double[] Amaxr)  
      private void lu1mSP​(int m, int n, int lena, int maxmn, double Ltol, int maxcol, int[] ibest, int[] jbest, int[] mbest, double[] a, int[] indc, int[] q, int[] locc, int[] iqloc)  
      private void lu1mxc​(int k1, int k2, int[] q, double[] a, int[] indc, int[] lenc, int[] locc)  
      private void lu1mxr​(int mark, int k1, int k2, int m, int n, int lena, double[] a, int[] indc, int[] lenc, int[] locc, int[] indr, int[] lenr, int[] locr, int[] p, int[] markc, int[] markr, double[] Amaxr)  
      private void lu1or1​(int m, int n, int nelem, int lena, double small, double[] a, int[] indc, int[] indr, int[] lenc, int[] lenr, double[] Amax, int[] numnz, int[] lerr, int[] inform)  
      private void lu1or2​(int n, int numa, int lena, double[] a, int[] inum, int[] jnum, int[] lenc, int[] locc)  
      private void lu1or3​(int m, int n, int lena, int[] indc, int[] lenc, int[] locc, int[] iw, int[] lerr, int[] inform)  
      private void lu1or4​(int m, int n, int nelem, int lena, int[] indc, int[] indr, int[] lenc, int[] lenr, int[] locc, int[] locr)  
      private void lu1pen​(int m, int melim, int ncold, int nspare, int[] ilast, int lpivc1, int lpivc2, int lpivr1, int lpivr2, int[] lrow, int[] lenc, int[] lenr, int[] locc, int[] locr, int[] indc, int[] indr, int ll1, int lu1)  
      private void lu1pq1​(int m, int n, int[] len, int[] iperm, int[] loc, int[] inv, int[] num)  
      private void lu1pq2​(int nzpiv, int[] nzchng, int[] indr, int[] lenold, int[] lennew, int[] iqloc, int[] q, int[] iqinv)  
      private void lu1pq3​(int n, int[] len, int[] iperm, int[] iw, int[] nrank)  
      private void lu1rec​(int n, boolean reals, int[] luparm, int[] ltop, int lena, double[] a, int[] ind, int[] lenc, int[] locc)  
      private void lu1slk​(int m, int n, int lena, int[] q, int[] iqloc, double[] a, int[] locc, double[] w)  
      private void lu6chk​(int mode, int m, int n, double[] w, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] p, int[] q, int[] lenc, int[] lenr, int[] locc, int[] locr, int[] inform)  
      void lu6L​(int[] inform, int m, int n, double[] v, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] lenc)  
      private void lu6LD​(int[] inform, int mode, int m, int n, double[] v, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] lenc, int[] locr)  
      private void lu6Lt​(int[] inform, int m, int n, double[] v, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] lenc)  
      private void lu6mul​(int mode, int m, int n, double[] v, double[] w, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] ip, int[] iq, int[] lenc, int[] lenr, int[] locc, int[] locr)  
      private void lu6prt​(int m, int n, double[] v, double[] w, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] ip, int[] iq, int[] lenc, int[] lenr, int[] locc, int[] locr)  
      void lu6sol​(int mode, int m, int n, double[] v, double[] w, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] p, int[] q, int[] lenc, int[] lenr, int[] locc, int[] locr, int[] inform)  
      void lu6U​(int[] inform, int m, int n, double[] v, double[] w, int lena, int[] luparm, double[] parmlu, double[] a, int[] indr, int[] p, int[] q, int[] lenr, int[] locr)  
      private void lu6Ut​(int[] inform, int m, int n, double[] v, double[] w, int lena, int[] luparm, double[] parmlu, double[] a, int[] indr, int[] p, int[] q, int[] lenr, int[] locr)  
      private void lu7add​(int m, int n, int jadd, double[] v, int lena, int[] luparm, double[] parmlu, int[] lenL, int[] lenU, int[] lrow, int nrank, double[] a, int[] indr, int[] p, int[] lenr, int[] locr, int[] inform, int[] klast, double[] vnorm)  
      private void lu7cyc​(int kfirst, int klast, int[] p)  
      private void lu7elm​(int m, int n, int jelm, double[] v, int lena, int[] luparm, double[] parmlu, int[] lenL, int lenU, int[] lrow, int nrank, double[] a, int[] indc, int[] indr, int[] p, int[] q, int[] lenr, int[] locc, int[] locr, int[] inform, double[] diag)  
      private void lu7for​(int m, int n, int kfirst, int klast, int lena, int[] luparm, double[] parmlu, int[] lenL, int[] lenU, int[] lrow, double[] a, int[] indc, int[] indr, int[] p, int[] q, int[] lenr, int[] locc, int[] locr, int[] inform, double[] diag)  
      private void lu7rnk​(int m, int n, int jsing, int lena, double[] parmlu, int[] lenL, int[] lenU, int[] lrow, int[] nrank, double[] a, int[] indc, int[] indr, int[] p, int[] q, int[] lenr, int[] locc, int[] locr, int[] inform, double[] diag)  
      private void lu7zap​(int m, int n, int jzap, int[] kzap, int lena, int[] lenU, int[] lrow, int nrank, double[] a, int[] indr, int[] p, int[] q, int[] lenr, int[] locr)  
      private void lu8rpc​(int mode1, int mode2, int m, int n, int jrep, double[] v, double[] w, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] p, int[] q, int[] lenc, int[] lenr, int[] locc, int[] locr, int[] inform, double[] diag, double[] vnorm)  
      private void luchek​(int m, int n, int nrowb, double[][] B, int[] kb, double[] emax, double[] v, double[] w, double[] x, double[] y, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] ip, int[] iq, int[] lenc, int[] lenr, int[] locc, int[] locr)  
      private void luinit​(int m, int n, int nrowb, double[][] B, int[] kb, int lena, int[] luparm, double[] parmlu, int[] nelem, double[] a, int[] indc, int[] indr)  
      private void lutest​(int m, int n, int nrowb, int ncolb, int mtest, int[] inform, int[] kb, double[][] B, double[] d, double[] v, double[] w, double[] x, double[] y, int lena, int[] luparm, double[] parmlu, double[] a, int[] indc, int[] indr, int[] ip, int[] iq, int[] lenc, int[] lenr, int[] locc, int[] locr, int[] iploc, int[] iqloc, int[] ipinv, int[] iqinv)  
      void lutest_driver()  
      private double random()  
      private void setmat​(int m, int n, int nrowb, double[][] B, double[] d, double[] v, double[] w)  
      void testflat()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • nf

        java.text.DecimalFormat nf
      • seed

        private long seed
      • rn

        private java.util.Random rn
      • doubleCheck

        private boolean doubleCheck
    • Constructor Detail

      • LUSOL

        public LUSOL()
    • Method Detail

      • testflat

        public void testflat()
      • Aprod

        private void Aprod​(int m,
                           int n,
                           int nnzero,
                           int[] indc,
                           int[] indr,
                           double[] a,
                           double[] x,
                           double[] y)
      • dnormj

        private double dnormj​(int n,
                              double[] x,
                              int incx)
      • random

        private double random()
      • lutest_driver

        public void lutest_driver()
      • lutest

        private void lutest​(int m,
                            int n,
                            int nrowb,
                            int ncolb,
                            int mtest,
                            int[] inform,
                            int[] kb,
                            double[][] B,
                            double[] d,
                            double[] v,
                            double[] w,
                            double[] x,
                            double[] y,
                            int lena,
                            int[] luparm,
                            double[] parmlu,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] ip,
                            int[] iq,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr,
                            int[] iploc,
                            int[] iqloc,
                            int[] ipinv,
                            int[] iqinv)
      • setmat

        private void setmat​(int m,
                            int n,
                            int nrowb,
                            double[][] B,
                            double[] d,
                            double[] v,
                            double[] w)
      • luinit

        private void luinit​(int m,
                            int n,
                            int nrowb,
                            double[][] B,
                            int[] kb,
                            int lena,
                            int[] luparm,
                            double[] parmlu,
                            int[] nelem,
                            double[] a,
                            int[] indc,
                            int[] indr)
      • luchek

        private void luchek​(int m,
                            int n,
                            int nrowb,
                            double[][] B,
                            int[] kb,
                            double[] emax,
                            double[] v,
                            double[] w,
                            double[] x,
                            double[] y,
                            int lena,
                            int[] luparm,
                            double[] parmlu,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] ip,
                            int[] iq,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr)
      • lu1fac

        public void lu1fac​(int m,
                           int n,
                           int nelem,
                           int lena,
                           int[] luparm,
                           double[] parmlu,
                           double[] a,
                           int[] indc,
                           int[] indr,
                           int[] p,
                           int[] q,
                           int[] lenc,
                           int[] lenr,
                           int[] locc,
                           int[] locr,
                           int[] iploc,
                           int[] iqloc,
                           int[] ipinv,
                           int[] iqinv,
                           double[] w,
                           int[] inform)
      • lu1or1

        private void lu1or1​(int m,
                            int n,
                            int nelem,
                            int lena,
                            double small,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] lenc,
                            int[] lenr,
                            double[] Amax,
                            int[] numnz,
                            int[] lerr,
                            int[] inform)
      • lu1or2

        private void lu1or2​(int n,
                            int numa,
                            int lena,
                            double[] a,
                            int[] inum,
                            int[] jnum,
                            int[] lenc,
                            int[] locc)
      • lu1or3

        private void lu1or3​(int m,
                            int n,
                            int lena,
                            int[] indc,
                            int[] lenc,
                            int[] locc,
                            int[] iw,
                            int[] lerr,
                            int[] inform)
      • lu1or4

        private void lu1or4​(int m,
                            int n,
                            int nelem,
                            int lena,
                            int[] indc,
                            int[] indr,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr)
      • lu1pq1

        private void lu1pq1​(int m,
                            int n,
                            int[] len,
                            int[] iperm,
                            int[] loc,
                            int[] inv,
                            int[] num)
      • lu1fad

        private void lu1fad​(int m,
                            int n,
                            int nelem,
                            int lena,
                            int[] luparm,
                            double[] parmlu,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] p,
                            int[] q,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr,
                            int[] iploc,
                            int[] iqloc,
                            int[] ipinv,
                            int[] iqinv,
                            double[] w,
                            int lenH,
                            double[] Ha,
                            int[] Hj,
                            int[] Hk,
                            double[] Amaxr,
                            int[] inform,
                            int[] lenL,
                            int[] lenU,
                            int[] minlen,
                            int[] mersum,
                            int[] nUtri,
                            int[] nLtri,
                            int[] ndens1,
                            int[] ndens2,
                            int[] nrank,
                            double[] Lmax,
                            double[] Umax,
                            double[] DUmax,
                            double[] DUmin,
                            double[] Akmax)
      • lu1ful

        private void lu1ful​(int m,
                            int n,
                            int lena,
                            int lenD,
                            int lu1,
                            boolean TPP,
                            int mleft,
                            int nleft,
                            int nrank,
                            int nrowu,
                            int[] lenL,
                            int[] lenU,
                            int[] nsing,
                            boolean keepLU,
                            double small,
                            double[] a,
                            int lDInput,
                            int[] indc,
                            int[] indr,
                            int[] p,
                            int[] q,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] ipinv,
                            int[] ipvt)
      • lu1DCP

        private void lu1DCP​(double[][] a,
                            int lda,
                            int m,
                            int n,
                            double small,
                            int[] nsing,
                            int[] ipvt,
                            int[] q)
      • lu1DPP

        private void lu1DPP​(double[][] a,
                            int lda,
                            int m,
                            int n,
                            double small,
                            int[] nsing,
                            int[] ipvt,
                            int[] q)
      • jdamax

        private int jdamax​(int n,
                           double[] x,
                           int incx)
      • lu1gau

        private void lu1gau​(int m,
                            int melim,
                            int ncold,
                            int nspare,
                            double small,
                            int lpivc1,
                            int lpivc2,
                            int[] lfirst,
                            int lpivr2,
                            int lfree,
                            int minfre,
                            int[] ilast,
                            int[] jlast,
                            int[] lrow,
                            int[] lcol,
                            int[] lu,
                            int[] nfill,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr,
                            int[] mark,
                            int ll1,
                            int lu1)
      • lu1mar

        private void lu1mar​(int m,
                            int n,
                            int lena,
                            int maxmn,
                            boolean TCP,
                            double aijtol,
                            double Ltol,
                            int maxcol,
                            int maxrow,
                            int[] ibest,
                            int[] jbest,
                            int[] mbest,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] p,
                            int[] q,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr,
                            int[] iploc,
                            int[] iqloc)
      • lu1mRP

        private void lu1mRP​(int m,
                            int n,
                            int lena,
                            int maxmn,
                            double Ltol,
                            int maxcol,
                            int maxrow,
                            int[] ibest,
                            int[] jbest,
                            int[] mbest,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] p,
                            int[] q,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr,
                            int[] iploc,
                            int[] iqloc,
                            double[] Amaxr)
      • lu1mSP

        private void lu1mSP​(int m,
                            int n,
                            int lena,
                            int maxmn,
                            double Ltol,
                            int maxcol,
                            int[] ibest,
                            int[] jbest,
                            int[] mbest,
                            double[] a,
                            int[] indc,
                            int[] q,
                            int[] locc,
                            int[] iqloc)
      • lu1mxc

        private void lu1mxc​(int k1,
                            int k2,
                            int[] q,
                            double[] a,
                            int[] indc,
                            int[] lenc,
                            int[] locc)
      • lu1pen

        private void lu1pen​(int m,
                            int melim,
                            int ncold,
                            int nspare,
                            int[] ilast,
                            int lpivc1,
                            int lpivc2,
                            int lpivr1,
                            int lpivr2,
                            int[] lrow,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr,
                            int[] indc,
                            int[] indr,
                            int ll1,
                            int lu1)
      • lu1pq2

        private void lu1pq2​(int nzpiv,
                            int[] nzchng,
                            int[] indr,
                            int[] lenold,
                            int[] lennew,
                            int[] iqloc,
                            int[] q,
                            int[] iqinv)
      • lu1pq3

        private void lu1pq3​(int n,
                            int[] len,
                            int[] iperm,
                            int[] iw,
                            int[] nrank)
      • lu1rec

        private void lu1rec​(int n,
                            boolean reals,
                            int[] luparm,
                            int[] ltop,
                            int lena,
                            double[] a,
                            int[] ind,
                            int[] lenc,
                            int[] locc)
      • lu1slk

        private void lu1slk​(int m,
                            int n,
                            int lena,
                            int[] q,
                            int[] iqloc,
                            double[] a,
                            int[] locc,
                            double[] w)
      • lu1mxr

        private void lu1mxr​(int mark,
                            int k1,
                            int k2,
                            int m,
                            int n,
                            int lena,
                            double[] a,
                            int[] indc,
                            int[] lenc,
                            int[] locc,
                            int[] indr,
                            int[] lenr,
                            int[] locr,
                            int[] p,
                            int[] markc,
                            int[] markr,
                            double[] Amaxr)
      • Hbuild

        private void Hbuild​(double[] Ha,
                            int[] Hj,
                            int[] Hk,
                            int N,
                            int Nk,
                            int[] hops)
      • Hchange

        private void Hchange​(double[] Ha,
                             int[] Hj,
                             int[] Hk,
                             int N,
                             int Nk,
                             int k,
                             double v,
                             int jv,
                             int[] hops)
      • Hdelete

        private void Hdelete​(double[] Ha,
                             int[] Hj,
                             int[] Hk,
                             int Nin,
                             int[] N,
                             int Nk,
                             int k,
                             int[] hops)
      • Hdown

        private void Hdown​(double[] Ha,
                           int[] Hj,
                           int[] Hk,
                           int N,
                           int Nk,
                           int kk,
                           int[] hops)
      • Hinsert

        private void Hinsert​(double[] Ha,
                             int[] Hj,
                             int[] Hk,
                             int[] N,
                             int Nk,
                             double v,
                             int jv,
                             int[] hops)
      • Hup

        private void Hup​(double[] Ha,
                         int[] Hj,
                         int[] Hk,
                         int N,
                         int Nk,
                         int kk,
                         int[] hops)
      • lu6chk

        private void lu6chk​(int mode,
                            int m,
                            int n,
                            double[] w,
                            int lena,
                            int[] luparm,
                            double[] parmlu,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] p,
                            int[] q,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr,
                            int[] inform)
      • lu8rpc

        private void lu8rpc​(int mode1,
                            int mode2,
                            int m,
                            int n,
                            int jrep,
                            double[] v,
                            double[] w,
                            int lena,
                            int[] luparm,
                            double[] parmlu,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] p,
                            int[] q,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr,
                            int[] inform,
                            double[] diag,
                            double[] vnorm)
      • lu7zap

        private void lu7zap​(int m,
                            int n,
                            int jzap,
                            int[] kzap,
                            int lena,
                            int[] lenU,
                            int[] lrow,
                            int nrank,
                            double[] a,
                            int[] indr,
                            int[] p,
                            int[] q,
                            int[] lenr,
                            int[] locr)
      • lu6sol

        public void lu6sol​(int mode,
                           int m,
                           int n,
                           double[] v,
                           double[] w,
                           int lena,
                           int[] luparm,
                           double[] parmlu,
                           double[] a,
                           int[] indc,
                           int[] indr,
                           int[] p,
                           int[] q,
                           int[] lenc,
                           int[] lenr,
                           int[] locc,
                           int[] locr,
                           int[] inform)
      • lu6L

        public void lu6L​(int[] inform,
                         int m,
                         int n,
                         double[] v,
                         int lena,
                         int[] luparm,
                         double[] parmlu,
                         double[] a,
                         int[] indc,
                         int[] indr,
                         int[] lenc)
      • lu6Lt

        private void lu6Lt​(int[] inform,
                           int m,
                           int n,
                           double[] v,
                           int lena,
                           int[] luparm,
                           double[] parmlu,
                           double[] a,
                           int[] indc,
                           int[] indr,
                           int[] lenc)
      • lu6U

        public void lu6U​(int[] inform,
                         int m,
                         int n,
                         double[] v,
                         double[] w,
                         int lena,
                         int[] luparm,
                         double[] parmlu,
                         double[] a,
                         int[] indr,
                         int[] p,
                         int[] q,
                         int[] lenr,
                         int[] locr)
      • lu6Ut

        private void lu6Ut​(int[] inform,
                           int m,
                           int n,
                           double[] v,
                           double[] w,
                           int lena,
                           int[] luparm,
                           double[] parmlu,
                           double[] a,
                           int[] indr,
                           int[] p,
                           int[] q,
                           int[] lenr,
                           int[] locr)
      • lu6LD

        private void lu6LD​(int[] inform,
                           int mode,
                           int m,
                           int n,
                           double[] v,
                           int lena,
                           int[] luparm,
                           double[] parmlu,
                           double[] a,
                           int[] indc,
                           int[] indr,
                           int[] lenc,
                           int[] locr)
      • lu7add

        private void lu7add​(int m,
                            int n,
                            int jadd,
                            double[] v,
                            int lena,
                            int[] luparm,
                            double[] parmlu,
                            int[] lenL,
                            int[] lenU,
                            int[] lrow,
                            int nrank,
                            double[] a,
                            int[] indr,
                            int[] p,
                            int[] lenr,
                            int[] locr,
                            int[] inform,
                            int[] klast,
                            double[] vnorm)
      • lu7elm

        private void lu7elm​(int m,
                            int n,
                            int jelm,
                            double[] v,
                            int lena,
                            int[] luparm,
                            double[] parmlu,
                            int[] lenL,
                            int lenU,
                            int[] lrow,
                            int nrank,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] p,
                            int[] q,
                            int[] lenr,
                            int[] locc,
                            int[] locr,
                            int[] inform,
                            double[] diag)
      • lu7cyc

        private void lu7cyc​(int kfirst,
                            int klast,
                            int[] p)
      • lu7for

        private void lu7for​(int m,
                            int n,
                            int kfirst,
                            int klast,
                            int lena,
                            int[] luparm,
                            double[] parmlu,
                            int[] lenL,
                            int[] lenU,
                            int[] lrow,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] p,
                            int[] q,
                            int[] lenr,
                            int[] locc,
                            int[] locr,
                            int[] inform,
                            double[] diag)
      • lu7rnk

        private void lu7rnk​(int m,
                            int n,
                            int jsing,
                            int lena,
                            double[] parmlu,
                            int[] lenL,
                            int[] lenU,
                            int[] lrow,
                            int[] nrank,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] p,
                            int[] q,
                            int[] lenr,
                            int[] locc,
                            int[] locr,
                            int[] inform,
                            double[] diag)
      • lu6mul

        private void lu6mul​(int mode,
                            int m,
                            int n,
                            double[] v,
                            double[] w,
                            int lena,
                            int[] luparm,
                            double[] parmlu,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] ip,
                            int[] iq,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr)
      • lu6prt

        private void lu6prt​(int m,
                            int n,
                            double[] v,
                            double[] w,
                            int lena,
                            int[] luparm,
                            double[] parmlu,
                            double[] a,
                            int[] indc,
                            int[] indr,
                            int[] ip,
                            int[] iq,
                            int[] lenc,
                            int[] lenr,
                            int[] locc,
                            int[] locr)