cvs commit: jakarta-commons/docs components.html

2003-06-04 Thread mbecke
mbecke  2003/06/03 05:51:08

  Modified:docs components.html
  Log:
  Updated for HttpClient 2.0 Beta 1
  
  Revision  ChangesPath
  1.107 +1 -1  jakarta-commons/docs/components.html
  
  Index: components.html
  ===
  RCS file: /home/cvs/jakarta-commons/docs/components.html,v
  retrieving revision 1.106
  retrieving revision 1.107
  diff -u -r1.106 -r1.107
  --- components.html   29 May 2003 21:56:41 -  1.106
  +++ components.html   3 Jun 2003 12:51:06 -   1.107
  @@ -481,7 +481,7 @@
br /
Releases:
ul
  -   lia 
href=http://jakarta.apache.org/builds/jakarta-commons/release/commons-httpclient/v2.0/;Release
 2.0 Alpha 1/a - 5 October 2001/li
  +   lia 
href=http://jakarta.apache.org/builds/jakarta-commons/release/commons-httpclient/v2.0/;Release
 2.0 Beta 1/a - 25 May 2003/li
/ul
   /dd
  !-- /HttpClient --
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [PATCH] Re: [Docs] Component Lists

2003-06-04 Thread Michael Becke
I made the changes and updated the site for HttpClient.  I left out the  
jxpath changes but would be happy to add them if others would like.

Mike

On Tuesday, June 3, 2003, at 05:23 AM, Tetsuya Kitahata wrote:

On Sun, 1 Jun 2003 12:45:19 -0400
(Subject: Re: [Docs] Component Lists)
Michael Becke [EMAIL PROTECTED] wrote:
As a commons committer do I have access to
jakarta-commons/components.html?  If so I will change this now.
I am not sure whether you have right to access to
jakarta-commons/xdocs/components.xml ...
But, I made a patch for it and attached in zip format.
(components.xml.zip// contains components.xml.txt)
This patch is for the notice of the release of
HttpClient beta1 and JXPath1.1
Also, I think (different from the commons-httpclient's site,
it seems automatically be publishing by maven) if
you change to *.xml, then you have to build and create
new *.html and apply to both, as Martin Cooper said  .. I guess.
Sincerely,


Mike

On Sunday, June 1, 2003, at 12:34 PM, Tetsuya Kitahata wrote:

Thanks for the information, Mike.

I've forgotten to subscribe the httpclient mailing
list. It had been separated from this mailing list!!
When are you (or anyone) planning to announce in jakarta-site
(index,news) and commons-components-list
(jakarta-commons/components.html)??
--

On Sun, 1 Jun 2003 11:19:23 -0400
Michael Becke [EMAIL PROTECTED] wrote:
HttpClient is now at 2.0 Beta 1.  An announcement has not gone out
yet,
but the distribution has been uploaded.
Mike
--

P.S.
Me Jakarta Commons (as of 31th May, 2003)
Sorry,
$AsOfDate =~ s/th/st/  ;-)
-
Tetsuya Kitahata --  Terra-International, Inc.
E-mail: [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
-
Tetsuya Kitahata --  Terra-International, Inc.
E-mail: [EMAIL PROTECTED]
http://www.terra-intl.com/
(Apache Jakarta Translation, Japanese)
http://jakarta.terra-intl.com/
components.xml.zip--- 
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: [math] UnivariateImpl - when sumsq ~ xbar*xbar*((double) n)

2003-06-04 Thread mdiggory


Phil Steitz wrote:
 Phil Steitz wrote:
 
 [EMAIL PROTECTED] wrote:

 Phil Steitz wrote:

 Since xbar = sum/n, the change has no impact on the which sums are 
 computed or squared. Instead of (sum/n)*(sum/n)*n your change just 
 computes sum**2/n.  The difference is that you are a) eliminating 
 one division by n and one multiplication by n (no doubt a good 
 thing) and b) replacing direct multiplication with pow(-,2). The 
 second of these used to be discouraged, but I doubt it makes any 
 difference with modern compilers.  I would suggest collapsing the 
 denominators and doing just one cast -- i.e., use

 (1) variance = sumsq - sum * (sum/(double) (n * (n - 1)))

 If

 (2) variance = sumsq - (sum * sum)/(double) (n * (n - 1))) or

 (3) variance = sumsq - Math.pow(sum,2)/(double) (n * (n - 1))) give

 better accuracy, use one of them; but I would favor (1) since it 
 will be able to handle larger positive sums.

 I would also recommend forcing getVariance() to return 0 if the 
 result is negative (which can happen in the right circumstances for 
 any of these formulas).

 Phil




 collapsing is definitely good, but I'm not sure about these 
 equations, from my experience, approaching (2) would look something 
 more like

 variance = (((double)n)*sumsq - (sum * sum)) / (double) (n * (n - 1));

 see (5) in http://mathworld.wolfram.com/k-Statistic.html



 That formula is the formula for the 2nd k-statistic, which is *not* 
 the same as the sample variance.  The standard formula for the sample 
 variance is presented in equation (3) here: 
 http://mathworld.wolfram.com/SampleVariance.html or in any elementary 
 statistics text. Formulas (1)-(3) above (and the current 
 implementation) are all equivalent to the standard defintion.

 What you have above is not.  The relation between the variance and the 
 second k-statistic is presented in (9) on 
 http://mathworld.wolfram.com/k-Statistic.html
 
 
 I just realized that I misread Wolfram's definitions. What he is 
 defining as the 2nd k-statistic is the correct formula for the sample 
 variance.  I am also missing some parenthesis above.  Your formula is 
 correct.  Sorry.
 
 Phil
 

No problem, I just wanted to make sure we're all on the same page, there are 
always many times I am wrong too. 

Thanks for double checking,
-Mark

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [math] UnivariateImpl - when sumsq ~ xbar*xbar*((double) n)

2003-06-04 Thread Al Chou
--- [EMAIL PROTECTED] wrote:
 Phil Steitz wrote:
  Phil Steitz wrote:
  
  [EMAIL PROTECTED] wrote:
 
  Phil Steitz wrote:
 
  Since xbar = sum/n, the change has no impact on the which sums are 
  computed or squared. Instead of (sum/n)*(sum/n)*n your change just 
  computes sum**2/n.  The difference is that you are a) eliminating 
  one division by n and one multiplication by n (no doubt a good 
  thing) and b) replacing direct multiplication with pow(-,2). The 
  second of these used to be discouraged, but I doubt it makes any 
  difference with modern compilers.  I would suggest collapsing the 
  denominators and doing just one cast -- i.e., use
 
  (1) variance = sumsq - sum * (sum/(double) (n * (n - 1)))
 
  If
 
  (2) variance = sumsq - (sum * sum)/(double) (n * (n - 1))) or
 
  (3) variance = sumsq - Math.pow(sum,2)/(double) (n * (n - 1))) give
 
  better accuracy, use one of them; but I would favor (1) since it 
  will be able to handle larger positive sums.
 
  I would also recommend forcing getVariance() to return 0 if the 
  result is negative (which can happen in the right circumstances for 
  any of these formulas).
 
  Phil
 
 
 
 
  collapsing is definitely good, but I'm not sure about these 
  equations, from my experience, approaching (2) would look something 
  more like
 
  variance = (((double)n)*sumsq - (sum * sum)) / (double) (n * (n - 1));
 
  see (5) in http://mathworld.wolfram.com/k-Statistic.html
 
 
 
  That formula is the formula for the 2nd k-statistic, which is *not* 
  the same as the sample variance.  The standard formula for the sample 
  variance is presented in equation (3) here: 
  http://mathworld.wolfram.com/SampleVariance.html or in any elementary 
  statistics text. Formulas (1)-(3) above (and the current 
  implementation) are all equivalent to the standard defintion.
 
  What you have above is not.  The relation between the variance and the 
  second k-statistic is presented in (9) on 
  http://mathworld.wolfram.com/k-Statistic.html
  
  
  I just realized that I misread Wolfram's definitions. What he is 
  defining as the 2nd k-statistic is the correct formula for the sample 
  variance.  I am also missing some parenthesis above.  Your formula is 
  correct.  Sorry.
  
  Phil
  
 
 No problem, I just wanted to make sure we're all on the same page, there are 
 always many times I am wrong too. 
 
 Thanks for double checking,
 -Mark



Uh, did we drop the idea of using the corrected two-pass algorithm for the
variance in the non-rolling case?  I excerpted that thread below.

Al


Date: Mon, 26 May 2003 18:28:45 -0700 (PDT)
From: Al Chou [EMAIL PROTECTED]
Subject: [math] rolling formulas for statistics (was RE: Greetings from a
newcomer (b

--- Phil Steitz [EMAIL PROTECTED] wrote:
 Al Chou wrote:
  --- Phil Steitz [EMAIL PROTECTED] wrote:
  
 Brent Worden wrote:
 Mark R. Diggory wrote:
 There are easy formulas for skewness and kurtosis based on the central
 moments which could be used for the stored, univariate implementations:
 http://mathworld.wolfram.com/Skewness.html
 http://mathworld.wolfram.com/Kurtosis.html
 
 As for the rolling implementations, there might be some more research
 involved before using this method because of their memoryless property. 
 
 But
 for starters, the sum and sumsq can easily be replaced with there central
 moment counterparts, mean and variance. There are formulas that update
 those
 metrics when a new value is added.  Weisberg's Applied Linear Regression
 outlines two such updating formulas for mean and sum of squares which are
 numerically superior to direct computation and the raw moment methods.
 
 Why exactly, are these numerically superior?  For what class of 
 examples? Looks like lots more operations to me, especially in the 
 UnivariateImpl case where the mean, variance are computed only when 
 demanded -- i.e., there is no requirement to generate mean[0], 
 mean[1],...etc.  I understand that adding (or better, swapping) 
 operations can sometimes add precision, but I am having a hard time 
 seeing exactly where the benefit is in this case, especially given the 
 amount of additional computation required.
  
  
  _Numerical Recipes in C_, 2nd ed. p. 613
  (http://lib-www.lanl.gov/numerical/bookcpdf/c14-1.pdf) explains:
  Many textbooks use the binomial theorem to expand out the definitions [of
  statistical quantities] into sums of various powers of the data, ...[,] but
  this can magnify the roundoff error by a large factor... .  A clever way to
  minimize roundoff error, especially for large samples, is to use the
 corrected
  two-pass algorithm [1]: First calculate x[bar, the mean of x], then
 calculate
  [formula for variance in terms of x - xbar.] ...
  
  [1] Algorithms for Computing the Sample Variance: Analysis and
  Recommendations, Chan, T.F., Golub, G.H., and LeVeque, R.J. 1983, American
  Statistician, vol. 37, pp. 242?247.
 
 Thany you, Al!
 
 I am convinced by this for that at least for the variance and higher 

cvs commit: jakarta-commons-sandbox/configuration project.xml

2003-06-04 Thread epugh
epugh   2003/06/03 07:15:23

  Modified:configuration project.xml
  Log:
  Pointed out that marking a release 1.0 for a sandbox component was premature.
  Cutting a new version for ibiblio based on prior version numbers.
  
  Revision  ChangesPath
  1.25  +2 -2  jakarta-commons-sandbox/configuration/project.xml
  
  Index: project.xml
  ===
  RCS file: /home/cvs/jakarta-commons-sandbox/configuration/project.xml,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- project.xml   2 Jun 2003 17:27:37 -   1.24
  +++ project.xml   3 Jun 2003 14:15:23 -   1.25
  @@ -10,7 +10,7 @@
 pomVersion3/pomVersion
 namecommons-configuration/name
 idcommons-configuration/id
  -  currentVersion1.0/currentVersion
  +  currentVersion1.0-dev-3.20030603.101200/currentVersion
 organization
   nameApache Software Foundation/name
   urlhttp://jakarta.apache.org//url
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [math] UnivariateImpl - when sumsq ~ xbar*xbar*((double) n)

2003-06-04 Thread Phil Steitz
Al Chou wrote:
--- [EMAIL PROTECTED] wrote:

Phil Steitz wrote:

Phil Steitz wrote:


[EMAIL PROTECTED] wrote:


Phil Steitz wrote:


Since xbar = sum/n, the change has no impact on the which sums are 
computed or squared. Instead of (sum/n)*(sum/n)*n your change just 
computes sum**2/n.  The difference is that you are a) eliminating 
one division by n and one multiplication by n (no doubt a good 
thing) and b) replacing direct multiplication with pow(-,2). The 
second of these used to be discouraged, but I doubt it makes any 
difference with modern compilers.  I would suggest collapsing the 
denominators and doing just one cast -- i.e., use

(1) variance = sumsq - sum * (sum/(double) (n * (n - 1)))

If

(2) variance = sumsq - (sum * sum)/(double) (n * (n - 1))) or

(3) variance = sumsq - Math.pow(sum,2)/(double) (n * (n - 1))) give

better accuracy, use one of them; but I would favor (1) since it 
will be able to handle larger positive sums.

I would also recommend forcing getVariance() to return 0 if the 
result is negative (which can happen in the right circumstances for 
any of these formulas).

Phil




collapsing is definitely good, but I'm not sure about these 
equations, from my experience, approaching (2) would look something 
more like

variance = (((double)n)*sumsq - (sum * sum)) / (double) (n * (n - 1));

see (5) in http://mathworld.wolfram.com/k-Statistic.html


That formula is the formula for the 2nd k-statistic, which is *not* 
the same as the sample variance.  The standard formula for the sample 
variance is presented in equation (3) here: 
http://mathworld.wolfram.com/SampleVariance.html or in any elementary 
statistics text. Formulas (1)-(3) above (and the current 
implementation) are all equivalent to the standard defintion.

What you have above is not.  The relation between the variance and the 
second k-statistic is presented in (9) on 
http://mathworld.wolfram.com/k-Statistic.html


I just realized that I misread Wolfram's definitions. What he is 
defining as the 2nd k-statistic is the correct formula for the sample 
variance.  I am also missing some parenthesis above.  Your formula is 
correct.  Sorry.

Phil

No problem, I just wanted to make sure we're all on the same page, there are 
always many times I am wrong too. 

Thanks for double checking,
-Mark




