Just use http://kx.com/software-download.php if that is what you want?
Thanks, -- Raul On Tue, Sep 9, 2014 at 10:39 PM, Michal D. <michal.dobrog...@gmail.com> wrote: > I meant that +/"1 in our fantasy language would be the equivalent of +/&.> > in J. > > Cheers, > > Mike > > On Tue, Sep 9, 2014 at 8:15 AM, Linda Alvord <lindaalv...@verizon.net> > wrote: > >> I thought Michal was indicating at the end of his message that these were >> the same. >> >> >Something like +/"1 x instead of +/&.> x (obviously there's not much >> >difference here). >> >> Linda >> >> -----Original Message----- >> From: programming-boun...@forums.jsoftware.com [mailto: >> programming-boun...@forums.jsoftware.com] On Behalf Of Michal D. >> Sent: Tuesday, September 09, 2014 1:14 AM >> To: programm...@jsoftware.com >> Subject: Re: [Jprogramming] Ragged Array Shapes are Trees >> >> One can imagine that it's possible for >> >> ] x =. (<@i."0) 1+i.3 >> +-+---+-----+ >> |0|0 1|0 1 2| >> +-+---+-----+ >> >> to be laid out in memory as [0 0 1 0 1 2] with an additional vector >> representing the starting point of each rank-1 array [0 1 3 6]. I would be >> willing to wager a large sum that this is much more computationally >> efficient than having a representation where each rank-1 array is floating >> off somewhere in memory [0] [0 1] [0 1 2] with an array of pointers to >> them. >> >> Of course this representation is possible, but somewhat verbose, to do >> manually in J (http://dl.acm.org/citation.cfm?id=804488). That's why I'm >> fantasizing about a language where such a representation would be closer to >> the core of the language. >> >> Something like +/"1 x instead of +/&.> x (obviously there's not much >> difference here). >> >> Like we've both suggested, it may be that boxing with a sufficiently >> optimized interpreter is the solution. >> >> Cheers, >> >> Mike >> >> On Mon, Sep 8, 2014 at 8:10 AM, Raul Miller <rauldmil...@gmail.com> wrote: >> >> > What does this mean "shapes extended to support ragged arrays without >> > boxing"? >> > >> > K has ragged arrays without boxing, but K's concept of shape only >> > applies to the non-ragged prefix dimensions. >> > >> > Meanwhile, it seems to me that the guarantee you suggest would be >> > computationally expensive. >> > >> > (Not saying the ideas shouldn't be explored, but I suspect what you >> > are really after is a more efficient boxing implementation and that >> > will lead in an entirely different direction.) >> > >> > Thanks, >> > >> > -- >> > Raul >> > >> > >> > On Mon, Sep 8, 2014 at 11:01 AM, Michal D. <michal.dobrog...@gmail.com> >> > wrote: >> > > Thanks Pascal, that's a nice formulation for the 2-level deep case. It >> > > breaks down of course for deeper nesting but could serve as a base. >> > > >> > > ([:|. $ ;~ $ each) ((i.2 3);(,0)) ; (i. 2 3) >> > > +-+-------+ >> > > |2|+-+---+| >> > > | ||2|2 3|| >> > > | |+-+---+| >> > > +-+-------+ >> > > >> > > There's no specific problem I'm trying to solve directly in J at the >> > > moment. It's more of a language design problem. My interest in this >> is >> > a >> > > J like language, but with shapes extended to support ragged arrays >> > without >> > > boxing. Failing that, we could have some optimization guarantees like >> > 'an >> > > array of boxes containing equal rank values are allocated >> contiguously'. >> > > >> > > Cheers, >> > > >> > > Mike >> > > >> > > >> > > >> > > On Sat, Sep 6, 2014 at 9:28 AM, 'Pascal Jasmin' via Programming < >> > > programm...@jsoftware.com> wrote: >> > > >> > >> Hi Michal, >> > >> >> > >> maybe this is an interesting representation for what you want? >> > >> >> > >> ([:|. $ ;~ $ each) (i. 2 3) ; (,0) ; 0 1 >> > >> ┌─┬─────────┐ >> > >> │3│┌───┬─┬─┐│ >> > >> │ ││2 3│1│2││ >> > >> │ │└───┴─┴─┘│ >> > >> └─┴─────────┘ >> > >> >> > >> >> > >> >> > >> ----- Original Message ----- >> > >> From: Michal D. <michal.dobrog...@gmail.com> >> > >> To: programm...@jsoftware.com >> > >> Cc: >> > >> Sent: Saturday, September 6, 2014 12:06 PM >> > >> Subject: [Jprogramming] Ragged Array Shapes are Trees >> > >> >> > >> I just came to the realization that ragged array shapes, regardless of >> > how >> > >> you want to represent them, are trees. I would be interested in any >> > >> references to prior exploration of this idea. >> > >> >> > >> Some example data (boxes are used to display ragged arrays, but >> > otherwise >> > >> have no semantic meaning): >> > >> >> > >> ] A =. i. 2 3 >> > >> 0 1 2 >> > >> 3 4 5 >> > >> ] B =. (< @ i."0) 1+i.2 >> > >> +-+---+ >> > >> |0|0 1| >> > >> +-+---+ >> > >> ] C =. A ; B >> > >> +-----+-+---+ >> > >> |0 1 2|0|0 1| >> > >> |3 4 5| | | >> > >> +-----+-+---+ >> > >> ] D =. A ; < B >> > >> +-----+-------+ >> > >> |0 1 2|+-+---+| >> > >> |3 4 5||0|0 1|| >> > >> | |+-+---+| >> > >> +-----+-------+ >> > >> >> > >> The corresponding shape trees (monospace font required, root node is >> on >> > the >> > >> left): >> > >> >> > >> A: 2 - 3 >> > >> >> > >> 1 >> > >> / >> > >> B: 2 >> > >> \ >> > >> 2 >> > >> >> > >> 2 - 3 >> > >> / >> > >> C: 3 - 1 >> > >> \ >> > >> 2 >> > >> >> > >> 2 - 3 >> > >> / >> > >> D: 2 1 >> > >> \ / >> > >> 2 >> > >> \ >> > >> 2 >> > >> >> > >> In some sense the shape tree for A is compressed, the verbose >> > alternative >> > >> being: >> > >> >> > >> 3 >> > >> / >> > >> A: 2 >> > >> \ >> > >> 3 >> > >> >> > >> Compressing D in a similar manner leaves the full shape of the tree >> > >> ambiguous - there is no way to distinguish the duplicate structure of >> > leaf >> > >> 3 from the structure of leaves 1, 2. >> > >> >> > >> 3 >> > >> / >> > >> D: 2 - 2 - 1 >> > >> \ >> > >> 2 >> > >> >> > >> We could resolving this ambiguity by listing the shapes of all the >> items >> > >> explicitly. The problem here is that 'compression' could very easily >> > lead >> > >> to an increase in representation size, although it is nice and uniform >> > for >> > >> ragged arrays of uniform rank. >> > >> >> > >> 3 >> > >> / >> > >> | 3 >> > >> | / >> > >> D: 2 - 2 + >> > >> | \ >> > >> | 1 >> > >> \ >> > >> 2 >> > >> >> > >> Regardless of compression, I would be interested in prior work in >> > >> representing shapes of ragged arrays as trees. >> > >> >> > >> Cheers, >> > >> >> > >> Mike >> > >> ---------------------------------------------------------------------- >> > >> 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 >> >> ---------------------------------------------------------------------- >> 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