commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mika Riekkinen <>
Subject Re: [lang] Math class
Date Thu, 22 Aug 2002 06:02:13 GMT
My initial post was just start discussion on this
As you all pointed out, this could evolve into 
something 'big'. To start with, here's a sample code
I had in mind:

    public static int sum(int n) {
        long j = (n+1) * n;
        return (int) j >> 1;

Which calculates 1+2+...+n in constant time.
Alternative, with different characteristics:

    public static int sum2(int n) {
        int j = n + 1;

        return ((j>>1) * (n|1));

Of course, these samples could be added to 
suit other types as well. Like Integer.
The same is with other methods. average(...),
median(...), ....

NumberUtils would be a good place to start with,
since it allready has similar methods. 

Both of the samples carry a little bug with them;
They'll overflow at some point. Signature could
be changed to 'long sum(int)' to prevent overflows.

- mcr70 -

Do You Yahoo!?
HotJobs - Search Thousands of New Jobs

To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

View raw message