77 #define PROG_DESC "REXX mathematical function package"
78 #define PROG_VERS "1.1"
80 #define PROG_COPY "(c) Copyright RexxLanguage Association 2005."
81 #define PROG_ALRR "All Rights Reserved."
99 #include <sys/types.h>
115 #define pi 3.14159265358979323846l
117 #define MAX_PRECISION 16
118 #define MIN_PRECISION 1
124 #pragma optimize( "", off )
139 if (explicitPrecision)
230 nsi = (angle < 0.) ? -1. : 1.;
231 angle = fmod(fabs(angle), 360.);
234 angle = angle *
pi / 180.;
236 else if (angle < 135.)
238 angle = (90. - angle) *
pi / 180.;
243 else if (angle <= 225.)
245 angle = (180. - angle) *
pi / 180.;
248 else if (angle < 315.)
250 angle = (angle - 270.) *
pi / 180.;
257 angle = (angle - 360.) *
pi / 180.;
263 nsi = (angle < 0.) ? -1. : 1.;
264 angle = fmod(fabs(angle), 400.);
267 angle = angle *
pi / 200.;
269 else if (angle < 150.)
271 angle = (100. - angle) *
pi / 200.;
276 else if (angle <= 250.)
278 angle = (200. - angle) *
pi / 200.;
281 else if (angle < 350.)
283 angle = (angle - 300.) *
pi / 200.;
290 angle = (angle - 400.) *
pi / 200.;
302 result = nsi * sin(angle);
305 result = nco * cos(angle);
308 result = nsi * nco * tan(angle);
313 result = nsi * nco / tan(result);
350 angle = angle * 180. /
pi;
354 angle = angle * 200. /
pi;
383 int _cdecl _matherr(
struct _exception *x )
385 int matherr(
struct __math_exception *x)
387 int matherr(
struct __exception *x)
389 #if defined(WIN32) || defined(OPSYS_SUN) || defined(OPSYS_AIX)
414 fprintf(stdout,
"\n");
457 return formatter.
format(sqrt(x));
466 return formatter.
format(exp(x));
475 return formatter.
format(log(x));
483 return formatter.
format(log10(x));
493 return formatter.
format(sinh(x));
502 return formatter.
format(cosh(x));
511 return formatter.
format(tanh(x));
533 return formatter.
format(pow(x, y));
674 #pragma optimize( "", on )
#define argumentExists(i)
#define REXX_INTERPRETER_4_0_0
#define REXX_LAST_ROUTINE()
#define REXX_TYPED_ROUTINE(n, e)
#define STANDARD_PACKAGE_HEADER
struct _RexxObjectPtr * RexxObjectPtr
RexxRoutine2(RexxObjectPtr, RxCalcSqrt, double, x, OPTIONAL_uint32_t, precision)
RexxRoutine1(CSTRING, MathLoadFuncs, OPTIONAL_CSTRING, version)
RexxPackageEntry rxmath_package_entry
RexxRoutineEntry rxmath_functions[]
RexxRoutine0(CSTRING, MathDropFuncs)
RexxRoutine3(RexxObjectPtr, RxCalcPower, double, x, double, y, OPTIONAL_uint32_t, precision)
OOREXX_GET_PACKAGE(rxmath)