| hermann on Sat, 30 Sep 2023 14:13:25 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: primorial operator '#' for GP? |
On 2023-09-30 10:44, Bill Allombert wrote:
On Wed, Sep 27, 2023 at 08:29:16AM -0400, Charles Greathouse wrote:I would definitely use a # operator if it were added. But I don’t mind the decision to leave the operator space clean; there are a lot of use casesfor PARI/GP and clutter is a real concern.We added # yesterday as an experiment. I hope it will work for you! Cheers, Bill
Thank you! I pulled latest and built without issues. Then I searched for a more complex use of "#" example from list of 5000 largest primes and found quadruplet with 3× "#": https://t5k.org/primes/lists/all.txt----- ------------------------------- -------- ----- ---- --------------
rank description digits who year comment----- ------------------------------- -------- ----- ---- --------------
...
5605c (1049713153083*2917#*(567*2917#+1)+2310)*(567*2917#-1)/210+9
3753 c101 2023
Quadruplet (4),ECPP
5606c (1049713153083*2917#*(567*2917#+1)+2310)*(567*2917#-1)/210+7
3753 c101 2023
Quadruplet (3),ECPP
5607c (1049713153083*2917#*(567*2917#+1)+2310)*(567*2917#-1)/210+3
3753 c101 2023
Quadruplet (2),ECPP
5608c (1049713153083*2917#*(567*2917#+1)+2310)*(567*2917#-1)/210+1
3753 c101 2023
Quadruplet (1),ECPP
...
Just works:
$ ./gp -q
? \v
GP/PARI CALCULATOR Version 2.16.1 (development 28704-e9753897f)
amd64 running linux (x86-64/GMP-6.1.2 kernel) 64-bit version
compiled: Sep 30 2023, gcc version 8.5.0 20210514 (GCC)
threading engine: single
(readline v7.0 enabled, extended help enabled)
? p=(1049713153083*2917#*(567*2917#+1)+2310)*(567*2917#-1)/210+9;
? #digits(p)
3753
? [ispseudoprime(p-d)|d<-[0,2,6,8]]
[1, 1, 1, 1]
?
I had verified that all entries matching "#" were of the form "[0-9]#"
in list of 5000 largest primes.
I looked into compiling custom readline macros to replace all
"[0-9][0-9]*#"
with "primorial(\1)" in current readline line and map that macro to some
CTRL
key combination. Good that you have implemented "#" operator, so that
work
is not needed anymore.Even better, "#" operator (of course) works in case of parenthesis preceding:
? (3*4+1)# 30030 ? 13# 30030 ? 2*3*5*7*11*13 30030 ? Regards, Hermann.