www.pudn.com > roadextr.rar > SolveEquation.cpp


	
#include "stdafx.h" 
#include 
#include  
#include "SolveEquation.h"

void solve (double *a,double *b,double *x,int n,int wide)

{
	int      m;
	double   *d,*l;

	m= n*(n+1)/2;
	d=(double *) malloc(n * sizeof(double));
	l=(double *) malloc((m-n) * sizeof(double));

	zero (d,n);    zero (l,m-n);

	ldltban1 (a,d,l,n,wide);

	ldltban2 (l,d,b,x,n,wide);
	free(d); free(l);
}


void ldltban1 (double *a,double *d,double *l,int n,int wide)
{
	int i,j,k,kk,km,m;
	double *ao,*aa,*co,*c;

	m = wide*(2*n+1-wide)/2;
	c =(double *)calloc ((m-wide),sizeof(double));

	ao=a; co=c; a +=wide;
	for (i=0; in-wide+1) km--;
              a += km;
           }

	   a=aa; d++;
           if (k==n-1)  *d = *a;
        }

	a=ao;  a +=wide;
	for (i=0; i