Beispiel #1
0
int gaussjordan(Matrix a, Vector b)
{
        double big, dum, pivinv, tmp;
        static int *indxc, *indxr, *ipiv;
	static int oldn = 0;
 	int i, icol = 0, irow = 0, j, k, l, ll;
	int m, n, p;

	g_assert(a != 0);
	g_assert(b != 0);
 
	n = MatrixSize1(a);
	m = MatrixSize2(a);
	p = Vectorlength(b);

	g_assert(m == n);
	g_assert(m == p);

	if(n != oldn)
	{
		oldn = n;
		if(oldn > 0)
		{
			g_free(indxc);
			g_free(indxr);
			g_free(ipiv);
		}
		if(n > 0)
		{
			indxc = g_new(int, n);
       			indxr = g_new(int, n);
        		ipiv  = g_new(int, n);
		}
Beispiel #2
0
VecArray newVecArrayfromMatrix(const Matrix M)
{
	int i, j, m, n;
	VecArray a;

	g_assert(M);
	
	n = MatrixSize1(M);
	m = MatrixSize2(M);

	a = newVecArray(n);
	for(j = 0; j < n; j++) 
	{
		a[j] = newVector(m);
		for(i = 0; i < m; i++) a[j][i] = M[j][i];
	}

	return a;
}