commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles <gil...@harfang.homelinux.org>
Subject Re: [math] Creating a class of number theory tools
Date Sun, 11 Sep 2016 13:17:27 GMT
Hi Benedikt.

On Sun, 11 Sep 2016 12:32:36 +0000, Benedikt Ritter wrote:
> Gilles <gilles@harfang.homelinux.org> schrieb am So., 11. Sep. 2016 
> um
> 13:33 Uhr:
>
>> Hello.
>>
>> On Sat, 10 Sep 2016 19:18:32 -0600, Shane S wrote:
>> > Hi Gilles,
>> >
>> > Thank you for your response. These methods are used primarily in
>> > computational number theory applications. I myself came across the
>> > need for
>> > these algorithms when studying and implementing traditional and
>> > proposed
>> > variants of the Quadratic Sieve integer factorisation algorithm. 
>> But
>> > these
>> > methods are also required for other factorisation algorithms such 
>> as
>> > the
>> > number field sieve. As a result, the library additions I propose
>> > would also
>> > have cryptographic applications.
>>
>> Lacking the necessary knowledge, I have no clear view of who
>> would be potential users of your proposed contributions.
>> For example, assuming that this code were available for use,
>> how much would still be necessary in order to build a
>> cryptographic application?
>>
>> > These methods are no more complex than  modInverse() in BigInteger
>> > and from
>> > my limited experience, have found the use cases to be similar in
>> > general.
>>
>> Given that most (and perhaps all) current uses of Commons Math
>> are in applications that deal with "double", I'd guess that
>> extensions of "BigInteger" would be better located in their own
>> component.
>>
>
> To me this (again) raises the question whether we need a dedicated 
> Math
> TLP...

As I've argued already, whether another TLP or this
("Commons") TLP, it does not change anything about the
issue itself: there are too many totally unrelated topics
within the Commons Math codebase.  And each of those may
(and does) have non-overlapping user communities. [Which
entails the current maintenance problem.]

Likewise, the solution is the same: modularization.
"Commons" can quite perfectly be the home to several new
components outsourced from Commons Math, each with a much
more focused scope (and corresponding community).

The issue, raised by you for example, of having to group
all "mathematically"-oriented tools in a single component
(or TLP) makes no sense, neither conceptually nor from a
project management POV: "Mathematics" (with an "s"!) is not
one topic.

Of course, it's this PMC's right to not want to manage the
resulting components; but in that case, it should have
accepted to donate the code to said-TLP.
[This much was requested by James Carman, but was vetoed by
some PMC people.]


Regards,
Gilles

>
> Benedikt
>
>
>>
>> [In line with all the reasoning about monolithic vs modular which
>> you can find in the ML archive discussions that happened around
>> last May.]
>>
>> > I can certainly understand the reluctance in light of the limited
>> > human
>> > resources. I would like to contribute to the maintenance of the 
>> code
>> > base
>> > in any way I can. I have no experience in open source projects 
>> like
>> > this,
>> > but I am willing to learn.
>>
>> My idea is to create a module that would collect all
>> functionalities that deal with "higher" precision and
>> "big" numbers.
>> Candidates for this component could be
>>   o.a.c.math4.util.BigReal
>>   o.a.c.math4.dfp
>>   o.a.c.math4.primes
>>   o.a.c.math4.fraction
>>
>> Would you be interested in working on that?
>>
>> > If it is agreed that the functionality I propose is useful,
>>
>> I don't doubt that it is interesting functionality; I have
>> no idea whether it is useful (in the sense that it would
>> more users than just you).
>>
>> > I could also
>> > commit to maintaining it
>>
>> That is usually a requirement for incorporating code in Commons
>> (but we failed spectacularly in that respect in Commons Math!).
>>
>>
>> Best regards,
>> Gilles
>>
>> >
>> > Thank you
>> >
>> > On Sep 9, 2016 5:24 PM, "Gilles" <gilles@harfang.homelinux.org>
>> > wrote:
>> >
>> >> Hi.
>> >>
>> >> Thanks for offering to contribute to Commons Math.
>> >>
>> >> However, this is a quite advanced topic, and I don't
>> >> know whether Commons Math is the right place for this
>> >> functionality.
>> >> Could you provide more background information about
>> >> who (or what applications) are the potential users
>> >> for these algorithms?
>> >>
>> >> Please note that this is not outright rejection, but
>> >> we are severely lacking human resources to manage the
>> >> existing codebase[1] and discussions are ongoing as to
>> >> how best continue this project.
>> >>
>> >> My personal opinion is that all well-defined topics
>> >> (such as your proposal might be) should be developed
>> >> in their own component.[2]
>> >>
>> >> Best regards,
>> >> Gilles
>> >>
>> >> [1] See the "dev" ML archives if you'd like to know
>> >>     how this happened.
>> >> [2] See the archives, too.
>> >>
>> >> On Thu, 8 Sep 2016 11:16:03 -0600, Shane S wrote:
>> >>
>> >>> Hello all,
>> >>>
>> >>> I would like to create a class of some common number theory 
>> methods
>> >>> for
>> >>> the
>> >>> Commons Math library (or add methods the the BigInteger class). 
>> I
>> >>> am
>> >>> motivated to do this following a summer research project at my
>> >>> university
>> >>> (University of Calgary). I was/am implementing some factoring
>> >>> algorithms
>> >>> for cryptographic applications and found that there were no
>> >>> libraries to
>> >>> do
>> >>> things such as:
>> >>> - Determining quadratic residuocity by way of Jacobi/Legendre
>> >>> symbol
>> >>> calculation
>> >>> - Determining the square root (mod p)
>> >>> - variations of the Sieve of Eratosthenes for producing a list 
>> of
>> >>> primes
>> >>>
>> >>> I also noticed the lack of library support for these operations
>> >>> while
>> >>> doing
>> >>> my first math based crypto course, as did many of my peers. I 
>> think
>> >>> that
>> >>> the increasing practical use of these methods warrants their
>> >>> inclusion in
>> >>> the Commons Math library.
>> >>> I implemented Java methods for these operations for my own use 
>> and
>> >>> would
>> >>> like to contribute them to Commons Math. I am looking for any
>> >>> comments
>> >>> about this, specifically if the developer and commiter community
>> >>> here
>> >>> would
>> >>> support this. I am completely new to open source projects and
>> >>> welcome any
>> >>> advise.
>> >>>
>> >>> Sincerely,
>> >>>
>> >>>     Shane Sims
>>
>>


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


Mime
View raw message