Hello.

2020-09-25 11:55 UTC+02:00, Nicola Vitucci <[email protected]>:
> Hi everyone,
>
> I am writing an article on Commons Numbers on my blog,
> with some background
> and several usage examples for each module.

Great; thanks a lot!

> Anyway, I could not find a clear
> explanation of what Numbers is meant for

https://en.wikipedia.org/wiki/Number

So it just because many modules of the "Apache Commons
Numbers" were straightforwardly intended to implement
a type of "number":
 * complex number -> class "Complex"[1]
 * quaternion hypercomplex number -> class "Quaternion"[2]
 * rational number -> classes "Fraction" and "BigFraction"[3]
 * ...

Similarly, there are implementations of numbers with certain
properties (e.g. "prime"[4]) or additional "behaviours" (e.g. an
angle is periodic[5]).

Then there are some utilities, such as "Precision" (that operate
on some types of numbers) and "ArithmeticUtils".

Eventually, I came to think that "Commons Numbers" could
also be a home for collecting several low-level "function-like"
utilities with potentially many different use-cases; hence the
additional modules that provide
 * root finding,
 * combinatorics,
 * linear combination,
 * ...

> and its relation to other libraries
> (e.g. Commons Math);

Whenever a functionality was ported to "Commons Numbers" (or
"Commons RNG", or "Commons Statistics", or "Commons Geometry")
that was/is used by "Commons Math", the next major release of
"Commons Math" will depend on the new component.

> my understanding is that Math has become too large and
> there is a desire to split it into smaller, easy-to-integrate libraries.
> Could you clarify a little?

The short story is as you state, but also: Small, focused, tightly
scoped components are easier to develop and maintain.

The somewhat longer story is that "Commons Math" development
was subject to adverse trends: maintaining backwards compatibility
versus implementing fixes and improvements that would break
backwards compatibility.
I thought that both could be achieved (through modularization
and splitting off smaller, lower-level, components)...
The full story is in the "dev" ML archive.

It must be notes that some classes of "Commons Numbers"
got definite improvements wrt to their counterpart in the last
released version of "Commons Math" (3.6.1), e.g. consistency,
unit tests coverage, performance, corner cases.
[In particular, I'm thinking of classes "Complex", "Fraction" and
"BigFraction".]

> Furthermore, do you expect the release version
> to be somewhat/quite different from the current beta version?

The purpose of release a "beta" was to get feedback and act
accordingly.  Hopefully your blog will help. :-)
I look forward to reading it.

Best regards,
Gilles

[1] http://commons.apache.org/proper/commons-numbers/commons-numbers-complex
[2] http://commons.apache.org/proper/commons-numbers/commons-numbers-quaternion
[3] http://commons.apache.org/proper/commons-numbers/commons-numbers-fraction
[4] http://commons.apache.org/proper/commons-numbers/commons-numbers-primes
[5] http://commons.apache.org/proper/commons-numbers/commons-numbers-angle


> Thanks,
>
> Nicola
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to