Files
TempleOS-Rijn/LT/ADAM/MATH.CPZ
T
2018-09-08 21:45:17 +02:00

73 lines
1.0 KiB
Plaintext

public double Abs(double i)
{
if (i<0)
return -i;
else
return i;
}
public double Sign(double i)
{
if (i<0)
return -1.0;
else if (!i)
return 0.0;
else
return 1.0;
}
public double Sqr(double d)
{
return d*d;
}
public void R2P(double *mag,double *arg,double x,double y)
{ //Rect to polar
*arg=Arg(x,y);
*mag=Sqrt(x*x+y*y);
}
public void P2R(double *x,double *y,double mag,double arg)
{ //Polar to Rect
*x=mag*Cos(arg);
*y=mag*Sin(arg);
}
public double Unwrap(double theta,double base=-pi)
{
double result=theta%pi2;
if (result<base) result+=pi2;
if (result>base+pi2) result-=pi2;
return result;
}
public I8 AbsI8(I8 i)
{
if (i<0)
return -i;
else
return i;
}
public I8 SignI8(I8 i)
{
if (i<0)
return -1;
else if (!i)
return 0;
else
return 1;
}
public I8 SqrI8(I8 i)
{
return MulI8(i,i);
}
public I8 DistI8(I8 x1,I8 y1,I8 x2,I8 y2)
{
I8 dx=x1-x2,dy=y1-y2;
return MulI8(dx,dx)+MulI8(dy,dy);
}