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