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

Reply via email to