Can you elaborate on what you mean by "define my own version numbering"?
The Base.gcdx function does return those numbers: julia> g, m, n = gcdx(18,24) (6,-1,1) julia> 18m + 24n 6 I bet there's some clever number theory work out there on efficiently finding the next largest prime. It would be a fun research project to figure out what the state of the art approach is. On Wed, Jan 8, 2014 at 11:50 AM, Hans W Borchers <[email protected]>wrote: > Thanks for pointing out how to use `Pkg` to register packages. I see I > should have found this myself. Still, I would like to define my own version > numbering, the same way I can do it for R packages in the DESCRIPTION file. > > Concerning the `Numbers` package: As I said, this was a learning > experiment. `Base.isprime` is indeed a 100 times faster. Therefore, it > would be reasonable to base `nextprime` and `prevprime` on repeatedly > applying `isprime`. > > `Base.gcd` and the version in `Numbers` are comparably fast. BUT: It is > important that `gcd(a,b)` (or some variant `extgcd`) also *returns* the > numbers `m` and `n` such that `g=m*a+n*b`. This is needed in > number-theoretic tasks such as determining the modular inverse. > > Thanks > Hans Werner > > > On Wednesday, January 8, 2014 2:39:47 PM UTC+1, Stefan Karpinski wrote: > >> Good stuff! A lot of this either already exists in base Julia or should. >> In particular, >> primes(n)<http://docs.julialang.org/en/latest/stdlib/base/?highlight=primes#Base.primes> >> uses >> BitArrays and the Sieve of Atkin to quickly generate the primes up to n and >> isprime(n)<http://docs.julialang.org/en/latest/stdlib/base/?highlight=isprime#Base.isprime> >> uses >> the fast Miller-Rabin primality test to check if a particular number is >> prime. The witnesses used for the algorithm are known to be fully correct >> for everything up to 64-bit numbers, while for larger numbers (128-bit and >> BigInts), the algorithm is probabilistic but extremely unlikely to >> incorrectly deem a number to be prime. See >> base/primes.jl<https://github.com/JuliaLang/julia/blob/master/base/primes.jl>for >> implementation details. I think >> gcdx(a,b)<http://docs.julialang.org/en/latest/stdlib/base/?highlight=gcdx#Base.gcdx> >> already >> implements the extended Euclidean division algorithm, but we could probably >> be more explicit about that in the documentation. And of course >> factor(n)<http://docs.julialang.org/en/latest/stdlib/base/?highlight=factor#Base.factor>factors >> a number. >> >> We could certainly incorporate the nextprime and prevprime functions, >> although I'd want to do some research to make sure that we're using a >> reasonably fast method. I suspect that using sieves is probably not very >> efficient for large numbers. >> >> Regarding the package registration questions, if you do >> Pkg.register("Numbers") and/or Pkg.tag("Numbers") and then Pkg.publish() it >> should do all the necessary things to tag a version and submit it to the >> METADATA repo. >> >> >> On Wed, Jan 8, 2014 at 8:06 AM, Hans W Borchers <[email protected]>wrote: >> >>> Dear Julia users, >>> >>> I am using and programming Julia since a few days only. >>> For learning purposes I have set up a Julia package Numbers at >>> >>> https://github.com/hwborchers/Numbers >>> >>> that can be installed as an unregistered package easily. >>> >>> I have two small questions here: >>> >>> (1) How can I add version numbers to packages on GitHub ? >>> >>> (2) After extending the package a bit, I would like it to become a >>> registered package. Where would I send a request for this ? >>> >>> If you worry about the quality: It is a translation of an R package that >>> lives >>> on CRAN for some time now. Several people have downloaded and used it. >>> >>> Best >>> Hans Werner >>> >>> P.S.: >>> I would like to thank John Myles White for starting me with some tips and >>> a good dose of encouragement. >>> >> >>
