2014-02-11 11:26:28 +01:00
|
|
|
#define _USE_MATH_DEFINES
|
|
|
|
|
2014-09-23 21:51:27 +02:00
|
|
|
#ifdef WIN32
|
|
|
|
#define M_PI 3.141592653589793238462643383279502797479068098137295573004504331874296718662975536062731407582759857177734375
|
|
|
|
#define M_E 2.71828182845904523536028747135266231435842186719354886266923086032766716801933881697550532408058643341064453125
|
|
|
|
#endif
|
|
|
|
|
2014-02-11 11:26:28 +01:00
|
|
|
//
|
|
|
|
void pi(void)
|
|
|
|
{
|
2014-02-11 14:33:40 +01:00
|
|
|
putf(M_PI);
|
2014-02-11 11:26:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
void d2r(void)
|
|
|
|
{
|
|
|
|
MIN_ARGUMENTS(1);
|
|
|
|
ARG_IS_OF_TYPE(0, cmd_number);
|
|
|
|
((number*)_stack->get_obj(0))->_value *= M_PI / 360;
|
|
|
|
}
|
|
|
|
|
|
|
|
void r2d(void)
|
|
|
|
{
|
|
|
|
MIN_ARGUMENTS(1);
|
|
|
|
ARG_IS_OF_TYPE(0, cmd_number);
|
|
|
|
((number*)_stack->get_obj(0))->_value *= 360 / M_PI;
|
|
|
|
}
|
|
|
|
|
|
|
|
void rpn_sin(void)
|
|
|
|
{
|
|
|
|
MIN_ARGUMENTS(1);
|
|
|
|
ARG_IS_OF_TYPE(0, cmd_number);
|
|
|
|
((number*)_stack->get_obj(0))->_value = sin(((number*)_stack->get_obj(0))->_value);
|
|
|
|
}
|
|
|
|
|
|
|
|
void rpn_asin(void)
|
|
|
|
{
|
|
|
|
MIN_ARGUMENTS(1);
|
|
|
|
ARG_IS_OF_TYPE(0, cmd_number);
|
|
|
|
((number*)_stack->get_obj(0))->_value = asin(((number*)_stack->get_obj(0))->_value);
|
|
|
|
}
|
|
|
|
|
|
|
|
void rpn_cos(void)
|
|
|
|
{
|
|
|
|
MIN_ARGUMENTS(1);
|
|
|
|
ARG_IS_OF_TYPE(0, cmd_number);
|
|
|
|
((number*)_stack->get_obj(0))->_value = cos(((number*)_stack->get_obj(0))->_value);
|
|
|
|
}
|
|
|
|
|
|
|
|
void rpn_acos(void)
|
|
|
|
{
|
|
|
|
MIN_ARGUMENTS(1);
|
|
|
|
ARG_IS_OF_TYPE(0, cmd_number);
|
|
|
|
((number*)_stack->get_obj(0))->_value = acos(((number*)_stack->get_obj(0))->_value);
|
|
|
|
}
|
|
|
|
|
|
|
|
void rpn_tan(void)
|
|
|
|
{
|
|
|
|
MIN_ARGUMENTS(1);
|
|
|
|
ARG_IS_OF_TYPE(0, cmd_number);
|
|
|
|
((number*)_stack->get_obj(0))->_value = tan(((number*)_stack->get_obj(0))->_value);
|
|
|
|
}
|
|
|
|
|
|
|
|
void rpn_atan(void)
|
|
|
|
{
|
|
|
|
MIN_ARGUMENTS(1);
|
|
|
|
ARG_IS_OF_TYPE(0, cmd_number);
|
|
|
|
((number*)_stack->get_obj(0))->_value = atan(((number*)_stack->get_obj(0))->_value);
|
|
|
|
}
|