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

Reply via email to