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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
