I post stuff here that I've written over time and that may be of interest to others. Anything related to mathematics will be posted on my blog.
Some time ago I started an ambitious project together with my dear friend Frank Waaldijk. We are working on material that one day must turn into a book that explains the beautiful concept of intuitionism in a way that everybody can enjoy. It will show that intuitionism and topology are closely —and very naturally— related.
In the meantime, why not have a look around at Frank's homepage that shows his work as a painter and sculptor?
Anyway, all this sounds nice enough but for the moment there is not
much to look at. Feel free to contact me at wim split couwenberg
at gmail splat com for questions and (better still)
suggestions.
Wim Couwenberg, 10/16/2002 Latest update: 15 January 2012
What it is: The article “Writing C modules for
Lua” —co-authored with Ralph Steggink— appeared
in the book “Lua
Programming Gems.” In it we show how to create a
simple Lua module for the libevent
library. The sources from that article can be downloaded here.
You can also browse them online: Event.lua,
C-Event.c
and Example.lua.
Download: As a tarball: luagem59.tgz
What it is: The closed positive orthant Rn is the set of all vectors that only have non-negative coordinates. Equip Rn with the standard inner product. This short note shows that for any linear subspace V in Rn either V or its orthogonal complement contains a non-zero vector in the closed positive orthant.
Download: As a PDF document: intersect.pdf
What it is: ldiff & lpatch are very small Lua scripts to diff and patch two versions of a binary file. The tools use a proprietary diff file format. When both file versions are ASCII then the diff file is also an ASCII file. This package is written in 100% pure Lua 5.1 and distributed under the MIT license. It includes a short description of the ldiff algorithm.
Download: As a tarball: ldiff.tgz, or as a zip archive: ldiff.zip
What it is: The LGMP package offers the GNU multiple precision arithmetic library (GMP) functionality in Lua 5.1 and 5.2. Only the integer, floating point and random state types are supported. The package is distributed under the MIT license and includes a manual.
Download for Lua 5.1: As a bz2 compressed tarball: lgmp.tar.bz2, or as a zip archive: lgmp.zip
Download for Lua 5.2: As a zip archive: lgmp52.zip
What it is: The uthread library is a nice and small C library that implements user mode threading for Windows, OS X (both Intel and PowerPC) and systems that support the ucontext library (including many Linux distributions). A user mode thread is also known as a “cooperative thread”, a “coroutine” or a “fiber”. User mode threads provide multitasking facilities entirely in user mode, which has considerable advantages in speed and synchronization complexity. The library is distributed under the MIT license and includes a manual.
Download: As a bz2 compressed tarball: uthread.tar.bz2, or as a zip archive: uthread.zip
What it is: This extension library
“fiber” offers functionality equivalent to
the coroutine package in Lua 5.0.2. The main
difference between a coroutine and a fiber is that a running fiber
can be suspended anywhere in a call chain, regardless of its
C and Lua call stack nesting levels. The fiber package is based on
Win32 fibers, available since Windows 98. The package manual
is included in the tarball.
Download: fibers.tgz, in gzipped tar format.
What it is: This is my original Ph.D. thesis from 1994. It was never published in journal articles. Recently, it has been much extended and much polished in a joint effort together with E. Looijenga of the University of Utrecht and G. Heckman of the Radboud University in Nijmegen. It is provided here in (almost) its original form as a service to readers of our recent paper, a preprint of which can be obtained below.
Download: ps.pdf, in PDF format, ps.ps, in PostScript format.
What it is: Finally! After nine years my thesis "Complex reflection groups and hypergeometric functions" has been reworked and will (hopefully) appear as an article. This is mostly due to the considerable efforts of the co-authors E. Looijenga and G. Heckman. All material is completely revised and cast in a broader context. Where my thesis covered arrangements of real finite reflection groups this has been extended to complex finite reflection groups.
The paper generalises work of Schwarz on the classical Gauss hypergeometric function. Key ingredient is a torsion-free deformation of the translation invariant connection on the (co-)tangent space on the complement of the arrangement. This generic approach contains results of Deligne-Mostow, Barthel-Hirzebruch-Höfer and Orlik-Solomon as special cases
Download: 0311404.pdf, in PDF format.
What it is: This short paper proves the classical modular identity for theta functions in one complex variable. Basic knowledge of complex function theory is required but Fourier analysis is omitted altogether. Poisson summation is replaced by a (very) simple differential equation in the tau parameter. Note that this is still a draft version. If I receive the published paper in PDF format from the AMS I'll update it here.
Download: modular.pdf, in PDF format.
Read more: Larry Hammick (Vancouver) pointed me to this four page PostScript document that explains the Poisson summation approach for the modular identity. It also shows how this identity plays a role in the functional equation for Riemann's zeta function. Thanks Larry!
What it is: Texture mapping is a central theme in computer graphics. It is a technique to render a three-dimensional (flat) surface perspectively correct onto a two-dimensional screen. Two divisions per screen pixel make this an expensive operation. This paper describes a simple mapping approximation technique, using only addition and multiplication, that has excellent error bounds in screen space.
Download: texture.pdf, in PDF format.
What it is: A talk that I gave at the University of Amsterdam, 11/6/2002. It presents a simple geometric insight that leads to many interesting results about solving equations in two variables over the integers. For example it leads to a deterministic algorithm to factor a squareful integer in O(N1/4+eps) bit operations. You can download the transparancies that I used for this talk but be warned that they are rather concise. Maybe I'll post a more reader friendly version some day.
Download: transparencies, in PDF format.
Read more: R. Lehman, Factoring large integers, Mathematics of Computation 28 (1974), 637-646.
What it is: A fairly straight-forward complex number package for the Lua (v4) scripting language. It supports basic arithmetic as well as some special functions. An example script file is included.
Download: complex.tgz, in gzipped tar format.
What it is: Import is a Lua (v5) function that provides a package loading mechanism. It has an improved "globals" policy (compared to "require") and supports cyclically dependent packages whenever possible. Import can simply be used as a replacement for the require base lib function. To take full advantage of import's capabilities, packages should comply to a (very simple) package format. Documentation is provided in the form of a Lua Technical Note.
Download: script (the import definition), documentation (the LTN), both in gzipped tar format.
What it is: A simple library for Lua 4.0.1 that enables the powerful regular expression matching capabilities of the PCRE library. It is tested for PCRE versions 3.9 and 4.1 but is easily tweaked to fit your needs. A manual in html format is included in the tarball. Note that PCRE should already be installed on your system.
Download: pcre 4 lua in gzipped tar format.
What it is: A Lua package that implements a dictionary type. The implementation is in pure Lua and based on AVL trees. Actually I haven't used it much because Lua's own tables suffice for most applications. But if you ever need to manage large dynamic ordered sets then this package is for you! A manual in html format is included in the tarball.
Download: dictionary package in gzipped tar format.