J source doesn't include openssl as submodule. Only a minimal subset for supporting sha is included. No big number.
On Thu, Feb 4, 2021, 6:56 AM 'Pascal Jasmin' via Programming < [email protected]> wrote: > GMP has the same decimal export/import functions as openssl. It has > rational support that behaves the same as J (gcd reduce after each > operation). It has "fancier" multiplication algorithms. I'm not aware of > it having hashing or cryptographic functions though. > > I don't know if the openssl already "hidden" inside QT includes the big > number library or how to access it. > > > > > > > On Wednesday, February 3, 2021, 04:41:17 p.m. EST, Henry Rich < > [email protected]> wrote: > > > > > > 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 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
