From: <bi...@us...> - 2008-09-06 18:14:44
|
Revision: 3198 http://oorexx.svn.sourceforge.net/oorexx/?rev=3198&view=rev Author: bigrixx Date: 2008-09-06 18:14:54 +0000 (Sat, 06 Sep 2008) Log Message: ----------- Don't give an error in rxmath for precisions greater than 16 Modified Paths: -------------- main/trunk/extensions/rxmath/rxmath.cpp Modified: main/trunk/extensions/rxmath/rxmath.cpp =================================================================== --- main/trunk/extensions/rxmath/rxmath.cpp 2008-09-06 17:58:39 UTC (rev 3197) +++ main/trunk/extensions/rxmath/rxmath.cpp 2008-09-06 18:14:54 UTC (rev 3198) @@ -371,11 +371,16 @@ RxErrMsgSet1("The second argument is invalid"); rc = INVALID_ROUTINE; /* this is invalid */ } - else if ( (*precision > MAX_PRECISION) || (*precision < MIN_PRECISION) ) + else if (*precision < MIN_PRECISION) { - RxErrMsgSet1("The precision is not in the valid range (1-16)"); + RxErrMsgSet1("The precision must be greater than zero"); rc = INVALID_ROUTINE; } + // on 64-bit systems, the default digits setting is 18. Our cap is 16. + if (*precision > MAX_PRECISION) + { + *precision = MAX_PRECISION; + } return rc; /* return success code */ } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-09-06 23:59:34
|
Revision: 3206 http://oorexx.svn.sourceforge.net/oorexx/?rev=3206&view=rev Author: bigrixx Date: 2008-09-06 23:59:36 +0000 (Sat, 06 Sep 2008) Log Message: ----------- more rxmath precision fixes Modified Paths: -------------- main/trunk/extensions/rxmath/rxmath.cpp Modified: main/trunk/extensions/rxmath/rxmath.cpp =================================================================== --- main/trunk/extensions/rxmath/rxmath.cpp 2008-09-06 23:14:29 UTC (rev 3205) +++ main/trunk/extensions/rxmath/rxmath.cpp 2008-09-06 23:59:36 UTC (rev 3206) @@ -437,12 +437,17 @@ RxErrMsgSet1("The second argument is invalid"); rc = INVALID_ROUTINE; /* this is invalid */ } - else if ( (precision > MAX_PRECISION) | (precision < MIN_PRECISION) ) + else if (precision < MIN_PRECISION) { - RxErrMsgSet1("The precision is not in the valid range (1-16)"); + RxErrMsgSet1("The precision must be greater than zero"); rc = INVALID_ROUTINE; } - else if (numargs == 3) + // on 64-bit systems, the default digits setting is 18. Our cap is 16. + if (precision > MAX_PRECISION) + { + precision = MAX_PRECISION; + } + if (numargs == 3) { /* have an option */ if (RXZEROLENSTRING(args[2])) /* null string? */ { @@ -589,12 +594,17 @@ RxErrMsgSet1("The second argument is invalid"); rc = INVALID_ROUTINE; /* this is invalid */ } - else if ( (precision > MAX_PRECISION) || (precision < MIN_PRECISION) ) + else if (precision < MIN_PRECISION) { - RxErrMsgSet1("The precision is not in the valid range (1-16)"); + RxErrMsgSet1("The precision must be greater than zero"); rc = INVALID_ROUTINE; } - else if (numargs == 3) + // on 64-bit systems, the default digits setting is 18. Our cap is 16. + if (precision > MAX_PRECISION) + { + precision = MAX_PRECISION; + } + if (numargs == 3) { /* have an option */ if (RXZEROLENSTRING(args[2])) /* null string? */ { @@ -878,11 +888,16 @@ rc = INVALID_ROUTINE; /* this is invalid */ } - else if ( (precision > MAX_PRECISION) || (precision < MIN_PRECISION) ) + else if (precision < MIN_PRECISION) { - RxErrMsgSet1("The precision is not in the valid range (1-16)"); + RxErrMsgSet1("The precision must be greater than zero"); rc = INVALID_ROUTINE; } + // on 64-bit systems, the default digits setting is 18. Our cap is 16. + if (precision > MAX_PRECISION) + { + precision = MAX_PRECISION; + } /* format the result */ if (!rc) { @@ -993,12 +1008,16 @@ RxErrMsgSet1("The argument is invalid"); rc = INVALID_ROUTINE; /* this is invalid */ } - /* keep to maximum */ - else if ( (precision > MAX_PRECISION) || (precision < MIN_PRECISION) ) + else if (precision < MIN_PRECISION) { - RxErrMsgSet1("The precision is not in the valid range (1-16)"); + RxErrMsgSet1("The precision must be greater than zero"); rc = INVALID_ROUTINE; } + // on 64-bit systems, the default digits setting is 18. Our cap is 16. + if (precision > MAX_PRECISION) + { + precision = MAX_PRECISION; + } /* format the result */ if (!rc) { /* good function call */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-09-07 20:30:42
|
Revision: 3218 http://oorexx.svn.sourceforge.net/oorexx/?rev=3218&view=rev Author: bigrixx Date: 2008-09-07 20:30:52 +0000 (Sun, 07 Sep 2008) Log Message: ----------- Fix linux compile errors Modified Paths: -------------- main/trunk/extensions/rxmath/rxmath.cpp Modified: main/trunk/extensions/rxmath/rxmath.cpp =================================================================== --- main/trunk/extensions/rxmath/rxmath.cpp 2008-09-07 19:48:29 UTC (rev 3217) +++ main/trunk/extensions/rxmath/rxmath.cpp 2008-09-07 20:30:52 UTC (rev 3218) @@ -131,51 +131,9 @@ #pragma optimize( "", off ) #endif -#ifdef __cplusplus -extern "C" { -#endif -/************************************************************************* -* Function: MathLoadFuncs * -* * -* Syntax: call MathLoadFuncs * -* * -* Purpose: load the function package * -* * -* Params: none * -* * -* Return: null string * -*************************************************************************/ -RexxRoutine1(CSTRING, MathLoadFuncs, OPTIONAL_CSTRING, version) -{ - if (version != NULL) - { - fprintf(stdout, "%s %s - %s\n",PROG_NAME,PROG_VERS,PROG_DESC); - fprintf(stdout, "%s\n",PROG_COPY); - fprintf(stdout, "%s\n",PROG_ALRR); - fprintf(stdout, "\n"); - } - // the rest is a nop now that this uses automatic loading. - return ""; -} -/************************************************************************* -* Function: MathDropFuncs * -* * -* Syntax: call MathDropFuncs * -* * -* Return: NO_UTIL_ERROR - Successful. * -*************************************************************************/ - -RexxRoutine0(CSTRING, MathDropFuncs) -{ - // this is a nop now. - return ""; -} - - - // simple class for handling numeric values class NumericFormatter { @@ -492,7 +450,45 @@ } #endif +/************************************************************************* +* Function: MathLoadFuncs * +* * +* Syntax: call MathLoadFuncs * +* * +* Purpose: load the function package * +* * +* Params: none * +* * +* Return: null string * +*************************************************************************/ +RexxRoutine1(CSTRING, MathLoadFuncs, OPTIONAL_CSTRING, version) +{ + if (version != NULL) + { + fprintf(stdout, "%s %s - %s\n",PROG_NAME,PROG_VERS,PROG_DESC); + fprintf(stdout, "%s\n",PROG_COPY); + fprintf(stdout, "%s\n",PROG_ALRR); + fprintf(stdout, "\n"); + } + // the rest is a nop now that this uses automatic loading. + return ""; +} + +/************************************************************************* +* Function: MathDropFuncs * +* * +* Syntax: call MathDropFuncs * +* * +* Return: NO_UTIL_ERROR - Successful. * +*************************************************************************/ + +RexxRoutine0(CSTRING, MathDropFuncs) +{ + // this is a nop now. + return ""; +} + /* Mathematical function package *************************************/ /********************************************************************/ @@ -693,11 +689,6 @@ return formatter.evaluateArc(x, ARCTANGENT); } -#ifdef __cplusplus -} -#endif - - // now build the actual entry list RexxRoutineEntry rxmath_functions[] = { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-09-07 20:51:50
|
Revision: 3219 http://oorexx.svn.sourceforge.net/oorexx/?rev=3219&view=rev Author: bigrixx Date: 2008-09-07 20:51:59 +0000 (Sun, 07 Sep 2008) Log Message: ----------- add nan tests to rxmath formatter Modified Paths: -------------- main/trunk/extensions/rxmath/rxmath.cpp Modified: main/trunk/extensions/rxmath/rxmath.cpp =================================================================== --- main/trunk/extensions/rxmath/rxmath.cpp 2008-09-07 20:30:52 UTC (rev 3218) +++ main/trunk/extensions/rxmath/rxmath.cpp 2008-09-07 20:51:59 UTC (rev 3219) @@ -96,6 +96,7 @@ #include <math.h> #include <fcntl.h> +#include <float.h> /*------------------------------------------------------------------ * rexx includes @@ -173,10 +174,11 @@ return NULLOBJECT; } - if (errorFlag) + if (errorFlag || _isnan(x)) { return context->NewStringFromAsciiz("ERROR"); } + return context->DoubleToObjectWithPrecision(x, precision); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2008-09-09 14:20:11
|
Revision: 3250 http://oorexx.svn.sourceforge.net/oorexx/?rev=3250&view=rev Author: bigrixx Date: 2008-09-09 14:20:19 +0000 (Tue, 09 Sep 2008) Log Message: ----------- revert accidentaly commit of rxmath change Modified Paths: -------------- main/trunk/extensions/rxmath/rxmath.cpp Modified: main/trunk/extensions/rxmath/rxmath.cpp =================================================================== --- main/trunk/extensions/rxmath/rxmath.cpp 2008-09-09 14:19:45 UTC (rev 3249) +++ main/trunk/extensions/rxmath/rxmath.cpp 2008-09-09 14:20:19 UTC (rev 3250) @@ -641,16 +641,9 @@ return formatter.evaluateArc(x, ARCTANGENT); } -/*==================================================================*/ -RexxRoutine1(int64_t, TestInt64, int64_t, a) -{ - return a; -} - // now build the actual entry list RexxRoutineEntry rxmath_functions[] = { - REXX_TYPED_ROUTINE(TestInt64, TestInt64), REXX_TYPED_ROUTINE(MathLoadFuncs, MathLoadFuncs), REXX_TYPED_ROUTINE(MathDropFuncs, MathDropFuncs), REXX_TYPED_ROUTINE(RxCalcPi, RxCalcPi), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ta...@us...> - 2009-07-23 16:15:21
|
Revision: 4987 http://oorexx.svn.sourceforge.net/oorexx/?rev=4987&view=rev Author: tammer Date: 2009-07-23 16:15:13 +0000 (Thu, 23 Jul 2009) Log Message: ----------- fix for gcc 4.2.4 - please test Modified Paths: -------------- main/trunk/extensions/rxmath/rxmath.cpp Modified: main/trunk/extensions/rxmath/rxmath.cpp =================================================================== --- main/trunk/extensions/rxmath/rxmath.cpp 2009-07-23 09:00:34 UTC (rev 4986) +++ main/trunk/extensions/rxmath/rxmath.cpp 2009-07-23 16:15:13 UTC (rev 4987) @@ -67,7 +67,13 @@ * * **********************************************************************/ +#ifdef __cplusplus +extern "C" { +#endif extern int errno; +#ifdef __cplusplus +} +#endif /*------------------------------------------------------------------ * program defines This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ta...@us...> - 2009-07-23 21:30:00
|
Revision: 4991 http://oorexx.svn.sourceforge.net/oorexx/?rev=4991&view=rev Author: tammer Date: 2009-07-23 21:29:54 +0000 (Thu, 23 Jul 2009) Log Message: ----------- extern int errno not allowed in AIX pthread env - we need to include errno.h Modified Paths: -------------- main/trunk/extensions/rxmath/rxmath.cpp Modified: main/trunk/extensions/rxmath/rxmath.cpp =================================================================== --- main/trunk/extensions/rxmath/rxmath.cpp 2009-07-23 19:56:19 UTC (rev 4990) +++ main/trunk/extensions/rxmath/rxmath.cpp 2009-07-23 21:29:54 UTC (rev 4991) @@ -67,12 +67,12 @@ * * **********************************************************************/ -#ifdef __cplusplus -extern "C" { -#endif +/* In an pthread environment it is required to include errno.h on AIX */ +/* The reference to the process global symbol errno is not reliably */ +#ifdef OPSYS_AIX +# include <errno.h> +#else extern int errno; -#ifdef __cplusplus -} #endif /*------------------------------------------------------------------ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bi...@us...> - 2009-07-23 21:51:44
|
Revision: 4993 http://oorexx.svn.sourceforge.net/oorexx/?rev=4993&view=rev Author: bigrixx Date: 2009-07-23 21:51:38 +0000 (Thu, 23 Jul 2009) Log Message: ----------- Just use errno.h unconditionally Modified Paths: -------------- main/trunk/extensions/rxmath/rxmath.cpp Modified: main/trunk/extensions/rxmath/rxmath.cpp =================================================================== --- main/trunk/extensions/rxmath/rxmath.cpp 2009-07-23 21:30:56 UTC (rev 4992) +++ main/trunk/extensions/rxmath/rxmath.cpp 2009-07-23 21:51:38 UTC (rev 4993) @@ -67,13 +67,7 @@ * * **********************************************************************/ -/* In an pthread environment it is required to include errno.h on AIX */ -/* The reference to the process global symbol errno is not reliably */ -#ifdef OPSYS_AIX -# include <errno.h> -#else -extern int errno; -#endif +#include <errno.h> /*------------------------------------------------------------------ * program defines This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mie...@us...> - 2009-09-23 20:12:14
|
Revision: 5206 http://oorexx.svn.sourceforge.net/oorexx/?rev=5206&view=rev Author: miesfeld Date: 2009-09-23 20:12:08 +0000 (Wed, 23 Sep 2009) Log Message: ----------- 2864480 Correct description of RxCalcArc-functions Patch supplied by Walter Pachl Modified Paths: -------------- main/trunk/extensions/rxmath/rxmath.cpp Modified: main/trunk/extensions/rxmath/rxmath.cpp =================================================================== --- main/trunk/extensions/rxmath/rxmath.cpp 2009-09-23 20:00:44 UTC (rev 5205) +++ main/trunk/extensions/rxmath/rxmath.cpp 2009-09-23 20:12:08 UTC (rev 5206) @@ -602,11 +602,10 @@ /********************************************************************/ /* Functions: RxCalcArcSin(), RxCalcArcCos(), RxCalcArcTan()*/ /* Description: Returns angle from trigonometric value. */ -/* Input: Angle in radian or degree or grade */ +/* Input: a number */ /* Output: Angle for matching trigonometric value. */ -/* Returns 0 if the function executed OK, */ -/* -1 otherwise. The interpreter will fail */ -/* if the function returns a negative result. */ +/* Returns nan if the first argument is out */ +/* of range, e.g., RxCalcSin(1.1) -> nan */ /* Notes: */ /* These routines take one to three parameters. */ /* The form of the call is: */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |