Iam an Associate Professor
in Computing Science (maître de conférences en informatique) in the OGRE (Optimisation Globale et Résolution Ensembliste) team at LS2N, UMR CNRS 6004, France.
My main areas of expertise include the design of constraint solvers for continuous problems,
floating-point arithmetic, and interval arithmetic.
Since 2001, I have been the main developer behind
GAOL, a C++ interval arithmetic library
that offers the multivalued inverse functions required
by interval constraint solvers. Since 2019, I have been the main developer for
FPNGlib, a C library to draw floating-point
numbers at random geared towards numerical software testing. Since 2021, I have been the main developer for MicroFloatingPoints.jl, a Julia package to manipulate IEEE 754-compliant very small floating-point numbers (from 5 bits to 32 bits).
From 2008 to 2015, I was a member of the Interval Standard Working Group responsible for the
development of the IEEE Std 1788™-2015 Standard for Interval Arithmetic.
I have been a First-Aider at Work (Sauveteur-Secouriste du Travail) since 2006.
Research
My ORCID iD is https://orcid.org/0000-0002-1798-1568.
«If there is one ``scientific''
discovery I am proud of,
it is the discovery of the habit of
writing without publication in mind. I experience it as a liberating
habit: without it, doing the work becomes one thing and writing it
down becomes another one, which is often viewed as an unpleasant burden.
When working and writing have merged, that burden has been taken away. »
E. W. Dijkstra. EWD1000-6.
Selected Publications
Here is a selection of my most recent and/or significant publications.
Other
publications available
upon request. [Obfuscation note: replace all occurrences of '3' by 'e' in
the email address]
Frédéric Goualard.
MicroFloatingPoints.jl: providing very small IEEE 754-compliant floating-point types.
Journal of Open Source Software,
9:101,
September 2024
-
Christophe Jermann et Frédéric Goualard.
Le problème de la transposition informatique pour les algorithmes numériques.
Repères IREM.
Vol. 133.
Décembre 2023.
-
Frédéric Goualard.
Drawing random floating-point numbers from an interval.
In ACM Transactions on Modeling and Computer Simulation. 32:3,
January 2022. Corrigendum, Nov. 8 2023.
-
Frédéric Goualard.
Generating Random Floating-Point Numbers
by Dividing Integers: a Case Study
In proceedings of the International Conference on Computational Science (ICCS 2020).
Lecture Notes in Computer Science, pp. 15–28,
Springer,
June 2020.
-
Frédéric Goualard.
How do you compute the midpoint of an interval?
In ACM Transactions on Mathematical Software.
40:2,
2014.
-
Frédéric Goualard.
Fast and Correct SIMD Algorithms for Interval Arithmetic .
In proceedings of the 9th International Workshop on State-of-the-Art in Scientific and Parallel Computing (PARA '08),
Lecture Notes in Computer Science,
vol. 6126–6127,
Springer,
2012.
-
Alexandre Goldsztejn and Frédéric Goualard.
Box Consistency through Adaptive Shaving.
In proceedings of the 25th ACM Symposium On Applied Computing,
pp. 2049–2054,
2010.
-
Frédéric Goualard.
Faster and tighter Evaluation of a Polynomial Range Through SIMD Interval Arithmetic.
In proceedings of the 14th GAMM-IMACS International Symposium on Scientific Computing, Computer Arithmetic and Validated Numerics,
2010.
-
Frédéric Goualard and Alexandre Goldsztejn.
A Data-Parallel Algorithm to Reliably Solve Systems of Nonlinear Equations.
In proceedings of the Ninth International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT'08),
pp. 39–46,
IEEE Computer Society,
2008.
-
Frédéric Goualard and Christophe Jermann.
A Reinforcement Learning Approach to Interval Constraint Propagation.
Constraints,
pp. 206–226,
13:1–2,
2008.
-
Frédéric Goualard and Christophe Jermann.
On the Selection of a Transversal to Solve Nonlinear Systems with Interval Arithmetic.
In proceedings of the International Conference on Computational Science (ICCS '06),
Lecture Notes in Computer Science,
vol. 3991,
pp. 332–339,
Springer,
2006.
-
Frédéric Goualard and Laurent Granvilliers.
Controlled propagation in continuous numerical constraint networks.
In proceedings of the 20th Annual ACM Symposium on Applied Computing (Constraint Solving and Programming track),
pp. 377–382,
vol. 1,
The Association for Computing Machinery, Inc.,
2005.
-
Frédéric Goualard.
On Considering an Interval Constraint Solving Algorithm as a Free-Steering Nonlinear Gauss-Seidel Procedure .
In proceedings of the 20th Annual ACM Symposium on Applied Computing (Reliable Computation and Applications track),
pp. 1434–1438,
vol. 2,
The Association for Computing Machinery, Inc.,
2005.
-
Frédéric Benhamou, Frédéric Goualard, Éric Languénou, and Marc Christie.
Interval Constraint Solving for Camera Control and Motion Planning .
ACM Transactions on Computational Logic,
5:4,
pp. 732–767,
October
2004.
-
Frédéric Benhamou and Frédéric Goualard.
Universally Quantified Interval Constraints.
Proceedings of the sixth International Conference on Principles and Practice of Constraint Programming (CP'2000),
Lecture Notes in Computer Science,
vol. 1894,
pp. 67–82,
Springer,
2000.
-
Laurent Granvilliers, Frédéric Goualard, and Frédéric Benhamou.
Box Consistency through Weak Box Consistency .
In Proceedings of the eleventh IEEE International Conference on Tools with Artificial Intelligence (ICTAI '99),
pp. 373–380,
IEEE Computer Society,
1999.
-
Frédéric Benhamou, Frédéric Goualard, Laurent Granvilliers, and Jean-François Puget.
Revising hull and box consistency .
In proceedings of the sixteenth International Conference on Logic Programming (ICLP'99),
pp. 230–244,
The MIT Press,
1999.
Awarded the John Alan Robinson 20 year test of time award at
ICLP 2019.
Software
GAOL (Not Just Another Interval Library)
GAOL is a C++ Interval
Arithmetic library I have been developing since 2001. Contrary to most of
its concurrents, it offers all the reverse operators needed when implementing
interval constraint solvers. GAOL has been tested on the following platforms:
- Linux, 32 bits with GCC 6.1.0
- Linux, 64 bits, with GCC 6.1.0
- Mac OS X 64 bits (compiler unknown)
- ARMv8 64 bits (AARCH64, starting from v. 4.2.2 for GAOL and v. 2.1.1 for mathlib)
I am interested in
hearing from you [Obfuscation note: replace all occurrences of '3' by 'e' in
the email address] if you were able to compile and test GAOL on other platforms, or if you observe a problem on a platform that is reported as supported in the above list.
For what it is worth, you may be interested in knowing that GAOL is not IEEE 1788
Standard compliant, and that I have no plan in the near future to make it so.
The latest version of GAOL used to be available from
SourceForge. It is no longer the case, as of October 2016. You may now download the latest version of GAOL from GitHub.
You will also need a mathematical library, either the IBM Accurate Portable Mathematical Library or CRLibm. Install one of these two before configuring gaol.
FPNGlib: a Floating Point Number Generators Library
FPNGlib is a C library available from
GitHub offering
many Random Number Generators to draw integers
and floating-point numbers. Its main feature is that it allows the user to draw
floating-point numbers with various properties so as to permit testing
different aspects of numerical software.
MicroFloatingPoints: computing with very small IEEE 754-compliant floats
MicroFloatingPoints is a Julia package available from
GitHub allowing
to compute with very small floating-point numbers (from 5 bits to 32 bits) that follow
the IEEE 754 standard. See the
documentation for more.
Teaching
«For the correct analogy for the mind
is not a vessel that needs filling,
but wood that needs igniting. »
Plutarch. On Listening.
I teach a course on Computer Architecture at the Bachelor level (3rd year, in French) , a course at the introductory level on Scripting languages (BASH, AWK, and Python) and a course on Advanced Algorithms and Programming to 1st year Master students in Bioinformatics (in French).
I have written (in French) several fascicles on various parts of my courses. They are all available under the Creative Commons CC BY-NC-ND:
With Christophe Jermann, we
have written the fascicle (in French) « Le calcul sur ordinateur » for high school teachers in Mathematics and Computer Science about the pitfalls of numerical computation on electronic devices. It serves as follow-up material to the talk by Christophe at Journée académique de l'IREM des Pays de la Loire held in Nantes on 13th April, 2023.
Miscellaneous
LaTeX Stuff
Since 1996, I have developed many LaTeX packages, mostly used only locally
at the labs I was employed at the time. For my PhD defense in 2000, I developed
Prosper,
a package to write more beautiful LaTeX slides
in a simpler way than what was available at the time. Somehow, it filled a need and caught on.
However, Prosper heavily relies on Adobe Postscript, and cannot be used when producing Adobe PDF
files directly from the LaTeX source, as would be done by a tool such as pdflatex.
With more modern contenders around, I decided in 2009 to stop
supporting it. If you are now making the move to LaTeX slide design, please consider packages like
Powerdot (self-advertised as
``based on Prosper'') or
Beamer (my favorite, and the one
I myself use now) instead.
To fill a narrower need, I have written sujet, a LaTeX class to write subjects for exams, tutorials, … It is possible to edit both the subject and its correction in the same document.
The XeLaTeX class unantes can be used to write a letter according to the
graphic charter of the University of Nantes. It is an unofficial class, which
is not endorsed in any way by the University of Nantes. You will most likely need
to install the Alte Din 1451 Mittelschrift font on your system to use the class.
The Beamer style ls2n can be used
for LaTeX presentations sponsored by the Laboratoire des Sciences du Numérique de Nantes (LS2N). This is an unofficial style that is not endorsed by LS2N.
Contact
Email address
Fr3d3ric.Goualard+HOMEPAGE@univ-nant3s.fr
[Obfuscation note: replace all occurrences of '3' by 'e' in the email address]
Surface mail
Frédéric Goualard
LS2N UMR CNRS 6004
Pôle Sciences et technologie
2, rue de la Houssinière
BP 92208
F-44322 NANTES
PGP Public Key
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.14 (GNU/Linux)
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
=2eEH
-----END PGP PUBLIC KEY BLOCK-----
DISCLAIMER: Though related to my research at LS2N and Nantes Université, France, this web site
is neither hosted by that laboratory nor by Nantes Université.
All opinions expressed on this web site are my own and
are not endorsed in any way by LS2N or Nantes Université.