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]
