Some recent papers
- The Most Unreliable Technique in the World
to Compute PI. A Braga School (1998) contribution, written for fun and
instruction. Its "serious" title should be more or less: "Infinite
precision real fractions, and lazy carry propagation". (If you read it
you will be impressed by some extremely profound philosophical comments,
inserted there because the AFP School took place in the Casa do
Espírito Santo, a building administrated by missionaries,
and I felt obliged to comply with the spiritual atmosphere of the lieu...)
- Scientific Computation and Functional Programming,
this somehow pompous title hides an essay on the lazy functional algorithms applied to
theoretical physics, for example how to define some operations on abstract
state vectors, and how to code the Brillouin-Wigner perturbation expansion for a
simple test case (anharmonic oscillator). This paper is being published in
Computing in Science &
Engineering, Vol. 1, No. 3,
section: "Scientific Programming", ed. P. DuBois,
pp. 64-72.
Here you
are the PostScript version.
- Functional Differentiation of Computer
Programs, Journal of HOSC (14), (2001), pp. 35-57. This paper
describes the lazy
implementation of the (forward) automatic differentiation techniques,
permitting - in a very concise way - to generate all derivatives
of a numerical expression within a program.
- Lazy Processing and Optimization of Discrete
Sequences, another attempt at marrying the functional style and quite
classical numerical computations. You will find here very short codes for
Runge Kutta, Romberg integration, or convergence acceleration techniques,
but more specifically, some non-trivial optimizations of arithmetic and
geometric sequence processing.
There is now a more recent version in French.
- Adjoint Codes in Functional Framework.
This is an attempt to code lazily the "Reverse" computational differentiation
technique. The laziness is used here to extract some information "from the
future", so the paper is a little mad. I even cite a science-fiction book
(Philip Dick) in the references...
There is also an old PostScript version if you prefer.
(This paper was presented as a short, informal talk at the Haskell Workshop
during ICFP'2000 [Montréal]. Then submitted elsewhere, but the referees
didn't appreciate it at all.)
A slightly different version in French is
available here.
- Functional Approach to Texture Generation.
This is a preliminary version, an essay on the usage of Clean to generate
images, somehow in the spirit of PAN of Conal Elliott (highly recommended
for all those who like visual math). Sent to PADL'2002 (Portland); the proceedings
are published by Springer, which I acknowledge with due respect.
OK, if you want the real, unpublished stuff, look up
Clastic.
- Functional Low-level Interpreters.
A pedagogical paper presented at FDPE'02 (Pittsburgh), describing the construction
of some low-level, FORTH-style virtual stack machines, used as targets in my
compilation course in purely functional style. The code execution is low level,
but the machine coding is quite elaborate, using (sometimes) CPS, monads, etc.,
so this fragment of the course taught some functional programming techniques
as well.
- Structure and Interpretation of Quantum Mechanics
- a Functional Framework. I tried to
construct - using Haskell - an implementable calculus on quantum states and
operators, in an abstract, as abstract as possible, way
(means: independent of the 'coordinate' frame fixed by the concrete observational
procedure such as spatial axes, etc.)
States are
functions, which is more close to our theoretical vision of the quantum
reality than qubits, registers, etc. implemented as traditional data
structures. The ambitions of the paper are more general than just handling
of qubits, but I show some simplistic quantum circuits just to illustrate
the effectiveness of the technique on a limited number of pages.
I use multiparametric classes. Presented at the Haskell Workshop '03,
(Uppsala).
- Functional Framework for Sound Generation.
A pedagogical paper presented at PADL'05 (Long Beach, California).
Shows the usage of "static", declarative definition of signals
implemented as lazy streams. It is easy to construct co-recursive, feedback
sequences, which may be used for the construction of filters, and "waveguide"
physical models of instruments. Published by Springer LLNCS, who
hold the copyright.
- Teaching Image Synthesis in Functional Style.
To be presented at FDPE'05 (Tallinn, Estonia).
Shows the usage of functional methods (not: languages) to produce 3D images
in a pedagogical context, the 3D modelling of parametric and implicit
surfaces. The packages/languages used were mainly Pov-RAY with its
powerful macro-layer, and Python used as a scripting language for Blender.