home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Shareware - Software Farm 2
/
wosw_2.zip
/
wosw_2
/
CPROG
/
ANUMR5.ZIP
/
EDICTEST.C
< prev
next >
Wrap
C/C++ Source or Header
|
1991-11-25
|
2KB
|
92 lines
/* OK mémoire */
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
#include "anum.h"
#include "sysio.h"
double bf(double *val)
{ double res;
res = -4 * val[1] * val[4];
return(res);
}
void results(int order, int nret, double *matsol)
{ int i,j;
for (i=0; i<order; i++)
{ printf("\n T X[%d] \n",i+1);
puts("------------------------------");
for (j=0; j<nret; j++)
printf("% 10.5le % 10.5le\n",
*(matsol+j*(order+1)),
*(matsol+j*(order+1)+i+1));
}
}
void main(void)
{ double lb,ub,*initval,*matsol;
int nint,nret,order,i,errcode;
clrscr();
puts("Test program for function initcond");
puts("----------------------------------\n");
order = 4;
lb=5.0;
ub=6.0;
if ((initval=farcalloc(order,sizeof(double)))==NULL)
{ fputs("Not enough core", stderr);
exit(-1);
}
*initval = 7.0;
*(initval+1) = 8.0;
*(initval+2) = 9.0;
*(initval+3) = 10.0;
nret=11;
nint=100;
printf("Lower bound : %+10.5lf\n",lb);
printf("Upper bound : %+10.5lf\n",ub);
for (i=0; i<order; i++)
printf("x[%d] at t = %+lf : %+10.5lf\n",i+1,lb,
*(initval+i));
printf("Number of asked values : %3d\n",nret);
printf("Number of intervals : %3d\n\n",nint);
if ((matsol=farcalloc((order+1)*nret, sizeof(double)))==NULL)
{ fputs("Not enough core", stderr);
exit(-1);
}
initcond(order, lb, ub, initval,
nret, nint,
matsol,
&errcode, bf);
SYSMSG(errcode, stderr);
results(order, nret, matsol);
farfree(initval);
farfree(matsol);
}