/* trgssa.c CCMATH mathematics library source code.
*
* Copyright (C) 2000 Daniel A. Atkinson All rights reserved.
* This code may be redistributed under the terms of the GNU library
* public license (LGPL). ( See the lgpl.license file for details.)
* ------------------------------------------------------------------------
*/
#include <math.h>
int trgssa(double a,double b,double ba,double *an)
{ double x,y,z,v;
x=a*cos(ba); ba=a*sin(ba);
a*=a; b*=b;
if((y=b-ba*ba)<0.) return -1;
else y=sqrt(y);
an[0]=x+y; v=an[0]*an[0];
z=an[0]*ba; z+=z;
an[1]=atan2(z,a+b-v);
an[2]=atan2(z,b+v-a);
if(x>y){
an[3]=x-y; v=an[3]*an[3];
z=an[3]*ba; z+=z;
an[4]=atan2(z,a+b-v);
an[5]=atan2(z,b+v-a);
}
else an[3]=an[4]=an[5]=0.;
return 0;
}
syntax highlighted by Code2HTML, v. 0.9.1