public static void Test()
    {
        GaussianElimination test = new GaussianElimination();

        double[][] param = new double[3][];
        for (int i = 0; i < param.Length; ++i)
        {
            param[i] = new double[3];
        }
        param[0][0] = 3;    param[0][1] = -1;    param[0][2] = 1;

        param[1][0] = 2;    param[1][1] = 3;    param[1][2] = -1;

        param[2][0] = 1;    param[2][1] = 1;    param[2][2] = 1;

        double[] d = new double[3];
        d[0] = 4;
        d[1] = 12;
        d[2] = 6;

        double[] result = test.Solve(3, param, d);
        foreach (var iter in result)
        {
            Debug.Log(iter.ToString());
        }
    }
 public static BigInteger[] SecondStep(DLPInput input, ref BigInteger[] factorBase, BigInteger[][] coefficients, BigInteger[] constantTerms)
 {
     return(GaussianElimination.SolveSystemOfLinearEquatations(input, ref factorBase, coefficients, constantTerms));
 }