NewTOAPIA.LUdcmp.solve C# (CSharp) Method

solve() public method

public solve ( double b, double x ) : void
b double
x double
return void
        public void solve(double[] b, double[] x) // b input and x output
        {
            int i, ii = 0, ip, j;
            double sum;
            
            if (b.Length != n || x.Length != n)
                throw new Exception("Bad sizes, must be square");

            for (i = 0; i < n; i++) 
                x[i] = b[i];
            
            for (i = 0; i < n; i++)
            {
                ip = indx[i];
                sum = b[ip];
                x[ip] = x[i];
                if (ii != 0) for (j = ii - 1; j < i; j++) sum -= lu[i, j] * x[j];
                else if (sum != 0.0) ii = i + 1;
                x[i] = sum;
            }
            
            for (i = n - 1; i >= 0; i--)
            {
                sum = x[i];
                
                for (j = i + 1; j < n; j++) 
                    sum -= lu[i, j] * x[j];
                
                x[i] = sum / lu[i, i];
            }
        }