Tuesday, 3 September 2013


Well, I said I would, and so I did: I implemented, documented and tested quadicxx today. Took some small changes to the padicxx_ctx related interfaces, but nothing major.

This only leaves printing, which I will start tackling tomorrow.

Thursday, 29 August 2013

padicxx again

I spent most of the morning thinking about the changes to padicxx related to my discussion with Sebastian and Bill. I think that I have now come up with a reasonable way to implement the design we agreed upon. I changed padicxx accordingly, and also wrote enough of padic_polyxx to see that this class will also work out.

Hence not a particularly productive day code-wise, but I expect to be able to use all of todays thinking to finish all the ?adic* classes tomorrow.

Wednesday, 28 August 2013

Another productive day

Today I did the following:

  • implement hensel lifting code for fmpzxx
  • fix a const correctness problem in fmpz_poly_mat
  • implement prod for fmpz_poly_matxx
  • implement solve_fflu_precomp for fmpz_poly_matxx and nmod_poly_matxx
  • implement various four-argument functions for nmod_polyxx
  • implement bit_pack and bit_unpack for fmpzxx
 This means that the only coding related tasks of priority (H) or (M) left on my TODO list are ustream and ?adic*. Yay!

Tuesday, 27 August 2013

Still more work to do

Today I finished the construction and randtest interfaces, added row reduction and lu decomposition interfaces to all matrix classes, and added radix conversion functionality for fmpz_mod_poly.

Monday, 26 August 2013

We're getting there

I'm in the process of working through my todo list of things which need to be done before the project can be finished. This is going to take a while, but seeing the list shrink is encouraging. Today I added conversion and construction interfaces to most classes, added static versions of randtest to classes which didn't have that, yet, and started adding set_zero, set_one functions. None of this is hard, but it all takes time ...

Thursday, 22 August 2013

work work work

Now that most classes are finished to some extent, it is hard to keep track of the work I'm doing, since it is all scattered about. Today I
  • fixed make install
  • implemented the ustream prototype (c/f mailing list)
  • removed the n % ctx syntax to construct an nmodxx 
  • added nmodxx::reduce static function replacing the member functions of fmpz_polyxx and fmpq_polyxx.
  • implemented fourary and fiveary expression templates
  • implemented the CRT function for fmpzxx

Wednesday, 21 August 2013

Factorisation code

I didn't write a blog post in a while since I have been active on the list. For this reason there has been a lot of progress since the last one, which I am not going to mention in detail. Instead, let me just focus on today's work: I implemented wrappers for the factorization functionality in flint (recall that this is one of the (H)igh priority tasks that need finishing). Hence there are new classes fmpz_factorxx, nmod_poly_factorxx, fmpz_poly_factorxx, fmpz_mod_poly_factorxx, together with associated methods/functions. As far as I can tell this is all the factoring functionality. This was quite a marathon, but I implemented, tested, and documented all of these today.