There will be no new 3!:0 type! Compatibility with 3!:1 is not vital.  The library needs to support 32- and 64-bit systems.

Henry Rich

On 2/3/2021 4:30 PM, 'Pascal Jasmin' via Programming wrote:
Yes it is base 10000, sorry.

The big decisions on the changes are:

32 or 64bit base?
change the 3!:1 storage format?
rationals are just a pair of large integers?
openssl is good enough?

I did create an interface to openssl big integer library  
https://github.com/Pascal-J/BN-openssl-bindings-for-J

I just noticed that in j901, this library is no longer in the bin folder for J

But anyway, I can answer these questions if openssl is used:  The storage 
format is taken care of by the DLL used.  Openssl will provide a decimal,hex 
(string) or vector format when asked to, and so the old 3!:1 format can be 
kept/managed, even if perhaps a new 3!:0 type is added.





On Wednesday, February 3, 2021, 03:22:25 p.m. EST, Henry Rich 
<[email protected]> wrote:





The multiplication algorithm is brute-force. FFT methods are orders of
magnitude faster for large numbers.

Numbers are actually stored in base 10000 IIRC.

Extended arithmetic is not a mainstream use, but if we support it we
might as well do it as well as we can.

Henry Rich

On 2/3/2021 3:05 PM, 'Pascal Jasmin' via Programming wrote:
The core performance bottleneck with extended precision numbers in J is that they are 
stored in base 10.  That decision does come with a performance advantage of its own:  
input and display.  I'd favour the move to 32/64 bit storage even if it "broke" 
the 3!:1 format (although 3!:1 could convert to old storage style).  J is already 
shipping with openssl that has large integer operations.  Is there that big a case to add 
GMP as a dependency?






On Wednesday, February 3, 2021, 09:47:51 a.m. EST, Henry Rich 
<[email protected]> wrote:





IF you want to get yourself in shape to make JE changes, I have a
starter project for you: replace the extended-integer and rational
support with GMP (or some other equally-good library).  The current code
is serviceable but sized for 32-bit machines, and lacks fast multiplication.

The code resides in vx.c and vq.c, which would be replaced with new
versions.  There are also bits in k.c (conversions) and d.c (display).

I will help as needed.

Henry Rich

On 2/1/2021 11:25 PM, ethiejiesa via Programming wrote:
Raul Miller <[email protected]> wrote:
https://github.com/jsoftware/jsource/commits/master might interest you...
Indeed, I have the repo cloned locally!

However, when digging through old bug reports, I find it quite challenging to
match up the "fixed" notices with the corresponding code commits. In cases with
a clear test case demonstrating the bug, we can use git-bisect to sleuth out
the commit that eliminates the failure. However, cases without this almost
invariably defeat my investigative skills.

For posterity's sake, and if it's not too much of a hassle, I thought it might
be helpful to have some commits/diffs/comments attached to those "fixed"
messages.

I will admit to a bit of an ulterior motive here, though.

Bill, Eric, and Henry have deep domain knowledge about JE. I am personally
hoping that sharing the diffs would also spark discussion and give a natural
avenue to share and spread such expertise.

The gory details are exceptionally interesting!


Permit me to query a broader point, though.

It strikes me that the git-shortlog on the repo is very short:

         $ git shortlog --summary
         6    Chris Burke
         231    Eric Iverson
         1430    HenryHRich
         1    bill
         597    bill lam
         3    cdb
         3    kbi

For the most part, we only have 3 devs, with all of them part of the old guard,
per se. Better yet, Henry has authored over 62% of all commits! Granted, this
only reflects the history from 2016 onward, but my question is this: Do we have
up and coming JE hackers that can pick up the torch when the time comes?


Anyway, maybe JSoftware has a vision for the future that I've failed to pick up
on. The ulterior motive behind my "share a bit about the fix" is to perhaps
open a channel with the community that sucks in potential JE devs like myself!
I was just trying to be sneaky about things by suggesting something very simple
and, hopefully, hassle-free.


2!:55
----------------------------------------------------------------------
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