ftp.nice.ch/pub/next/unix/audio/cmix.s.tar.gz#/cmix/lib/test.c

This is test.c in view mode; [Download] [Up]

#include <math.h>
#include </musr/H/complexf.h>
main()
{
	complex a,b,c,dummy,xcmplx(),cexp(),divide();
	/*cmplx(0.,-1.,a);
	b = a * c;
	multiply(a,xcmplx(c,0.),b);
	b = cexp(a);
	prtcmplx(b);
	cmplx(2.,0.,a);
	multiply(a,b,c);
	prtcmplx(c);
	cmplx(3.,0.,a);
	cmplx(4.,0.,b);
	multiply(a,b,c);
	prtcmplx(c);*/
	cmplx(1,-2,a); cmplx(3,-4,b); c=divide(a,b); prtcmplx(c);
} 
complex xcmplx(a,b)
float a,b;
{
	complex c;
	cmplx(a,b,c);
	return(c);
}
complex cexp(a)
complex a;
{
	complex b;
	b.re = exp(a.re) * cos(a.im);
	b.im = exp(a.im) * sin(a.im);
	return(b);
}
complex divide(a,b)
complex a,b;
{
	complex c,d,e,f;
	conjugate(b,c);
	multiply(a,c,d);
	multiply(b,c,e);
	f.re = d.re/e.re;
	f.im = d.im/e.re;
	/*prtcmplx(a); prtcmplx(b); prtcmplx(c); prtcmplx(d); prtcmplx(e); prtcmplx(f);*/
}
complex mult(a,b)
complex a,b;
{
	complex c;
	c.re = a.re * b.re - a.im * b.im;
	c.im = a.re * b.im + a.im * b.re
	return(c);
}
complex add(x,y)
complex x,y;
{
	complex z;
	z.re = x.re + y.re;
	z.im = x.im + y.im;
	return(z);
}
complex subtract(x,y)
complex x,y;
{
	complex z;
	z.re = x.re - y.re;
	z.im = x.im - y.im;
	return(z);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.