Workshop 2012

Second MPFR-MPC Developers Meeting Bordeaux 2012

Following the success of the 2011 meeting, we held another joint MPFR/MPC developer meeting.

The goal of this meeting was to discuss future developments of the GNU MPFR and GNU MPC libraries. It was open to everyone interested in contributing to GNU MPFR and/or GNU MPC, be it by writing new code or by contributing new ideas. The workshop was partially supported by Andreas Enge's grant ERC ANTICS.

Date

25 June 2012, 12:00 to 27 June 2012, 15:00

Venue

Salle 385, Institut de Mathématiques de Bordeaux, University of Bordeaux, France

Programme

Monday, June 25

12:00
Lunch
13:00
Discussion: MPFR/MPCbench program (like GMPbench) (AE, PP, PT, VL)
Result: Start with simplifying the testing framework of MPC, towards something even simpler than in MPFI; hopefully copy-paste to MPFR later
scripts and web page comparing timings with different systems, as done for mpfr
Result: Should share code with the benchmark of the previous item
14:30
Discussion: Static assertions in MPFR: option in C11, suggestion by PP for older standards
Result: Should be implemented in a way compatible with different standards
15:30
Discussion: Improve test coverage
Result: Branches poorly covered in MPC (return values), some files in MPFR; more or less difficult to fix. Some progress (AE, BD, NM, PZ). At the end of the workshop, 100% of the lines are covered in MPC, and several small bugs are uncovered and fixed.
16:00
Coffee break
16:15
Discussion: Rounding to nearest ties away mode
Result: Maybe as MPFR_RNDW to have a one letter code
16:20
Discussion: mpfr_set_float128 and mpfr_get_float128
Result: Implemented (PZ)

Tuesday, June 26

9:00
Presentation: Isolate complex roots of univariate polynomials (BD)
10:00
Coffee break
10:25
Discussion: Release 1.0 of MPC
Result: Release candidate end of June, to be sent to gcc list and gnu platform testers list (TODO AE). After release, create a branch to develop 1.1 independently of bug fixes to be released as 1.0.1. Keep with svn. For release 1.1: Require new GMP and MPFR. Implement rounding mode MPFR_RNDA. Extend testing framework to derive more directed rounding tests from specific tests in the file. Maybe add a flag to enable more costly tests.
A release candidate of MPFR 3.1.1 is prepared (VL).
10:35
Discussion: Static assertions for MPFR
Result: Implemented (PP, VL); need to be used throughout the code (TODO MPFR)
10:40
Discussion: Rounding to nearest ties away mode
Result: Not implemented as a native rounding mode, postprocessing possible from directed rounding at higher precision: We need a function that implements the rounding, given as input a function int foo (mpfr_t, mpfr_srcptr, mpfr_rnd_t) (TODO PZ).
10:50
Discussion: New simplified testing framework using description of function prototypes in .dsc file (MG, PT)
Result: Concept validated, remains to be implemented.
12:00
Lunch
13:00
Presentation: Continuous integration with hydra (LC)
Result: Update of the recipes (AE, LC). The platform is not suited for measuring performance regressions, as the tests may be run on machines with varying specifications.
16:00
Coffee break
18:00
Analysed, implemented and tested a fast algorithm for mpc_fma (AE, BD, PZ)
20:00
Dinner at Croc-Loup

Wednesday, June 27

10:00
Coffee break
12:00
Lunch

More coding.

Presentation of new test framework implementation (MG, PT).

ADT on mid-rad arithmetic: Postponed to 2014, since call for proposals closed.

Analysis and implementation of a new function mpc_rootofunity, computing the canonical primitive root of unity of any given order, to be released with MPC 1.1 (AE, PZ).

Participants