((++@|:)-(*=)) 2 2 $ 0 1 0 1
|length error
| ((++@|:)-(*=))2 2$0 1 0 1
= 2 2 $ 0 1 0 1
1 1
Kip
Sent from my iPad
On Jan 17, 2013, at 7:39 AM, Mike Day <[email protected]> wrote:
> I hadn't looked at this thread until just now.
>
> Kip repeats his specification that the input is upper triangular with real
> diagonal.
>
> Assuming that is indeed the case, then surely this is adequate and concise:
> (NB apologies for any remaining formatting problems - I've tried to correct
> them manually)
>
> ((++@|:)-(*=)) A
>
> 1 2j3
>
> 2j_3 4
>
>
> [Abig=:((</~i.10)*j./?2 10 10$10)+(<:/~i.10)*1+?10 10$10
>
> 1 4j6 8j7 2j3 11j6 9j3 18j1 19j6 7 12j5
>
> 0 5 6j6 10j2 12j6 16j7 9j3 8j6 13j9 12j5
>
> 0 0 5 11j5 15j7 12j4 4j2 8 7j3 11j3
>
> 0 0 0 10 8j3 12j4 7j5 16j5 8j1 15j1
>
> 0 0 0 0 1 14j8 5j6 6j3 12j1 15j7
>
> 0 0 0 0 0 10 14j5 8j6 4 12j1
>
> 0 0 0 0 0 0 6 10j2 13j3 15
>
> 0 0 0 0 0 0 0 2 16j1 10j6
>
> 0 0 0 0 0 0 0 0 3 17j6
>
> 0 0 0 0 0 0 0 0 0 5
>
> ((++@|:)-(*=))Abig
>
> 1 4j6 8j7 2j3 11j6 9j3 18j1 19j6 7 12j5
>
> 4j_6 5 6j6 10j2 12j6 16j7 9j3 8j6 13j9 12j5
>
> 8j_7 6j_6 5 11j5 15j7 12j4 4j2 8 7j3 11j3
>
> 2j_3 10j_2 11j_5 10 8j3 12j4 7j5 16j5 8j1 15j1
>
> 11j_6 12j_6 15j_7 8j_3 1 14j8 5j6 6j3 12j1 15j7
>
> 9j_3 16j_7 12j_4 12j_4 14j_8 10 14j5 8j6 4 12j1
>
> 18j_1 9j_3 4j_2 7j_5 5j_6 14j_5 6 10j2 13j3 15
>
> 19j_6 8j_6 8 16j_5 6j_3 8j_6 10j_2 2 16j1 10j6
>
> 7 13j_9 7j_3 8j_1 12j_1 4 13j_3 16j_1 3 17j6
>
> 12j_5 12j_5 11j_3 15j_1 15j_7 12j_1 15 10j_6 17j_6 5
>
>
> Mike
> PS - for Chris. I ran this in the QtIDE - copy and paste from
> that session resulted in no more than single spaces everywhere,
> so I've had to pad them out by hand! Here's the original for
> the small matrix. The 3 character indent disappears entirely.
>
> ((++@|:)-(*=))A
>
> 1 2j3
>
> 2j_3 4
>
>
>
>
> On 16/01/2013 9:07 AM, km wrote:
>> Can't use K because its diagonal is not real (is not made up of real
>> numbers). Kip
>>
>> Sent from my iPad
>>
>>
>> On Jan 16, 2013, at 12:55 AM, "Linda Alvord" <[email protected]> wrote:
>>
>>> I sort of wondered about that word "triangular" but no one else seemed to
>>> worry about it. I should have noticed that A was a triangular matrix when K
>>> showed up
>>>
>>> ishermitian=: -:[:+|:
>>> ]J=:hermy=. (([: <: [: +: 0 ?@$~ ,~) j. [: <: [: +: 0 ?@$~ ,~) 3
>>> 0.82045j_0.713947 _0.216061j_0.616151 _0.560927j_0.861101
>>> 0.101964j_0.151381 0.350483j_0.440496 0.58375j0.501941
>>> 0.00170859j0.457596 0.637767j0.161541 0.333754j_0.975332
>>> ]UT=:(i.3)<:/i.3
>>> 1 1 1
>>> 0 1 1
>>> 0 0 1
>>> ]K=:UT*J
>>> 0.82045j_0.713947 _0.216061j_0.616151 _0.560927j_0.861101
>>> 0 0.350483j_0.440496 0.58375j0.501941
>>> 0 0 0.333754j_0.975332
>>> hft =: + +@|:@(- ] * =@i.@#) NB. Kip
>>> ishermitian hft K
>>> 0
>>> hft=: (+ +@|: * >/~@i.@#) NB. Ai
>>> ishermitian hft K
>>> 0
>>> hft=: (% 1 + =@i.@#)@:+ +@|: NB. Raul
>>> ishermitian hft K
>>> 1
>>> hft=:((23 b.&.(a.&i.)&.(2&(3!:5))&.+. +@|:)) NB. Henry
>>> ishermitian hft K
>>> 0
>>> hft=: 0&=`(,: +@|:)}
>>> ishermitian hft K
>>> 0
>>>
>>> Does K sufficient to test these programs, Kip?
>>>
>>> Linda
>>>
>>>
>>> -----Original Message-----
>>> From: [email protected]
>>> [mailto:[email protected]] On Behalf Of km
>>> Sent: Wednesday, January 16, 2013 1:31 AM
>>> To: [email protected]
>>> Subject: Re: [Jprogramming] Hermitian from triangular
>>>
>>> Linda and Devon, the assignment was to turn a triangular matrix that has a
>>> real diagonal into a Hermitian matrix. A triangular matrix can be "upper
>>> triangular" like
>>>
>>> 1 2 3
>>> 0 4 5
>>> 0 0 6
>>>
>>> or "lower triangular" like
>>>
>>> 1 0 0
>>> 2 3 0
>>> 4 5 6
>>>
>>> The "diagonal" is always the one running from the upper left corner to the
>>> lower right corner, containing 1 4 6 in the first example and 1 3 6 in the
>>> second example. The following upper triangular matrix has a real diagonal
>>> but some numbers off the diagonal are not real.
>>>
>>> 1 _2j3 0
>>> 0 _4 5j_6
>>> 0 0 7
>>>
>>> Although the numbers in my examples have patterns, in general the numbers in
>>> a triangular matrix need have no pattern except that either numbers below
>>> the diagonal are all 0's or numbers above the diagonal are all 0's.
>>>
>>> Kip Murray
>>>
>>> Sent from my iPad
>>>
>>>
>>> On Jan 15, 2013, at 11:19 PM, Devon McCormick <[email protected]> wrote:
>>>
>>>> Your results agree with mine - of the three versions of "hft" only
>>>> Raul's appears to turn an arbitrary random, complex, square matrix
>>>> into one that passes "ishermitian".
>>>>
>>>>
>>>> On Tue, Jan 15, 2013 at 11:05 PM, Linda Alvord
>>> <[email protected]>wrote:
>>>>> Have I gotten all the definitions correct? The only one that
>>>>> consistently works on a random matrix provided by Kip was provided by
>>>>> Raul
>>>>>
>>>>> ishermitian =: -: +@|:
>>>>> ]K=:hermy=. (([: <: [: +: 0 ?@$~ ,~) j. [: <: [: +: 0 ?@$~ ,~) 3
>>>>> 0.681691j_0.530679 0.105724j0.221189 0.140368j_0.982508
>>>>> _0.469356j_0.623093 0.71661j0.893344 _0.125895j0.532656
>>>>> _0.882974j_0.727597 0.0632899j_0.0448332 _0.975941j_0.730788
>>>>> hft =: + +@|:@(- ] * =@i.@#) NB. Kip
>>>>> ishermitian hft K
>>>>> 0
>>>>> hft=: (+ +@|: * >/~@i.@#) NB. Ai
>>>>> ishermitian hft K
>>>>> 0
>>>>> hft=: (% 1 + =@i.@#)@:+ +@|: NB. Raul
>>>>> ishermitian hft K
>>>>> 1
>>>>> hft=:((23 b.&.(a.&i.)&.(2&(3!:5))&.+. +@|:)) NB. Henry
>>>>> ishermitian hft K
>>>>> 0
>>>>> hft=: 0&=`(,: +@|:)}
>>>>> ishermitian hft K
>>>>> 0
>>>>>
>>>>> Linda
>>>>>
>>>>>
>>>>> -----Original Message-----
>>>>> From: [email protected]
>>>>> [mailto:[email protected]] On Behalf Of Henry
>>>>> Rich
>>>>> Sent: Tuesday, January 15, 2013 6:21 PM
>>>>> To: [email protected]
>>>>> Subject: Re: [Jprogramming] Hermitian from triangular
>>>>>
>>>>> Nah, that's not beyond impish. The devilish solution is to take the
>>>>> bitwise OR of the matrix with its conjugate transpose (but that's
>>>>> easier in assembler language than in J:
>>>>> (23 b.&.(a.&i.)&.(2&(3!:5))&.+. +@|:)) ). And you need to be sure
>>>>> that the zeros on the lower diagonal and below are true zeros!
>>>>>
>>>>> Henry Rich
>>>>>
>>>>> On 1/15/2013 6:03 PM, km wrote:
>>>>>> Oh, boy! (v1`v2) } y <--> (v1 y) } (v2 y)
>>>>>>
>>>>>> Brief and devilish, take care for your soul, Henry!
>>>>>>
>>>>>> --Kip
>>>>>>
>>>>>> Sent from my iPad
>>>>>>
>>>>>>
>>>>>> On Jan 15, 2013, at 3:39 PM, Henry Rich <[email protected]> wrote:
>>>>>>
>>>>>>> hft =: 0&=`(,: +@|:)}
>>>>>>>
>>>>>>> Henry Rich
>>>>>>>
>>>>>>> On 1/15/2013 5:25 AM, km wrote:
>>>>>>>> This is an easy one. A Hermitian matrix matches its conjugate
>>>>> transpose. Write a verb hft that creates a Hermitian matrix from a
>>>>> triangular one that has a real diagonal.
>>>>>>>> ishermitian =: -: +@|:
>>>>>>>> ]A =: 2 2 $ 1 2j3 0 4
>>>>>>>> 1 2j3
>>>>>>>> 0 4
>>>>>>>> ]B =: hft A
>>>>>>>> 1 2j3
>>>>>>>> 2j_3 4
>>>>>>>> ishermitian A
>>>>>>>> 0
>>>>>>>> ishermitian B
>>>>>>>> 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
>>>>
>>>>
>>>> --
>>>> Devon McCormick, CFA
>>>> ^me^ at acm.
>>>> org is my
>>>> preferred e-mail
>>>> ----------------------------------------------------------------------
>>>> 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