mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-12-18 00:21:31 +00:00
ff901a312f
to start. More will follow. Switched to doubles from floats and allowed numbers with exponents to be parsed properly. Also changed the number of significant digits printed to 10. Changed fov so it is now capped at 1, not 10. The float value of fov is now used instead of int, so more precision can be attained at small values.
120 lines
2.2 KiB
C
120 lines
2.2 KiB
C
/*
|
|
|
|
EXP equation evaluation routines
|
|
Copyright (C) 2000, 2001 Brian Koropoff
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, US
|
|
|
|
*/
|
|
|
|
#include <math.h>
|
|
|
|
double OP_Not (double op1, double op2)
|
|
{
|
|
return !op1;
|
|
}
|
|
|
|
double OP_Add (double op1, double op2)
|
|
{
|
|
return op1 + op2;
|
|
}
|
|
|
|
double OP_Sub (double op1, double op2)
|
|
{
|
|
return op1 - op2;
|
|
}
|
|
|
|
double OP_Mult (double op1, double op2)
|
|
{
|
|
return op1 * op2;
|
|
}
|
|
|
|
double OP_Div (double op1, double op2)
|
|
{
|
|
return op1 / op2;
|
|
}
|
|
|
|
double OP_Exp (double op1, double op2)
|
|
{
|
|
return pow(op1, op2);
|
|
}
|
|
|
|
double OP_Eq (double op1, double op2)
|
|
{
|
|
return op1 == op2;
|
|
}
|
|
|
|
double OP_Neq (double op1, double op2)
|
|
{
|
|
return op1 != op2;
|
|
}
|
|
|
|
double OP_Or (double op1, double op2)
|
|
{
|
|
return op1 || op2;
|
|
}
|
|
|
|
double OP_And (double op1, double op2)
|
|
{
|
|
return op1 && op2;
|
|
}
|
|
double OP_GreaterThan (double op1, double op2)
|
|
{
|
|
return op1 > op2;
|
|
}
|
|
|
|
double OP_LessThan (double op1, double op2)
|
|
{
|
|
return op1 < op2;
|
|
}
|
|
double OP_GreaterThanEqual (double op1, double op2)
|
|
{
|
|
return op1 >= op2;
|
|
}
|
|
double OP_LessThanEqual (double op1, double op2)
|
|
{
|
|
return op1 <= op2;
|
|
}
|
|
|
|
|
|
double Func_Sin (double *oplist, unsigned int numops)
|
|
{
|
|
return sin (oplist[0]);
|
|
}
|
|
|
|
double Func_Cos (double *oplist, unsigned int numops)
|
|
{
|
|
return cos (oplist[0]);
|
|
}
|
|
|
|
double Func_Tan (double *oplist, unsigned int numops)
|
|
{
|
|
return tan (oplist[0]);
|
|
}
|
|
|
|
double Func_Asin (double *oplist, unsigned int numops)
|
|
{
|
|
return asin (oplist[0]);
|
|
}
|
|
|
|
double Func_Acos (double *oplist, unsigned int numops)
|
|
{
|
|
return acos (oplist[0]);
|
|
}
|
|
|
|
double Func_Atan (double *oplist, unsigned int numops)
|
|
{
|
|
return atan (oplist[0]);
|
|
}
|