You should show some dimensional information because many J operations
operate over a rank dimension (either default or explicit).

It looks like lineReactance is a matrix of 11 x 11, and phase is a vector
of 11?

Also, your problem statement doesn't match your examples:

Problem:

    how to write a verb P(ij) = (phase(i) - phase(j))/lineReactance(ij)

and the examples:

    ((0{phase)-phase)% 0{lineReactance

The example doesn't appear to match the problem statement.  Specifically
with the phrase:

    phase(i) - phase(j)
vs
    (0{phase) - phase

Those are two different operations.  The first appears to be subtraction
between two numbers -- resulting in a scalar.

The latter appears to be extracting a scalar and subtracting a vector from
it, resulting in a vector (with scalar extension over the operator).

Perhaps you could clarify, and then the J programmers more savvy than I
might be better able to suggest a solution, other than the obvious, brute
force way of using two loops with i and j variables.


On Tue, May 21, 2013 at 9:49 AM, P T <[email protected]> wrote:

> I am almost close to finishing an initial version. But, I don't know how to
> write a verb P(ij) = (phase(i) - phase(j))/lineReactance(ij) where
>
>
> *lineReactance*
>       0      0.005 0.00625          0     0          0          0
> 0     0       0          0
>   0.005          0    0.04 0.00333333  0.01          0          0
> 0     0       0          0
> 0.00625       0.04       0          0     0          0          0    0.01
> 0.025       0          0
>       0 0.00333333       0          0 0.005      0.005 0.00333333
> 0     0       0          0
>       0       0.01       0      0.005     0          0      0.005
> 0     0       0          0
>       0          0       0      0.005     0          0      0.005
> 0     0       0 0.00666667
>       0          0       0 0.00333333 0.005      0.005          0
> 0     0       0 0.00833333
>       0          0    0.01          0     0          0          0       0
> 0.01 0.00625          0
>       0          0   0.025          0     0          0          0
> 0.01     0    0.02          0
>       0          0       0          0     0          0          0 0.00625
> 0.02       0       0.02
>       0          0       0          0     0 0.00666667 0.00833333
> 0     0    0.02          0
>
> *phase   *
> 9.49428 5.92433 7.70672 4.02707 4.03065 2.58708 3.0874 5.96236 6.03134
> 4.82902 0
>
> I can compute one by one like
>
>    ((0{phase)-phase)% 0{lineReactance
> 0 713.99 286.01 _ _ _ _ _ _ _ _
>
>    ((1{phase)-phase)% 1{lineReactance
> _713.99 0 _44.5596 569.181 189.368 _ _ __ __ _ _
>
>
> But, how do I write this so that it computes for all items in the matrix?
>
> Thanks,
> PT
>
> How do I write a verb that computes
>
>
>
>
>
>
>
> On Tue, May 21, 2013 at 8:40 AM, Linda Alvord <[email protected]
> >wrote:
>
> >
> >    odd=:2 & |
> >    halve=:-:
> >    veco =: 3 : '(c*1+3*y) + (halve y) * (1-c =. odd y)'
> >    data =: 1 + i. 10000
> >    veco3=:'((odd y)*1+3*y) + (halve y) * (1-odd y)'(13 : )
> >    (veco3 data) -: (veco data)
> > 1
> >
> >     veco3
> > (odd * 1 + 3 * ]) + halve * 1 - odd
> >
> > Linda
> >
> >
> > -----Original Message-----
> > From: [email protected]
> > [mailto:[email protected]] On Behalf Of Linda
> > Alvord
> > Sent: Tuesday, May 21, 2013 9:21 AM
> > To: [email protected]
> > Subject: Re: [Jprogramming] newbie help: how to avoid division by zero
> >
> > '(c*1+3*y) + (halve y) * (1-c =: odd y)'(13 : )
> > 3 : '(c*1+3*y) + (halve y) * (1-c =: odd y)'
> >    '(c*1+3*y) + (halve y) * (1-c =. odd y)'(13 : ) halve (* + [ * 1 - ])
> > odd
> >
> > Linda
> >
> > -----Original Message-----
> > From: [email protected]
> > [mailto:[email protected]] On Behalf Of Linda
> > Alvord
> > Sent: Tuesday, May 21, 2013 7:13 AM
> > To: [email protected]
> > Subject: Re: [Jprogramming] newbie help: how to avoid division by zero
> >
> >  I didn't realize that this definition for veco2 did not work.
> >
> >   data =: 1 + i. 10000
> >    veco =: 3 : '(c*1+3*y) + (halve y) * (1-c =. odd y)'
> >    '(c*1+3*y) + (halve y) * (1-c =. odd y)'(13 : ) halve (* + [ * 1 - ])
> > odd
> >    veco2=:halve (* + [ * 1 - ]) odd
> >    (veco2 data) -: (veco data)
> > 0
> >
> > So, although your substitution works, it doesn't help.
> >
> >    veco3=:halve (* -.) odd
> >    (veco3 data) -: (veco data)
> >
> > I'll be more careful about testing the results of:  '    '(13 : )
> >
> > Linda
> >
> >
> > -----Original Message-----
> > From: [email protected]
> > [mailto:[email protected]] On Behalf Of David
> Ward
> > Lambert
> > Sent: Monday, May 20, 2013 12:24 PM
> > To: programming
> > Subject: Re: [Jprogramming] newbie help: how to avoid division by zero
> >
> > I'd replace ([ * 1 - ]) with (* -.) .
> > As previously observed, 13 :'quoted expression' won't write hooks.
> >
> >    (([ * 1 - ]) -: (* -.)) -:i:8     NB. monad
> > 1
> >    (([ * 1 - ])/ -: (* -.)/)~ -:i:8  NB. dyad
> > 1
> >
> > >Date: Sun, 19 May 2013 11:43:52 -0400
> > >From: "Linda Alvord" <[email protected]>
> > >To: <[email protected]>
> > >Subject: Re: [Jprogramming] newbie help: how to avoid division by zero
> > >Message-ID: <000101ce54a7$aa2d4c10$fe87e430$@net>
> > >Content-Type: text/plain; charset=US-ASCII
> > >
> > > It is worth noting further simplification by J:
> > >
> > >   veco=: 13 :'(c*1+3*y) + (halve y) * (1-c =. odd y)'
> > >   veco
> > >halve (* + [ * 1 - ]) odd
> > >
> > >Linda
> >
> >
> > ----------------------------------------------------------------------
> > 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
> >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>



-- 
Best regards,
Alan
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to