If this is the first one:
entropy =: +/@:(* ^.) (^.@] - %) +/

and this is the second one:
entropy =: -@(+/)@:(* ^.)@(% +/)

it looks to me like the first one does more work.

That said, I've not tried benchmarking it. Nor have I thought enough
about numeric stability.

-- 
Raul

On Thu, Mar 21, 2013 at 9:15 PM, Henry Rich <[email protected]> wrote:
> The second one follows the classical definition: normalize frequencies to
> add to 1, do the p ln p thing, add em up, and change the sign.
>
> The first one looks like it does a little less work, by some algebraic
> manipulation, and might be a little faster.
>
> Henry Rich
>
>
>
>
> On 3/21/2013 8:29 PM, Scott Locklin wrote:
>
>> <quote author="Henry Rich">
>> entropy =: +/@:(* ^.) (^.@] - %) +/
>> or
>> entropy =: -@(+/)@:(* ^.)@(% +/)
>> </quote>
>>
>> Hot dog! Thank you!
>> Puzzing this out a bit, the second one makes more sense to me. I can stick
>> parens and y's in and see what makes it tick. Somehow the fork and the @: in
>> the first one confuses me on initial inspection (@ seems to work OK too). As
>> I learn more about forks, perhaps I will feel better about things like this.
>>
>> mmdow was easy:
>> mmdow=: entropy + (_1 + #) % 2 * +/
>>
>> Thanks again fellows! I'll drop another note in this thread when the
>> script is done enough to share.
>>
>> -Scott
>> ----------------------------------------------------------------------
>> 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