fplll days 3

Martin R. Albrecht edited this page Jul 14, 2017 · 44 revisions


  • July 6 - 7 (Thursday - Friday): Tutorials
  • July 10 - 14 (Monday - Friday-ish): FPLLL Days


CWI Amsterdam, The Netherlands


The idea of fplll days is inspired by the format of Sage Days which are semi-regularly organised by the SageMath community. The idea is simply to get a bunch of motivated developers in a room to work on code. We also schedule the occasional talk but the focus is on collaborative development of lattice algorithms.

Tutorial Sessions

Thu, Jul 6 :

12:30 Lunch Break (@ CWI restaurant)

15:30 break

Fri, Jul 7 :

12:30 Lunch Break (@ Polder)

  • 14:00 Tuple-sieve [Gottfried]
  • 14:50 The Pruning module [Leo]

15:30 Break

Coding Projects

See also the fpllldays tag on fplll and fpylll

Software Engineering/Design

  • Profiling the library and finding bottlenecks
  • Optimisations (for various target architectures)
  • Benchmark(et)ing infrastructure to detect performance regressions/improvements
  • Refactoring to make the code more modular/easier to understand
  • Function-level and high-level documentation
  • Investigate if we can remove typedefs in nr.h to make code more explicit (Vaggelis)
  • Investigate if we can drop MatrixRow or document why it is needed (Vaggelis)
  • Template ZZ_mat<Z_NR<mpz_t>> instead of ZZ_mat<mpz_t> (?) (Vaggelis)


  • SIMD implementation for machine doubles (Chitchanok)
  • Givens rotation (Thomas)
  • Seisen size-reduction

Pruning (Leo)

  • Improve handling of corner cases
  • Re-factor (improve and simplify interface, unfix array dimension (template?), templating recursions ?)


  • Enumeration with discrete pruning
  • GPU implementation of enumeration (Fernando)
  • Multicore implementation of enumeration, thread pool (Marc: #206)
  • Enumeration WTF FTW (Michael: #259)


  • Sieving, faster, faster, faster!!!! (Gottfried, Elena)
  • Implement a BKZ-variant that actually uses sieving (Eamonn)


  • Progressive BKZ


  • Extend interface to cover LLL on Gram Matrices (Koen)
  • Check FPLLL coverage, what is and isn't covered by FPYLLL.
  • Function-level and high-level documentation
  • Automatized attacks/scripts for challenges: SVP, LWE, NTRU (Matthias: #253)


  • Improve fpylll integration into Sage, e.g. use fpylll's CVP code here
  • Add documentation on how to use fpylll from Sage.

Tentative Programme

  • July 6 (Thursday): Tutorials, Discussing projects and teams.

  • July 7 (Friday): Tutorials

  • July 10 (Monday): Finalizing teams and projects. Coding - coding from 9:30am

  • July 11 (Tuesday): Coding.

  • July 12 (Wednesday): Coding.

  • July 13 (Thursday): Coding & writing documentation (#239, #235)

  • July 14 (Friday Morning only): Coding - wrap-up discussion.


  • Martin Albrecht
  • Shi Bai
  • Koen de Boer
  • Chitchanok Chuengsatiansup
  • Vaggelis Daravigkas
  • Leo Ducas
  • Kostas Draziotis
  • Laurent Grémy
  • Gottfried Herold
  • Pierre Karpman
  • Elena Kirshanova
  • Matthias Minihold
  • Eamonn Postlethwaite
  • Thomas Prest
  • Marc Stevens
  • Fernando Virdia
  • Michael Walter

Registration is closed.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.