Uh, did we drop the idea of using the corrected two-pass algorithm for the
variance in the non-rolling case?  I excerpted that thread below.
I was going to mention that.  The discussion above regards the 
non-stored vector approach (UnivariateImpl).  I submitted some patches 
to the stored classes (StoredUnivariate,AbstractStoreUnivariate) last 
weekend (adding percentiles -- 
http://issues.apache.org/bugzilla/show_bug.cgi?id=20377) and I was 
waiting for them to get committed before suggesting this 
change/submitting the patch.

Given our recent NR entanglements, we need to make sure that if and when 
we apply that patch we document using the original source of the formula.

Thanks for the remider.

What is relevant to the UnivariateImpl computations is Brent's 
suggestion re: making running error corrections.  Have you 
investigated this further?



Al

Date: Mon, 26 May 2003 18:28:45 -0700 (PDT)
From: Al Chou [EMAIL PROTECTED]
Subject: [math] rolling formulas for statistics (was RE: Greetings from a
newcomer (b
--- Phil Steitz [EMAIL PROTECTED] wrote:

Al Chou wrote:

--- Phil Steitz [EMAIL PROTECTED] wrote:


Brent Worden wrote:

Mark R. Diggory wrote:
There are easy formulas for skewness and kurtosis based on the central
moments which could be used for the stored, univariate implementations:
http://mathworld.wolfram.com/Skewness.html
http://mathworld.wolfram.com/Kurtosis.html
As for the rolling implementations, there might be some more research
involved before using this method because of their memoryless property. 
But

for starters, the sum and sumsq can easily be replaced with there central
moment counterparts, mean and variance. There are formulas that update
those

metrics when a new value is added.  Weisberg's Applied Linear Regression
outlines two such updating formulas for mean and sum of squares which are
numerically superior to direct computation and the raw moment methods.
Why exactly, are these numerically superior?  For what class of 
examples? Looks like lots more operations to me, especially in the 
UnivariateImpl case where the mean, variance are computed only when 
demanded -- i.e., there is no requirement to generate mean[0], 
mean[1],...etc.  I understand that adding (or better, swapping) 
operations can sometimes add precision, but I am having a hard time 
seeing exactly where the benefit is in this case, especially given the 
amount of additional computation required.


_Numerical Recipes in C_, 2nd ed. p. 613
(http://lib-www.lanl.gov/numerical/bookcpdf/c14-1.pdf) explains:
Many textbooks use the binomial theorem to expand out the definitions [of
statistical quantities] into sums of various powers of 

DO NOT REPLY [Bug 20449] New: - Define flag for validating current page only in multipage form

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20449.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20449

Define flag for validating current page only in multipage form

   Summary: Define flag for validating current page only in
multipage form
   Product: Commons
   Version: unspecified
  Platform: All
OS/Version: All
Status: NEW
  Severity: Enhancement
  Priority: Other
 Component: Validator
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


In our current application, we have about 60 jsps.  The pages are set up in a 
wizard-like interface.  Depending on the data entered, a different path through 
the pages will be taken.  All data is captured in a single ActionForm, so we 
are using multipage validation.

Each page is numbered, but the pages are not numbered sequentially.  Depending 
on the data entered, a user on page 10 may be taken to page 8 or page 12.  In 
the current way that the multipage validation works, if there is a required 
field on page 8, but the user has been taken to page 12, it will generate an 
error requiring the field on page 8.

It would be nice if there were a flag that could be set that would allow the 
validate method to only validate the current page, rather than all pages less 
than or equal to the current page.  This would then need to be integrated into 
struts to set the flag.

Here is an example of how it could be done:

public ValidatorResults validate() throws ValidatorException {
ValidatorResults results = new ValidatorResults();
Locale locale = null;

if (hResources.containsKey(LOCALE_KEY)) {
locale = (Locale) hResources.get(LOCALE_KEY);
}
hResources.put(VALIDATOR_KEY, this);

if (locale == null) {
locale = Locale.getDefault();
}

if (resources == null) {
throw new ValidatorException(Resources not defined for Validator);
}

Form form = resources.get(locale, formName);
if (form != null) {
for (Iterator i = form.getFields().iterator(); i.hasNext();) {
Field field = (Field) i.next();
/***
 Check for the flag here 
/
if (validateCurrentPageOnly) {
if ((field.getPage() == page)  
(field.getDepends() != null)) {
validateField(field, results);
}
} else {
if ((field.getPage() = page)  
(field.getDepends() != null)) {
validateField(field, results);
}
}
}
}
return results;
}

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [math] UnivariateImpl - when sumsq ~ xbar*xbar*((double) n)

2003-06-04 Thread Mark R. Diggory
Al Chou wrote:

Uh, did we drop the idea of using the corrected two-pass algorithm for the
variance in the non-rolling case?  I excerpted that thread below.
Al
 

No, we definitely should plan to include this into StoredUnivariate (and 
when UnivariateImpl requires storage). I've been wondering if there was 
a way to combine the two approaches for the rolling implementation. I 
think what we're beginning to see is that there are many different 
benefits/limitations for the different implementations of Univariate 
(Rolling vs. Stored). I think what we'll find is that:

(1) UnivariateImpl is excellent for memory usage, with some limitations 
in accuracy due to roundoff error with extreme cases.

(2) StoredUnivariateImpl can support more accurate algorithms that 
reduce roundoff error, but with the trade off of greater memory 
requirements.

Thanks for bringing the subject up again.
-Mark

Date: Mon, 26 May 2003 18:28:45 -0700 (PDT)
From: Al Chou [EMAIL PROTECTED]
Subject: [math] rolling formulas for statistics (was RE: Greetings from a
newcomer (b
--- Phil Steitz [EMAIL PROTECTED] wrote:
 

Al Chou wrote:
   

--- Phil Steitz [EMAIL PROTECTED] wrote:

 

Brent Worden wrote:
   

Mark R. Diggory wrote:
   

There are easy formulas for skewness and kurtosis based on the central
moments which could be used for the stored, univariate implementations:
http://mathworld.wolfram.com/Skewness.html
http://mathworld.wolfram.com/Kurtosis.html
As for the rolling implementations, there might be some more research
involved before using this method because of their memoryless property. 
 

But
   

for starters, the sum and sumsq can easily be replaced with there central
moment counterparts, mean and variance. There are formulas that update
 

those
   

metrics when a new value is added.  Weisberg's Applied Linear Regression
outlines two such updating formulas for mean and sum of squares which are
numerically superior to direct computation and the raw moment methods.
 

Why exactly, are these numerically superior?  For what class of 
examples? Looks like lots more operations to me, especially in the 
UnivariateImpl case where the mean, variance are computed only when 
demanded -- i.e., there is no requirement to generate mean[0], 
mean[1],...etc.  I understand that adding (or better, swapping) 
operations can sometimes add precision, but I am having a hard time 
seeing exactly where the benefit is in this case, especially given the 
amount of additional computation required.
   

_Numerical Recipes in C_, 2nd ed. p. 613
(http://lib-www.lanl.gov/numerical/bookcpdf/c14-1.pdf) explains:
Many textbooks use the binomial theorem to expand out the definitions [of
statistical quantities] into sums of various powers of the data, ...[,] but
this can magnify the roundoff error by a large factor... .  A clever way to
minimize roundoff error, especially for large samples, is to use the
 

corrected
   

two-pass algorithm [1]: First calculate x[bar, the mean of x], then
 

calculate
   

[formula for variance in terms of x - xbar.] ...

[1] Algorithms for Computing the Sample Variance: Analysis and
Recommendations, Chan, T.F., Golub, G.H., and LeVeque, R.J. 1983, American
Statistician, vol. 37, pp. 242?247.
 

Thany you, Al!

I am convinced by this for that at least for the variance and higher 
order moments, whenever we actually store the values (that would include 
UnivariateImpl with finite window), we should use the corrected one [sic]
pass formula (14.1.8) from 
http://lib-www.lanl.gov/numerical/bookcpdf/c14-1.pdf.  It is a clever 
idea to explicitly correct for error in the mean.
   

=
Albert Davidson Chou
   Get answers to Mac questions at http://www.Mac-Mgrs.org/ .

__
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


DoubleMetaphone Implementation

2003-06-04 Thread Benjamin Walstrum
Hello - 

I am writing to inquire if anyone has any interest in
adding a Double Metaphone implementation to the
Commons Codec project.  To my knowlege there is not an
implementation of this in your latest release, and the
archive is down so I have no idea if someone else
already proposed it.

Double Metaphone is an enhancement to the orginal
Metaphone algorithm (already included with the Codec
project).  It is by the author of the original
Metaphone algorithm, Lawrence Philips.  For his
orginal article on the algorithm see
http://www.cuj.com/documents/s=8038/cuj0006philips/.

I needed to create an implementation in Java and was
unable to find a bug-free implementation, so I created
my own based from Lawrence Philips' original C++ code
(available at
ftp://ftp.cuj.com/pub/2000/1806/philips.zip).  Since
there are no reference implementations or test suites,
I have done my best to make sure that my implemenation
complies with other implementations available for
other languages.

If there is an interest in adding the Double Metaphone
algorithm, I will see about donating the source (it is
currently the property of my employer, but I suspect
that there will be little resistance to the donation).

Regards,

Ben Walstrum


__
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [math] matters of copyright

2003-06-04 Thread DavidNeuer
--- Phil Steitz [EMAIL PROTECTED] wrote:

 The dodgy bit is that someone
 else who did the same
 derivation and ended up with a similar
 implementation (e.g. NR) might 
 claim
 ownership of the algorithm itself.  This is why the
 limitation expressed 
 in the
 NR copyright statement is important.

In the US, at least, one cannont copyright or patent a bare algorithm. 
Mathematical formulae and algorithms of a purely mathematical nature are 
deemed ideas.

This fact alone is of course not enough to prevent somone from taking you 
to court, where you'd then have to prove that your software really was 
nothing more than a mathematical algorithm expressed in code. For a 
mathematical library, it would seem a relatively easy thing to prove.

Of course, IANAL.

Re: [math] UnivariateImpl - when sumsq ~ xbar*xbar*((double) n)

2003-06-04 Thread Mark R. Diggory
Phil Steitz wrote:

Al Chou wrote:

Uh, did we drop the idea of using the corrected two-pass algorithm 
for the
variance in the non-rolling case?  I excerpted that thread below.


I was going to mention that.  The discussion above regards the 
non-stored vector approach (UnivariateImpl).  I submitted some 
patches to the stored classes 
(StoredUnivariate,AbstractStoreUnivariate) last weekend (adding 
percentiles -- 
http://issues.apache.org/bugzilla/show_bug.cgi?id=20377) and I was 
waiting for them to get committed before suggesting this 
change/submitting the patch.

Given our recent NR entanglements, we need to make sure that if and 
when we apply that patch we document using the original source of the 
formula.

Thanks for the remider.

What is relevant to the UnivariateImpl computations is Brent's 
suggestion re: making running error corrections.  Have you 
investigated this further? 


I'll pick up this patch and apply it before any of my changes to 
UnivariateImpl. Thanks for redirecting my attention to it, I'm still 
getting used to going into bugzilla.

-Mark



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: [math] UnivariateImpl - when sumsq ~ xbar*xbar*((double) n)

2003-06-04 Thread Phil Steitz

--- Mark R. Diggory [EMAIL PROTECTED] wrote:
 Phil Steitz wrote:
 
  Al Chou wrote:
 
  Uh, did we drop the idea of using the corrected two-pass algorithm 
  for the
  variance in the non-rolling case?  I excerpted that thread below.
 
 
  I was going to mention that.  The discussion above regards the 
  non-stored vector approach (UnivariateImpl).  I submitted some 
  patches to the stored classes 
  (StoredUnivariate,AbstractStoreUnivariate) last weekend (adding 
  percentiles -- 
  http://issues.apache.org/bugzilla/show_bug.cgi?id=20377) and I was 
  waiting for them to get committed before suggesting this 
  change/submitting the patch.
 
  Given our recent NR entanglements, we need to make sure that if and 
  when we apply that patch we document using the original source of the 
  formula.
 
  Thanks for the remider.
 
  What is relevant to the UnivariateImpl computations is Brent's 
  suggestion re: making running error corrections.  Have you 
  investigated this further? 
 
 
 I'll pick up this patch and apply it before any of my changes to 
 UnivariateImpl. Thanks for redirecting my attention to it, I'm still 
 getting used to going into bugzilla.
 

Thanks, Mark.

While you're in the neighborhood, can you also commit the patch that I
submitted adding MathUtils: 
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20390

It occurs to me now that MathUtils, a simple utility class extending the basic
computing functions in java.lang.Math would make a nice place to encapsulate
our array-based mean, variance and standard deviation computations, using Al's
suggested improvements.  Users would likely find simple double[] |-  double
functions to compute means, variances, std dev, min and max directly useful and
the various Univariate implementations could leverage them.

Phil
 -Mark
 
 
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 


__
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [math] UnivariateImpl - when sumsq ~ xbar*xbar*((double) n)

2003-06-04 Thread Mark R. Diggory
Yes, I'm working my way through all the bug patches and trying apply 
them in order. Hopefully this shouldn't take too long, but I'm in and 
out of the office today, so it might not be til this evening.

-Mark

Phil Steitz wrote:

--- Mark R. Diggory [EMAIL PROTECTED] wrote:
 

Phil Steitz wrote:

   

Al Chou wrote:

 

Uh, did we drop the idea of using the corrected two-pass algorithm 
for the
variance in the non-rolling case?  I excerpted that thread below.
   

I was going to mention that.  The discussion above regards the 
non-stored vector approach (UnivariateImpl).  I submitted some 
patches to the stored classes 
(StoredUnivariate,AbstractStoreUnivariate) last weekend (adding 
percentiles -- 
http://issues.apache.org/bugzilla/show_bug.cgi?id=20377) and I was 
waiting for them to get committed before suggesting this 
change/submitting the patch.

Given our recent NR entanglements, we need to make sure that if and 
when we apply that patch we document using the original source of the 
formula.

Thanks for the remider.

What is relevant to the UnivariateImpl computations is Brent's 
suggestion re: making running error corrections.  Have you 
investigated this further? 
 

I'll pick up this patch and apply it before any of my changes to 
UnivariateImpl. Thanks for redirecting my attention to it, I'm still 
getting used to going into bugzilla.

   

Thanks, Mark.

While you're in the neighborhood, can you also commit the patch that I
submitted adding MathUtils: 
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20390

It occurs to me now that MathUtils, a simple utility class extending the basic
computing functions in java.lang.Math would make a nice place to encapsulate
our array-based mean, variance and standard deviation computations, using Al's
suggested improvements.  Users would likely find simple double[] |-  double
functions to compute means, variances, std dev, min and max directly useful and
the various Univariate implementations could leverage them.
Phil
 

-Mark



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
   



__
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


RE: [COLLECTIONS] FastHashMap performance

2003-06-04 Thread ericpabst

In your test, are you synchronizing the HashMap?  FastHashMap implements
smart synchronization.  It should not be compared with an unsynchronized
version of HashMap.

P.S.  In fact, it might be nice to allow doing this smart synchronization
on *any* Map.  i.e. alternative to Collections.synchronizeMap(Map).

Eric Pabst
Discover Financial Services
2500 Lake Park Blvd., 3N
West Valley City, UT 84120
Ph: 801.902.4636
Fax: 801.902.4123



|-+---
| |   Shapira, Yoav |
| |   [EMAIL PROTECTED]|
| |   i.com  |
| |   |
| |   06/03/03 12:54  |
| |   PM  |
| |   Please respond  |
| |   to Jakarta |
| |   Commons |
| |   Developers List|
| |   |
|-+---
  
---|
  |
   |
  |To:  Jakarta Commons Developers List [EMAIL PROTECTED]  
  |
  |cc: 
   |
  |Subject: RE: [COLLECTIONS] FastHashMap performance  
   |
  
---|





Howdy,
I understand it's just a wrapper, and that the
reading cannot be any faster.  I'm curious why the
writing is so much faster, even in the default (not fast)
mode of FastHashMap.

Yoav Shapira
Millennium ChemInformatics


-Original Message-
From: Juozas Baliuka [mailto:[EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 2:36 PM
To: Jakarta Commons Developers List
Subject: Re: [COLLECTIONS] FastHashMap performance

FastHashMap can not be faster than HasMap in single thread just because
it
uses HasMap to implement mappings:

 public Object get(Object key) {
if (fast) {
return (map.get(key));
} else {
synchronized (map) {
return (map.get(key));
}
}
}


/**
 * Construct an empty map.
 */
public FastHashMap() {
super();
this.map = new HashMap();
}

- Original Message -
From: Shapira, Yoav [EMAIL PROTECTED]
To: Jakarta Commons Developers List [EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 8:00 PM
Subject: RE: [COLLECTIONS] FastHashMap performance


Howdy,
Neither did I, but I just ran the attached benchmark and got surprising
results.  I hope the attachement comes through OK: if not I'll re-post
inline.  This benchmark has just one thread writing, one thread
reading,
which I expected to be the case where FastHashMap is not as efficient
as
HashMap.

The benchmark inserts 10 records in the map, then reads 1000 of
those at random.  I run this 10 times for each map implemention.  I'm
ignoring the first run read times as there's overhead in initializing
the Random generator.

I'm running this test on JDK 1.4.1, no special java switches, just java
MapTest on the command line, on Solaris 8.

I'm very curious to hear comments, ideas.  I was expecting to have to
write another test with multiple writing threads, but if FastHashMap is
faster even for the simple case, why ever use the regular HashMap?

The results are:
[MapTest: Map class: java.util.HashMap / Insert time: 1616 / Read time:
30]
[MapTest: Map class: org.apache.commons.collections.FastHashMap /
Insert
time: 1252 / Read time: 6]
[MapTest: Map class: java.util.HashMap / Insert time: 958 / Read time:
2]
[MapTest: Map class: org.apache.commons.collections.FastHashMap /
Insert
time: 1203 / Read time: 2]
[MapTest: Map class: java.util.HashMap / Insert time: 820 / Read time:
2]
[MapTest: Map class: org.apache.commons.collections.FastHashMap /
Insert
time: 988 / Read time: 2]
[MapTest: Map class: java.util.HashMap / Insert time: 781 / Read time:
2]
[MapTest: Map class: org.apache.commons.collections.FastHashMap /
Insert
time: 1033 / Read time: 3]
[MapTest: Map class: java.util.HashMap / Insert time: 720 / Read time:
2]
[MapTest: Map class: org.apache.commons.collections.FastHashMap /
Insert
time: 1067 / Read time: 2]
[MapTest: Map class: java.util.HashMap / Insert time: 1454 / Read time:
2]
[MapTest: Map class: org.apache.commons.collections.FastHashMap /
Insert
time: 1267 / Read time: 2]
[MapTest: Map class: java.util.HashMap / Insert time: 1534 / Read time:
2]
[MapTest: Map class: org.apache.commons.collections.FastHashMap /
Insert
time: 862 / Read time: 2]
[MapTest: Map class: java.util.HashMap / Insert time: 1433 / Read time:
2]
[MapTest: Map class: org.apache.commons.collections.FastHashMap /
Insert
time: 844 / Read time: 

RE: [COLLECTIONS] FastHashMap performance

2003-06-04 Thread Shapira, Yoav

Howdy,
I've had tests with both a normal hashmap (just new HashMap() used) and
a synchronized wrapper (Collections.synchronizedMap(new HashMap()).  I
would expect the normal HashMap to be faster than both the FastHashMap
and the synchronized HashMap.  Is my expectation wrong?

However, here are the results:
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1592 / Read time: 30]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1265 / Read time: 6]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
983 / Read time: 7]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1158 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1194 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
827 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 990 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1006 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
732 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 949 / Read time: 3]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1003 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1579 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 888 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1045 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
793 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1151 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
855 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
905 / Read time: 3]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1217 / Read time: 1]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1269 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1107 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1062 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1252 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
971 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1460 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1404 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1110 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1278 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1193 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1096 / Read time: 2]

Yoav Shapira
Millennium ChemInformatics


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 2:58 PM
To: Jakarta Commons Developers List
Subject: RE: [COLLECTIONS] FastHashMap performance


In your test, are you synchronizing the HashMap?  FastHashMap
implements
smart synchronization.  It should not be compared with an
unsynchronized
version of HashMap.

P.S.  In fact, it might be nice to allow doing this smart
synchronization
on *any* Map.  i.e. alternative to Collections.synchronizeMap(Map).

Eric Pabst
Discover Financial Services
2500 Lake Park Blvd., 3N
West Valley City, UT 84120
Ph: 801.902.4636
Fax: 801.902.4123



|-+---
| |   Shapira, Yoav |
| |   [EMAIL PROTECTED]|
| |   i.com  |
| |   |
| |   06/03/03 12:54  |
| |   PM  |
| |   Please respond  |
| |   to Jakarta |
| |   Commons |
| |   Developers List|
| |   |
|-+---

---
-
---|
  |
|
  |To:  Jakarta Commons Developers List commons-
[EMAIL PROTECTED]|
  |cc:
|
  |Subject: RE: [COLLECTIONS] FastHashMap performance
|

---
-
---|





Howdy,
I understand it's just a wrapper, and that the
reading cannot be any faster.  I'm curious why the
writing is so much faster, even in the default (not fast)
mode of FastHashMap.

Yoav Shapira
Millennium ChemInformatics



Re: DoubleMetaphone Implementation

2003-06-04 Thread Benjamin Walstrum
Tim - 

I have been in contact with Lawrence Philips who has
assured me that his code is in the public domain, and
is therefore completely available, eliminating any
legal difficulties related to the DoubleMetaphone
implementation.

Let me know if (and how) to proceed.

Ben

 
 Ben, thanks for the contribution.  We did have a
 DoubleMetaphone
 implementation available before the 1.1 release, but
 it was removed from
 the repository because of licensing questions
 relating to the fact that
 the code submitted was ported from a CPAN module
 covered under the Perl
 Artistic License.
 
 In this case, the file Dmetaph.cpp is Copyright
 1998, 1999 Lawrence
 Philips, and there I can find no mention of what
 terms this code falls
 under.  It may be wise to get the permission of the
 original author. 
 I'm interested in this as I found DoubleMetaphone to
 be a useful
 algorithm.
 
 Tim


__
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [COLLECTIONS] FastHashMap performance

2003-06-04 Thread Juozas Baliuka

I have tried to implement performance tests for maps, but it is not trivial.
Try to dissable GC and JIT for performance tests.

- Original Message -
From: Shapira, Yoav [EMAIL PROTECTED]
To: Jakarta Commons Developers List [EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 9:05 PM
Subject: RE: [COLLECTIONS] FastHashMap performance



Howdy,
I've had tests with both a normal hashmap (just new HashMap() used) and
a synchronized wrapper (Collections.synchronizedMap(new HashMap()).  I
would expect the normal HashMap to be faster than both the FastHashMap
and the synchronized HashMap.  Is my expectation wrong?

However, here are the results:
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1592 / Read time: 30]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1265 / Read time: 6]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
983 / Read time: 7]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1158 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1194 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
827 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 990 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1006 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
732 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 949 / Read time: 3]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1003 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1579 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 888 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1045 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
793 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1151 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
855 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
905 / Read time: 3]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1217 / Read time: 1]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1269 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1107 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1062 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1252 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
971 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1460 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1404 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1110 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1278 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1193 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1096 / Read time: 2]

