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 11:19:49 GMT
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.

[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