### Welcome to my Thingumathigs collection

...sort of

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

• Source files for the article “Writing C modules for Lua”

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`.

• Intersections of linear subspaces with the closed positive orthant

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.

• ldiff & lpatch - A Lua binary diff tool

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.

• LGMP - A GMP package for Lua 5.1 and 5.2

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

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.

• Fiber based coroutines for Lua 5.0.2

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.

• Complex reflection groups and hypergeometric functions

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.

• Geometric structures on the complement of a projective arrangement (submitted to and accepted by Publications Mathematiques de l'IHES)

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

• A simple proof of the modular identity for theta functions (Proc. Amer. Math. Soc. 131 (2003), 3305-3307)

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.

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!

• Recursive texture mapping

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.

• Diophantine equations after an idea of Lehman

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.

Read more: R. Lehman, Factoring large integers, Mathematics of Computation 28 (1974), 637-646.

• A Lua 4 package for complex numbers

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.

• An "import" function for Lua 5

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.

• A PCRE module for Lua 4.0.1

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.