Thanks Henry and Raul,
I just confused on the last step of the recursion, for
u =. -/
v =. *
f =. v/@,`({."1 u . v $:@minors)@.(0<{:@$)
question 1: in the (0={:@$) case, how's v/ work on an empty array? can I
replace it to ]?
question2: for y =. i. 3 1,
minor y is empty how is f y = ({."1 u . v f@minors) y == -/y?
On May 15, 2013, at 4:17 PM, Henry Rich <[email protected]> wrote:
> See what minors does:
>
> minors=: }."1 @ (1&([\.))
> minors i. 4 4
> 5 6 7
> 9 10 11
> 13 14 15
>
> 1 2 3
> 9 10 11
> 13 14 15
>
> 1 2 3
> 5 6 7
> 13 14 15
>
> 1 2 3
> 5 6 7
> 9 10 11
>
> Remove the first column, and each row, producing a brick of minors.
>
> v/@,`({."1 u . v $:@minors)@.(0<{:@$) @ ,. "2
>
> ,. applied at rank 2 has no effect on tables, and exists only to force an
> atom or a list to be a table; so we can ignore the ,.
>
> p`q@.(0<{:@$)
>
> means 'do p if y is empty, otherwise q'. This q is going to reduce the size
> of the array each time, and at the end, when there is no array left, v/ will
> return the neutral for v .
>
> ({."1 u . v $:@minors)
>
> This says recur on the minors ($:@minors) and then multiply the result on the
> minors by the first column, the one we discarded in minors. And the
> 'multiply' isn't just *, it's the DYAD of u . v, which for -/ . * means
> multiply scalar * row, and then alternately add and subtract, as you can see
> from considering -/\ i. 6 .
>
> Henry Rich
>
> On 5/15/2013 3:42 PM, Elton Wang wrote:
>> Can anyone please help me understand u. v on monad case?
>> For instance, -/ . * i.3, how's it get reduced step by step on the
>> definition below?
>>
>> DET=: 2 : 'v/@,`({."1 u . v $:@minors)@.(0<{:@$) @ ,. "2' minors=: }."1 @
>> (1&([\.))
>>
>> ----------------------------------------------------------------------
>> 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