You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Ole Ersoy <ol...@gmail.com> on 2015/12/14 09:17:35 UTC

[math] Refactored Precision

Hi,

Just a heads up for those of you interested or have nothing better to do at 2 am :).  I refactored the Precision class into classes PrecisionAssert and RoundDouble.

https://github.com/firefly-numbers/firefly-numbers

I created a new github organization for the package, since it deals less with math and more with number precision in general.  I also removed support for float.  It seems like most of the code in CM uses double, and if float is needed then it should be provided via it's own module.  I also replaced calls to FastMath with Math.  Most of the calls were for abs() and ulp()...functions that I would think would have similar performance regardless.

Probably moving onto FastMath next.  I plan on only including functions that have a performance benefit, and delegating to Math for everything else.

Cheers,
- Ole

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Refactored Precision

Posted by Ole Ersoy <ol...@gmail.com>.
Hi Thomas,

On 12/14/2015 06:37 AM, Thomas Neidhart wrote:
> On Mon, Dec 14, 2015 at 9:17 AM, Ole Ersoy <ol...@gmail.com> wrote:
>
>> Hi,
>>
>> Just a heads up for those of you interested or have nothing better to do
>> at 2 am :).  I refactored the Precision class into classes PrecisionAssert
>> and RoundDouble.
>>
>> https://github.com/firefly-numbers/firefly-numbers
>>
>> I created a new github organization for the package, since it deals less
>> with math and more with number precision in general.  I also removed
>> support for float.  It seems like most of the code in CM uses double, and
>> if float is needed then it should be provided via it's own module.  I also
>> replaced calls to FastMath with Math.  Most of the calls were for abs() and
>> ulp()...functions that I would think would have similar performance
>> regardless.
>>
>> Probably moving onto FastMath next.  I plan on only including functions
>> that have a performance benefit, and delegating to Math for everything else.
>>
> Hi Ole,
>
> what is the motivation for posting these questions on the math ML?
> Do you intend to contribute some new functionality or propose changes back
> to commons-math?
>
> Or is this project intended to be a fork of commons-math?
>
> Thomas
>
I sent a few emails earlier regarding the precision code with questions that were questions...

We have been discussing refactoring CM, so I've started what can be thought of as a Java 8 (/leaning towards Java 9) useable prototype of such such refactoring.  As I'm going through the process and reviewing the code, I ask questions (Hopefully good ones) when I find something that I think could be simplified, etc.

So far there are probably 6 big changes that CM that might be useful for CM:
1) Lombok to reduce boileplate code (Can be seen in the new exception module - Also generates javadoc)
2) Removal of float precision utilities in Precison
3) Java 8 and Java 8 constructs
4) Coming (Observer design for Optimizers)
5) The dependency structure of the modules
6) Hopefully increased generic use for modules like the numbers module

Fork usually has a negative connotation.  When architects draw up designs there are usually several that can be used for comparison and contrast.  The primary purpose of sharing the results of the refactoring is that.  I probably should be make it clear that I am 100% for CM.  I think the developers and contributors are amazing and I have tremendous respect for all of you.

Cheers,
- Ole


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Refactored Precision

Posted by Thomas Neidhart <th...@gmail.com>.
On Mon, Dec 14, 2015 at 9:17 AM, Ole Ersoy <ol...@gmail.com> wrote:

> Hi,
>
> Just a heads up for those of you interested or have nothing better to do
> at 2 am :).  I refactored the Precision class into classes PrecisionAssert
> and RoundDouble.
>
> https://github.com/firefly-numbers/firefly-numbers
>
> I created a new github organization for the package, since it deals less
> with math and more with number precision in general.  I also removed
> support for float.  It seems like most of the code in CM uses double, and
> if float is needed then it should be provided via it's own module.  I also
> replaced calls to FastMath with Math.  Most of the calls were for abs() and
> ulp()...functions that I would think would have similar performance
> regardless.
>
> Probably moving onto FastMath next.  I plan on only including functions
> that have a performance benefit, and delegating to Math for everything else.
>

Hi Ole,

what is the motivation for posting these questions on the math ML?
Do you intend to contribute some new functionality or propose changes back
to commons-math?

Or is this project intended to be a fork of commons-math?

Thomas