Yoav Shapira
Millennium ChemInformatics


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 2:58 PM
To: Jakarta Commons Developers List
Subject: RE: [COLLECTIONS] FastHashMap performance


In your test, are you synchronizing the HashMap?  FastHashMap
implements
smart synchronization.  It should not be compared with an
unsynchronized
version of HashMap.

P.S.  In fact, it might be nice to allow doing this smart
synchronization
on *any* Map.  i.e. alternative to Collections.synchronizeMap(Map).

Eric Pabst
Discover Financial Services
2500 Lake Park Blvd., 3N
West Valley City, UT 84120
Ph: 801.902.4636
Fax: 801.902.4123



|-+---
| |   Shapira, Yoav |
| |   [EMAIL PROTECTED]|
| |   i.com  |
| |   |
| |   06/03/03 12:54  |
| |   PM  |
| |   Please respond  |
| |   to Jakarta |
| |   Commons |
| |   Developers List|
| |   |
|-+---

---
-
---|
  |
|
  |To:  Jakarta Commons Developers List commons-
[EMAIL PROTECTED]|
  |cc:
|
  |Subject: RE: [COLLECTIONS] FastHashMap performance
|


Re: [COLLECTIONS] FastHashMap performance

2003-06-04 Thread Juozas Baliuka
BTW This class can be removed in the future, It is not recommended to use it
(not thread safe, but adds synchronization overhead).

- Original Message -
From: Shapira, Yoav [EMAIL PROTECTED]
To: Jakarta Commons Developers List [EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 9:05 PM
Subject: RE: [COLLECTIONS] FastHashMap performance



Howdy,
I've had tests with both a normal hashmap (just new HashMap() used) and
a synchronized wrapper (Collections.synchronizedMap(new HashMap()).  I
would expect the normal HashMap to be faster than both the FastHashMap
and the synchronized HashMap.  Is my expectation wrong?

However, here are the results:
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1592 / Read time: 30]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1265 / Read time: 6]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
983 / Read time: 7]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1158 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1194 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
827 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 990 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1006 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
732 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 949 / Read time: 3]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1003 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1579 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 888 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1045 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
793 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1151 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
855 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
905 / Read time: 3]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1217 / Read time: 1]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1269 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1107 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1062 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1252 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
971 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1460 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1404 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1110 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1278 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert time:
1193 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert time:
1096 / Read time: 2]

Yoav Shapira
Millennium ChemInformatics


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 2:58 PM
To: Jakarta Commons Developers List
Subject: RE: [COLLECTIONS] FastHashMap performance


In your test, are you synchronizing the HashMap?  FastHashMap
implements
smart synchronization.  It should not be compared with an
unsynchronized
version of HashMap.

P.S.  In fact, it might be nice to allow doing this smart
synchronization
on *any* Map.  i.e. alternative to Collections.synchronizeMap(Map).

Eric Pabst
Discover Financial Services
2500 Lake Park Blvd., 3N
West Valley City, UT 84120
Ph: 801.902.4636
Fax: 801.902.4123



|-+---
| |   Shapira, Yoav |
| |   [EMAIL PROTECTED]|
| |   i.com  |
| |   |
| |   06/03/03 12:54  |
| |   PM  |
| |   Please respond  |
| |   to Jakarta |
| |   Commons |
| |   Developers List|
| |   |
|-+---

---
-
---|
  |
|
  |To:  Jakarta Commons Developers List commons-
[EMAIL PROTECTED]|
  |cc:
|
  |Subject: RE: [COLLECTIONS] FastHashMap performance
|


RE: [COLLECTIONS] FastHashMap performance

2003-06-04 Thread Shapira, Yoav

Howdy,
Assuming I agree that GC and JIT play a role in my benchmark (which I
don't without further convincing), how should I disable them?

I see -XX:-DisableExplicitGC is a VM option, but it only disables
explicit System.gc() calls, which I don't use anyways.  I couldn't find
an option to disable JIT.

The heap has ample space to hold the objects in my benchmark.  My
results don't change if I increase -Xmx or change -Xms to match -Xmx.

Yoav Shapira
Millennium ChemInformatics


-Original Message-
From: Juozas Baliuka [mailto:[EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 3:37 PM
To: Jakarta Commons Developers List
Subject: Re: [COLLECTIONS] FastHashMap performance


I have tried to implement performance tests for maps, but it is not
trivial.
Try to dissable GC and JIT for performance tests.

- Original Message -
From: Shapira, Yoav [EMAIL PROTECTED]
To: Jakarta Commons Developers List [EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 9:05 PM
Subject: RE: [COLLECTIONS] FastHashMap performance



Howdy,
I've had tests with both a normal hashmap (just new HashMap() used) and
a synchronized wrapper (Collections.synchronizedMap(new HashMap()).  I
would expect the normal HashMap to be faster than both the FastHashMap
and the synchronized HashMap.  Is my expectation wrong?

However, here are the results:
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1592 / Read time: 30]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1265 / Read time: 6]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
983 / Read time: 7]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1158 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1194 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
827 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 990 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1006 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
732 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 949 / Read time: 3]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1003 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
1579 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 888 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1045 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
793 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1151 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
855 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
905 / Read time: 3]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1217 / Read time: 1]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1269 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
1107 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1062 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1252 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
971 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1460 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1404 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
1110 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1278 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1193 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
1096 / Read time: 2]

Yoav Shapira
Millennium ChemInformatics


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 2:58 PM
To: Jakarta Commons Developers List
Subject: RE: [COLLECTIONS] FastHashMap performance


In your test, are you synchronizing the HashMap?  FastHashMap
implements
smart synchronization.  It should not be compared with an
unsynchronized
version of HashMap.

P.S.  In fact, it might be nice to allow doing this smart
synchronization
on *any* Map.  i.e. alternative to Collections.synchronizeMap(Map).

Eric Pabst
Discover Financial Services
2500 Lake Park Blvd., 3N
West Valley City, UT 84120
Ph: 801.902.4636
Fax: 801.902.4123



|-+---
| |   Shapira, Yoav |
| |   [EMAIL PROTECTED]|
| |   i.com  |
| 

Re: DoubleMetaphone Implementation

2003-06-04 Thread O'brien, Tim
On Tue, 2003-06-03 at 14:07, Benjamin Walstrum wrote:
 I have been in contact with Lawrence Philips who has
 assured me that his code is in the public domain, and
 is therefore completely available, eliminating any
 legal difficulties related to the DoubleMetaphone
 implementation.

I also wrote him a quick email, he gave me the same assurances.  Submit
you code to Bugzilla, and I'll make sure the patch is applied posthaste.

Tim


 
 Let me know if (and how) to proceed.
 
 Ben
 
  
  Ben, thanks for the contribution.  We did have a
  DoubleMetaphone
  implementation available before the 1.1 release, but
  it was removed from
  the repository because of licensing questions
  relating to the fact that
  the code submitted was ported from a CPAN module
  covered under the Perl
  Artistic License.
  
  In this case, the file Dmetaph.cpp is Copyright
  1998, 1999 Lawrence
  Philips, and there I can find no mention of what
  terms this code falls
  under.  It may be wise to get the permission of the
  original author. 
  I'm interested in this as I found DoubleMetaphone to
  be a useful
  algorithm.
  
  Tim
 
 
 __
 Do you Yahoo!?
 Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
 http://calendar.yahoo.com
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons/lang/src/test/org/apache/commons/lang/builder ToStringBuilderTest.java

2003-06-04 Thread ggregory
ggregory2003/06/03 13:15:33

  Modified:lang/src/test/org/apache/commons/lang/builder
ToStringBuilderTest.java
  Log:
  Refactor code in ToStringBuilder.reflectionToString(...) into a new subclass called 
ReflectionToStringBuilder.
  All of the ToStringBuilder.reflectionToString(...) forward their calls to equivalent 
methods in ReflectionToStringBuilde.
  ReflectionToStringBuilder can  be subclassed to provide Field or value filtering.
  Since the unit tests exercis ToStringBuilder.reflectionToString(...) which then 
forwards those calls to ReflectionToStringBuilder, and ReflectionToStringBuilder does 
not provide new features (yet), there are no new unit test cases (yet).
  
  Revision  ChangesPath
  1.8   +7 -3  
jakarta-commons/lang/src/test/org/apache/commons/lang/builder/ToStringBuilderTest.java
  
  Index: ToStringBuilderTest.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/lang/src/test/org/apache/commons/lang/builder/ToStringBuilderTest.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ToStringBuilderTest.java  27 Mar 2003 08:55:22 -  1.7
  +++ ToStringBuilderTest.java  3 Jun 2003 20:15:32 -   1.8
  @@ -217,6 +217,10 @@
   //
   
   public void assertReflectionArray(String expected, Object actual) {
  +if (actual == null) {
  +// Until ToStringBuilder supports null objects.
  +return;
  +}
   assertEquals(expected, ToStringBuilder.reflectionToString(actual));
   assertEquals(expected, ToStringBuilder.reflectionToString(actual, null));
   assertEquals(expected, ToStringBuilder.reflectionToString(actual, null, 
true));
  @@ -545,7 +549,7 @@
   public void testSimpleReflectionObjectCycle() throws Exception {
   SimpleReflectionTestFixture simple = new SimpleReflectionTestFixture();
   simple.o = simple;
  -assertTrue(ToStringBuilder.getReflectionRegistry().isEmpty());
  +assertTrue(ReflectionToStringBuilder.getRegistry().isEmpty());
   assertEquals(this.toBaseString(simple) + [o= + this.toBaseString(simple) 
+ ], simple.toString());
   this.validateEmptyReflectionRegistry();
   }
  @@ -595,7 +599,7 @@
   }
   
   void validateEmptyReflectionRegistry() {
  -assertTrue(ToStringBuilder.getReflectionRegistry().isEmpty());
  +assertTrue(ReflectionToStringBuilder.getRegistry().isEmpty());
   }
   //  End: Reflection cycle tests
   
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [COLLECTIONS] FastHashMap performance

