This is probably too much information, and unnecessary, but maybe
someone will find some part of it useful.

http://www.jsoftware.com/help/dictionary/d530n.htm says

If m is a gerund, one of its elements determines the index argument to
the adverb } , and the others modify the arguments x and y :
x (v0`v1`v2)} y ↔ (x v0 y) (x v1 y)} (x v2 y)

In other words:

   2 3 0     [`  ([:{.[)`  ]  }     i.3 3
0 1 2
3 4 5
2 3 0

   2 3 0     [                      i.3 3
2 3 0
   2 3 0         ([:{.[)            i.3 3
2
   2 3 0                   ]        i.3 3
0 1 2
3 4 5
6 7 8

   2 3 0         (  2  )      }     i.3 3
0 1 2
3 4 5
2 3 0

(That does not quite look right in the font used by my web browser,
but hopefully the intent is clear.)

Thanks,

-- 
Raul

On Mon, Jan 13, 2014 at 4:17 AM, Linda Alvord <lindaalv...@verizon.net> wrote:
> Raul,  What happens to M when you involve  }
>
> I don't understand how and what definition of  }  is used.
>  u=:2 3 0
>    v=:i.3 3
>
>    GG=: 13 :'x`({.x)`y'
>    ]M=: u GG v
>
> 2 3 0 2
> 0 1 2 0
> 3 4 5 0
> 6 7 8 0
>
>    HH=: [`([:{.[)`]}
>
>    u HH v
> 0 1 2
> 3 4 5
> 2 3 0
>
>    5!:4 <'GG'
>       -- 4
> -- : -+- ,:'x`({.x)`y'
>
>    5!:4 <'HH'
>         -- [
>         │   -- [:
> -- } ---+---+- {.
>         │   L- [
>         L- ]
>
>    5!:4 <'FF'
>         -- [
>         │     -- {.
> -- } ---+- @ -+- [
>         L- ]
>
>
> Linda
>
>
> -----Original Message-----
> From: programming-boun...@forums.jsoftware.com
> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Raul Miller
> Sent: Monday, January 13, 2014 12:53 AM
> To: Programming forum
> Subject: Re: [Jprogramming] Tacit?
>
>    FF=: [`({.@[)`]}
>
> Or something using multiple and add with some bit valued intermediate
> results.
>
> Thanks,
>
> --
> Raul
>
> On Mon, Jan 13, 2014 at 12:39 AM, km <k...@math.uh.edu> wrote:
>> Here is a simpler question.  Is there a tacit version of ff below?
>>
>>    u =: 2 3 0
>>    v =: i. 3 3
>>    ff =: 4 : 'x ({. x)} y'
>>    u ff v
>> 0 1 2
>> 3 4 5
>> 2 3 0
>>
>> --Kip Murray
>>
>> Sent from my iPad
>>
>>> On Jan 12, 2014, at 10:41 PM, Raul Miller <rauldmil...@gmail.com> wrote:
>>>
>>> Sometimes it helps to inspect intermediate results. With recursion,
>>> though, it can be a bit tricky for a casual observer to see the
>>> intermediate results. With that in mind, here's what I am seeing for
>>> your example:
>>>
>>> a1=: (calcU calcL) saveAA
>>> a2=: (calcU calcL) a1
>>> a3=: (calcU calcL) a2
>>>
>>> A4=: ((({.@[ ,: ]) ,&.:(|."1) a3"_) calcL) a2
>>> A5=: ((({.@[ ,: ]) ,&.:(|."1) A4"_) calcL) a1
>>> A6=: ((({.@[ ,: ]) ,&.:(|."1) A5"_) calcL) saveAA
>>>
>>> a1, a2 and a3  are progressively smaller square matrices (2x2, 1x1,
>>> 0x0)
>>>
>>> A4, A5 and A6 are progressively larger matrices which are twice as
>>> tall as wide. If you could compute them in reverse order it might
>>> have made sense to make it twice as wide as tall (with intermediate
>>> lu side by side instead of interleave stacked)?
>>>
>>> A6 is the same as lumain saveAA
>>>
>>> I should go back and re-read km's implementation. But I will note
>>> that you can cut code size slightly using some cross hooks:
>>>
>>>   lumain =: (((,:~ {.)~ ,&.:(|."1) $:@calcU) calcL)^:(*@#)
>>>   lu =: [: (,:~ |:)/  1 0 2 |:  _2 ]\ lumain
>>>
>>> Anyways, I think your O(n^3) space is largely because all
>>> intermediate values from what I have characterized as a (calcU calcL)
>>> hook are "pre"-computed and placed on the stack before proceeding
>>> with further computations.
>>>
>>> Thanks,
>>>
>>> --
>>> Raul
>>>
>>>> On Sun, Jan 12, 2014 at 10:10 PM, Henry Rich <henryhr...@nc.rr.com>
> wrote:
>>>>   calcL =: (% {.)@:({."1)
>>>>   calcU =: (}.@[ - {.@[ *"1 0 ])&:(}."1)
>>>>   lumain =: ((({.@[ ,: ]) ,&.:(|."1) $:@calcU) calcL)^:(*@#)
>>>>   lu =: [: (|:@] ,: [)/  1 0 2 |:  _2 ]\ lumain NB. Half this code
>>>> is handling joining ragged lists.
>>>> NB. Is there a better way?
>>>>
>>>>   saveAA =: 3 3 $ 2 1 4 _4 _1 _11 2 4 _2
>>>>   lu saveAA
>>>>
>>>> 1 0  0
>>>> _2 1  0
>>>> 1 3  1
>>>>
>>>> 2 1  4
>>>> 0 1 _3
>>>> 0 0  3
>>>>
>>>> I suspect that a vectorized explicit version is a better way to go.
>>>> This version has memory requirements of O(n^3).
>>>>
>>>> Henry Rich
>>>>
>>>>
>>>>> On 1/12/2014 9:00 PM, km wrote:
>>>>>
>>>>> Verb LU below produces the matrices L and U of the LU decomposition
>>>>> of a square matrix A.  L is lower triangular, U is upper
>>>>> triangular, and A is L
>>>>> +/ . * U .
>>>>>
>>>>> Should one attempt a tacit version?
>>>>>
>>>>> eye =: =@i.@]  NB. eye 3 is a 3 by 3 identity matrix
>>>>>
>>>>> rop =: 3 : 0  NB. row op: subtract c times row i0 from row i1
>>>>> :
>>>>> 'i1 c i0' =. x
>>>>> ( (i1 { y) - c * i0 { y ) i1 } y
>>>>> )
>>>>>
>>>>> LU =: 3 : 0  NB. square matrices L and U for y -: L +/ . * U
>>>>>   m =. # y
>>>>>   L =. eye(m)
>>>>>   U =. y
>>>>> for_j. i. <: m do.
>>>>>   p =. (< j , j) { U
>>>>>   for_i. j + >: i. <: m - j do.
>>>>>      c =. p %~ (< i , j) { U
>>>>>      L =. c (< i , j) } L
>>>>>      U =. (i, c, j) rop U
>>>>>   end.
>>>>> end.
>>>>>   L ,: U
>>>>> )
>>>>>
>>>>>    saveAA
>>>>>  2  1   4
>>>>> _4 _1 _11
>>>>>  2  4  _2
>>>>>
>>>>>    LU saveAA
>>>>>  1 0  0
>>>>> _2 1  0
>>>>>  1 3  1
>>>>>
>>>>>  2 1  4
>>>>>  0 1 _3
>>>>>  0 0  3
>>>>>
>>>>>    saveAA -: +/ . */ LU saveAA
>>>>> 1
>>>>>
>>>>> --Kip Murray
>>>>>
>>>>> Sent from my iPad
>>>>> -------------------------------------------------------------------
>>>>> --- 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

Reply via email to