Oops, sent this to Rick only, so here to the list so all know about it
-------- Forwarded Message --------
Subject: Re: [Oorexx-devel] Strange behaviour RxMath RxCalcSqrt function
Date: Sat, 25 Jul 2020 19:03:57 +0200
From: Ruurd Idenburg <ru...@idenburg.net>
To: Rick McGuire <object.r...@gmail.com>
I did switch the order of REQUIREs but it did not make a difference. I
also changed the include in the rxmath.cpp code to <cmath> instead of
<math.h> because I read that that was supposed to be done on some fora,
but that did not make a difference as well.
I wondered if linking librxmath.so as a static library would solve the
situation, but I am not sufficient knowledeable on how to get that done
via all the complex (for me) "make" stuff.
Ruurd
On 7/25/20 6:47 PM, Rick McGuire wrote:
Something to try. Switch the order of the two ::REQUIRES to see if the
problem goes away. It really does look like there's something that
BSF4ooRexx is doing that causes this behavior, but it is puzzling that
it doesn't happen on other platforms.
Rick
On Sat, Jul 25, 2020 at 12:29 PM Rony G. Flatscher
<rony.flatsc...@wu.ac.at <mailto:rony.flatsc...@wu.ac.at>> wrote:
To clarify: to the best of my knowledge BSF4ooRexx does nothing
that would explain this weird
behaviour on Linux. (It works as expected on Windows and MacOS.)
---rony
P.S.: Ruurd came up with the idea that maybe the Java virtual
machine that gets loaded may cause
this effect on Linux (both, librxmath.so and libjvm.so, use sqrt
from the runtime). Even if so, this
awkward behaviour in Rexx should not be a side-effect of using any
other library together with Rexx.
On 25.07.2020 12:12, Ruurd Idenburg wrote:
> Running the attached script "rxmath.rex" will yield a weird
result on my Linux (Mint 19.3, which
> is based on Ubuntu 18.04) when the RxCalcSqrt function is called
from the RXBSF.REX for a
> non-perfect square (129).
>
> The code in RXBSF.REX does only ::REQUIRE BSF.CLS without using
any of its possibilities (unless
> some lines are uncommented) but in turn requires the Java
library "libjvm.so"
>
> It looks like the ::REQUIRE causes the sqrt function to produce
a different outcome of the
> resulting floating point number.
>
> When I run the code on a Windows 10 machine, the results from
RXBSF.REX are correct. Rony Flatcher
> ran the scripts on Darwin (MacOS) and there the results were
correct too.
>
> I included the pure Rexx ::ROUTINE my_sqrt (more or less copied
from Walter Pachl's rxm.cls on
> Rosetta.org) to verify that that works OK.
>
> Also before calling RXBSF.REX from rxmath.rex and after
returning from RXBSF.REX the results of
> the RxMath rxCalcSqrt function are OK again.
>
> Seems to me that RxMath should not be impacted by another
::REQUIRE (if that is the case??).
>
> Anybody with more system experience has some thoughts on how to
tackle this?
>
> Cheers,
>
> Ruurd
>
> P.S.
>
> I have now switched to the use of Walter Pachl's very nice
package (thanks Walter) that you can
> find here:
>
> <http://rosettacode.org/wiki/Trigonometric_functions#ooRexx>
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
<mailto:Oorexx-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/oorexx-devel
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel