I thank Prof. W. Barth (University Erlangen) for (en)forcing me to start this project. Hans Hülf, Rüdiger Örtel and Kai Schneider have spent lots of time on coding parts of surf. Some of the code has been copied from other places:
surf is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
The following libraries have been compiled into surf:
surf is available via http/ftp at the surf home page http://www.mathematik.uni-mainz.de/AlgebraischeGeometrie/surf/surf.shtml. You can download the source code, binaries for Linux and Solaris and the documentation.
To compile surf, the following software is needed:
surf is started by typing surf on the command line.
Optional arguments are
the name of a script file and all Xtoolkitoptions. So the synopsis is:
surf [file] [xtoolkitoption]
surf is designed to visualize algebraic curves and surfaces. This can be done either by writing scripts in surf's command language and executing them interactively or from another program (for example make), or by using surf's graphical user interface. The graphical user interface (GUI), of course is not designed for very complex tasks. It is designed to work only with one equation and to fiddle around with all parameters until the image looks nice. By using scripts one can draw series of pictures where each picture consists of several surfaces/curves at a high resolution.
Scripts in surf's command language are stored in files with the suffix .pic. These files consist of descriptions of curves and/or surfaces and some commands. They can be invoked in two ways:
surf calculates both color and black & white images. Color images can be stored in the following formats:
Usually you will find some sample scripts in the following directory:
${INSTALL}/surf/examples
By default ${INSTALL} points to /usr/local .
Sample output is presented at/below http://www.mathematik.uni-mainz.de/AlgebraischeGeometrie/docs/Eflaechen.html and http://www.mathematik.uni-mainz.de/AlgebraischeGeometrie/docs/Eenriques.html.
surf can be invoked from make. This comes in quite handy when visualising a series of curves/surfaces. Suppose there are script files s1.pic, s2.pic, ... , sn.pic which create during execution images s1.xwd, s2.xwd, ... , sn.xwd. If for example gif is the desired image file format, an appropriate makefile might look like:
#!/bin/bash
#
SURF = surf
RM = /bin/rm -f
CONVERT = convert
#
OBJS = s1.gif s2.gif .... sn.gif
#
.SUFFIXES: .pic .gif
#
.pic.gif:
${SURF} $<
${CONVERT} $*.xwd $*.gif
${RM} $*.xwd
#
dummy:
@echo ' '
@echo 'usage:'
@echo ' '
@echo ' print this message:'
@echo ' make'
@echo ' '
@echo ' build images:'
@echo ' make all'
@echo ' '
@echo ' remove images:'
@echo ' make clean'
@echo ' '
#
all: ${OBJS}
#
clean:
${RM} *.gif
#
# end of makefile
At the present time, Ralf Schmidt is working out the code to draw locally complete intersections. Useful could be also:
In case you find any bug, please send a bug report to endrass@mathematik.uni-mainz.de.