I forgot to divide by m, see my correction.

Louis

> On 13 Feb 2017, at 15:24, Raul Miller <[email protected]> wrote:
> 
> I'm having problems following your reasoning here.
> 
> Consider:
> 
>   A=: 5 3 $ 90 60 90 90 90 30 60 60 60 60 60 90 30 30 30
>   mean=: +/%#
>   mp=:  +/ . *
>   C=: A - B=: (E=: (m,m) $ 1) mp A % m=: #A
>   u=: ((mp~ |:) (-"1 mean)) % #
>   v=: (mp~ |:)@(-"1 mean) % #
>   u A
> 504 360 180
> 360 360   0
> 180   0 720
>   (|:C) mp A
> 2520 1800  900
> 1800 1800    0
> 900    0 3600
> 
> If I understand your presentation, those two results should have been
> the same. But they are not...
> 
> Can you run through your work with some example values and see whether
> you think it's the presentation or my understanding of it that needs
> to change?
> 
> Thanks,
> 
> -- 
> Raul
> 
> 
> 
>> On Mon, Feb 13, 2017 at 6:36 AM, Louis de Forcrand <[email protected]> wrote:
>> A few corrections:
>> 
>> u is
>> (|:C) mp A % m
>> and v is
>> (|:C) mp C % m
>> but we can multiply both by m when showing that they are equal.
>> 
>> In addition, I forgot a division by m here:
>>> +/ (i{Et) * j {"1 E
>> that should read
>> +/ (i{Et) * j {"1 E % m.
>> 
>> Louis
>> 
>>> On 13 Feb 2017, at 01:35, Louis de Forcrand <[email protected]> wrote:
>>> 
>>> The two statements are executing two different procedures which happen to 
>>> be mathematically equivalent:
>>> 
>>> u=: ((mp~ |:) (-"1 mean)) % #
>>> v=: (mp~ |:)@(-"1 mean) % #
>>> 
>>> If (u -: v) A for a matrix A, then
>>> (((mp~ |:) (-"1 mean)) -: (mp~ |:)@(-"1 mean)) A.
>>> 
>>> Let
>>> C=: A - B=: (E=: (m,m) $ 1) mp A % m=: #A
>>> then u is
>>> (|:C) mp A
>>> and v is
>>> (|:C) mp C.
>>> 
>>> Let's look at u:
>>> (|:C) mp A
>>> (|:A-B) mp A
>>> ((At=: |:A) - Bt=: |:B) mp A
>>> (At mp A) - Bt mp A
>>> 
>>> Now for v:
>>> (|:C) mp C
>>> (At - Bt) mp A - B
>>> (At mp A) - (At mp B) - (Bt mp A) + Bt mp B
>>> 
>>> We can see that if
>>> (Bt mp B) -: At mp B
>>> then (u -: v) A.
>>> 
>>> At mp B
>>> At mp E mp A % m
>>> 
>>> Bt mp B
>>> (|: E mp A % m) mp E mp A % m
>>> At mp (Et=: |:E) mp E mp A % *:m
>>> At mp (E mp E % m) mp A % m
>>> 
>>> Now (and for the coup de grace):
>>> (<i,j) { E mp E % m
>>> +/ (i{Et) * j {"1 E
>>> +/ (m$1) * m $ 1 % m
>>> 1 for all i and j between 0 and m.
>>> Therefor
>>> E -: E mp E % m.
>>> 
>>> And thus
>>> Bt mp B
>>> At mp E mp A % m
>>> At mp B
>>> 
>>> (u -: v) A for all matrices A. #
>>> 
>>> Cheers,
>>> Louis
>>> 
>>> PS: I hope I didn't make and mistakes, but I might have. Thanks for 
>>> checking!
>>> 
>>>> On 12 Feb 2017, at 18:54, Raul Miller <[email protected]> wrote:
>>>> 
>>>> It's not so much that it's of no use, but that it's redundant.
>>>> 
>>>> When your hook is a train where the first verb is a hook, you can
>>>> restructure either of them so that the other of those two hooks takes
>>>> over the responsibility of obtaining the hook's "left argument"
>>>> (presumably, this would eliminate the other hook).
>>>> 
>>>> I hope this helps,
>>>> 
>>>> --
>>>> Raul
>>>> 
>>>> 
>>>>> On Sun, Feb 12, 2017 at 10:18 AM, R.E. Boss <[email protected]> wrote:
>>>>> I think the problem is that the big hook is of no use, that's what 
>>>>> creates confusion.
>>>>> 
>>>>> (data mp1 mn data)% # data
>>>>> 504 360 180
>>>>> 360 360   0
>>>>> 180   0 720
>>>>> 
>>>>> data mp1 mn data
>>>>> 2520 1800  900
>>>>> 1800 1800    0
>>>>> 900    0 3600
>>>>> 
>>>>> mp1 mn data
>>>>> 2520 1800  900
>>>>> 1800 1800    0
>>>>> 900    0 3600
>>>>> 
>>>>> 
>>>>> R.E. Boss
>>>>> 
>>>>> 
>>>>> -----Original Message-----
>>>>> From: Programming [mailto:[email protected]] On 
>>>>> Behalf Of 'Mike Day' via Programming
>>>>> Sent: zondag 12 februari 2017 12:02
>>>>> To: [email protected]
>>>>> Subject: Re: [Jprogramming] Hooked again
>>>>> 
>>>>> It looks to me as if the two left hooks form one big left hook, not that 
>>>>> I'm into boxing:
>>>>> 
>>>>>  mn =: -"1 mean
>>>>>  mp1=: mp~|:
>>>>> 
>>>>>  ((mp1 mn)%#)data    NB. big "hook"
>>>>> 504 360 180
>>>>> 360 360   0
>>>>> 180   0 720
>>>>> 
>>>>>  ((mp1 @: mn)%#)data   NB. mp1 after mn using @:
>>>>> 504 360 180
>>>>> 360 360   0
>>>>> 180   0 720
>>>>> 
>>>>>  (([: mp1 mn)%#)data    NB. mp1 after mn using [:
>>>>> 504 360 180
>>>>> 360 360   0
>>>>> 180   0 720
>>>>> 
>>>>> Any use?
>>>>> 
>>>>> Mike
>>>>> 
>>>>> 
>>>>>> On 12/02/2017 08:06, Lippu Esa wrote:
>>>>>> ]data=. 5 3 $ 90 60 90 90 90 30 60 60 60 60 60 90 30 30 30
>>>>>> 
>>>>>> mean=: +/%#
>>>>>> mp=:  +/ . *
>>>>>> covmat=: ((mp~|:)(-"1 mean))%# NB. divede by n not n-1 to comply with
>>>>>> the example
>>>>> 
>>>>> 
>>>>> ---
>>>>> This email has been checked for viruses by Avast antivirus software.
>>>>> https://www.avast.com/antivirus
>>>>> 
>>>>> ----------------------------------------------------------------------
>>>>> 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