home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_08_09
/
8n09047a
< prev
next >
Wrap
Text File
|
1990-05-16
|
1KB
|
55 lines
Listing 2:
/* complex hyperbolic sine routine intended to test
argument passing and function returns only. This
version passes a pointer to a global array and re-
turns a pointer to a similar array. */
#include <dos.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define BIOS_DATA_SEG 0x40
#define TIMER_DATA 0x6c
#define TICKS_PER_DAY 0x01800B0L
long getticks(void);
void csinh(double*);
double cplxarg[2], cplxrtn[2];
main()
{
int ctr;
long start, end;
start = getticks();
printf("\n BEGIN AT CLOCK = %ld", start);
*cplxarg = 3.0;
*(cplxarg + 1) = -2.0;
for(ctr = 1; ctr <= 5000; ++ctr)
csinh(cplxarg);
end = getticks();
printf("\n\n REAL RESULT = %lG", *cplxrtn);
printf(" IMAG RESULT = %lG", *(cplxrtn + 1));
printf("\n END AT CLOCK = %ld", end);
printf("\n\n ELAPSED TICKS = %ld", end - start);
}
void csinh(double *arg)
{
*cplxrtn = cos(*(arg + 1)) * sinh(*arg);
*(cplxrtn + 1) = sin(*(arg + 1)) * cosh(*arg);
}