If you have
   f=: 4 : '*: x (-"1) y'

And you want an explicit ed, defined in terms of f, which is equivalent to
   ed=:+/&.:*:@:-"1

Then I would use:
   ed=: 4 : '%: +/ x f y'"1

Note that "1 needs to be outside the explicit definition for ed/~ to
recognize that ed consumes rank 1 items.

I hope this helps,

-- 
Raul


On Mon, Feb 15, 2021 at 1:49 AM Emir U <[email protected]> wrote:
>
> Thank you, Clifford, for the insightful reformulation! I understand the 
> thought process to be find a dyadic u such that u/~ data produces the 
> Euclidean matrix. So for parity with my solution +/ @: *:@:-"1 /~ does it. 
> The trickiness - or so it seems to me - is that u has to be rank 0 for /~ to 
> apply as expected.
>
> I think the rub is this bit: f=: *:@:-"1
>
> For nouns x and y it unpacks to *: (x -"1 y )
>
> The dyadic form of -"1 makes the whole thing rank 0 by operating on atoms.
>
> Then for x and y again, +/ @: f just unpacks to +/ x f y
>
> I've tried to write this as an explicitly declared verb (i.e. with x and y 
> stipulated) but to no avail.
>
> Something like f=: 4 : '*: x (-"1) y' then ed := +/ @: f
>
> ... but it clearly fails to be rank 0 for reasons I'm not understanding at 
> the moment. Can you give me a clue?
>
> ________________________________
> From: Programming <[email protected]> on behalf of 
> [email protected] 
> <[email protected]>
> Sent: 14 February 2021 12:00
> To: [email protected] <[email protected]>
> Subject: Programming Digest, Vol 185, Issue 14
>
> Send Programming mailing list submissions to
>         [email protected]
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         http://jsoftware.com/mailman/listinfo/programming
> or, via email, send a message with subject or body 'help' to
>         [email protected]
>
> General information about the Jsoftware mailing lists is at:
>
>    https://code.jsoftware.com/wiki/System/Forums
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Programming digest..."
>
>
> Today's Topics:
>
>    1. Re: k-mediods PAM algo, help with canonical form (Clifford Reiter)
>    2. Re: k-mediods PAM algo, help with canonical form
>       ('Michael Day' via Programming)
>    3. Re: k-mediods PAM algo, help with canonical form (xash)
>    4. Re: k-mediods PAM algo, help with canonical form (xash)
>    5. Re: Error in comment in addons/math/misc/pollard.ijs
>       (Ric Sherlock)
>    6. Re: Error in comment in addons/math/misc/pollard.ijs
>       ('Mike Day' via Programming)
>    7. Re: Error in comment in addons/math/misc/pollard.ijs (Henry Rich)
>    8. Re: Error in comment in addons/math/misc/pollard.ijs
>       (Ric Sherlock)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Sat, 13 Feb 2021 08:04:15 -0500
> From: Clifford Reiter <[email protected]>
> To: programming <[email protected]>
> Subject: Re: [Jprogramming] k-mediods PAM algo, help with canonical
>         form
> Message-ID:
>         <CAO=c1srz27e-ykvsaxpxudxqweqm8nm4vsfyzbpj6xmjgl2...@mail.gmail.com>
> Content-Type: text/plain; charset="UTF-8"
>
> I will take a stab at the euclidean distance matrix verb. I note that your
> edist gives the square of the distance.
>
> +/&.:*: 3 4 NB. euclidean length
>
> 5
>
> ed=:+/&.:*:@:-"1 NB. euclidean distance
>
> 0 0 ed 3 4
>
> 5
>
> 1 2 ed 4 6
>
> 5
>
> ed/~ 1 2,:4 6
>
> 0 5
>
> 5 0
>
> edist 1 2,:4 6
>
> 0 25
>
> 25 0
>
> edm=:ed/~ NB. euclidean dist matrix verb
>
> >./|,D-*: edm data
>
> 8.52651e_14
>
> The same up to roundoff
>
> On Sat, Feb 13, 2021 at 4:54 AM Emir U <[email protected]> wrote:
>
> > Hi guys, I'm very new to J (about 6-7 hours experience), I'm coding a
> > bunch of useful algos for clustering, optimisation and stats to give J a
> > proper go: this is my first. I (think) I've coded the k-mediods PAM algo as
> > described here: https://en.wikipedia.org/wiki/K-medoids
> >
> > I'm trying to tune my intuition as to what this code should look like when
> > written properly. i.e. in canonical form. I'd be grateful for your
> > feedback. I've enclosed the code below which is basically the kM_step and
> > kM functions: the rest is testing code. If you run it it'll generate some
> > data, cluster it and plot it for you.
> >
> >
> > NB. UPDATE MEDIODS FROM DATA.
> > kM_step=: 4 : 0
> > d=. (x { "1 y)
> > s=. ([@> (i. <./) each (;/ d )) { x
> > idx=: I. & (= & s)
> > d=. { "1 ({ & y)
> > w=. (i. <./) & (+/%#) & d
> > ; ((w { [) & idx) each x
> > )
> >
> > NB. ITERATE UPDATE STEP TO CONVERGENCE.
> > choose=: 4 : '({~ x ? #) ,y'
> > kM=: 4 : '(kM_step & y) ^:_ x choose (i. #y)'
> >
> > NB. CALCULATE PAIRWISE EUCLIDEAN DISTANCE MATRIX.
> > edist=: 3 : 0
> > x=. +/ |: y^2
> > a=. (,.x) +/ .+ (,:x)
> > b=. y +/ .* (|: y)
> > a - (2*b)
> > )
> >
> > NB. TESTING: GENERATE DATA, FIT & PLOT.
> > load 'plot'
> >
> > data=: ?(50 2$0)
> > data=: data,3+(3*?(50 2$0))
> > data=: data,5+(4*?(50 2$0))
> > D=: edist data
> > M=: (3 kM D) { data
> >
> > pd 'reset'
> > pd 'type dot'
> > pd 'pensize 3.1'
> > pd 'color gray'
> > pd ;/ |: data
> > pd 'show'
> > pd 'color red'
> > pd 'pensize 4'
> > pd ;/ |: M
> >
> > M
> >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
>
>
> ------------------------------
>
> Message: 2
> Date: Sat, 13 Feb 2021 13:31:36 +0000
> From: "'Michael Day' via Programming" <[email protected]>
> To: [email protected]
> Subject: Re: [Jprogramming] k-mediods PAM algo, help with canonical
>         form
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=utf-8; format=flowed
>
> I was having a look at the wiki description with a view to trying to do
> my own version
> and then comparing with Emir U's code.  But I was stuck wondering about
> the lack of definition
> of cost,  as well as what the greedy choice of k points is aiming to
> optimise at the start. The
> algorithm is rather sparsely described there.
>
> Anyway,  I thought it _might_ be worth considering using complex
> coordinates,
> eg
>     cdata =: j./"1 data
>
> Euclidean distance is then eg
>     | x1j1 - x0j0
>
> Forgetting that magnitude was simply | ,  I discovered there's a mistake
> in the NuVoc:
> this appears near the bottom of
> https://code.jsoftware.com/wiki/Vocabulary/jdot#dyadic  :
>
> Related primitives
> Real/Imag (+. y), Signum (Unit Circle) (* y), Length/Angle (*. y),
> Magnitude (* y), .....
>
> Clearly,  it should read " .... Magnitude  (| y), ..."
>
> Faut de mieux,  I came up with this for build,  not knowing what
> greediness was trying
> to achieve:
>     build =: (3 $: ]) : (]{~ (?#))    NB. choose x of y at random,  x =
> 3 by default...
>
> Cheers,
>
> Mike
>
> On 13/02/2021 13:04, Clifford Reiter wrote:
> > I will take a stab at the euclidean distance matrix verb. I note that your
> > edist gives the square of the distance.
> >
> > +/&.:*: 3 4 NB. euclidean length
> >
> > 5
> >
> > ed=:+/&.:*:@:-"1 NB. euclidean distance
> >
> > 0 0 ed 3 4
> >
> > 5
> >
> > 1 2 ed 4 6
> >
> > 5
> >
> > ed/~ 1 2,:4 6
> >
> > 0 5
> >
> > 5 0
> >
> > edist 1 2,:4 6
> >
> > 0 25
> >
> > 25 0
> >
> > edm=:ed/~ NB. euclidean dist matrix verb
> >
> >> ./|,D-*: edm data
> > 8.52651e_14
> >
> > The same up to roundoff
> >
> > On Sat, Feb 13, 2021 at 4:54 AM Emir U <[email protected]> wrote:
> >
> >> Hi guys, I'm very new to J (about 6-7 hours experience), I'm coding a
> >> bunch of useful algos for clustering, optimisation and stats to give J a
> >> proper go: this is my first. I (think) I've coded the k-mediods PAM algo as
> >> described here: https://en.wikipedia.org/wiki/K-medoids
> >>
> >> I'm trying to tune my intuition as to what this code should look like when
> >> written properly. i.e. in canonical form. I'd be grateful for your
> >> feedback. I've enclosed the code below which is basically the kM_step and
> >> kM functions: the rest is testing code. If you run it it'll generate some
> >> data, cluster it and plot it for you.
> >>
> >>
> >> NB. UPDATE MEDIODS FROM DATA.
> >> kM_step=: 4 : 0
> >> d=. (x { "1 y)
> >> s=. ([@> (i. <./) each (;/ d )) { x
> >> idx=: I. & (= & s)
> >> d=. { "1 ({ & y)
> >> w=. (i. <./) & (+/%#) & d
> >> ; ((w { [) & idx) each x
> >> )
> >>
> >> NB. ITERATE UPDATE STEP TO CONVERGENCE.
> >> choose=: 4 : '({~ x ? #) ,y'
> >> kM=: 4 : '(kM_step & y) ^:_ x choose (i. #y)'
> >>
> >> NB. CALCULATE PAIRWISE EUCLIDEAN DISTANCE MATRIX.
> >> edist=: 3 : 0
> >> x=. +/ |: y^2
> >> a=. (,.x) +/ .+ (,:x)
> >> b=. y +/ .* (|: y)
> >> a - (2*b)
> >> )
> >>
> >> NB. TESTING: GENERATE DATA, FIT & PLOT.
> >> load 'plot'
> >>
> >> data=: ?(50 2$0)
> >> data=: data,3+(3*?(50 2$0))
> >> data=: data,5+(4*?(50 2$0))
> >> D=: edist data
> >> M=: (3 kM D) { data
> >>
> >> pd 'reset'
> >> pd 'type dot'
> >> pd 'pensize 3.1'
> >> pd 'color gray'
> >> pd ;/ |: data
> >> pd 'show'
> >> pd 'color red'
> >> pd 'pensize 4'
> >> pd ;/ |: M
> >>
> >> M
> >>
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >>
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
>
>
> --
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
>
>
> ------------------------------
>
> Message: 3
> Date: Sat, 13 Feb 2021 14:47:17 +0100
> From: "xash" <[email protected]>
> To: <[email protected]>
> Subject: Re: [Jprogramming] k-mediods PAM algo, help with canonical
>         form
> Message-ID: <C98G6ZL5N8MO.30MDDL0D25KOH@xolotl>
> Content-Type: text/plain; charset=UTF-8
>
> This is already very good code! Some improvements other than edist:
>
> Using `each` for rank "0 like in the last line of kM_step should be
> avoided, as it just boxes/unboxes the result unecessarily.
>
> Instead of building up the groups per hand (I. & (= & s)), you can just
> use `/.` to group the indices.
>
> `?` already works on indices, so you can just use `4 ? #` instead of
> `({~ 4 ? #) i. # x`.
>
> I'm not sure how the original algorithm should work, but isn't the avarage
> (+/%#) unneccesary as the length of the group is equal among its elements?
> So +/ should be enough for comparison.
>
> Tacifying your code then a bit results in:
>
> kM2_step=: 4 : 0
> groups=. (i. <./)@:{"1
> sub=. {"1 {&x
> best=. [ {~ [:(i. <./) [:+/"1 sub
> (y groups x) best/. (i. # x)
> )
>
> kM2=: edist@] kM2_step^:_ (? #)
>
> 4 kM2 data
>
> On Sat Feb 13, 2021 at 10:54 AM CET, Emir U wrote:
> > Hi guys, I'm very new to J (about 6-7 hours experience), I'm coding a
> > bunch of useful algos for clustering, optimisation and stats to give J a
> > proper go: this is my first. I (think) I've coded the k-mediods PAM algo
> > as described here: https://en.wikipedia.org/wiki/K-medoids
> >
> > I'm trying to tune my intuition as to what this code should look like
> > when written properly. i.e. in canonical form. I'd be grateful for your
> > feedback. I've enclosed the code below which is basically the kM_step
> > and kM functions: the rest is testing code. If you run it it'll generate
> > some data, cluster it and plot it for you.
> >
> >
> > NB. UPDATE MEDIODS FROM DATA.
> > kM_step=: 4 : 0
> > d=. (x { "1 y)
> > s=. ([@> (i. <./) each (;/ d )) { x
> > idx=: I. & (= & s)
> > d=. { "1 ({ & y)
> > w=. (i. <./) & (+/%#) & d
> > ; ((w { [) & idx) each x
> > )
> >
> > NB. ITERATE UPDATE STEP TO CONVERGENCE.
> > choose=: 4 : '({~ x ? #) ,y'
> > kM=: 4 : '(kM_step & y) ^:_ x choose (i. #y)'
> >
> > NB. CALCULATE PAIRWISE EUCLIDEAN DISTANCE MATRIX.
> > edist=: 3 : 0
> > x=. +/ |: y^2
> > a=. (,.x) +/ .+ (,:x)
> > b=. y +/ .* (|: y)
> > a - (2*b)
> > )
> >
> > NB. TESTING: GENERATE DATA, FIT & PLOT.
> > load 'plot'
> >
> > data=: ?(50 2$0)
> > data=: data,3+(3*?(50 2$0))
> > data=: data,5+(4*?(50 2$0))
> > D=: edist data
> > M=: (3 kM D) { data
> >
> > pd 'reset'
> > pd 'type dot'
> > pd 'pensize 3.1'
> > pd 'color gray'
> > pd ;/ |: data
> > pd 'show'
> > pd 'color red'
> > pd 'pensize 4'
> > pd ;/ |: M
> >
> > M
> >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
>
>
>
> ------------------------------
>
> Message: 4
> Date: Sat, 13 Feb 2021 16:03:52 +0100
> From: "xash" <[email protected]>
> To: <[email protected]>
> Subject: Re: [Jprogramming] k-mediods PAM algo, help with canonical
>         form
> Message-ID: <C98HTMI0PQ4G.HRHD3KTEWVLE@xolotl>
> Content-Type: text/plain; charset=UTF-8
>
> After reading a bit about it: this seems to implement the Voronoi
> Iteration method mentioned in the wikipedia article, not PAM. PAM tries
> every possible swap, while the Voronoi Iteration tries only the swaps
> within a group. The cost function is the summend distances between
> non-mediods and their closest mediods.
>
> On Sat Feb 13, 2021 at 2:47 PM CET, xash wrote:
> > This is already very good code! Some improvements other than edist:
> >
> > Using `each` for rank "0 like in the last line of kM_step should be
> > avoided, as it just boxes/unboxes the result unecessarily.
> >
> > Instead of building up the groups per hand (I. & (= & s)), you can just
> > use `/.` to group the indices.
> >
> > `?` already works on indices, so you can just use `4 ? #` instead of
> > `({~ 4 ? #) i. # x`.
> >
> > I'm not sure how the original algorithm should work, but isn't the
> > avarage
> > (+/%#) unneccesary as the length of the group is equal among its
> > elements?
> > So +/ should be enough for comparison.
> >
> > Tacifying your code then a bit results in:
> >
> > kM2_step=: 4 : 0
> > groups=. (i. <./)@:{"1
> > sub=. {"1 {&x
> > best=. [ {~ [:(i. <./) [:+/"1 sub
> > (y groups x) best/. (i. # x)
> > )
> >
> > kM2=: edist@] kM2_step^:_ (? #)
> >
> > 4 kM2 data
> >
> > On Sat Feb 13, 2021 at 10:54 AM CET, Emir U wrote:
> > > Hi guys, I'm very new to J (about 6-7 hours experience), I'm coding a
> > > bunch of useful algos for clustering, optimisation and stats to give J a
> > > proper go: this is my first. I (think) I've coded the k-mediods PAM algo
> > > as described here: https://en.wikipedia.org/wiki/K-medoids
> > >
> > > I'm trying to tune my intuition as to what this code should look like
> > > when written properly. i.e. in canonical form. I'd be grateful for your
> > > feedback. I've enclosed the code below which is basically the kM_step
> > > and kM functions: the rest is testing code. If you run it it'll generate
> > > some data, cluster it and plot it for you.
> > >
> > >
> > > NB. UPDATE MEDIODS FROM DATA.
> > > kM_step=: 4 : 0
> > > d=. (x { "1 y)
> > > s=. ([@> (i. <./) each (;/ d )) { x
> > > idx=: I. & (= & s)
> > > d=. { "1 ({ & y)
> > > w=. (i. <./) & (+/%#) & d
> > > ; ((w { [) & idx) each x
> > > )
> > >
> > > NB. ITERATE UPDATE STEP TO CONVERGENCE.
> > > choose=: 4 : '({~ x ? #) ,y'
> > > kM=: 4 : '(kM_step & y) ^:_ x choose (i. #y)'
> > >
> > > NB. CALCULATE PAIRWISE EUCLIDEAN DISTANCE MATRIX.
> > > edist=: 3 : 0
> > > x=. +/ |: y^2
> > > a=. (,.x) +/ .+ (,:x)
> > > b=. y +/ .* (|: y)
> > > a - (2*b)
> > > )
> > >
> > > NB. TESTING: GENERATE DATA, FIT & PLOT.
> > > load 'plot'
> > >
> > > data=: ?(50 2$0)
> > > data=: data,3+(3*?(50 2$0))
> > > data=: data,5+(4*?(50 2$0))
> > > D=: edist data
> > > M=: (3 kM D) { data
> > >
> > > pd 'reset'
> > > pd 'type dot'
> > > pd 'pensize 3.1'
> > > pd 'color gray'
> > > pd ;/ |: data
> > > pd 'show'
> > > pd 'color red'
> > > pd 'pensize 4'
> > > pd ;/ |: M
> > >
> > > M
> > >
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
>
>
>
> ------------------------------
>
> Message: 5
> Date: Sun, 14 Feb 2021 12:20:14 +1300
> From: Ric Sherlock <[email protected]>
> To: Programming JForum <[email protected]>
> Subject: Re: [Jprogramming] Error in comment in
>         addons/math/misc/pollard.ijs
> Message-ID:
>         <caoouvu_1-am8-3fgd_eiqk5e7ynqyfsesvhb_i3r_xjsipe...@mail.gmail.com>
> Content-Type: text/plain; charset="UTF-8"
>
> Hi Mike,
> I've made the suggested change and pushed to GitHub.
> Next time the addon is released, the change will be included.
>
> I wonder if it makes sense for suggestions like this to be provided as a
> GitHub pull request where possible?
> * less chance of miscommunication between report and fix
> * easier for maintainers
> * links discussion to change
>
> For simple changes like this, that can be done entirely from the GitHub
> website.
>
>  * Navigate to:
> https://github.com/jsoftware/math_misc/blob/master/pollard.ijs
>  * Click the pencil icon on the right ("Edit this file")
>  * Make the desired changes
>  * Scroll to bottom of page and fill out Commit changes fields
>  * Choose option to "Create a *new branch* for this commit and start a pull
> request"
>  * Click the "Propose changes" button
>  * Add commentary/justification to "Open a pull request form"
>  * Click the "Create pull request" button
>
>
> On Fri, Feb 12, 2021 at 5:30 AM 'Michael Day' via Programming <
> [email protected]> wrote:
>
> > Further to my delve in the scripts in ~addons/math/misc,  I've just
> > noticed a
> > misleading comment in pollard.ijs .
> >
> > The script offers implementations of two Pollard factorisation algorhithms.
> >
> > The relevant comments are (with a bit of context):
> > NB. examples:
> > NB.
> > NB.    ]x=. (,*/) x: p: 1e7 30101
> > NB. 179424691 351599 63085541930909
> > NB.    pollardpm1 {: x
> > NB. 351599 335
> >
> > Well - when you actually run it,  this is the result:
> >
> >        ]x=. (,*/) x: p: 1e7 30101
> > 179424691 351599 63085541930909
> >        pollardpm1 {: x
> > 179424691 2556
> >
> > Initially,  I thought this might be a bug,   but no.  The result in the
> > comment arises from the other function which does pollard rho
> > factorisation:
> >     pollardrho {: x
> > 351599 335
> >
> > Indeed,  we see that x is defined as the product of the factors found by
> > the two methods.
> >
> > No doubt this little slip has been around for some years.
> >
> > I suggest the comments be amended to read:
> >
> > NB. examples:
> > NB.
> > NB.    ]x=. (,*/) x: p: 1e7 30101
> > NB. 179424691 351599 63085541930909
> > NB.    pollardpm1 {: x
> > NB. 179424691 2556
> >     et seq... (no changes needed)
> >
> > Cheers,
> >
> > Mike
> >
> > --
> > This email has been checked for viruses by Avast antivirus software.
> > https://www.avast.com/antivirus
> >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
>
>
> ------------------------------
>
> Message: 6
> Date: Sat, 13 Feb 2021 23:49:27 +0000
> From: "'Mike Day' via Programming" <[email protected]>
> To: [email protected]
> Subject: Re: [Jprogramming] Error in comment in
>         addons/math/misc/pollard.ijs
> Message-ID: <[email protected]>
> Content-Type: text/plain;       charset=utf-8
>
> Thanks, Ric.
>
> I think I’d prefer to continue offering public comments open to criticism and 
> correction in this and perhaps other forums/fora.
>
>  Cheers,
>
> Mike
>
> Sent from my iPad
>
> > On 13 Feb 2021, at 23:20, Ric Sherlock <[email protected]> wrote:
> >
> > Hi Mike,
> > I've made the suggested change and pushed to GitHub.
> > Next time the addon is released, the change will be included.
> >
> > I wonder if it makes sense for suggestions like this to be provided as a
> > GitHub pull request where possible?
> > * less chance of miscommunication between report and fix
> > * easier for maintainers
> > * links discussion to change
> >
> > For simple changes like this, that can be done entirely from the GitHub
> > website.
> >
> > * Navigate to:
> > https://github.com/jsoftware/math_misc/blob/master/pollard.ijs
> > * Click the pencil icon on the right ("Edit this file")
> > * Make the desired changes
> > * Scroll to bottom of page and fill out Commit changes fields
> > * Choose option to "Create a *new branch* for this commit and start a pull
> > request"
> > * Click the "Propose changes" button
> > * Add commentary/justification to "Open a pull request form"
> > * Click the "Create pull request" button
> >
> >
> > On Fri, Feb 12, 2021 at 5:30 AM 'Michael Day' via Programming <
> > [email protected]> wrote:
> >
> >> Further to my delve in the scripts in ~addons/math/misc,  I've just
> >> noticed a
> >> misleading comment in pollard.ijs .
> >>
> >> The script offers implementations of two Pollard factorisation algorhithms.
> >>
> >> The relevant comments are (with a bit of context):
> >> NB. examples:
> >> NB.
> >> NB.    ]x=. (,*/) x: p: 1e7 30101
> >> NB. 179424691 351599 63085541930909
> >> NB.    pollardpm1 {: x
> >> NB. 351599 335
> >>
> >> Well - when you actually run it,  this is the result:
> >>
> >>       ]x=. (,*/) x: p: 1e7 30101
> >> 179424691 351599 63085541930909
> >>       pollardpm1 {: x
> >> 179424691 2556
> >>
> >> Initially,  I thought this might be a bug,   but no.  The result in the
> >> comment arises from the other function which does pollard rho
> >> factorisation:
> >>    pollardrho {: x
> >> 351599 335
> >>
> >> Indeed,  we see that x is defined as the product of the factors found by
> >> the two methods.
> >>
> >> No doubt this little slip has been around for some years.
> >>
> >> I suggest the comments be amended to read:
> >>
> >> NB. examples:
> >> NB.
> >> NB.    ]x=. (,*/) x: p: 1e7 30101
> >> NB. 179424691 351599 63085541930909
> >> NB.    pollardpm1 {: x
> >> NB. 179424691 2556
> >>    et seq... (no changes needed)
> >>
> >> Cheers,
> >>
> >> Mike
> >>
> >> --
> >> This email has been checked for viruses by Avast antivirus software.
> >> https://www.avast.com/antivirus
> >>
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >>
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
>
>
> ------------------------------
>
> Message: 7
> Date: Sat, 13 Feb 2021 19:05:08 -0500
> From: Henry Rich <[email protected]>
> To: [email protected]
> Subject: Re: [Jprogramming] Error in comment in
>         addons/math/misc/pollard.ijs
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=utf-8; format=flowed
>
> Like Ric said, the pull request makes things easier for the maintainers
> and makes your request less likely to be forgotten.  You could feel free
> to make the comments in the Forum as well.
>
> Hwenry Rich
>
> On 2/13/2021 6:49 PM, 'Mike Day' via Programming wrote:
> > Thanks, Ric.
> >
> > I think I’d prefer to continue offering public comments open to criticism 
> > and correction in this and perhaps other forums/fora.
> >
> >   Cheers,
> >
> > Mike
> >
> > Sent from my iPad
> >
> >> On 13 Feb 2021, at 23:20, Ric Sherlock <[email protected]> wrote:
> >>
> >> Hi Mike,
> >> I've made the suggested change and pushed to GitHub.
> >> Next time the addon is released, the change will be included.
> >>
> >> I wonder if it makes sense for suggestions like this to be provided as a
> >> GitHub pull request where possible?
> >> * less chance of miscommunication between report and fix
> >> * easier for maintainers
> >> * links discussion to change
> >>
> >> For simple changes like this, that can be done entirely from the GitHub
> >> website.
> >>
> >> * Navigate to:
> >> https://github.com/jsoftware/math_misc/blob/master/pollard.ijs
> >> * Click the pencil icon on the right ("Edit this file")
> >> * Make the desired changes
> >> * Scroll to bottom of page and fill out Commit changes fields
> >> * Choose option to "Create a *new branch* for this commit and start a pull
> >> request"
> >> * Click the "Propose changes" button
> >> * Add commentary/justification to "Open a pull request form"
> >> * Click the "Create pull request" button
> >>
> >>
> >> On Fri, Feb 12, 2021 at 5:30 AM 'Michael Day' via Programming <
> >> [email protected]> wrote:
> >>
> >>> Further to my delve in the scripts in ~addons/math/misc,  I've just
> >>> noticed a
> >>> misleading comment in pollard.ijs .
> >>>
> >>> The script offers implementations of two Pollard factorisation 
> >>> algorhithms.
> >>>
> >>> The relevant comments are (with a bit of context):
> >>> NB. examples:
> >>> NB.
> >>> NB.    ]x=. (,*/) x: p: 1e7 30101
> >>> NB. 179424691 351599 63085541930909
> >>> NB.    pollardpm1 {: x
> >>> NB. 351599 335
> >>>
> >>> Well - when you actually run it,  this is the result:
> >>>
> >>>        ]x=. (,*/) x: p: 1e7 30101
> >>> 179424691 351599 63085541930909
> >>>        pollardpm1 {: x
> >>> 179424691 2556
> >>>
> >>> Initially,  I thought this might be a bug,   but no.  The result in the
> >>> comment arises from the other function which does pollard rho
> >>> factorisation:
> >>>     pollardrho {: x
> >>> 351599 335
> >>>
> >>> Indeed,  we see that x is defined as the product of the factors found by
> >>> the two methods.
> >>>
> >>> No doubt this little slip has been around for some years.
> >>>
> >>> I suggest the comments be amended to read:
> >>>
> >>> NB. examples:
> >>> NB.
> >>> NB.    ]x=. (,*/) x: p: 1e7 30101
> >>> NB. 179424691 351599 63085541930909
> >>> NB.    pollardpm1 {: x
> >>> NB. 179424691 2556
> >>>     et seq... (no changes needed)
> >>>
> >>> Cheers,
> >>>
> >>> Mike
> >>>
> >>> --
> >>> This email has been checked for viruses by Avast antivirus software.
> >>> https://www.avast.com/antivirus
> >>>
> >>> ----------------------------------------------------------------------
> >>> 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
>
>
> --
> This email has been checked for viruses by AVG.
> https://www.avg.com
>
>
>
> ------------------------------
>
> Message: 8
> Date: Sun, 14 Feb 2021 14:06:44 +1300
> From: Ric Sherlock <[email protected]>
> To: Programming JForum <[email protected]>
> Subject: Re: [Jprogramming] Error in comment in
>         addons/math/misc/pollard.ijs
> Message-ID:
>         <caoouvu_zcspucgsbmevtkfponefg_qx+9ogduuafxhbtrj6...@mail.gmail.com>
> Content-Type: text/plain; charset="UTF-8"
>
> Yes, you could make your comments suggestions in the forum first if you
> prefer.
> Then, based on any feedback, submit the pull request.
>
> Ric
>
> On Sun, Feb 14, 2021 at 1:05 PM Henry Rich <[email protected]> wrote:
>
> > Like Ric said, the pull request makes things easier for the maintainers
> > and makes your request less likely to be forgotten.  You could feel free
> > to make the comments in the Forum as well.
> >
> > Hwenry Rich
> >
> > On 2/13/2021 6:49 PM, 'Mike Day' via Programming wrote:
> > > Thanks, Ric.
> > >
> > > I think I’d prefer to continue offering public comments open to
> > criticism and correction in this and perhaps other forums/fora.
> > >
> > >   Cheers,
> > >
> > > Mike
> > >
> > > Sent from my iPad
> > >
> > >> On 13 Feb 2021, at 23:20, Ric Sherlock <[email protected]> wrote:
> > >>
> > >> Hi Mike,
> > >> I've made the suggested change and pushed to GitHub.
> > >> Next time the addon is released, the change will be included.
> > >>
> > >> I wonder if it makes sense for suggestions like this to be provided as a
> > >> GitHub pull request where possible?
> > >> * less chance of miscommunication between report and fix
> > >> * easier for maintainers
> > >> * links discussion to change
> > >>
> > >> For simple changes like this, that can be done entirely from the GitHub
> > >> website.
> > >>
> > >> * Navigate to:
> > >> https://github.com/jsoftware/math_misc/blob/master/pollard.ijs
> > >> * Click the pencil icon on the right ("Edit this file")
> > >> * Make the desired changes
> > >> * Scroll to bottom of page and fill out Commit changes fields
> > >> * Choose option to "Create a *new branch* for this commit and start a
> > pull
> > >> request"
> > >> * Click the "Propose changes" button
> > >> * Add commentary/justification to "Open a pull request form"
> > >> * Click the "Create pull request" button
> > >>
> > >>
> > >> On Fri, Feb 12, 2021 at 5:30 AM 'Michael Day' via Programming <
> > >> [email protected]> wrote:
> > >>
> > >>> Further to my delve in the scripts in ~addons/math/misc,  I've just
> > >>> noticed a
> > >>> misleading comment in pollard.ijs .
> > >>>
> > >>> The script offers implementations of two Pollard factorisation
> > algorhithms.
> > >>>
> > >>> The relevant comments are (with a bit of context):
> > >>> NB. examples:
> > >>> NB.
> > >>> NB.    ]x=. (,*/) x: p: 1e7 30101
> > >>> NB. 179424691 351599 63085541930909
> > >>> NB.    pollardpm1 {: x
> > >>> NB. 351599 335
> > >>>
> > >>> Well - when you actually run it,  this is the result:
> > >>>
> > >>>        ]x=. (,*/) x: p: 1e7 30101
> > >>> 179424691 351599 63085541930909
> > >>>        pollardpm1 {: x
> > >>> 179424691 2556
> > >>>
> > >>> Initially,  I thought this might be a bug,   but no.  The result in the
> > >>> comment arises from the other function which does pollard rho
> > >>> factorisation:
> > >>>     pollardrho {: x
> > >>> 351599 335
> > >>>
> > >>> Indeed,  we see that x is defined as the product of the factors found
> > by
> > >>> the two methods.
> > >>>
> > >>> No doubt this little slip has been around for some years.
> > >>>
> > >>> I suggest the comments be amended to read:
> > >>>
> > >>> NB. examples:
> > >>> NB.
> > >>> NB.    ]x=. (,*/) x: p: 1e7 30101
> > >>> NB. 179424691 351599 63085541930909
> > >>> NB.    pollardpm1 {: x
> > >>> NB. 179424691 2556
> > >>>     et seq... (no changes needed)
> > >>>
> > >>> Cheers,
> > >>>
> > >>> Mike
> > >>>
> > >>> --
> > >>> This email has been checked for viruses by Avast antivirus software.
> > >>> https://www.avast.com/antivirus
> > >>>
> > >>> ----------------------------------------------------------------------
> > >>> 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
> >
> >
> > --
> > 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
> >
>
>
> ------------------------------
>
> Subject: Digest Footer
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
>
> ------------------------------
>
> End of Programming Digest, Vol 185, Issue 14
> ********************************************
> ----------------------------------------------------------------------
> 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