Copied from J on my iPad
hftd =: 23 b.&.(a.&i.)&.(2&(3!:5))&.+. +@|: NB. hftdevil!
A
1 _2j3 0
0 _4 5j_6
0 0 7
hftd A
1 _2j_3 0
_2j_3 _4 5j_6
0 5j6 7
ishermitian hftd A
0
Notice _2j3 in A but in the result _2j_3 where _2j3 was. I have not tried to
understand hftd .
Kip Murray
Sent from my iPad
On Jan 16, 2013, at 9:58 AM, km <[email protected]> wrote:
> And my discussion of his original hft has nothing to do with his new
> algorithm using bit-wise or!
>
> Kip
>
> Sent from my iPad
>
>
> On Jan 16, 2013, at 9:33 AM, Raul Miller <[email protected]> wrote:
>
>> But = is tolerant, and 0 = %__
>>
>> --
>> Raul
>>
>> On Wed, Jan 16, 2013 at 10:28 AM, km <[email protected]> wrote:
>>> Henry's
>>>
>>> hft =: 0&=`(,: +@|:)}
>>>
>>> tests each element of its argument A returning 1 or 0 depending on whether
>>> the element is 0 . He doesn't know where this A is coming from, maybe
>>> somebody else's file. If he is comparing the bit representations of his 0
>>> and one of A's 0's the test may return 0 instead of 1, and then the wrong
>>> element of A ,: +@|: A is chosen to go into the result B .
>>>
>>> Kip Murray
>>>
>>> Sent from my iPad
>>>
>>>
>>> On Jan 16, 2013, at 7:53 AM, Raul Miller <[email protected]> wrote:
>>>
>>>> Ok, this makes sense, given the underlying hardware.
>>>>
>>>> But, I am having trouble reasoning about how this could cause problems
>>>> fro Henry's implementation, since:
>>>>
>>>> 0 = % __
>>>> 1
>>>>
>>>> and
>>>>
>>>> % ::0:"0 j./~_*i:1
>>>> 0 0 0
>>>> 0 _ 0
>>>> 0 0 0
>>>>
>>>> 0j1 % __
>>>> 0
>>>> % 0j1 % __
>>>> _
>>>> 0j1 * % __
>>>> 0
>>>> % 0j1 * % __
>>>> _
>>>>
>>>> Is there some way of getting an imaginary negative zero? Or is the
>>>> issue simply the result of % on the result of Henry's code on a matrix
>>>> with a negative zero off the diagonal? (Are there any other ways for
>>>> this to be a problem?)
>>>>
>>>> Thanks,
>>>>
>>>> --
>>>> Raul
>>>>
>>>> On Wed, Jan 16, 2013 at 8:31 AM, Dan Bron <[email protected]> wrote:
>>>>> In J, the reciprocal of zero is infinity. Correspondingly, the
>>>>> reciprocal of negative zero is negative infinity. Ergo, the reciprocal of
>>>>> negative infinity is negative zero.
>>>>>
>>>>> %0
>>>>> _
>>>>> %_
>>>>> 0
>>>>> %__
>>>>> 0
>>>>> % %_ NB. The two zeros look identical
>>>>> _
>>>>> % %__ NB. But J knows their "signs"
>>>>> __
>>>>>
>>>>>
>>>>> So, you can produce a negative zero by inverting negative infinity, and
>>>>> you can identify a negative zero by inverting it. If __=%x then x is
>>>>> negative zero (the only value whose reciprocal is negative infinity).
>>>>>
>>>>> -Dan
>>>>>
>>>>> Please excuse typos; composed on a handheld device.
>>>>>
>>>>> On Jan 16, 2013, at 7:49 AM, Raul Miller <[email protected]> wrote:
>>>>>
>>>>>> I thought that J did not represent negative zero?
>>>>>>
>>>>>> Is it possible to trick J into revealing a negative zero? If so, does
>>>>>> it involve foreigns or is there some native calculations that lead
>>>>>> here?
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> --
>>>>>> Raul
>>>>>>
>>>>>> On Wed, Jan 16, 2013 at 7:26 AM, Henry Rich <[email protected]> wrote:
>>>>>>> On my awaking, there was a whiff of sulfur in the air, and a greenish
>>>>>>> haze... and somehow in my mind the idea that that last program won't
>>>>>>> work,
>>>>>>> because of the possibility of negative zero. I'll stay relegated to imp
>>>>>>> status.
>>>>>>>
>>>>>>> Henry Rich
>>>>>>>
>>>>>>>
>>>>>>> On 1/15/2013 6:20 PM, Henry Rich wrote:
>>>>>>>>
>>>>>>>> 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
>>>>>> ----------------------------------------------------------------------
>>>>>> 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