You're right, isconvex1 is what I thought I was doing.  Interesting that 
the 4x3 matrix produces the same result.

On the timing, I think Roger uses Gaussian elimination to evaluate 
determinants of square matrices.  That is faster than direct evaluation, 
  which he perhaps uses for non-square matrices.

Henry Rich

Arie Groeneveld wrote:
> Henry,
> 
> some observations on the (intriguing for me) matrix-determinant part of:
>    isconvex=: ([:({.*./@:=}.)[:*1(-/ .*)@(1 1 1&,)\.])"2
> 
> 1. the matrices you compose for calculating the determinants are not
> square (but if I do understand the working of 'dot' then it's no problem
> to use it this way in J)
> 
> 2. the following variants produce the same result:
> 
> isconvex1 =. ([: ({. *./@:= }.) [: * 1 (-/ . *)@(,.&1 1 1)\. ])"2 NB.
> square matrices
> isconvex2=: ([: ({. *./@:= }.) [: * 1 -/ . *\. ])"2
> points=:sortloops (?10000 4 2$1000)
> 
>   (isconvex1-:isconvex)points
> 1
> 
> (isconvex2-:isconvex)points
> 1
> 
> ts 'isconvex points'
> 3.251488 22208
> 
> ts 'isconvex1 points'
> 0.225882 19264
> 
> ts 'isconvex2 points'
> 0.715514 20160
> 
> ...interesting difference those last two (huh ??)
> 
> 
> 
> =@@i
> 
> 
> 
> Henry Rich schreef:
>> Also, D cannot be freely chosen, because some positions of D will make
>> ABCDA not minimal.
>>
>> isconvex =. ([: ({. *./@:= }.) [: * 1 (-/ . *)@(1 1 1&,)\. ])"2
>>
>> (+/ % #) isconvex sortloops (?.10000 4 2$1000)
>> 0.6959
>> (+/ % #) isconvex sortloops (?10000 4 2$1000)
>> 0.6911
>> (+/ % #) isconvex sortloops (?10000 4 2$1000)
>> 0.6847
>>
>> close to 1 - 1%pi.
>>
>> Henry Rich
>>
>>
>> Boyko Bantchev wrote:
>>> 2008/12/10 John Randall <[email protected]>:
>>>> My initial thought is this: Draw the first 3 sides A->B->C. Let D be the
>>>> other vertex. Then ABCD is convex iff D lies on the opposite side of the
>>>> line AC from B. This gives probability at least 1/2 for your question.
>>> ABCD will still be concave if D is, e.g., on the opposite side of BC
>>> from A.
>>> ----------------------------------------------------------------------
>>> 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