quakeforge/libs/util/ops.c
Brian Koropoff ff901a312f Added argument-list functions to EXP with trig and inverse trig functions
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.
2002-04-28 08:30:54 +00:00

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]);
}