2003-06-04 Thread DavidNeuer
From Java theory and practice: Urban performance legends 
(http://www-106.ibm.com/developerworks/library/j-jtp04223.html?ca=dnt-416):

First of all, microbenchmarks rarely measure what you think they're 
measuring. In the presence of dynamic compilation, you have no idea what 
bytecode the JVM decides to convert into native code or when, so you can't 
really compare apples to apples.

It's difficult to say why you're getting the results you're getting w/ out 
seeing the benchmark code. But as the above paragraph states, even w/ your 
code, it'd be tough to say for sure why the graph is the way it is w/out 
seeing the bytecode your particular compiler is generating and knowing the 
details of the way the particular JVM you're using dynamically converts 
the bytecode to native code.

This isn't to say that the results aren't interesting, they're just not 
horribly meaningful on their own. It'd be interesting to see the code and 
see the results of running the benchmark under a profiler to see where 
time was actually being spent, and running more than just 10 runs per 
object type.

Dave





Shapira, Yoav [EMAIL PROTECTED]
06/03/2003 03:52 PM
Please respond to Jakarta Commons Developers List
 
To: Jakarta Commons Developers List 
[EMAIL PROTECTED]
cc: 
Subject:RE: [COLLECTIONS] FastHashMap performance



Howdy,
Assuming I agree that GC and JIT play a role in my benchmark (which I
don't without further convincing), how should I disable them?

I see -XX:-DisableExplicitGC is a VM option, but it only disables
explicit System.gc() calls, which I don't use anyways.  I couldn't find
an option to disable JIT.

The heap has ample space to hold the objects in my benchmark.  My
results don't change if I increase -Xmx or change -Xms to match -Xmx.

Yoav Shapira
Millennium ChemInformatics


-Original Message-
From: Juozas Baliuka [mailto:[EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 3:37 PM
To: Jakarta Commons Developers List
Subject: Re: [COLLECTIONS] FastHashMap performance


I have tried to implement performance tests for maps, but it is not
trivial.
Try to dissable GC and JIT for performance tests.

- Original Message -
From: Shapira, Yoav [EMAIL PROTECTED]
To: Jakarta Commons Developers List [EMAIL PROTECTED]
Sent: Tuesday, June 03, 2003 9:05 PM
Subject: RE: [COLLECTIONS] FastHashMap performance



Howdy,
I've had tests with both a normal hashmap (just new HashMap() used) and
a synchronized wrapper (Collections.synchronizedMap(new HashMap()).  I
would expect the normal HashMap to be faster than both the FastHashMap
and the synchronized HashMap.  Is my expectation wrong?

However, here are the results:
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1592 / Read time: 30]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1265 / Read time: 6]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
983 / Read time: 7]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1158 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1194 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
827 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 990 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1006 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
732 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 949 / Read time: 3]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1003 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
1579 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 888 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1045 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
793 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1151 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
855 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
905 / Read time: 3]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1217 / Read time: 1]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1269 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
1107 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: false / Insert
time: 1062 / Read time: 2]
[MapTest: FastHashMap: true / Synchronized wrapper: false / Insert
time:
1252 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized wrapper: true / Insert
time:
971 / Read time: 2]
[MapTest: FastHashMap: false / Synchronized 

cvs commit: jakarta-commons/lang/src/java/org/apache/commons/lang IllegalClassException.java

2003-06-04 Thread ggregory
ggregory2003/06/03 13:49:59

  Modified:lang/src/java/org/apache/commons/lang
IllegalClassException.java
  Log:
  Minor Javadoc fix and improvements.
  
  Revision  ChangesPath
  1.3   +8 -7  
jakarta-commons/lang/src/java/org/apache/commons/lang/IllegalClassException.java
  
  Index: IllegalClassException.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/IllegalClassException.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- IllegalClassException.java16 May 2003 16:14:16 -  1.2
  +++ IllegalClassException.java3 Jun 2003 20:49:59 -   1.3
  @@ -54,16 +54,17 @@
   package org.apache.commons.lang;
   
   /**
  - * Thrown when an object is an instance of an unexpected class.
  + * Thrown when an object is an instance of an unexpected type (a class or 
interface).
* 
* @author Matthew Hawthorne
  + * @author Gary Gregory
* @since 2.0
* @version $Id$
*/
   public class IllegalClassException extends IllegalArgumentException {
   
   /**
  - * Instantiates with the specified classes.
  + * Instantiates with the specified types (classes or interfaces).
* 
* @param expected  the expected type
* @param actual  the actual type
  @@ -72,12 +73,12 @@
   super(
   Expected: 
   + safeGetClassName(expected)
  -+ , Actual: 
  ++ , actual: 
   + safeGetClassName(actual));
   }
   
   /**
  - * Instantiates with the specified classes.
  + * Instantiates with the specified message.
* 
* @param message  the exception message
*/
  @@ -86,10 +87,10 @@
   }
   
   /**
  - * Gets a classname without throwing an Exception.
  + * Returns the class name or codenull/code if the class is 
codenull/code.
* 
* @param cls  a codeClass/code
  - * @return the name of codec/code, or a codenull/code 
codeString/code
  + * @return the name of codecls/code, or codenull/code if if 
codecls/code is codenull/code.
*/
   private static final String safeGetClassName(Class cls) {
   return cls == null ? null : cls.getName();
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [COLLECTIONS] FastHashMap performance

2003-06-04 Thread Shapira, Yoav
Howdy,

From Java theory and practice: Urban performance legends
(http://www-106.ibm.com/developerworks/library/j-jtp04223.html?ca=dnt-4
16):

I'd read that when it was posted: it's a good and interesting article.
Thank you for sending the link anyways.  I agree with many of the points
made in the article.

It's difficult to say why you're getting the results you're getting w/
out
seeing the benchmark code. But as the above paragraph states, even w/
your

I tried attaching it as a .java file. I'll try again as a jar file which
contains the bytecode, source code, my system info, my JDK info, and
sample results.

code, it'd be tough to say for sure why the graph is the way it is
w/out
seeing the bytecode your particular compiler is generating and knowing
the
details of the way the particular JVM you're using dynamically converts
the bytecode to native code.

I agree.  So how would I ago about answering this why question?
Namely, why is FastHashMap writing faster than java.util.HashMap
writing?

This isn't to say that the results aren't interesting, they're just not
horribly meaningful on their own. It'd be interesting to see the code
and
see the results of running the benchmark under a profiler to see where
time was actually being spent, and running more than just 10 runs per
object type.

I agree with both.  I will also run it on different operating systems to
see if the behavior is consistent.  I will post more information as time
permits.

Yoav Shapira



This e-mail, including any attachments, is a confidential business communication, and 
may contain information that is confidential, proprietary and/or privileged.  This 
e-mail is intended only for the individual(s) to whom it is addressed, and may not be 
saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) 
intended recipient, please immediately delete this e-mail from your computer system 
and notify the sender.  Thank you.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Re: [math] matters of copyright

2003-06-04 Thread robert burrell donkin
On Tuesday, June 3, 2003, at 12:41 AM, Phil Steitz wrote:

--- robert burrell donkin [EMAIL PROTECTED] wrote:
snip

it seems to me that brent is assuring us that he went back to the
mathematical basis of the algorithm and started from that. a clean
implementation based on the mathematics should not infringe the copyright
nor is it ethically dubious (providing that the correct credits for the
original mathematics are provided if that's possible). what we need to
think about is how we can demonstrate this to everybody's satisfaction.
the openness of the ASF is one of it's great strengths and there should 
be
some way we can show the right way to develop new implementations. (of
course, we need to work out what that is first ;)
From Brent's notes on the gamma function implementations, I at least am
convinced that his implementation was developed from the math, not the NR
algorithm or code.  The dodgy bit is that someone else who did the same
derivation and ended up with a similar implementation (e.g. NR) might 
claim
ownership of the algorithm itself.  This is why the limitation expressed 
in the
NR copyright statement is important.
definitely. i think that there are two important lessons here.

the first that brent was right in the way that he went about demonstration 
that he developed his implementation from the mathematics. we should 
probably think about asking for mathematical descriptions of the 
algorithms so addition to the developers manual. if these are not 
available on the web then we should make efforts (as brent did) to create 
some notes and add them to the developers guide.

the second is that we're going to need to audit our implementations 
against copyrighted ones. (i'm hoping that some better qualified folks 
might volunteer for this.) if we find any that are too similar, then we 
should use apache development resources to create fresh clean room 
implementations.

i believe that providing new implementation from the basic mathematics is
what commons-math should do. there is no real reason why we should start
from existing code. if we can't, then maybe that's a sign that we're
moving away from our aims.
The one exception to this is obviously existing code that is owned by the
contributor.  Even in this case, however, refactoring will usually be 
required
(certainly has been for me :-)).
maybe 'clean and original implementations created by commons-math 
developers' was probably closer to what i wanted to say than 'new 
implementations'.

- robert

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


cvs commit: jakarta-commons/httpclient/xdocs cookies.xml

2003-06-04 Thread olegk
olegk   2003/06/03 14:26:35

  Modified:httpclient/xdocs cookies.xml
  Log:
  Minor corrections in the Cookies guide
  
  Contributed by Oleg Kalnichevski
  
  Revision  ChangesPath
  1.2   +46 -26jakarta-commons/httpclient/xdocs/cookies.xml
  
  Index: cookies.xml
  ===
  RCS file: /home/cvs/jakarta-commons/httpclient/xdocs/cookies.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- cookies.xml   1 Jun 2003 18:51:23 -   1.1
  +++ cookies.xml   3 Jun 2003 21:26:35 -   1.2
  @@ -5,6 +5,7 @@
 properties
   titleHttpClient Cookie Guide/title
   author email=[EMAIL PROTECTED]Adrian Sutton/author
  +author email=[EMAIL PROTECTED]Oleg Kalnichevski/author
   revision$Id$/revision
 /properties
   
  @@ -16,20 +17,32 @@
 server when required.  It is also possible to manually set cookies to be
 sent to the server./p
   
  -  pUnfortunately, there are two major standards for handling Cookies,
  -  RFC2109 and the Netscape Cookie draft, and a large number of
  -  implementations are completely non-standard.  To deal with this,
  -  HttpClient provides configurable cookie specifications. This guide will
  -  explain how to use the different cookie specifications and identify some
  -  of the common problems people have when using Cookies and HttpClient./p
  +  pUnfortunately, there are several at times conflicting  standards for 
  +  handling Cookies: the Netscape Cookie draft, RFC2109, RFC2965 and a large
  +  number of vendor specific implementations that are compliant with neither 
  +  specification. To deal with this, HttpClient provides policy driven cookie 
  +  management. This guide will explain how to use the different cookie 
  +  specifications and identify some of the common problems people have when 
  +  using Cookies and HttpClient./p
   /section
   
   section name=Available Specifications
 pThe following cookie specifications are supported by HttpClient./p
   
  +  subsection name=Netscape Draft
  +pThe Netscape draft is the original cookie specification which formed
  +the basis for RFC2109.  Despite this it has some significant
  +differences with RFC2109 and thus may be required for compatibility
  +with some servers./p
  +
  +pThe Netscape cookie draft is available at a
  +
href=http://wp.netscape.com/newsref/std/cookie_spec.html;http://wp.netscape.com/newsref/std/cookie_spec.html/a
  +/p
  +  /subsection
  +
 subsection name=RFC2109
  -pRFC2109 is the final published specification released by the W3C.
  -Theoretically, all servers that handle cookies should use this
  +pRFC2109 is the first official cookie specification released by the W3C.
  +Theoretically, all servers that handle version 1 cookies should use this
   specification and as such this specification is used by default within
   HttpClient./p
   
  @@ -43,23 +56,31 @@
   /p
 /subsection
   
  -  subsection name=Netscape Draft
  -pThe Netscape draft is the original cookie specification which formed
  -the basis for RFC2109.  Despite this it has some significant
  -differences with RFC2109 and thus may be required for compatibility
  -with some servers./p
  -
  -pThe Netscape cookie draft is available at a
  -
href=http://wp.netscape.com/newsref/std/cookie_spec.html;http://wp.netscape.com/newsref/std/cookie_spec.html/a
  -/p
  -  /subsection
  -
 subsection name=Compatibility
   pThe compatibility specification is designed to be compatible with as
   many different servers as possible even if they are not completely
  -standards compliant.  If you are encountering problems with parsing
  +standards compliant. If you are encountering problems with parsing
   cookies, you should probably try using this specification./p
 /subsection
  +
  +/section
  +
  +section name=Unsupported Specifications
  +  pThe following cookie specifications are not presently supported by 
HttpClient./p
  +
  +  subsection name=RFC2965
  +pRFC2965 defines cookie version 2 and attempts to address the 
shortcomings 
  +of the RFC2109 regarding cookie version 1. RFC2965 is intended to 
eventually 
  +supersede RFC2109./p
  +
  +pCurrently HttpClient does not implement this specification. Support for
  +   version 2 cookies will be added in the future/p
  +
  +pRFC2965 is available at
  +a 
href=http://www.w3.org/Protocols/rfc2965/rfc2965.txt;http://www.w3.org/Protocols/rfc2965/rfc2965.txt/a
  +/p
  +  /subsection
  +  
   /section
   
   section name=Specifying the 

Re: [math] matters of copyright

2003-06-04 Thread Phil Steitz
robert burrell donkin wrote:
On Tuesday, June 3, 2003, at 12:41 AM, Phil Steitz wrote:

--- robert burrell donkin [EMAIL PROTECTED] wrote:


snip

it seems to me that brent is assuring us that he went back to the
mathematical basis of the algorithm and started from that. a clean
implementation based on the mathematics should not infringe the 
copyright
nor is it ethically dubious (providing that the correct credits for the
original mathematics are provided if that's possible). what we need to
think about is how we can demonstrate this to everybody's satisfaction.
the openness of the ASF is one of it's great strengths and there 
should be
some way we can show the right way to develop new implementations. (of
course, we need to work out what that is first ;)


From Brent's notes on the gamma function implementations, I at least am
convinced that his implementation was developed from the math, not the NR
algorithm or code.  The dodgy bit is that someone else who did the same
derivation and ended up with a similar implementation (e.g. NR) might 
claim
ownership of the algorithm itself.  This is why the limitation 
expressed in the
NR copyright statement is important.


definitely. i think that there are two important lessons here.

the first that brent was right in the way that he went about 
demonstration that he developed his implementation from the mathematics. 
we should probably think about asking for mathematical descriptions of 
the algorithms so addition to the developers manual
Have you had a chance to look at the draft developer's guidelines that I 
started and submitted here:

http://issues.apache.org/bugzilla/show_bug.cgi?id=20404

We could add a note on this to the section called documentation.


if these are not 
available on the web then we should make efforts (as brent did) to 
create some notes and add them to the developers guide.
I agree.  I think that the best approach will be to include full 
descriptions of mathematical algorithms not available on the web using 
links in the javadoc to the commons-math developers/users guide.

the second is that we're going to need to audit our implementations 
against copyrighted ones. (i'm hoping that some better qualified folks 
might volunteer for this.) if we find any that are too similar, then we 
should use apache development resources to create fresh clean room 
implementations.
I don't understand exactly what you mean here.  It might be difficult to 
find people with the combined legal and math skills to audit the code 
for copyright infringement. What did you have in mind here?

i believe that providing new implementation from the basic 
mathematics is
what commons-math should do. there is no real reason why we should start
from existing code. if we can't, then maybe that's a sign that we're
moving away from our aims.


The one exception to this is obviously existing code that is owned by the
contributor.  Even in this case, however, refactoring will usually be 
required
(certainly has been for me :-)).


maybe 'clean and original implementations created by commons-math 
developers' was probably closer to what i wanted to say than 'new 
implementations'.

- robert

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Any Plans for an Execute library?

2003-06-04 Thread Maciej Zawadzki
Sorry, I was looking at the commons-sandbox.  There is a launcher in there.

--Maciej

Shapira, Yoav wrote:
I don't see a commons launcher component.  Are you talking about the
Catalina launcher, i.e. the classes in org.apache.catalina.launcher?
Yoav Shapira



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


[beanutils] extending BasicDynaBean with toString, equals, and hashCode

2003-06-04 Thread Steven Caswell
I've written an extended dynabean class that extends (actually, wraps)
BasicDynaBean to add toString and equals. The toString method uses
commons.lang.ToStringBuilder to build the toString, and
commons.lang.EqualsBuilder to perform the equals comparison. I know it needs
hashCode, I just haven't taken the time to add it yet.

Is there any interest in having this class donated to commons-beanutils?


Steven Caswell
[EMAIL PROTECTED]
In our own native land, in defense of the freedom that is our birthright,
and which we ever enjoyed till the late violation of it -- for the
protection of our property, acquired solely by the honest industry of our
fore-fathers and ourselves, against violence actually offered, we have taken
up arms. We shall lay them down when hostilities shall cease on the part of
the aggressors, and all danger of their being renewed shall be removed, and
not before. - Thomas Jefferson 




cvs commit: jakarta-commons/cli/src/java/org/apache/commons/cli OptionGroup.java ExclusiveOptionGroup.java AnonymousArgumentImpl.java Options.java InclusiveOptionGroup.java CommandLineParser.java

2003-06-04 Thread jkeyes
jkeyes  2003/06/03 18:11:41

  Modified:cli/src/java/org/apache/commons/cli Tag: cli_1_x
OptionGroup.java ExclusiveOptionGroup.java
AnonymousArgumentImpl.java Options.java
InclusiveOptionGroup.java CommandLineParser.java
  Log:
  inital work on new OptionGroup support, some tidy up remains
  added license
  removed tabs
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.8.2.2   +67 -9 
jakarta-commons/cli/src/java/org/apache/commons/cli/OptionGroup.java
  
  Index: OptionGroup.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli/OptionGroup.java,v
  retrieving revision 1.8.2.1
  retrieving revision 1.8.2.2
  diff -u -r1.8.2.1 -r1.8.2.2
  --- OptionGroup.java  19 May 2003 20:59:44 -  1.8.2.1
  +++ OptionGroup.java  4 Jun 2003 01:11:40 -   1.8.2.2
  @@ -1,16 +1,74 @@
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * 
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2003 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *notice, this list of conditions and the following disclaimer in
  + *the documentation and/or other materials provided with the
  + *distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *any, must include the following acknowlegement:
  + *   This product includes software developed by the
  + *Apache Software Foundation (http://www.apache.org/).
  + *Alternately, this acknowlegement may appear in the software itself,
  + *if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names The Jakarta Project, Commons, and Apache Software
  + *Foundation must not be used to endorse or promote products derived
  + *from this software without prior written permission. For written
  + *permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called Apache
  + *nor may Apache appear in their names without prior written
  + *permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * 
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * http://www.apache.org/;.
  + *
  + */
   package org.apache.commons.cli;
   
  -import java.util.Set;
  -
   /**
  - * @author jkeyes
  + * @author John Keyes
*/
   public interface OptionGroup {
   
  - Set getOptions();
  - boolean containsOption(Option option);
  - boolean isSelected();
  - void setSelected(Option option);
  - void reset();
  - 
  +
  +boolean hasOption(String name);
  +
  +Option getOption(String name);
  +
  +void isValid(CommandLine line) throws ParseException;
   }
  
  
  
  1.1.2.2   +176 -84   
jakarta-commons/cli/src/java/org/apache/commons/cli/Attic/ExclusiveOptionGroup.java
  
  Index: ExclusiveOptionGroup.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli/Attic/ExclusiveOptionGroup.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- ExclusiveOptionGroup.java 19 May 2003 20:57:51 -  1.1.2.1
  +++ ExclusiveOptionGroup.java 4 Jun 2003 01:11:40 -   1.1.2.2
  @@ -1,101 +1,193 @@
  +/*

cvs commit: jakarta-commons/cli/src/java/org/apache/commons/cli CommandLineParser.java

2003-06-04 Thread jkeyes
jkeyes  2003/06/03 18:23:49

  Modified:cli/src/java/org/apache/commons/cli Tag: cli_1_x
CommandLineParser.java
  Log:
  changed classname
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.6.2.6   +4 -4  
jakarta-commons/cli/src/java/org/apache/commons/cli/CommandLineParser.java
  
  Index: CommandLineParser.java
  ===
  RCS file: 
/home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli/CommandLineParser.java,v
  retrieving revision 1.6.2.5
  retrieving revision 1.6.2.6
  diff -u -r1.6.2.5 -r1.6.2.6
  --- CommandLineParser.java4 Jun 2003 01:11:41 -   1.6.2.5
  +++ CommandLineParser.java4 Jun 2003 01:23:49 -   1.6.2.6
  @@ -118,7 +118,7 @@
   processOptionGroup(options, iter, creator, arg);
   }
   else if (
  -this.style == NewCommandLineParser.POSIX
  +this.style == CommandLineParser.POSIX
!arg.equals(-)
arg.startsWith(-)
!arg.startsWith(--)) {
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons/cli project.properties

2003-06-04 Thread jkeyes
jkeyes  2003/06/03 18:26:34

  Modified:cli  Tag: cli_1_x project.properties
  Log:
  sun coding standards
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.5.2.1   +0 -3  jakarta-commons/cli/project.properties
  
  Index: project.properties
  ===
  RCS file: /home/cvs/jakarta-commons/cli/project.properties,v
  retrieving revision 1.5
  retrieving revision 1.5.2.1
  diff -u -r1.5 -r1.5.2.1
  --- project.properties12 Jan 2003 23:04:26 -  1.5
  +++ project.properties4 Jun 2003 01:26:34 -   1.5.2.1
  @@ -7,6 +7,3 @@
   compile.deprecation = off
   
   maven.jarResources.basedir=${basedir}/src/java
  - 
  -# use turbine coding standards
  -maven.checkstyle.format = turbine
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 20373] - [math] t distribution patch

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20373.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20373

[math] t distribution patch





--- Additional Comments From [EMAIL PROTECTED]  2003-06-04 02:17 ---
This patch can be ignored as it is dependent on the now omitted, Gamma.java.  I 
currently working on resubmitting a new chi-squared and t distribution patch 
without any reference to NR.  I've found most the needed formulas at mathworld.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons-sandbox/math/src/java/org/apache/commons/math RootFinding.java

2003-06-04 Thread mdiggory
mdiggory2003/06/03 19:17:17

  Modified:math/src/java/org/apache/commons/math RootFinding.java
  Log:
  PR: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20375
  Submitted by: Albert Davidson Chou
  
  Revision  ChangesPath
  1.2   +61 -33
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/RootFinding.java
  
  Index: RootFinding.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/RootFinding.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- RootFinding.java  29 May 2003 19:34:37 -  1.1
  +++ RootFinding.java  4 Jun 2003 02:17:17 -   1.2
  @@ -55,83 +55,111 @@
   
   /**
* Utility class comprised of root finding techniques.
  - * 
  + *
* @author Brent Worden
*/
   public class RootFinding {
   /** Maximum allowed numerical error. */
   private static final double EPSILON = 10e-9;
   
  - /**
  -  * Default constructor. Prohibit construction.
  -  */
  - private RootFinding(){
  - super();
  - }
  +/**
  + * Default constructor. Prohibit construction.
  + */
  +private RootFinding(){
  +super();
  +}
   
   /**
* For a function, f, this method returns two values, a and b that bracket
* a root of f.  That is to say, there exists a value c between a and b
* such that f(c) = 0.
  - * 
  + *
* @param function the function
* @param initial midpoint of the returned range.
* @param lowerBound for numerical safety, a never is less than this value.
* @param upperBound for numerical safety, b never is greater than this value.
* @return a two element array holding {a, b}.
*/
  -public static double[] bracket(UnivariateFunction function, 
  -   double initial, 
  -   double lowerBound, 
  +public static double[] bracket(UnivariateFunction function,
  +   double initial,
  +   double lowerBound,
  double upperBound){
  +return bracket( function, initial, lowerBound, upperBound, 
Integer.MAX_VALUE ) ;
  +}
  +
  +/**
  + * For a function, f, this method returns two values, a and b that bracket
  + * a root of f.  That is to say, there exists a value c between a and b
  + * such that f(c) = 0.
  + *
  + * @param function the function
  + * @param initial midpoint of the returned range.
  + * @param lowerBound for numerical safety, a never is less than this value.
  + * @param upperBound for numerical safety, b never is greater than this value.
  + * @param maximumIterations to guard against infinite looping, maximum number 
of iterations to perform
  + * @return a two element array holding {a, b}.
  + */
  +public static double[] bracket(UnivariateFunction function,
  +   double initial,
  +   double lowerBound,
  +   double upperBound,
  +   int maximumIterations){
   double a = initial;
   double b = initial;
   double fa;
   double fb;
  -
  -do {
  +int numIterations = 0 ;
  +
  +do {
   a = Math.max(a - 1.0, lowerBound);
   b = Math.min(b + 1.0, upperBound);
   fa = function.evaluate(a);
   fb = function.evaluate(b);
  -} while(fa * fb  0.0);
  -
  -return new double[]{a, b};  
  +numIterations += 1 ;
  +} while ( (fa * fb  0.0)  ( numIterations  maximumIterations ) );
  +
  +return new double[]{a, b};
   }
  -
  +
   /**
* For a function, f, this method returns a root c that lies between a and
* b, and satisfies f(c) = 0.
  - * 
  + *
* @param function the function
  - * @param a lower bound of a root
  - * @param b upper bound of a root
  + * @param a lower (or upper) bound of a root
  + * @param b upper (or lower) bound of a root
* @return a root of f
*/
  -public static double bisection(UnivariateFunction function, 
  -   double a, 
  +public static double bisection(UnivariateFunction function,
  +   double a,
  double b){
   double m;
   double fm;
   double fa;
  -double fb;
  -
  +
  +if ( b  a )
  +{
  +double xtemp = a ;
  +a = b ;
  +b = xtemp ;
  +}
  +
  +fa = function.evaluate(a);
  +
   while(Math.abs(a - b)  EPSILON){
  

DO NOT REPLY [Bug 20375] - [math] bisection root finder, safety and efficiency enhancements

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20375.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20375

[math] bisection root finder, safety and efficiency enhancements

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-06-04 02:20 ---
I applied this patch and am closing this bug report

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat StoreUnivariate.java AbstractStoreUnivariate.java

2003-06-04 Thread mdiggory
mdiggory2003/06/03 19:22:48

  Modified:math/src/java/org/apache/commons/math/stat
StoreUnivariate.java AbstractStoreUnivariate.java
  Log:
  PR: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20377
  Submitted by: Phil Steitz
  
  Revision  ChangesPath
  1.2   +31 -1 
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/StoreUnivariate.java
  
  Index: StoreUnivariate.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/StoreUnivariate.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- StoreUnivariate.java  29 May 2003 20:35:45 -  1.1
  +++ StoreUnivariate.java  4 Jun 2003 02:22:48 -   1.2
  @@ -113,12 +113,24 @@
   
   /**
* Returns the current set of values in an array of double primitives.  
  - * The order of addition is preserved
  + * The order of addition is preserved.  The returned array is a fresh
  + * copy of the underlying data -- i.e., it is not a reference to the
  + * stored data.
* 
* @return returns the current set of numbers in the order in which they 
* were added to this set
*/
   public abstract double[] getValues();
  +
  +/**
  + * Returns the current set of values in an array of double primitives,  
  + * sorted in ascending order.  The returned array is a fresh
  + * copy of the underlying data -- i.e., it is not a reference to the
  + * stored data.
  + * 
  + * @return returns the current set of numbers sorted in ascending order
  + */
  +public abstract double[] getSortedValues(); 
   
   /**
* Returns the element at the specified index
  @@ -126,5 +138,23 @@
* @return return the element at the specified index
*/
   public abstract double getElement(int index);
  +
  +/**
  + * Returns an estimate for the pth percentile of the stored values,
  + * following the interpolation-adjusted defintion presented 
  + * a href=http://www.utdallas.edu/~ammann/stat5311/node8.html;here/ap
  + *
  + * strongPreconditions/strong:ul
  + * licode0  p  100/code (otherwise an codeIllegalArgumentException
  + * /code is thrown)/li
  + * liat least one value must be stored (returns codeDouble.NaN
  + * /code otherwise)/li
  + * /ul
  + * 
  + * @param p the requested percentile (scaled from 0 - 100)
  + * @return returns an estimate for the pth percentile of the stored data 
  + * values
  + */
  +public abstract double getPercentile(double p);
   
   }
  
  
  
  1.2   +61 -0 
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/AbstractStoreUnivariate.java
  
  Index: AbstractStoreUnivariate.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/AbstractStoreUnivariate.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractStoreUnivariate.java  29 May 2003 20:35:45 -  1.1
  +++ AbstractStoreUnivariate.java  4 Jun 2003 02:22:48 -   1.2
  @@ -58,6 +58,7 @@
* 
* @author a href=mailto:[EMAIL PROTECTED]Tim O'Brien/a
* @author Mark Diggory
  + * @author a href=mailto:[EMAIL PROTECTED]Phil Steitz/a
*/
   public abstract class AbstractStoreUnivariate implements StoreUnivariate {
   
  @@ -290,6 +291,66 @@
   accum += Math.pow(getElement(i), 2.0);
   }
   return accum;
  +}
  +   
  +/**
  + * Uses a href=http://www.nist.gov/dads/HTML/shellsort.html;Shell sort
  + * /a
  + * @see org.apache.commons.math.StoreUnivariate#getSortedValues()
  + *
  + */ 
  +public double[] getSortedValues() {
  +double[] values = getValues();
  +int n = values.length;
  +int j = n;
  +while (j  1) {
  +j = j / 2;
  +boolean done = false;
  +while (!done) {
  +done = true;
  +for (int i = 0; i  n - j; i++) {
  +int k = i + j;
  +if (values[i]  values[k]) {
  +double temp = values[i];
  +values[i] = values[k];
  +values[k] = temp;
  +done = false;
  +}
  +}
  +}
  +}
  +return values;
  +}
  +
  +/**
  + * Returns an estimate for the pth percentile of the stored values
  + * @see org.apache.commons.math.StoreUnivariate#getPercentile()
  + */
  +public double getPercentile(double p) {
  +if ((p  100) || (p = 0)) {
  +throw new IllegalArgumentException(invalid 

cvs commit: jakarta-commons-sandbox/math/src/test/org/apache/commons/math/stat StoreUnivariateImplTest.java

2003-06-04 Thread mdiggory
mdiggory2003/06/03 19:24:51

  Modified:math/src/test/org/apache/commons/math/stat
StoreUnivariateImplTest.java
  Log:
  PR: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20377
  Submitted by: Phil Steitz
  
  Revision  ChangesPath
  1.2   +138 -19   
jakarta-commons-sandbox/math/src/test/org/apache/commons/math/stat/StoreUnivariateImplTest.java
  
  Index: StoreUnivariateImplTest.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/test/org/apache/commons/math/stat/StoreUnivariateImplTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- StoreUnivariateImplTest.java  29 May 2003 20:35:46 -  1.1
  +++ StoreUnivariateImplTest.java  4 Jun 2003 02:24:51 -   1.2
  @@ -56,6 +56,8 @@
   import junit.framework.Test;
   import junit.framework.TestCase;
   import junit.framework.TestSuite;
  +import org.apache.commons.math.RandomDataImpl;
  +import org.apache.commons.math.RandomData;
   
   /**
* Test cases for the [EMAIL PROTECTED] Univariate} class.
  @@ -117,22 +119,29 @@
   public void testN0andN1Conditions() throws Exception {
StoreUnivariate u = new StoreUnivariateImpl();

  - assertTrue(Mean of n = 0 set should be NaN, Double.isNaN( 
u.getMean() ) );
  - assertTrue(Standard Deviation of n = 0 set should be NaN, 
Double.isNaN( u.getStandardDeviation() ) );
  - assertTrue(Variance of n = 0 set should be NaN, 
Double.isNaN(u.getVariance() ) );
  -
  - u.addValue(one);
  -
  - assertTrue( Mean of n = 1 set should be value of single item n1, 
u.getMean() == one);
  - assertTrue( StdDev of n = 1 set should be zero, instead it is:  + 
u.getStandardDeviation(), u.getStandardDeviation() == 0);
  - assertTrue( Variance of n = 1 set should be zero, u.getVariance() == 
0);  
  +assertTrue(Mean of n = 0 set should be NaN, 
  +Double.isNaN( u.getMean() ) );
  +assertTrue(Standard Deviation of n = 0 set should be NaN, 
  +Double.isNaN( u.getStandardDeviation() ) );
  +assertTrue(Variance of n = 0 set should be NaN,
  +Double.isNaN(u.getVariance() ) );
  +
  +u.addValue(one);
  +
  +assertTrue( Mean of n = 1 set should be value of single item n1,
  +u.getMean() == one);
  +assertTrue( StdDev of n = 1 set should be zero, instead it is:  
  ++ u.getStandardDeviation(), u.getStandardDeviation() == 0);
  +assertTrue( Variance of n = 1 set should be zero, 
  +u.getVariance() == 0);   
   }
   
   public void testSkewAndKurtosis() {
StoreUnivariate u = new StoreUnivariateImpl();

  - double[] testArray = { 12.5, 12, 11.8, 14.2, 14.9, 14.5, 21, 8.2, 10.3, 11.3, 
14.1,
  -
  9.9, 12.2, 12, 12.1, 11, 19.8, 11, 10, 8.8, 9, 12.3 };
  + double[] testArray = 
  +{ 12.5, 12, 11.8, 14.2, 14.9, 14.5, 21, 8.2, 10.3, 11.3, 14.1,
  +  9.9, 12.2, 12, 12.1, 11, 19.8, 11, 10, 8.8, 9, 12.3 };
for( int i = 0; i  testArray.length; i++) {
u.addValue( testArray[i]);
}
  @@ -152,8 +161,10 @@
   u.addValue( 3.0 );
   u.addValue( 4.0 );
   
  -assertEquals( Product not expected, 24.0, u.getProduct(), 
Double.MIN_VALUE );
  -assertEquals( Geometric mean not expected, 2.213364, 
u.getGeometricMean(), 0.1 );
  +assertEquals( Product not expected, 
  +24.0, u.getProduct(), Double.MIN_VALUE );
  +assertEquals( Geometric mean not expected, 
  +2.213364, u.getGeometricMean(), 0.1 );
   
   // Now test rolling - UnivariateImpl should discount the contribution
   // of a discarded element
  @@ -162,11 +173,119 @@
   }
   // Values should be (2,3,4,5,6,7,8,9,10,11)
   
  -assertEquals( Product not expected, 39916800.0, u.getProduct(), 0.1 );
  -assertEquals( Geometric mean not expected, 5.755931, 
u.getGeometricMean(), 0.1 );
  -
  -
  +assertEquals( Product not expected, 39916800.0, 
  +u.getProduct(), 0.1 );
  +assertEquals( Geometric mean not expected, 5.755931, 
  +u.getGeometricMean(), 0.1 );
  +}
  +
  +public void testGetSortedValues() {
  +double[] test1 = {5,4,3,2,1};
  +double[] test2 = {5,2,1,3,4,0};
  +double[] test3 = {1};
  +int[] testi = null;
  +double[] test4 = null;
  +RandomData rd = new RandomDataImpl();
  +tstGetSortedValues(test1);
  +tstGetSortedValues(test2);
  +tstGetSortedValues(test3);
  +

DO NOT REPLY [Bug 20377] - [math] Adding percentiles to StoredUnivariate, AbstractStoreUnivariate

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20377.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20377

[math] Adding percentiles to StoredUnivariate, AbstractStoreUnivariate

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-06-04 02:28 ---
I've applied both patches to the StoreUnivariate** and verified that the Unit
Tests work with the Ant build.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons-sandbox/math/src/test/org/apache/commons/math MathUtilsTest.java

2003-06-04 Thread mdiggory
mdiggory2003/06/03 19:31:14

  Added:   math/src/java/org/apache/commons/math MathUtils.java
   math/src/test/org/apache/commons/math MathUtilsTest.java
  Log:
  PR: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20390
  Submitted by: Phil Steitz
  
  Revision  ChangesPath
  1.1  
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/MathUtils.java
  
  Index: MathUtils.java
  ===
  /* 
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *notice, this list of conditions and the following disclaimer in
   *the documentation and/or other materials provided with the
   *distribution. 
   *
   * 3. The end-user documentation included with the redistribution, if
   *any, must include the following acknowlegement:
   *   This product includes software developed by the
   *Apache Software Foundation (http://www.apache.org/).
   *Alternately, this acknowlegement may appear in the software itself,
   *if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names The Jakarta Project, Commons, and Apache Software
   *Foundation must not be used to endorse or promote products derived
   *from this software without prior written permission. For written
   *permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called Apache
   *nor may Apache appear in their names without prior written
   *permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * 
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * http://www.apache.org/.
   */
  
  package org.apache.commons.math;
  
  /**
   * Some useful additions to the built-in functions in lang.Mathp
   *
   * @author Phil Steitz
   * @version $Revision: 1.1 $ $Date: 2003/06/04 02:31:13 $
   */
  public class MathUtils {
  
  /**
   * Returns an exact representation of the 
   * a href=http://mathworld.wolfram.com/BinomialCoefficient.html; 
   * Binomial Coefficient/a,  coden choose k/code, 
   * the number of codek/code-element subsets that can be selected from 
   * an coden/code-element set.
   * p
   * StrongPreconditions/strong:ul
   * li code0  k = n /code (otherwise 
   *  codeIllegalArgumentException/code is thrown)/li
   * li The result is small enough to fit into a codelong/code.  The 
   *  largest value of coden/code for which all coefficients are 
   *  code  Long.MAX_VALUE/code is 66.  If the computed value 
   *  exceeds codeLong.MAX_VALUE/code an codeArithMeticException
   *  /code is thrown./li
   * /ul
   * 
   * @param n the size of the set
   * @param k the size of the subsets to be counted
   * @return coden choose k/code
   */
  public static long binomialCoefficient(int n, int k) { 
  if (n  k) {
  throw new IllegalArgumentException
  (must have n = k for binomial coefficient (n,k));
  }
  if (n = 0)  {
  throw new IllegalArgumentException
  (must have n  0 for binomial coefficient (n,k));
  }
  if ((n == k) || (k == 0)) {
  return 1;
  }
  if ((k == 1) || (k == n - 1)) {
  return n;
  }
  
  long result = 

DO NOT REPLY [Bug 20390] - [math] Adding MathUtils class, including binomial coefficients, factorials

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20390.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20390

[math] Adding MathUtils class, including binomial coefficients, factorials

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-06-04 02:34 ---
Added both files tot he cvs and ran the UnitTests to verify build works correctly.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons-sandbox/math/xdocs developers.xml

2003-06-04 Thread mdiggory
mdiggory2003/06/03 19:40:26

  Modified:math/xdocs developers.xml
  Log:
  PR: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20404
  Submitted by: Phil Steitz
  
  Revision  ChangesPath
  1.4   +69 -4 jakarta-commons-sandbox/math/xdocs/developers.xml
  
  Index: developers.xml
  ===
  RCS file: /home/cvs/jakarta-commons-sandbox/math/xdocs/developers.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- developers.xml30 May 2003 15:40:28 -  1.3
  +++ developers.xml4 Jun 2003 02:40:26 -   1.4
  @@ -14,11 +14,76 @@
   case for other components. It is important that developers follow 
   guidelines laid down by the community to ensure that the code they create 
   can be successfully maintained by others.
  +/p
  +   /section
  +   section name='Guidelines'
  +   p
  +   Developers are asked to comply with the following development guidelines. 
  +   Code that does not comply with the guidelines including the word imust/i
  +   will not be committed.  Our aim will be to fix all of the exceptions to the
  +   ishould/i guidelines prior to a release.
  /p
  -  /section
  -  section name='Guidelines'
  -   Still under development...!
  -  /section
  +   subsection name='Coding Style'
  +p
  + Commons-math follows a href=http://java.sun.com/docs/codeconv/;Code 
  + Conventions for the Java Programming Language/a. As part of the maven
  + build process, style checking is performed using the checkStyle plugin,
  + using the properties specified in codecheckStyle.properties/code.  
  + Committed code ishould/i generate no checkStyle errors.
  +/p
  +   /subsection
  +   subsection name='Documentation'  
  +ul
  + li
  +  Committed code imust/i include full javadoc./li 
  + li
  +  All component contracts imust/i be fully specified in the javadoc class, 
  +  interface or method comments, including specification of acceptable ranges 
  +  of values, exceptions or special return values./li  
  + li
  +  References to definitions for all mathematical 
  +  terms used in component documentation imust/i be provided, preferably
  +  as HTML links./li
  + li
  +  Implementations ishould/i use standard algorithms and 
  +  references to algorithm descriptions ishould/i be provided,
  +  preferably as HTML links./li
  +/ul
  +   /subsection  
  +   subsection name='Unit Tests'  
  +ul
  + li
  +  Committed code imust/i include unit tests./li 
  + li
  +  Unit tests ishould/i provide full path coverage. /li 
  + li
  +  Unit tests ishould/i verify all boundary conditions specified in 
  +  interface contracts, including verification that exceptions are thrown or
  +  special values (e.g. Double.NaN, Double.Infinity) are returned as 
  +  expected. /li
  +/ul 
  +   /subsection
  +   subsection name='Licensing and copyright'
  +ul
  + li
  +  All new source file submissions imust/i include the Apache Software 
  +  License in a comment that begins the file /li
  + li
  +  All contributions must comply with the terms of the 
  +  a href=http://www.apache.org/foundation/ASF_Contributor_License_1_form.pdf;
  +  Apache Contributor License Agreement (CLA)/a/li
  + li 
  +   Patches imust/i be accompanied by a clear reference to a source 
  +   - if code has been ported from another language, clearly state the 
  +   source of the original implementation.  If the expression of a given
  +   algorithm is derivative, please note the original source (textbook,
  +   paper, etc.)./li 
  + li
  +   References to source materials covered by restrictive proprietary
  +   licenses should be avoided./li
  +/ul
  +   /subsection
  +  /section 
 section name='Recommended Readings'
  p
   Here is a list of relevant materials.  Much of the discussion surrounding
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 20404] - [math] Add content to guidelines section in developer.xml

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20404.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20404

[math] Add content to guidelines section in developer.xml

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-06-04 02:44 ---
Applied the first part of this patch. The links were already commited to the
file earlier.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons-sandbox/math/src/test/org/apache/commons/math RandomDataTest.java

2003-06-04 Thread mdiggory
mdiggory2003/06/03 19:45:49

  Modified:math/src/java/org/apache/commons/math RandomDataImpl.java
RandomData.java
   math/src/test/org/apache/commons/math RandomDataTest.java
  Log:
  PR: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20442
  Submitted by: Phil Steitz
  
  Revision  ChangesPath
  1.3   +131 -135  
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/RandomDataImpl.java
  
  Index: RandomDataImpl.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/RandomDataImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RandomDataImpl.java   29 May 2003 19:45:35 -  1.2
  +++ RandomDataImpl.java   4 Jun 2003 02:45:49 -   1.3
  @@ -64,42 +64,50 @@
   /**
* Implements the codeRandomData/code interface using 
* codejava.util.Random/code and 
  - * codejava.util.Random.SecureRandom/code instances to generate data.
  + * codejava.util.Random.SecureRandom/code instances to generate data. 
  + * p
* Supports reseeding the underlying 
  - * a href=http://www.wikipedia.org/wiki/Pseudo-random_number_generatorPRNG/a. 
  - * The codeSecurityProvider/code and codeAlgorithm/code
  - * used by the codeSecureRandom/code instance can also be reset.p
  + * a href=http://www.wikipedia.org/wiki/Pseudo-random_number_generator;
  + * PRNG/a. The codeSecurityProvider/code and codeAlgorithm/code
  + * used by the codeSecureRandom/code instance can also be reset.
  + * p
* For details on the PRNGs, see the JDK documentation for 
* codejava.util.Random/code and 
  - * codejava.util.Random.SecureRandom/code/pp
  + * codejava.util.Random.SecureRandom/code
  + * p
* strongUsage Notes/strong: ul
  - * liInstance variables are used to maintain codeRandom/code and 
  + * li
  + * Instance variables are used to maintain codeRandom/code and 
* codeSecureRandom/code instances used in data generation. Therefore,
* to generate a random sequence of values or strings, you should use just
* strongone/strong codeRandomDataImpl/code instance repeatedly./li
  - * liThe secure methods are *much* slower.  These should be used only when
  - * a a 
href=http://www.wikipedia.org/wiki/Cryptographically_secure_pseudo-random_number_generator
  - * Secure Random Sequence/a is required./li
  - *liWhen a new codeRandomDataImpl/code is created, the underlying random
  + * li
  + * The secure methods are *much* slower.  These should be used only when
  + * a a href=http://www.wikipedia.org/wiki/
  + * Cryptographically_secure_pseudo-random_number_generator Secure Random 
  + * Sequence/a is required./li
  + * li
  + * When a new codeRandomDataImpl/code is created, the underlying random
* number generators are strongnot/strong intialized.  The first call to a
* data generation method, or to a codereSeed()/code method instantiates
* the appropriate generator.  If you do not explicitly seed the generator, it
* is by default seeded with the current time in milliseconds/li
  - * liThe codereSeed/code and codereSeedSecure/code methods delegate to
  - * the corresponding methods on the underlying codeRandom/code and code
  - * SecureRandom/code instances.  Therefore, the contracts of these methods
  - * are as defined in the JDK documentation.  In particular, codereSeed(long)
  - * /code fully resets the initial state of the non-secure random number 
  - * generator (so that reseeding with a specific value always results in the
  - * same subsequent random sequence); whereas reSeedSecure(long) does strong not 
  - * /strong reinitialize the secure random number generator (so secure sequences
  - * started with calls to reseedSecure(long) won't be identical)./li/ul
  - */p
  + * li
  + * The codereSeed/code and codereSeedSecure/code methods delegate 
  + * to the corresponding methods on the underlying codeRandom/code and 
  + * codeSecureRandom/code instances.  Therefore, the contracts of these 
  + * methods are as defined in the JDK documentation.  In particular, 
  + * codereSeed(long)/code fully resets the initial state of the non-secure 
  + * random number generator (so that reseeding with a specific value always 
  + * results in the same subsequent random sequence); whereas reSeedSecure(long)
  + * does strongnot/strong reinitialize the secure random number generator 
  + * (so secure sequences started with calls to reseedSecure(long) won't be 
  + * identical)./li/ul
* 
* @author Phil Steitz
* @version $Revision$ $Date$
*/
  -public class RandomDataImpl implements RandomData{
  +public class RandomDataImpl implements RandomData {
   
   /** underlying random number generator */
   private Random rand = null;
  @@ -107,20 +115,19 @@
   /** underlying secure random number generator */
   private SecureRandom secRand = null;
   
  -

DO NOT REPLY [Bug 20442] - [math] Fix style, javadoc, test coverage gaps in RandomData

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20442.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20442

[math] Fix style, javadoc, test coverage gaps in RandomData

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED



--- Additional Comments From [EMAIL PROTECTED]  2003-06-04 02:49 ---
Commited these patches and ran unit tests to verify that the RandomDataTest is
working properly.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [PATCH] Re: [Docs] Component Lists

2003-06-04 Thread Tetsuya Kitahata

On Tue, 3 Jun 2003 08:53:41 -0400
(Subject: Re: [PATCH] Re: [Docs] Component Lists)
Michael Becke [EMAIL PROTECTED] wrote:

 I made the changes and updated the site for HttpClient.  I left out the  
 jxpath changes but would be happy to add them if others would like.
 
 Mike

IMHO, I think it is better to change (add) the jxpath release
notice, too ... as one of jxpath users.

http://jakarta.apache.org/commons/components.html
has as many access views next to
http://jakarta.apache.org/commons/
, as statistics will show.

If there's inconsistency in the components.html page,
commons-users might be frustrated or irritated ... I think.

Sincerely,


-
Tetsuya Kitahata --  Terra-International, Inc.
E-mail: [EMAIL PROTECTED]
http://www.terra-intl.com/
(Apache Jakarta Translation, Japanese)
http://jakarta.terra-intl.com/


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 20373] - [math] t distribution patch

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20373.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20373

[math] t distribution patch

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||WONTFIX



--- Additional Comments From [EMAIL PROTECTED]  2003-06-04 02:50 ---
Thanks, I will close it out then.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons/httpclient/xdocs releases.xml

2003-06-04 Thread mbecke
mbecke  2003/06/03 19:52:23

  Modified:httpclient/xdocs releases.xml
  Log:
  updated release procedures
  
  Revision  ChangesPath
  1.11  +16 -27jakarta-commons/httpclient/xdocs/releases.xml
  
  Index: releases.xml
  ===
  RCS file: /home/cvs/jakarta-commons/httpclient/xdocs/releases.xml,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- releases.xml  26 Feb 2003 19:42:39 -  1.10
  +++ releases.xml  4 Jun 2003 02:52:23 -   1.11
  @@ -44,9 +44,9 @@
 release.br/br//li
   
   liUpdate the project version number in the codebuild.xml/code, 
  -  codeproject.xml/code, and the HttpMethodBase useragent string.
  -  There is an Ant property named codecomponent.version/code that would 
be
  -  updated to code2.0/code.  Check in any files you have
  +  codeproject.xml/code, codestatus.xml/code, and the HttpMethodBase 
  +  useragent string. There is an Ant property named 
codecomponent.version/code 
  +  that would be updated to code2.0/code.  Check in any files you have
 modified.br/br//li
   
   liIn your local repository (or on cvs.apache.org) tag 
strongonly/strong the 
  @@ -64,7 +64,12 @@
 to ensure that it correctly reflects the functionality (and the
 version number) of this code.br/br//li
   
  -  liCreate a news item.  This should be added to httpclient/xdocs/news.xml 
and 
  +liUpdate release_notes.txt.  This file should be updated in CVS when
  +  patches are committed, but it is frequently not.  Be sure all relevant
  +  changes since the last release are included.  This file should be 
published
  +  along with the release source and binary distributions.br/br//li
  +
  +liCreate a news item.  This should be added to httpclient/xdocs/news.xml 
and 
 the jakarta-site2/xdocs/site/news.xml as well as a one liner in
 jakarta-site2/xdocs/index.htmlbr/br//li
   
  @@ -103,12 +108,6 @@
 /pre
 NOTE: Make sure that the files you copy are group writable./li
   
  -liUpdate jakarta-site2 module with the news item in xdocs/site/news.xml
  -  and a one liner in xdocs/index.xml.  jakarta-site2 needs to be
  -  checked out from the private cvs.  After changes are made run
  -  the build.sh script to generate the site.  Browse the generated
  -  html documentation and then commit after you are satisfied.br/br//li
  -
   liFollow standard procedures to update the Jakarta web site (stored in
 CVS repository codejakarta-site2/code to reflect the availability
 of the new release.  Generally, you will be updating the following
  @@ -123,9 +122,12 @@
   licodexdocs/site/news.xml/code - Create a news item that
 describes the new release, and includes hyperlinks to the
 release directory./li
  +licodexdocs/index.xml/code - Create a one line news item
  +  that links to the full item in site/news.xml./li
 /ul
 ul
   liThen run ant at the base to generate the new docs and commit the 
changes to jakarta-site2.
  +  You will be committing the updated xdocs and html.
 pre
   ant
   cvs commit -m update to reflect release of commons-httpclient
  @@ -138,9 +140,9 @@
 /ul
   /li
   
  -liUpdate the pertinent documents in the jakarta-commons/xdocs CVS and 
then build the 
  -  docs by running ant.  These pages will probably include components.xml 
and httpclient.xml.
  -  CVS commit, then if you have an account on daedalus, update the commons 
website with a 
  +liUpdate components.xml in the jakarta-commons/xdocs CVS and then build 
the 
  +  docs by running ant (this may require some configuration).  CVS commit, 
  +  then if you have an account on daedalus, update the commons website with 
a 
 cvs udpate in /www/jakarta.apache.org/commons.br//li
   
   liAnnounce the availability of the new package on the following mailing 
lists:
  @@ -151,19 +153,6 @@
   li[EMAIL PROTECTED]/li
   /ulbr//li
   
  -liEnsure that the pertinent documents in the component's home directory 
are updated 
  -  to reflect the new release.  In particular :
  -  ul
  -liIn strongstatus.xml/strong:
  -  ul
  -liUpdate codeRelease Info/code section/li
  -liEnsure codeDependencies/code is correct/li
  -liEnsure completed tasks are removed from codeTo Do/code 
list/li
  -  /ul
  -/li
  -liUpdate build with new current version/li
  -  /ul
  -  

cvs commit: jakarta-commons-sandbox/hivemind/src/test/hivemind/test/external - New directory

2003-06-04 Thread hlship
hlship  2003/06/03 20:01:09

  jakarta-commons-sandbox/hivemind/src/test/hivemind/test/external - New directory

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons-sandbox/hivemind/src/test/hivemind/test/config ContributeService.xml ServiceHolder.java ContributeSetService.xml TestConfiguration.java

2003-06-04 Thread hlship
hlship  2003/06/03 20:02:32

  Modified:hivemind/src/java/org/apache/commons/hivemind/parse
ServiceDescriptor.java AbstractConfigurator.java
FactoryDescriptor.java DescriptorParser.java
HiveMind_1.0.xsd
AbstractConfigurationDescriptor.java
AbstractServiceDescriptor.java
InstanceBuilderDescriptor.java
InterceptorDescriptor.java
ExpressionDescriptor.java ModuleDescriptor.java
ContributeServiceDescriptor.java
ContributeConfigurationDescriptor.java
ValueDescriptor.java ConfigurationDescriptor.java
CreateInstanceDescriptor.java
   hivemind/src/test/hivemind/test HiveMindSuite.java
HiveMindTestCase.java
   hivemind/src/test/hivemind/test/services/impl
TrackerFactory.java
   hivemind/src/java/org/apache/commons/hivemind/impl
ConfigurationContribution.java
AbstractExtensionPoint.java
FactoryContribution.java
ConfigurationExtensionPoint.java
InterceptorStack.java ServiceExtensionPoint.java
InterceptorContribution.java
   hivemind/src/java/org/apache/commons/hivemind
HiveMindMessages.properties
   hivemind/src/test/hivemind/test/parse
TestDescriptorParser.java
   hivemind/src/test/hivemind/test/config
TestConfiguration.java
  Added:   hivemind/src/java/org/apache/commons/hivemind/parse
ServiceRefDescriptor.java ExternalParser.java
XMLDescriptor.java
   hivemind/src/test/hivemind/test/external Simple.xml
TestExternalParser.java
   hivemind/src/java/org/apache/commons/hivemind/impl
Element.java Attribute.java
   hivemind/src/java/org/apache/commons/hivemind
IAttribute.java IElement.java
   hivemind/src/test/hivemind/test/parse ServiceRef.xml
SetServiceRef.xml
   hivemind/src/test/hivemind/test/config ContributeService.xml
ServiceHolder.java ContributeSetService.xml
  Log:
  Add support for several new elements.
  Add support for external XML document parsing.
  
  Revision  ChangesPath
  1.2   +9 -1  
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/ServiceDescriptor.java
  
  Index: ServiceDescriptor.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/ServiceDescriptor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ServiceDescriptor.java30 May 2003 20:52:01 -  1.1
  +++ ServiceDescriptor.java4 Jun 2003 03:02:30 -   1.2
  @@ -1,5 +1,6 @@
   package org.apache.commons.hivemind.parse;
   
  +import org.apache.commons.lang.builder.ToStringBuilder;
   
   /**
* Defines a service extension point. Corresponds to
  @@ -53,6 +54,13 @@
   public void setDescription(String string)
   {
   _description = string;
  +}
  +
  +protected void extendDescription(ToStringBuilder builder)
  +{
  +builder.append(id, _id);
  +builder.append(interfaceClassName, _interfaceClassName);
  +builder.append(required, _required);
   }
   
   }
  
  
  
  1.2   +19 -1 
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/AbstractConfigurator.java
  
  Index: AbstractConfigurator.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/AbstractConfigurator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractConfigurator.java 30 May 2003 20:52:01 -  1.1
  +++ AbstractConfigurator.java 4 Jun 2003 03:02:30 -   1.2
  @@ -2,6 +2,7 @@
   
   import org.apache.commons.hivemind.HiveMind;
   import org.apache.commons.hivemind.IModule;
  +import org.apache.commons.lang.builder.ToStringBuilder;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   import org.apache.tapestry.ApplicationRuntimeException;
  @@ -21,6 +22,23 @@
   private static final Log LOG = LogFactory.getLog(AbstractConfigurator.class);
   
   private String _propertyName;
  +
  + public String toString()
  + {
  + ToStringBuilder builder = new ToStringBuilder(this);
  + 
  +   

cvs commit: jakarta-commons-sandbox/hivemind/xdocs descriptor.xml services.xml navigation.xml

2003-06-04 Thread hlship
hlship  2003/06/03 20:05:49

  Modified:hivemind/xdocs services.xml navigation.xml
  Added:   hivemind/xdocs descriptor.xml
  Log:
  Add docs on services and the module descriptor.
  
  Revision  ChangesPath
  1.2   +21 -12jakarta-commons-sandbox/hivemind/xdocs/services.xml
  
  Index: services.xml
  ===
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/xdocs/services.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- services.xml  30 May 2003 20:52:02 -  1.1
  +++ services.xml  4 Jun 2003 03:05:49 -   1.2
  @@ -1,5 +1,12 @@
   ?xml version=1.0?
   !-- $Id$ --
  +!DOCTYPE document [
  + 
  +!ENTITY % common-links SYSTEM ../common/links.xml
  +
  +%common-links;
  +  
  +]
   document
   
 properties
  @@ -34,7 +41,7 @@
  /p
  
  p
  -   A module descriptor may include a codelt;servicegt;/codeelement
  +   A module descriptor may include service; element
  to define a emservice extension point/em.  A service extension point
  establishes an id for the service, defines the interface for the service,
  and indicates whether the service is optional or required (required is the 
default). 
  @@ -82,12 +89,12 @@
  /p
  
  p
  -   An instance creator is represented by a codegt;create-instancegt;/code 
element.
  +   An instance creator is represented by a create-instance; element.
  It includes a codeclass/code attribute, the Java class to instantiate.
  /p
  
  p
  -   An instance factory is represented by a codegt;factorygt;/code   
element.
  +   An instance factory is represented by a codelt;factorygt;/code   
element.
  It includes a codeservice-id/code attribute.  This is the fully qualfied 
id
  of a factory service, a service which implements the
  codeorg.apache.commons.hivemind.IFactory/code interface.
  @@ -96,10 +103,10 @@
  p
  In both cases, the properties of the core instance may be configured using
  enclosed
  -   codelt;setgt;/code
  -   codelt;set-expressiongt;/code
  -   codelt;set-creategt;/code and
  -   codelt;set-factorygt;/code elements.
  +   codeset;/code,
  +   codeset-expression;/code,
  +   codeset-create;/code and
  +   codeset-factory;/code elements.
  /p

  /subsection
  @@ -107,7 +114,7 @@
  subsection name=Interceptor Contributions
  
  p
  -   An interceptor contribution is represented by a 
codelt;interceptorgt;/code element.
  +   An interceptor contribution is represented by a interceptor; element.
  The codeservice-id/code attribute identifies an interceptor factory 
service: a service
  that implements the 
codeorg.apache.commons.hivemind.IInterceptorFactory/code interface.
  /p
  @@ -217,7 +224,7 @@
  
   
   p
  -Its not absolutely required, but it is good form to explicitly state 
dependencies.  Here,
  +Its not absolutely required, but it is good form, to explicitly state 
dependencies.  Here,
   the module supplying the implementation is dependent on the module supplying 
the interface.  
   /p
   
  @@ -258,7 +265,7 @@
  Here the Logging interceptor is applied to the service extension point.  The 
interceptor
  will be inserted between the client code and the core implementation.  The 
client in
  the code example won't get an instance of the AdderImpl class, it will get 
an instance of
  -   the interceptor, which internal invokes methods on the AdderImpl instance.  
Because
  +   the interceptor, which internally invokes methods on the AdderImpl instance. 
 Because
  we code against interfaces instead of implementations, the client code 
neither knows
  nor cares about this. 
  /p
  @@ -293,7 +300,7 @@
p
For required services, HiveMind checks for a factory contribution when 
the registry
is constructed.  If a required service extension point has no
  - contribution, and error is logged (identifying the extension point 
id).  In addition,
  + contribution, an error is logged (identifying the extension point id). 
 In addition,
codegetService()/code   
will throw an ApplicationRuntimeException.  So, if a service is 
required, you don't
have to check for null.
  @@ -303,6 +310,8 @@
   

 /section
  +  
  +
   
 /body
   /document
  
  
  
  1.2   +2 -1  jakarta-commons-sandbox/hivemind/xdocs/navigation.xml
  
  Index: navigation.xml
  ===
  RCS file: 

cvs commit: jakarta-commons-sandbox/hivemind/common - New directory

2003-06-04 Thread hlship
hlship  2003/06/03 20:08:22

  jakarta-commons-sandbox/hivemind/common - New directory

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-commons-sandbox/hivemind/common links.xml

2003-06-04 Thread hlship
hlship  2003/06/03 20:08:26

  Modified:hivemind .cvsignore project.xml
  Added:   hivemind/common links.xml
  Log:
  Add docs on services and the module descriptor.
  
  Revision  ChangesPath
  1.2   +1 -0  jakarta-commons-sandbox/hivemind/.cvsignore
  
  Index: .cvsignore
  ===
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/.cvsignore,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- .cvsignore30 May 2003 20:52:01 -  1.1
  +++ .cvsignore4 Jun 2003 03:08:26 -   1.2
  @@ -1,2 +1,3 @@
   target
   *.log
  +velocity.log*
  
  
  
  1.2   +3 -11 jakarta-commons-sandbox/hivemind/project.xml
  
  Index: project.xml
  ===
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/project.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.xml   30 May 2003 20:52:01 -  1.1
  +++ project.xml   4 Jun 2003 03:08:26 -   1.2
  @@ -45,15 +45,6 @@
   /url
 /repository
   
  -  versions
  -version
  -  ida1/id
  -  name1.0-alpha-1/name
  -  tagHEAD/tag
  -/version
  -  /versions
  -
  -
 developers
   
   developer
  @@ -85,7 +76,8 @@
   /dependency   
   
   dependency
  - idtapestry/id
  + idjakarta-tapestry/id
  + artifactIdtapestry/artifactId
version3.0-beta-1/version
urlhttp://jakarta.apache.org/tapestry//url
   /dependency
  
  
  
  1.1  jakarta-commons-sandbox/hivemind/common/links.xml
  
  Index: links.xml
  ===
  !ENTITY _module 'codelt;modulegt;/code'
  !ENTITY module 'a href=descriptor.html#module_module;/a'
  
  !ENTITY _service 'codelt;servicegt;/code'
  !ENTITY service 'a href=descriptor.html#service_service;/a'
  
  !ENTITY _create-instance 'codelt;create-instancegt;/code'
  !ENTITY create-instance 'a 
href=descriptor.html#create-instance_create-instance;/a'
  
  !ENTITY _factory 'codelt;factorygt;/code'
  !ENTITY factory 'a href=descriptor.html#factory_factory;/a'
  
  !ENTITY _set 'codelt;setgt;/code'
  !ENTITY set 'a href=descriptor.html#set_set;/a'
  
  !ENTITY _set-expression 'codelt;set-expressiongt;/code'
  !ENTITY set-expression 'a 
href=descriptor.html#set-expression_set-expression;/a'
  
  !ENTITY _set-create 'codelt;set-creategt;/code'
  !ENTITY set-create 'a href=descriptor.html#set-create_set-create;/a'
  
  !ENTITY _set-factory 'codelt;set-factorygt;/code'
  !ENTITY set-factory 'a href=descriptor.html#set-factory_set-factory;/a'
  
  !ENTITY _interceptor 'codelt;interceptorgt;/code'
  !ENTITY interceptor 'a href=descriptor.html#interceptor_interceptor;/a'
  
  !ENTITY _meta 'codelt;metagt;/code'
  !ENTITY meta 'a href=descriptor.html#meta_meta;/a'
  
  !ENTITY _description 'codelt;descriptiongt;/code'
  !ENTITY description 'a href=descriptor.html#description_description;/a'
  
  !ENTITY _dependency 'codelt;dependencygt;/code'
  !ENTITY dependency 'a href=descriptor.html#dependency_dependency;/a'
  
  !ENTITY _library 'codelt;librarygt;/code'
  !ENTITY library 'a href=descriptor.html#library_library;/a'
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [PATCH] Re: [Docs] Component Lists

2003-06-04 Thread Michael Becke
Seems reasonable to me.  I will go ahead an make the change unless any 
of the jxpath committers have objections.

Just curious, where are you looking for page views?

Mike

On Tuesday, June 3, 2003, at 10:50 PM, Tetsuya Kitahata wrote:

On Tue, 3 Jun 2003 08:53:41 -0400
(Subject: Re: [PATCH] Re: [Docs] Component Lists)
Michael Becke [EMAIL PROTECTED] wrote:
I made the changes and updated the site for HttpClient.  I left out 
the
jxpath changes but would be happy to add them if others would like.

Mike
IMHO, I think it is better to change (add) the jxpath release
notice, too ... as one of jxpath users.
http://jakarta.apache.org/commons/components.html
has as many access views next to
http://jakarta.apache.org/commons/
, as statistics will show.
If there's inconsistency in the components.html page,
commons-users might be frustrated or irritated ... I think.
Sincerely,

-
Tetsuya Kitahata --  Terra-International, Inc.
E-mail: [EMAIL PROTECTED]
http://www.terra-intl.com/
(Apache Jakarta Translation, Japanese)
http://jakarta.terra-intl.com/
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


cvs commit: jakarta-commons-sandbox/math/src/test/org/apache/commons/math/stat CertifiedDataTest.java

2003-06-04 Thread mdiggory
mdiggory2003/06/03 21:03:55

  Modified:math/src/test/org/apache/commons/math/stat
CertifiedDataTest.java
  Log:
  Adjusted the code to be able to control the files used and the tolerance for each 
file (important, hard tests currently require lower tolerance to pass).
  
  Revision  ChangesPath
  1.5   +67 -59
jakarta-commons-sandbox/math/src/test/org/apache/commons/math/stat/CertifiedDataTest.java
  
  Index: CertifiedDataTest.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/test/org/apache/commons/math/stat/CertifiedDataTest.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CertifiedDataTest.java2 Jun 2003 05:21:06 -   1.4
  +++ CertifiedDataTest.java4 Jun 2003 04:03:55 -   1.5
  @@ -58,12 +58,9 @@
   import junit.framework.TestSuite;
   
   import java.io.BufferedReader;
  -import java.io.File;
   import java.io.FileNotFoundException;
  -import java.io.FileReader;
  -import java.io.FilenameFilter;
   import java.io.IOException;
  -import java.net.URL;
  +import java.io.InputStreamReader;
   import org.apache.commons.logging.*;
   /**
* Test cases for the [EMAIL PROTECTED] Univariate} class.
  @@ -74,10 +71,6 @@
   
   public class CertifiedDataTest extends TestCase {
   
  - protected double tolerance = .01;
  -
  - protected File[] dataFiles = null;
  -
protected Univariate u = null;
   
protected double mean = Double.NaN;
  @@ -98,15 +91,6 @@
 * @see junit.framework.TestCase#setUp()
 */
public void setUp() {
  - URL url = getClass().getResource(data);
  - File file = new File(url.getFile());
  -
  - dataFiles = file.listFiles(new FilenameFilter() {
  - public boolean accept(File dir, String name) {
  - return name.endsWith(.txt);
  - }
  - });
  -
}
   
/**
  @@ -120,68 +104,92 @@
   
/**
 * Test UnivariateImpl
  - 
  + */
public void testUnivariateImpl() {
   
  - for (int i = 0; i  dataFiles.length; i++) {
  -
  - u = new UnivariateImpl();
  -
  - loadStats(dataFiles[i]);
  -
  - assertEquals(
  - dataFiles[i].getName() + :std,
  - std,
  - u.getStandardDeviation(),
  - tolerance);
  - 
  - assertEquals(
  - dataFiles[i].getName() + :mean,
  - mean,
  - u.getMean(),
  - tolerance);
  + u = new UnivariateImpl();
   
  - }
  + loadStats(data/Lew.txt);
  + assertEquals(Lew: std, std, u.getStandardDeviation(), .0001);
  + assertEquals(Lew: mean, mean, u.getMean(), .0001);
  + 
  + loadStats(data/Lottery.txt);
  + assertEquals(Lottery: std, std, u.getStandardDeviation(), 
.0001);
  + assertEquals(Lottery: mean, mean, u.getMean(), .0001);   
 
  + 
  + loadStats(data/PiDigits.txt);
  + assertEquals(PiDigits: std, std, u.getStandardDeviation(), 
.01);
  + assertEquals(PiDigits: mean, mean, u.getMean(), .01);
 
  +
  + loadStats(data/Mavro.txt);
  + assertEquals(Mavro: std, std, u.getStandardDeviation(), 
.01);
  + assertEquals(Mavro: mean, mean, u.getMean(), .01);
  + 
  + //loadStats(data/Michelso.txt);
  + //assertEquals(Michelso: std, std, u.getStandardDeviation(), 
.01);
  + //assertEquals(Michelso: mean, mean, u.getMean(), .01);  
 
  + 
  + loadStats(data/NumAcc1.txt);
  + assertEquals(NumAcc1: std, std, u.getStandardDeviation(), 
.01);
  + assertEquals(NumAcc1: mean, mean, u.getMean(), .01);
  + 
  + //loadStats(data/NumAcc2.txt);
  + //assertEquals(NumAcc2: std, std, u.getStandardDeviation(), 
.1);
  + //assertEquals(NumAcc2: mean, mean, u.getMean(), .01);
}
  - */
  +
/**
 * Test UnivariateImpl
 */
public void testStoredUnivariateImpl() {
   
  - for (int i = 0; i  dataFiles.length; i++) {
  -
  - u = new StoreUnivariateImpl();
  -
  - loadStats(dataFiles[i]);
  -
  - assertEquals(
  -

cvs commit: jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat UnivariateImpl.java

2003-06-04 Thread mdiggory
mdiggory2003/06/03 21:05:39

  Modified:math/src/java/org/apache/commons/math/stat
UnivariateImpl.java
  Log:
  Improved Variance calculation, test for negative variance and added some more 
javadoc.
  
  Revision  ChangesPath
  1.2   +65 -42
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/UnivariateImpl.java
  
  Index: UnivariateImpl.java
  ===
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/UnivariateImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- UnivariateImpl.java   29 May 2003 20:35:45 -  1.1
  +++ UnivariateImpl.java   4 Jun 2003 04:05:39 -   1.2
  @@ -68,7 +68,7 @@
*
* @author Phil Steitz
* @author a href=mailto:[EMAIL PROTECTED]Tim O'Brien/a
  - * @author Mark Diggory
  + * @author a href=mailto:[EMAIL PROTECTED]Mark Diggory/a
* @author Brent Worden
* @version $Revision$ $Date$
* 
  @@ -79,7 +79,7 @@
   private int windowSize = Univariate.INFINITE_WINDOW;
   
   /** Just in case, the windowSize is not inifinite, we need to
  - *   keep an array to remember values 0 to N
  + *  keep an array to remember values 0 to N
*/
   private DoubleArray doubleArray;
   
  @@ -107,25 +107,30 @@
   /** product of values that have been added */
   private double product = Double.NaN;
   
  -/** Creates new univariate */
  +/** Creates new univariate with an inifinite window */
   public UnivariateImpl() {
   clear();
   }
   
  -/** Create a new univariate with a fixed window **/
  +/** Creates a new univariate with a fixed window **/
   public UnivariateImpl(int window) {
   windowSize = window;
   doubleArray = new FixedDoubleArray( window );
   }
   

  -public void addValue(double v) {
  -
  +/**
  +  * @see org.apache.commons.math.stat.Univariate#addValue(double)
  +  */
  + public void addValue(double v) {
   insertValue(v);
   }
   
   
  -public double getMean() {
  +/**
  +  * @see org.apache.commons.math.stat.Univariate#getMean()
  +  */
  + public double getMean() {
   if (n == 0) {
   return Double.NaN;
   } else {
  @@ -134,7 +139,10 @@
}
   

  -public double getGeometricMean() {
  +/**
  +  * @see org.apache.commons.math.stat.Univariate#getGeometricMean()
  +  */
  + public double getGeometricMean() {
   if ((product = 0.0) || (n == 0)) {
   return Double.NaN; 
   } else {
  @@ -142,36 +150,44 @@
   }
   }
   
  -
  -public double getProduct() {
  +/**
  +  * @see org.apache.commons.math.stat.Univariate#getProduct()
  +  */
  + public double getProduct() {
   return product;
   }
   
  - 
  -public double getVariance() {
  -double variance = Double.NaN;
  -
  -if( n == 1 ) {
  -variance = 0.0;
  -} else if( n  1 ) {
  -double xbar = getMean();
  -variance =  (sumsq - xbar*xbar*((double) n))/(((double) n)-1);
  -}
  + /**
  +  * @see org.apache.commons.math.stat.Univariate#getStandardDeviation()
  +  */
  + public double getStandardDeviation() {
  + double variance = getVariance();
  + if ((variance == 0.0) || (variance == Double.NaN)) {
  + return variance;
  + } else {
  + return Math.sqrt(variance);
  + }
  + }
  + 
  + /**
  +  * Returns the variance of the values that have been added as described by
  +  * a href=http://mathworld.wolfram.com/k-Statistic.htmlEquation (5) for 
k-Statistics/a.
  +  * 
  +  * @return The variance of a set of values.  Double.NaN is returned for
  +  * an empty set of values and 0.0 is returned for a lt;= 1 value set.
  +  */
  + public double getVariance() {
  + double variance = Double.NaN;
   
  -return variance;
  -}
  + if( n == 1 ) {
  + variance = 0.0;
  + } else if( n  1 ) {
  + variance = (((double)n)*sumsq - (sum * sum)) / (double) (n * 
(n - 1));  
  + }
   
  -
  -public double getStandardDeviation() {
  -double variance = getVariance();
  -if ((variance == 0.0) || (variance == Double.NaN)) {
  -return variance;
  -} else {
  -return Math.sqrt(variance);
  -}
  -}
  -   
  -   
  + return variance  0 ? 0.0 : variance;
  + }
  + 
/**
 * Returns the skewness of the values that have been added as described by
* a href=http://mathworld.wolfram.com/k-Statistic.htmlEquation 

Re: [PATCH] Re: [Docs] Component Lists

2003-06-04 Thread Tetsuya Kitahata
Hi, Mike.

On Tue, 3 Jun 2003 23:42:39 -0400
(Subject: Re: [PATCH] Re: [Docs] Component Lists)
Michael Becke [EMAIL PROTECTED] wrote:

 Seems reasonable to me.  I will go ahead an make the change unless any 
 of the jxpath committers have objections.
 
 Just curious, where are you looking for page views?

Haha. I omitted to explain more details.

Well, I am translating the Jakarta-Commons site as well as
other projects into Japanese (you can see at
http://jakarta.terra-intl.com/commons/), and I am taking
the statistics on this site.
And, I found that the componentslist page had as many
page views next to commons/index.html.

Given that the translated site's statistics are also
alike to the site's statistics in apache.org, I had
come to the conclusion that
http://jakarta.apache.org/commons/components.html
has as many page views next to
http://jakarta.apache.org/commons/;

--

BTW, here's an useful information, Mike.

If you want to know the whole stats of the apache.org,
see
http://www.apache.org/~vgritsenko/stats/index.html
(Vadim's Home Page)

Sincerely,

-
Tetsuya Kitahata --  Terra-International, Inc.
E-mail: [EMAIL PROTECTED]
http://www.terra-intl.com/
(Apache Jakarta Translation, Japanese)
http://jakarta.terra-intl.com/


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [lang] What's left for 2.0 (WAS: [collections] Primitive collecti ons (was Entities and LGPL))

2003-06-04 Thread Neil O'Toole

 Would it make sense to layer [collections] on top of [lang], in the
 same
 manner that Xalan is layered on and includes Xerces in it's
 distribution?
 The most basic of collection-like things could be in [lang] for
 example; I
 am not fond of this either but what are our options? Don't throw ripe
 fruit
 at me if you consider this heresy s.v.p. ;-)

More heresy here - ultimately I think it will be futile or very awkward
to maintain independence. Being that [lang] is supposed to be a core
set of utilities, it is reasonable that other libraries depend upon it.
What happens if two commons subprojects both need a particular
function? I believe there are only three possibilities:

1. replicate the code in both - widely held to be a bad idea.
2. put the code in one of the libraries, and reference that library
from the other. This can obviously lead to libraries having multiple
dependencies on each other, so this isn't a viable proposition.
3. put the code in a common 'core' library, i.e. [lang], that both
libraries can reference.

I think that sooner or later we're going to have to bite the bullet on
this one, and that [collections] will end up with dependencies on
[lang]. No rotten fruit here either, please!

- Neil

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[math] Add Al Chou as contributor

2003-06-04 Thread Phil Steitz
I think that Al Chou should be added to the list of contributors to 
commons-math.  Al has provided useful patches and great suggestions for 
improvement and advice on implementation strategies.

Tim/Mark/Robert: if you agree, can one of you update project.xml?  I was 
going to submit a patch, but though it better to post to the list.

One more thing: the web site on jakarta.apache.org is a couple of revs 
out of date.  My awe at the power of maven wanes a little when I see 
that ;-).  Is it just a matter of one of you guys manually firing maven 
site:deploy   Shouldn't the nightly kick this off?  How does this work 
for the other jakarta sites?

Phil

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


[fileiupload] Remodeling of parseRequest?

2003-06-04 Thread Will Stranathan
I REALLY like the FileUpload tool - have had great success with RC1, and 
look forward to a production release.

However, I'm curious if the possibility of making the API model more 
consistent with the Request model of the Servlet API.  There are a couple of 
things that I think would be handy in this regard:

1) For FileUpload to have getParemeter(String name) or 
getParameterValues(String name) - I think this can be implemented on top of 
the current API so that there are no backward-compatibility issues.
2) At LEAST working out a kink (IMHO) where multi-valued parameters actually 
appear as separate FileItems with the same value returned by getFieldName().

I suppose what I propose would look something like this:

DiskFileUpload upload = new DiskFileUpload();
// Now, rather than applying an Iterator to parseRequest,
// we still call the same method,
// but pull the individual items from the
// DiskFileUpload object itself
upload.parseRequest(request);
FileItem myfile = (FileItem)upload.getParameter(myfile);
// And this looks ALMOST like ServletRequest.getParameter(String name)
String lastname = (String)upload.getParameter(lastname);
String[] favoriteColours = upload.getParameterValues(favoritecolours);
Alternately, a getFileItem(String name) method could be added in order to 
shield the user from having to cast the result of getParameter(String name) 
to a FileItem - and this same method could wrap ordinary field values in 
FileItems similarly to the way they are returned in the Iterator.

I don't know if this possibility has been discussed or sounds useful to 
anybody else.  I'll be happy to contribute where I can if there is any other 
interest in this change.

Regards,
Will Stranathan
_



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


[math] more improvement to storage free mean, variance computation

2003-06-04 Thread Phil Steitz
Check out procedure sum.2 and var.2 in

http://www.stanford.edu/~glynn/PDF/0208.pdf

The first looks like Brent's suggestion for a corrected mean 
computation, with no memory required.  The additional computational cost 
that I complained about is docuemented to be 3x the flops cost of the 
direct computation, but the computation is claimed to be more stable. So 
the question is: do we pay the flops cost to get the numerical 
stability?  The example in the paper is compelling; but it uses small 
words (err, numbers I mean -- sorry, slipped in to my native Fortran for 
a moment there ;-)).  So how do we go about deciding whether the 
stability in the mean computation is worth the increased computational 
effort?  I would prefer not to answer let the user decide.  To make 
the decision harder, we should note that it is actually worse than 3x, 
since in the no storage version, the user may request the mean only 
rarely (if at all) and the 3x comparison is against computiing the mean 
for each value added.

The variance formula looks better than what we have now, still requiring 
no memory.  Should we implement this for the no storage case?

Phil

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


[5.0] fileupload 1.0 RC 1 API breakage

2003-06-04 Thread Remy Maucherat
FileUpload.setRepositoryPath(String) and FileItem(String) were removed 
from the fileupload RC 1 release, which breaks the Tomcat 4.1.x and 
5.0.x build. The first method has no apparent replacement (but I didn't 
try to dig around).

This is clearly an unacceptable situation from the Tomcat perspective 
:-( I'm hoping there can be positive solutions to the problem ...

Remy

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: [5.0] fileupload 1.0 RC 1 API breakage

2003-06-04 Thread Glenn Nielsen
Martin Cooper wrote:
I posted a patch to the Tomcat-Dev list yesterday which should fix this
problem. Apparently, nobody on the Tomcat-Dev list paid any attention to
my post. The methods in question have been deprecated for some time.
I have not seen the patch email on tomcat-dev.  Perhaps its in the moderator
queue.  BTW, use of FileUpload was implemented in Tomcat once there was a
Beta release of FileUpload. So the API must have changed since the Beta release.
I have gone out of my way to help FileUpload clients avoid exactly this
kind of issue. It really ticks me off to see this kind of message, when I
have gone to great lengths to make sure that the clients I know about are
made aware of the changes before they happen.
Thats great that you performed notifications to known clients.  :-) Somehow
Tomcat slipped through the cracks.  :-( I don't recall seeing anything about
this on the Tomcat list.  I wlll admit that I subscribe to commons-dev but
often don't keep up with messages related to the code bases there I am interested in.
Get your own act together, Tomcat developers, before you start pointing
the finger at those of us who really try hard to maintain compatibility
across Jakarta projects.
Was this really necessary?  The email below went to both the commons-dev and
tomcat -dev lists.  If Remy was pointing the finger at anyone, it was at his
fellow Tomcat Developers.  Thats how I interpreted it.
We (tomcat devs) will fix use of FileUpload in Tomcat and move on, no big deal.

Regards,

Glenn

--
Martin Cooper
On Wed, 4 Jun 2003, Remy Maucherat wrote:


FileUpload.setRepositoryPath(String) and FileItem(String) were removed
from the fileupload RC 1 release, which breaks the Tomcat 4.1.x and
5.0.x build. The first method has no apparent replacement (but I didn't
try to dig around).
This is clearly an unacceptable situation from the Tomcat perspective
:-( I'm hoping there can be positive solutions to the problem ...
Remy

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


DO NOT REPLY [Bug 20335] - There is no way to change RESPONSE_WAIT_TIME_MS programmatically

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20335.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20335

There is no way to change RESPONSE_WAIT_TIME_MS programmatically

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID



--- Additional Comments From [EMAIL PROTECTED]  2003-06-03 15:19 ---
I believe this report can be closed as HttpClient does provide a way to
programmatically set read timeout value.

Oleg

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 17569] - Include generated website in the distribution

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17569.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17569

Include generated website in the distribution

[EMAIL PROTECTED] changed:

   What|Removed |Added

   Target Milestone|2.0 Beta 1  |2.0 Beta 2

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 20451] New: - HttpMethodBase.checkValidRedirects() is too restrictive

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20451.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20451

HttpMethodBase.checkValidRedirects() is too restrictive

   Summary: HttpMethodBase.checkValidRedirects() is too restrictive
   Product: Commons
   Version: 2.0 Beta 1
  Platform: Other
OS/Version: Other
Status: NEW
  Severity: Normal
  Priority: Other
 Component: HttpClient
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


Surely it should be possible to redirect from http - https?  This should be
enabled by default, or at least user configurable through properties files or
subclassing.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 20451] - HttpMethodBase.checkValidRedirects() is too restrictive

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20451.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20451

HttpMethodBase.checkValidRedirects() is too restrictive

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE



--- Additional Comments From [EMAIL PROTECTED]  2003-06-03 15:45 ---
This is a well-known issue caused by a pretty serious design flaw, which, 
unfortunately, cannot be fixed without breaking the existing API. The bug will 
be addressed in the 2.1 release. 

Sorry

Oleg

*** This bug has been marked as a duplicate of 16729 ***

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 10809] - Developer documentation

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10809.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10809

Developer documentation





--- Additional Comments From [EMAIL PROTECTED]  2003-06-03 21:02 ---
Oleg,
Changes to the cookie spec look good to me.  Thanks for checking that over.  We should 
definitely 
commit and redeply the website as soon as it's next convienient.  There are now a few 
changes 
waiting to be deployed.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 10809] - Developer documentation

2003-06-04 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10809.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10809

Developer documentation





--- Additional Comments From [EMAIL PROTECTED]  2003-06-03 21:31 ---
Thanks, Adrian. Patch committed. 

Welcome to the Fellowship, by the way

Oleg

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: DO NOT REPLY [Bug 10809] - Developer documentation

2003-06-04 Thread Michael Becke
The site has been redeployed.

Mike

On Tuesday, June 3, 2003, at 05:02 PM, [EMAIL PROTECTED] wrote:

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10809.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10809

Developer documentation





--- Additional Comments From [EMAIL PROTECTED]  2003-06-03 21:02 
---
Oleg,
Changes to the cookie spec look good to me.  Thanks for checking that 
over.  We should definitely
commit and redeply the website as soon as it's next convienient.  
There are now a few changes
waiting to be deployed.

-
To unsubscribe, e-mail: 
[EMAIL PROTECTED]
For additional commands, e-mail: 
[EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]