Two questions regarding J's syntax and semantics
Author Message
Two questions regarding J's syntax and semantics

While using u;.0 I often find myself in need to specify intervals for
a selection in an array which requires calculations (on my part) involving the
dimensions of the array.  For example in (1 3,:3 2) ];.0 i. 4 5
the selection is done to the end of the matrix.  I would have liked to
say equivalently (1 3,: _ _) ];.0 i. 4 5.   Similarly using __ to
reverse direction of the elements.  Does it make some sense?  I am
following on R. Bernecky idea that what may be left to the system
could advantageously be removed from the programmer's concern.

My other query concerns the qr decomposition.  I find the requirement
that the rank of the matrix to be the same as the second dimension a
limitation.  In the same vein the requirement that the monadic %.  is
useful only for a regular matrices.  A similar comment applies to the
dyadic case.  Is it inconsistent with J to provide the Penrose
inverse?  I must have missed an essential point here, for otherwise I
would not have asked.  What is it?

Thanks,  Eythan

Thu, 22 Sep 1994 02:43:10 GMT
Two questions regarding J's syntax and semantics
Eythan Weg:
While using u;.0 I often find myself in need to specify intervals for
a selection in an array which requires calculations (on my part) involving
the dimensions of the array.  For example in (1 3,:3 2) ];.0 i. 4 5
the selection is done to the end of the matrix.  I would have liked to
say equivalently (1 3,: _ _) ];.0 i. 4 5. Similarly using __ to
reverse direction of the elements.  Does it make some sense?

Well, this won't give you the reversing you're looking for, but you
can use
1 3 }.   i. 4 5
to give you the same sort of result as your example.  To get your
reversing, you might be able to get by with something like

In fact, you might be able to design your own selection mechanism
using something along the lines of    index_expression { ,

[I'm not in a good position to answer the rest of these questions.]

--

Sat, 24 Sep 1994 11:23:36 GMT
Two questions regarding J's syntax and semantics

Quote:
Eythan Weg writes:
> While using u;.0 I often find myself in need to specify intervals for
> a selection in an array which requires calculations (on my part) involving
> the dimensions of the array.  For example in (1 3,:3 2) ];.0 i. 4 5
> the selection is done to the end of the matrix.  I would have liked to
> say equivalently (1 3,: _ _) ];.0 i. 4 5.   Similarly using __ to
> reverse direction of the elements.  Does it make some sense?

This is a sensible proposal because it replaces what is currently an
error with a useful result.  For now, I see no compelling reason
for changing the definition, for two reasons:

a) The proposal introduces a discontinuity in the interpretation of the
second row of the left argument.  For example, the dictionary entry for
the primitive would have to say something like "The dimension is |1{x,
_unless_ x is infinite, whence ...".  The case for this special
interpretation of infinity would be stronger, if the same or similar
interpretations can be shown to apply in other primitives.

Moreover, the would-be discontinuous interpretation is for a primitive

b) The computation can be easily stated in other terms.  For example,

valued t is (x v y) u;.0 y for a verb v which is not too complicated.
Even with the proposed change to ;.0, this form (x v y) u;.0 y would be
required for other selections mentioned in the opening sentence quoted above.

Quote:
> I am following on R. Bernecky idea that what may be left to the system
> could advantageously be removed from the programmer's concern.

I don't think Bob's statement is applicable in this case.  The statement
addressed the issue of "what to compute" vs. "how to compute it"; here,
we are considering the design of language primitives (how to say what to
compute ...).

Quote:
> My other query concerns the qr decomposition.  I find the requirement
> that the rank of the matrix to be the same as the second dimension a
> limitation.  In the same vein the requirement that the monadic %.  is
> useful only for a regular matrices.  A similar comment applies to the
> dyadic case.  Is it inconsistent with J to provide the Penrose
> inverse?  I must have missed an essential point here, for otherwise I
> would not have asked.  What is it?

The pseudo-inverse may be useful and more general, but there is merit in
the current definition of %. :  non-singular matrices are a significant
subdomain of the universe of all numeric matrices; that is, often one
_wants_ %. to signal error if the right argument is singular.  %. is
exactly domino in APL, and QR follows %. .  Anyway, there is an alternative
to displacing the current %. .  For example:

128!:0  QR Decomposition
128!:1  R Inverse
128!:2  SVD Decomposition   (Not Yet Specified)
128!:3  Pseudo-Inverse      (Not Yet Specified)

------------------------------------
Roger Hui, Iverson Software Inc., 33 Major Street, Toronto, Ontario  M5S 2K9
Phone: (416) 925 6096;  Fax: (416) 488 7559

Mon, 26 Sep 1994 11:59:19 GMT

 Page 1 of 1 [ 3 post ]

Relevant Pages