[GUMP@vmgump]: Project commons-proxy-test (in module apache-commons) failed
To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact the folk at gene...@gump.apache.org. Project commons-proxy-test has an issue affecting its community integration. This issue affects 1 projects, and has been outstanding for 57 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - commons-proxy-test : Apache Commons Full details are available at: http://vmgump.apache.org/gump/public/apache-commons/commons-proxy-test/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -WARNING- Overriding Maven settings: [/srv/gump/public/workspace/apache-commons/proxy/gump_mvn_settings.xml] -DEBUG- (Apache Gump generated) Apache Maven Settings in: /srv/gump/public/workspace/apache-commons/proxy/gump_mvn_settings.xml -INFO- Failed with reason build failed -DEBUG- Maven POM in: /srv/gump/public/workspace/apache-commons/proxy/pom.xml -INFO- Project Reports in: /srv/gump/public/workspace/apache-commons/proxy/target/surefire-reports The following work was performed: http://vmgump.apache.org/gump/public/apache-commons/commons-proxy-test/gump_work/build_apache-commons_commons-proxy-test.html Work Name: build_apache-commons_commons-proxy-test (Type: Build) Work ended in a state of : Failed Elapsed: 15 secs Command Line: /opt/maven2/bin/mvn --batch-mode --settings /srv/gump/public/workspace/apache-commons/proxy/gump_mvn_settings.xml test [Working Directory: /srv/gump/public/workspace/apache-commons/proxy] M2_HOME: /opt/maven2 - Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec Running org.apache.commons.proxy.factory.util.TestMethodSignature Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec Running org.apache.commons.proxy.provider.TestConstantProvider Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec Running org.apache.commons.proxy.interceptor.TestFilteredInterceptor Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.033 sec Running org.apache.commons.proxy.interceptor.filter.TestPatternFilter Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec Running org.apache.commons.proxy.interceptor.TestSerializingInterceptor Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 sec Running org.apache.commons.proxy.interceptor.TestInterceptorChain Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 sec Running org.apache.commons.proxy.invoker.TestNullInvoker Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 sec Running org.apache.commons.proxy.provider.remoting.TestBurlapProvider Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 sec Running org.apache.commons.proxy.exception.TestDelegateProviderException Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec Running org.apache.commons.proxy.invoker.TestChainInvoker Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 sec Running org.apache.commons.proxy.factory.javassist.TestJavassistProxyFactory Tests run: 37, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.157 sec Running org.apache.commons.proxy.exception.TestProxyFactoryException Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec Running org.apache.commons.proxy.interceptor.filter.TestReturnTypeFilter Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec Running org.apache.commons.proxy.provider.TestBeanProvider Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 sec Results : Tests in error: testInvalidHandlerName(org.apache.commons.proxy.invoker.TestXmlRpcInvoker) Tests run: 179, Failures: 0, Errors: 1, Skipped: 0 [INFO] [ERROR] BUILD FAILURE [INFO] [INFO] There are test failures. Please refer to /srv/gump/public/workspace/apache-commons/proxy/target/surefire-reports for the individual test results. [INFO] [INFO] For more information, run Maven with the -e switch [INFO] [INFO] Total time: 13 seconds [INFO] Finished at: Mon Jun 20 12:09:07 UTC 2011 [INFO] Final Memory: 24M/58M [INFO] - To subscribe to this information via syndicated feeds: - RSS: http://vmgump.apache.org/gump/public/apache-commons/commons-proxy-test/rss.xml - Atom:
svn out of sync?
Hi all guys, I was trying to push the Digester3 RC1, but while performing release:prepare I got the following error: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project commons-digester3: Unable to tag SCM [ERROR] Provider message: [ERROR] The svn tag command failed. [ERROR] Command output: [ERROR] svn: Path 'https://svn.apache.org/repos/asf/commons/sandbox/digester3/trunk' does not exist in revision 1137620 Which is the cause of that problem? The EU mirror out of sync, if I remember correctly, or not? Many thanks in advance, have a nice day! All the best, Simo http://people.apache.org/~simonetripodi/ http://www.99soft.org/ - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
Re: svn out of sync?
2011/6/20 Simone Tripodi simonetrip...@apache.org Hi all guys, I was trying to push the Digester3 RC1, but while performing release:prepare I got the following error: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project commons-digester3: Unable to tag SCM [ERROR] Provider message: [ERROR] The svn tag command failed. [ERROR] Command output: [ERROR] svn: Path 'https://svn.apache.org/repos/asf/commons/sandbox/digester3/trunk' does not exist in revision 1137620 Which is the cause of that problem? The EU mirror out of sync, if I remember correctly, or not? Many thanks in advance, have a nice day! All the best, Simo Do a svn update and retry mvn release:prepare. This way it works, at least for me. Antonio
Re: svn out of sync?
On 6/20/11 6:11 AM, Simone Tripodi wrote: Hi all guys, I was trying to push the Digester3 RC1, but while performing release:prepare I got the following error: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project commons-digester3: Unable to tag SCM [ERROR] Provider message: [ERROR] The svn tag command failed. [ERROR] Command output: [ERROR] svn: Path 'https://svn.apache.org/repos/asf/commons/sandbox/digester3/trunk' does not exist in revision 1137620 Personally, I avoid the release plugin like the plague, but from above it looks like it is trying to create a tag from a sandbox path. Phil Which is the cause of that problem? The EU mirror out of sync, if I remember correctly, or not? Many thanks in advance, have a nice day! All the best, Simo http://people.apache.org/~simonetripodi/ http://www.99soft.org/ - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
Re: svn out of sync?
The scm URL in the pom.xml file needs updating it appears On Jun 20, 2011 9:35 AM, Phil Steitz phil.ste...@gmail.com wrote: On 6/20/11 6:11 AM, Simone Tripodi wrote: Hi all guys, I was trying to push the Digester3 RC1, but while performing release:prepare I got the following error: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project commons-digester3: Unable to tag SCM [ERROR] Provider message: [ERROR] The svn tag command failed. [ERROR] Command output: [ERROR] svn: Path 'https://svn.apache.org/repos/asf/commons/sandbox/digester3/trunk' does not exist in revision 1137620 Personally, I avoid the release plugin like the plague, but from above it looks like it is trying to create a tag from a sandbox path. Phil Which is the cause of that problem? The EU mirror out of sync, if I remember correctly, or not? Many thanks in advance, have a nice day! All the best, Simo http://people.apache.org/~simonetripodi/ http://www.99soft.org/ - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
I have the opensymphony JIRA export
Please let me know how it should be handled. Both the JIRA xml export and the attachments. (this message is going to 2 lists struts and commons, you do not have to reply to both) -Jason -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - - - Jason Pyeron PD Inc. http://www.pdinc.us - - Principal Consultant 10 West 24th Street #100- - +1 (443) 269-1555 x333Baltimore, Maryland 21218 - - - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- This message is copyright PD Inc, subject to license 20080407P00. - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
Re: I have the opensymphony JIRA export
Drop the files somewhere on people.apache.org, and create a JIRA ticket against Infra, which requests the import. Jochen On Mon, Jun 20, 2011 at 6:20 PM, Jason Pyeron jpye...@pdinc.us wrote: Please let me know how it should be handled. Both the JIRA xml export and the attachments. (this message is going to 2 lists struts and commons, you do not have to reply to both) -Jason -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - - - Jason Pyeron PD Inc. http://www.pdinc.us - - Principal Consultant 10 West 24th Street #100 - - +1 (443) 269-1555 x333 Baltimore, Maryland 21218 - - - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- This message is copyright PD Inc, subject to license 20080407P00. - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org -- Capitalism is the astounding belief that the most wickedest of men will do the most wickedest of things for the greatest good of everyone. John Maynard Keynes (http://en.wikiquote.org/wiki/Keynes) - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
Re: svn out of sync?
How idiot I am, you are right, I didn't even notice it :) thanks!!! Simo http://people.apache.org/~simonetripodi/ http://www.99soft.org/ On Mon, Jun 20, 2011 at 3:58 PM, James Carman jcar...@carmanconsulting.com wrote: The scm URL in the pom.xml file needs updating it appears On Jun 20, 2011 9:35 AM, Phil Steitz phil.ste...@gmail.com wrote: On 6/20/11 6:11 AM, Simone Tripodi wrote: Hi all guys, I was trying to push the Digester3 RC1, but while performing release:prepare I got the following error: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project commons-digester3: Unable to tag SCM [ERROR] Provider message: [ERROR] The svn tag command failed. [ERROR] Command output: [ERROR] svn: Path 'https://svn.apache.org/repos/asf/commons/sandbox/digester3/trunk' does not exist in revision 1137620 Personally, I avoid the release plugin like the plague, but from above it looks like it is trying to create a tag from a sandbox path. Phil Which is the cause of that problem? The EU mirror out of sync, if I remember correctly, or not? Many thanks in advance, have a nice day! All the best, Simo http://people.apache.org/~simonetripodi/ http://www.99soft.org/ - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
Re: I have the opensymphony JIRA export
Hi Jason! thanks a lot, I got it too, but if you're already taking care of it it would be nice if you could extract just the OGNL issues/attachs. Please don't share the entirely since the whole Jira backup contains also users-related data. Many thanks in advance, have a nice day! Simo http://people.apache.org/~simonetripodi/ http://www.99soft.org/ On Mon, Jun 20, 2011 at 6:34 PM, Jochen Wiedmann jochen.wiedm...@gmail.com wrote: Drop the files somewhere on people.apache.org, and create a JIRA ticket against Infra, which requests the import. Jochen On Mon, Jun 20, 2011 at 6:20 PM, Jason Pyeron jpye...@pdinc.us wrote: Please let me know how it should be handled. Both the JIRA xml export and the attachments. (this message is going to 2 lists struts and commons, you do not have to reply to both) -Jason -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - - - Jason Pyeron PD Inc. http://www.pdinc.us - - Principal Consultant 10 West 24th Street #100 - - +1 (443) 269-1555 x333 Baltimore, Maryland 21218 - - - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- This message is copyright PD Inc, subject to license 20080407P00. - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org -- Capitalism is the astounding belief that the most wickedest of men will do the most wickedest of things for the greatest good of everyone. John Maynard Keynes (http://en.wikiquote.org/wiki/Keynes) - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
Re: I have the opensymphony JIRA export
Hi Jason, nice job... you might find this useful [1] [1] https://issues.apache.org/jira/browse/INFRA-3596 On 20 June 2011 18:20, Jason Pyeron jpye...@pdinc.us wrote: Please let me know how it should be handled. Both the JIRA xml export and the attachments. (this message is going to 2 lists struts and commons, you do not have to reply to both) -Jason -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - - - Jason Pyeron PD Inc. http://www.pdinc.us - - Principal Consultant 10 West 24th Street #100 - - +1 (443) 269-1555 x333 Baltimore, Maryland 21218 - - - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- This message is copyright PD Inc, subject to license 20080407P00. - To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org For additional commands, e-mail: dev-h...@struts.apache.org -- Maurizio Cucchiara - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
RE: I have the opensymphony JIRA export
-Original Message- From: Simone Tripodi Sent: Monday, June 20, 2011 13:05 To: Commons Developers List Subject: Re: I have the opensymphony JIRA export Hi Jason! thanks a lot, I got it too, but if you're already taking care of it it would be nice if you could extract just the OGNL issues/attachs. Adding to this weekend's task list. Please don't share the entirely since the whole Jira backup contains also users-related data. Many thanks in advance, have a nice day! Simo http://people.apache.org/~simonetripodi/ http://www.99soft.org/ On Mon, Jun 20, 2011 at 6:34 PM, Jochen Wiedmann jochen.wiedm...@gmail.com wrote: Drop the files somewhere on people.apache.org, and create a JIRA I do not have access there. ticket against Infra, which requests the import. Jochen On Mon, Jun 20, 2011 at 6:20 PM, Jason Pyeron jpye...@pdinc.us wrote: Please let me know how it should be handled. Both the JIRA xml export and the attachments. (this message is going to 2 lists struts and commons, you do not have to reply to both) -Jason -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - - - Jason Pyeron PD Inc. http://www.pdinc.us - - Principal Consultant 10 West 24th Street #100 - - +1 (443) 269-1555 x333 Baltimore, Maryland 21218 - - - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- This message is copyright PD Inc, subject to license 20080407P00. - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org -- Capitalism is the astounding belief that the most wickedest of men will do the most wickedest of things for the greatest good of everyone. John Maynard Keynes (http://en.wikiquote.org/wiki/Keynes) - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - - - Jason Pyeron PD Inc. http://www.pdinc.us - - Principal Consultant 10 West 24th Street #100- - +1 (443) 269-1555 x333Baltimore, Maryland 21218 - - - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- This message is copyright PD Inc, subject to license 20080407P00. - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
Re: I have the opensymphony JIRA export
2011/6/20 Jason Pyeron jpye...@pdinc.us: Please let me know how it should be handled. Both the JIRA xml export and the attachments. (this message is going to 2 lists struts and commons, you do not have to reply to both) Here [1] you have XWork related issue, you can create another one for Ognl [1] https://issues.apache.org/jira/browse/INFRA-2577 Kind regards -- Łukasz + 48 606 323 122 http://www.lenart.org.pl/ Warszawa JUG conference - Confitura http://confitura.pl/ - To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org
[MATH] Commit review of MATH-597
Hi, I've now made a commit. I'm now writing to be sure that I did it correctly. First of all, I of course committed the code. I also added the following to changes.xml. I did this in the same commit (this is best, right?): action dev=mikl type=fix issue=MATH-597 Implemented faster generation of random exponential distributed values with algorithm from Ahrens and Dieter (1972): Computer methods for sampling from the exponential and normal distributions. /action As the commit message, I used: Added fix for MATH-597: Implemented faster generation of random exponential distributed values with algorithm from Ahrens and Dieter (1972): Computer methods for sampling from the exponential and normal distributions. Test case was improved, too. Is this okay? Did I miss something or should I done something different? Cheers, Mikkel. 2011/6/20 m...@apache.org: Author: mikl Date: Mon Jun 20 21:42:48 2011 New Revision: 1137795 URL: http://svn.apache.org/viewvc?rev=1137795view=rev Log: Added fix for MATH-597: Implemented faster generation of random exponential distributed values with algorithm from Ahrens and Dieter (1972): Computer methods for sampling from the exponential and normal distributions. Test case was improved, too. Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java commons/proper/math/trunk/src/site/xdoc/changes.xml commons/proper/math/trunk/src/test/java/org/apache/commons/math/random/RandomDataTest.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java?rev=1137795r1=1137794r2=1137795view=diff == --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java Mon Jun 20 21:42:48 2011 @@ -44,6 +44,7 @@ import org.apache.commons.math.exception import org.apache.commons.math.exception.util.LocalizedFormats; import org.apache.commons.math.util.FastMath; import org.apache.commons.math.util.MathUtils; +import org.apache.commons.math.util.ResizableDoubleArray; /** * Implements the {@link RandomData} interface using a {@link RandomGenerator} @@ -107,6 +108,21 @@ public class RandomDataImpl implements R /** Serializable version identifier */ private static final long serialVersionUID = -626730818244969716L; + /** Used when generating Exponential samples + * [1] writes: + * One table containing the constants + * q_i = sum_{j=1}^i (ln 2)^j/j! = ln 2 + (ln 2)^2/2 + ... + (ln 2)^i/i! + * until the largest representable fraction below 1 is exceeded. + * + * Note that + * 1 = 2 - 1 = exp(ln 2) - 1 = sum_{n=1}^infty (ln 2)^n / n! + * thus q_i - 1 as i - infty, + * so the higher 1, the closer to one we get (the series is not alternating). + * + * By trying, n = 16 in Java is enough to reach 1.0. + */ + private static double[] EXPONENTIAL_SA_QI = null; + /** underlying random number generator */ private RandomGenerator rand = null; @@ -114,6 +130,35 @@ public class RandomDataImpl implements R private SecureRandom secRand = null; /** + * Initialize tables + */ + static { + /** + * Filling EXPONENTIAL_SA_QI table. + * Note that we don't want qi = 0 in the table. + */ + final double LN2 = FastMath.log(2); + double qi = 0; + int i = 1; + + /** + * MathUtils provides factorials up to 20, so let's use that limit together + * with MathUtils.EPSILON to generate the following code (a priori, we know that + * there will be 16 elements, but instead of hardcoding that, this is + * prettier): + */ + final ResizableDoubleArray ra = new ResizableDoubleArray(20); + + while (qi 1) { + qi += FastMath.pow(LN2, i) / MathUtils.factorial(i); + ra.addElement(qi); + ++i; + } + + EXPONENTIAL_SA_QI = ra.getElements(); + } + + /** * Construct a RandomDataImpl. */ public RandomDataImpl() { @@ -469,10 +514,11 @@ public class RandomDataImpl implements R * Returns a random value from an Exponential distribution with the given * mean. * p - * strongAlgorithm Description/strong: Uses the a - * href=http://www.jesus.ox.ac.uk/~clifford/a5/chap1/node5.html; Inversion - * Method/a to generate exponentially distributed random values from - * uniform deviates. + * strongAlgorithm Description/strong: Uses the Algorithm SA (Ahrens) + * from p. 876 in: +
Re: [MATH] Commit review of MATH-597
On 6/20/11 2:46 PM, Mikkel Meyer Andersen wrote: Hi, I've now made a commit. I'm now writing to be sure that I did it correctly. First of all, I of course committed the code. I also added the following to changes.xml. I did this in the same commit (this is best, right?): Yes, its best to include the update to changes.xml in the same commit. action dev=mikl type=fix issue=MATH-597 Implemented faster generation of random exponential distributed values with algorithm from Ahrens and Dieter (1972): Computer methods for sampling from the exponential and normal distributions. /action As the commit message, I used: Added fix for MATH-597: Implemented faster generation of random exponential distributed values with algorithm from Ahrens and Dieter (1972): Computer methods for sampling from the exponential and normal distributions. Test case was improved, too. Is this okay? Did I miss something or should I done something different? Looks great! Phil Cheers, Mikkel. 2011/6/20 m...@apache.org: Author: mikl Date: Mon Jun 20 21:42:48 2011 New Revision: 1137795 URL: http://svn.apache.org/viewvc?rev=1137795view=rev Log: Added fix for MATH-597: Implemented faster generation of random exponential distributed values with algorithm from Ahrens and Dieter (1972): Computer methods for sampling from the exponential and normal distributions. Test case was improved, too. Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java commons/proper/math/trunk/src/site/xdoc/changes.xml commons/proper/math/trunk/src/test/java/org/apache/commons/math/random/RandomDataTest.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java?rev=1137795r1=1137794r2=1137795view=diff == --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java Mon Jun 20 21:42:48 2011 @@ -44,6 +44,7 @@ import org.apache.commons.math.exception import org.apache.commons.math.exception.util.LocalizedFormats; import org.apache.commons.math.util.FastMath; import org.apache.commons.math.util.MathUtils; +import org.apache.commons.math.util.ResizableDoubleArray; /** * Implements the {@link RandomData} interface using a {@link RandomGenerator} @@ -107,6 +108,21 @@ public class RandomDataImpl implements R /** Serializable version identifier */ private static final long serialVersionUID = -626730818244969716L; +/** Used when generating Exponential samples + * [1] writes: + * One table containing the constants + * q_i = sum_{j=1}^i (ln 2)^j/j! = ln 2 + (ln 2)^2/2 + ... + (ln 2)^i/i! + * until the largest representable fraction below 1 is exceeded. + * + * Note that + * 1 = 2 - 1 = exp(ln 2) - 1 = sum_{n=1}^infty (ln 2)^n / n! + * thus q_i - 1 as i - infty, + * so the higher 1, the closer to one we get (the series is not alternating). + * + * By trying, n = 16 in Java is enough to reach 1.0. + */ +private static double[] EXPONENTIAL_SA_QI = null; + /** underlying random number generator */ private RandomGenerator rand = null; @@ -114,6 +130,35 @@ public class RandomDataImpl implements R private SecureRandom secRand = null; /** + * Initialize tables + */ +static { +/** + * Filling EXPONENTIAL_SA_QI table. + * Note that we don't want qi = 0 in the table. + */ +final double LN2 = FastMath.log(2); +double qi = 0; +int i = 1; + +/** + * MathUtils provides factorials up to 20, so let's use that limit together + * with MathUtils.EPSILON to generate the following code (a priori, we know that + * there will be 16 elements, but instead of hardcoding that, this is + * prettier): + */ +final ResizableDoubleArray ra = new ResizableDoubleArray(20); + +while (qi 1) { +qi += FastMath.pow(LN2, i) / MathUtils.factorial(i); +ra.addElement(qi); +++i; +} + +EXPONENTIAL_SA_QI = ra.getElements(); +} + +/** * Construct a RandomDataImpl. */ public RandomDataImpl() { @@ -469,10 +514,11 @@ public class RandomDataImpl implements R * Returns a random value from an Exponential distribution with the given * mean. * p - * strongAlgorithm Description/strong: Uses the a - * href=http://www.jesus.ox.ac.uk/~clifford/a5/chap1/node5.html; Inversion - * Method/a to generate