Reasonable suggestion.  The current algorithm for floating-point GCD is 30 years old and predates rational arithmetic.

On the other hand, if all you wanted was +.&.x:, you could have written that.

I will leave the code as is.  Many floating-point values are exact integers and I wouldn't want to lumber them with a forced conversion to extended integer.

Henry Rich

On 5/15/2020 11:17 PM, bill lam wrote:
Yes I agree GCD meant for whole numbers, so that +. on floating points can
first convert to rational first and convert back to float afterwards
    +./&.x: 4.57 4.34 4.44
0.01
x: is clever enough to find the shortest form of rational equal to the
original floating number range
    (3!:3) 4.5700000000000003

e300000000000000
0800000000000000
0100000000000000
0000000000000000
48e17a14ae471240
    (3!:3) 4.57
e300000000000000
0800000000000000
0100000000000000
0000000000000000
48e17a14ae471240
    x:  4.5700000000000003
457r100
    x:  4.57
457r100

That said, I don't see any real benefit for change, if a user want rational
number behavior, he/she can use the form
+./&.x:



On Sat, May 16, 2020 at 7:18 AM Devon McCormick <devon...@gmail.com> wrote:

Since, AFAIK, GCD was originally defined in the context of whole numbers,
you probably get what you deserve using it with non-integers.

On Fri, May 15, 2020 at 7:04 PM Raul Miller <rauldmil...@gmail.com> wrote:

It is odd, though, that even with comparison tolerance set to zero, +.
is not associative on fractional floating point values:

    9!:19]0

    0j16":,.+./4.57 4.34 4.44
0.0000000000000036
    0j16":,.+./|.4.57 4.34 4.44
0.0000000000290870

It is commutative though:
    (-:|:)+./@>{;~4.57 4.34 4.44
1
    0j16":+./@>{;~4.57 4.34 4.44
4.5700000000000003 0.0100000000000655 0.0099999999999758
0.0100000000000655 4.3399999999999999 0.0200000000000466
0.0099999999999758 0.0200000000000466 4.4400000000000004

I'm not quite sure what's going on here... maybe a built in epsilon
which is independent of comparison tolerance?

Thanks,

--
Raul

On Fri, May 15, 2020 at 6:53 PM Hauke Rehr <hauke.r...@uni-jena.de>
wrote:
In case you are willing to accept labelling it a problem.

As I mentioned by altering the thread’s subject, yes,
this ain’t a bug. But there may be an opportunity for
improvement without sacrifice. Or so do I think.


Am 16.05.20 um 00:49 schrieb 'Michael Day' via Programming:
Not a new "bug" - I've still got J503 for some reason - so:

     +./4.57 4.34 4.44
5.39568e_12

     ABOUTJ_jijs_   NB. nearest thing to JVERSION???
Copyright 1994-2004 Jsoftware Inc.
For information about this and related products:

     Jsoftware Inc.
     P.O. Box 330
     Excelsior, MN 55331
     tel: 952 470-7345  fax: 952 470-9202
     www.jsoftware.com
     i...@jsoftware.com

As Devon and Henry suggest, it's the usual problem with "exact"
representation of reals.

Mike



On 15/05/2020 15:17, 'Bo Jacoby' via Programming wrote:
     +./4.57 4.34 4.44
5.39568e_12

NB. this was not the correct answer.  A bug?

     +./x:4.57 4.34 4.44

1r100

NB. this was a work-around
Thanks!
Bo.





----------------------------------------------------------------------
For information about J forums see
http://www.jsoftware.com/forums.htm
--
----------------------
mail written using NEO
neo-layout.org

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm


--

Devon McCormick, CFA

Quantitative Consultant
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm


--
This email has been checked for viruses by AVG.
https://www.avg.com

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to