[ 
https://issues.apache.org/jira/browse/MATH-178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul Cowan updated MATH-178:
----------------------------

    Attachment: ZipfDistribution.patch

OK, patch attached. I've based the layout, commenting, test case etc. on 
Binomial and Poisson distributions. A few points for discussion here:

1) I haven't added a method to DistributionFactory; as this is deprecated I 
assume that this is not required.  I have, however, kept to the ___Distribution 
and ____DistributionImpl convention.
2) Test case has been produced by running some figures through an openoffice 
spreadsheet to generate the 4-decimal-place results; happy to attach this 
spreadsheet too if someone wants to check my workings for producing the test 
data.
3) Javadoc may need improvement; haven't touched the xdocs either (the 
distribution-related xdocs specifically refer to those creatable by 
DistributionFactory, so this may need to be changed if #1 is not correct)
4) The biggest 'hole' is in ZipfDistributionImpl.generalizedHarmonic. Firstly, 
this is (probably) a useful enough utility function that it could be used 
elsewhere and should live in its own method in either its own or another 
appropriate class; I'd like some guidance here. Secondly, this will obviously 
perform poorly as it's a simple iteration loop. If someone is able to optimise 
this, great; if not, at the very least we could save a fair bit of work by 
caching the value of generalizedHarmonic(numberOfElements, exponent) whenever 
either value is changed; this would make probability(x) lightning-quick and 
would at least speed up cumulativeProbability by >50%. If no-one can work out 
how to generate the harmonics more quickly (I know *I* can't!) we could even 
cache any values <= numberOfElements in an array; calculating those beyond 
where we've already worked out would then obviously be a lot quicker. Any other 
help or techniques gratefully accepted.

Keen to see what people think.

> Implement Zipf distribution
> ---------------------------
>
>                 Key: MATH-178
>                 URL: https://issues.apache.org/jira/browse/MATH-178
>             Project: Commons Math
>          Issue Type: New Feature
>            Reporter: Paul Cowan
>            Priority: Minor
>         Attachments: ZipfDistribution.patch
>
>
> Per my post to commons-dev -- 
> http://mail-archives.apache.org/mod_mbox/commons-dev/200801.mbox/[EMAIL 
> PROTECTED] -- I'd like to propose adding a Zipf distribution to commons-math.
> I have a patch, but it's incomplete and somewhat inefficient; I'd like to 
> throw it up for discussion though. To follow.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to