Linda, see the definition of Amend } .  Below the two gray boxes there is a 
paragraph beginning "If m is a gerund".  --Kip

http://www.jsoftware.com/docs/help701/dictionary/d530n.htm

Sent from my iPad

> On Jan 13, 2014, at 3: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