- F
- A scientific programming language built on the
Fortran
family of languages (F77, F90, HPF). It is built to be safe
and regular while retaining the powerful numerical and
data abstraction capabilities of
its parent language Fortran 90. The upshot is that a
numerical language with an array syntax (rather than loop
structures for matrix manipulations) is available for
the first time. The documentation is contained within two
commercially available (for about $30 apiece) books, the
details for obtaining which can be found at the given URL.
Compilers are available for several platforms,
with the Linux version freely available at present (6/96).
The October 1997 issue of the
Linux Journal contains an
article about F.
See Brainerd et al. (1996).
[http://www.imagine1.com/imagine1]
- FADBAD-TADIFF
- A pair of C++ packages for performing
automatic differentiation on functions implemented as C++
programs.
FADBAD combines the two basic ways of applying the chain rule,
i.e. forward and backward automatic differentiation, with both
methods using operator overloading to redefine arithmetic
operations such that the program can calculate first order
derivatives.
TADIFF performs Taylor expansions on functions implemented
as C++ programs. It calculates several orders of derivatives
with respect to one variable by overloading the arithmetic
operations used in the function evaluation.
This can also be done with FADBAD, although TADIFF is optimized
for doing several orders of derivatives rather than one at a time.
Source code distributions of both packages are available.
The code is written in C++ and can be compiled using
G++.
Each is documented in a user's manual available in
PostScript format.
[http://www.imm.dtu.dk/fadbad.html]
- FAQ-O-MATIC
- A CGI-based system that automates the process
of maintaining a FAQ list. It allows visitors to the FAQ to take
part in keeping it up to date.
A permission system also makes it useful as a help desk application,
bug tracking database, or documentation system.
Installation and use of this requires Perl 5.003
or later, RCS, and the
gd graphics library.
[http://www.dartmouth.edu/~jonh/ff-cache/1.html]
- FASTA
- A set of tools for biological sequence analysis including programs for
library search, local homology, statistical
significance and global alignment.
The FASTA programs include:
- align and align0, calculates a global alignment
of two sequences;
- bestscor, calculates the score of a 100% identical match;
- crandseq, shuffles codons in a sequence;
- fasta, searches a protein or DNA sequence data bank;
- fastx, compares a DNA sequence to a protein data bank;
- flalign, lalign and plalign, finds the best local
alignments between two sequences;
- lfasta and plfasta, compares two sequences with the
second version plotting the results;
- prdf and prss, compares a test sequence
to a shuffled sequence;
- randseq, produces a shuffled sequence;
- relate, searches a sequence data bank;
- ssearch, searches a sequence database using the Smith-Waterman
algorithm; and
- tfasta and tfastx, translates and searches a
DNA sequence data bank.
All are written in C and can be compiled on most programs via the
supplied makefile.
There are also separate versions of many of the above programs
that can use the PVM library to run on multiple
platforms.
Documentation is supplied in the form of man pages.
[ftp://ftp.virginia.edu/pub/fasta/]
- FastCGI
- An open extension to CGI which provides
faster performance for all Internet applications without
any of the limitations of existing Web server APIs (which,
while they do increase performance compared to CGI, are
vendor-specific, complex, language-dependent, difficult
to maintain, prone to security risks, and inherently unstable).
The features of FastCGI include:
- language-independence, i.e.
the performance of thousands of already written applications
can be improved;
- applications run (like in CGI) in processes
isolated from the core Web server and therefore provide
greater security;
- free FastCGI application libraries and
upgrade modules for popular free servers are available while
it catches up to the functionality of CGI; and
- it is not
tied to the internal architecture of any Web server so is
stable even when server technology changes.
FastCGI also adds to the functionality of CGI with:
distributed computing, i.e. applications can be run on
different machines from the one that runs the Web server; and
multiple and extensible roles, i.e. applications can not only
compute the response to an HTTP request but also perform
modular authentication and authorization checks as well as
translate data from one type to another.
FastCGI distributions are available in various forms.
A Developer's Kit contains source code for C
application libraries, Java classes,
Perl and Tcl
extensions, and a CGI-to-FastCGI bridge.
Also available are FastCGI-integrated Perl 5 and Tcl
interpreters for popular platforms and a Python
module for FastCGI support.
Many examples are also supplied.
[http://www.fastcgi.com/]
- fastpictex
- A front-end to the PicTeX package which acts a preprocessor,
allowing the quick generation of PicTeX charts for
TeX documents.
A simple macro language is used to enter the data to be
graphically depicted.
A source code distribution is available which can be
compiled on most UNIX platforms via the supplied
Imake scripts.
A user's manual is included in several formats.
[http://sunsite.unc.edu/pub/Linux/apps/tex/
- f2c
- A translator that converts standard Fortran 77 code to
standard C code which can be compiled by a standard C compiler.
This is fairly well debugged and produces reasonably fast code
when compiled used GCC. It has also been widely used to successfully
translate some rather large chunks of code (see
DATAPLOT, for instance).
Its chief disadvantage is that it only translates strictly standard
Fortran 77 code and can't handle the various extensions that have
evolved over the years. A program called
f77reorder
has
been developed to partially remedy this situation. It translates
some F77 extensions into standard F77 that f2c can handle. See
the site for what it can and can't do.
Jeff Templon has an
f2c info
page with additional information.
[http://www.netlib.org/f2c/index.html]
- f2cl
- A Fortran to Lisp translator. This package doesn't seem
to like GCL
so you might want
to try some other Lisp flavor to see if your luck is better.
By the way, this package was developed, in the words of the
authors, "to help counter the argument that the value of existing
code is the reason why languages other than Fortran should not be
used", i.e. if all existing numerical Fortran code can be automatically
converted to Lisp, then that excuse won't wash any more.
[ftp://ftphost.cs.waikato.ac.nz/pub/lisp/f2cl]
- fbm2fli
- A set of
conversion programs consisting of:
- fbm2fli, which generates FLI/FLC animation files from a
series of 8 bit mapped image files;
- unfli, which extracts a series of 8 bit mapped image files
from a FLI animation; and
- fboctree, which converts 24 bit true color images to 8 bit
mapped images where a series of images can have a common color table.
A source code distribution is available as is an ELF binary.
[http://sunsite.unc.edu/pub/Linux/apps/graphics/convert/]
- FBM
- The Fuzzy Pixmap Manipulation library of
programs provides a complete package for manipulating and
converting color and black and white images, including
24 bit RGB, 8 bit mapped color, 8 bit grayscale, and 1 bit bitmapped
images.
FBM can read GIF, JPEG JFIF, Sun rasterfile, Utah RLE, Amiga IFF,
PCX, PBM, Face and FBM files.
It can write all of the above except for PCX files.
It has input converters for raw images, Targa, PIC, QRT, Amiga HAM,
Tiff, FaceSaver and Microtek PostScript formats, and output converters
for PostScript, Diablo, Targa and Tiff formats.
The operations that can be performed with FBM include:
- extracting rectangular portions of images as well as resizing
and changing the aspect ratio;
- changing density and contrast;
- rotation by 90 degree increments;
- quantization of 24 bit RGB images to 8-256 colors;
- halftone grayscale using dithering, averaging or threshholding;
- edge sharpening via digital Laplacian;
- median of a 3x3 neighborhood filter;
- conversion of color to grayscale;
- computation of histograms of grayscale images;
- smoothing by averaging neighborhoods; and
- edge detection.
A source code distribution of FBM is available. It is written
in C and requires the Netpbm package
for installation and use.
The programs that comprise this package are documented in
man pages.
[http://sunsite.unc.edu/pub/Linux/apps/graphics/convert/]
[ftp://ftp.cc.gatech.edu/pub/linux/apps/graphics/convert/]
- FC
- A Fortran 77 library for solving
constrained least squares problems.
The subroutines in the package include:
- BNDACC, which introduces new blocks of data for banded least
squares problems;
- BNDSOL, which solves a least squares problem for banded matrices;
- CV, which evaluates the variance function of a curve obtained
by FC;
- FC, which fits a piecewise polynomial to discrete data
with equality;
- EFC, an easier version of FC which also has
inequality constraints;
- H12, which constructs or applies a single
Householder transformation;
- HFTI, which solves a linear least squares problem;
- LPDP, which solves a least projected distance problem;
- LSEI, which solves a linearly constrained problem with equality
and inequality constraints; and
- WNNLS, which solves linearly constrained non-negative problems.
A source code distribution of FC is available.
All the routines are written in Fortran 77 and are documented in
comment statements within the source code files.
This is part of CMLIB.
[http://sunsite.doc.ic.ac.uk/public/computing/general/statlib/cmlib/]
- FCNPACK
- A package of Fortran 77 mathematical
function subroutines for computing Legendre functions and
elliptic integrals.
There are routines for computing the associated Legendre (or Ferrers)
functions as well as the normalized Legendre polynomial.
These routines feature the use extended-range arithmetic, a software
extension of ordinary floating point arithmetic which greatly increases
the exponent range of the representable numbers.
Each subroutine is available in both single and double precision
versions as well as in extended-range and normal range versions.
Four routines are available for computing elliptic integrals.
These handle degenerate elliptic integrals of the 1st kind (for
use in computing nondegenerate integrals and certain elementary
circular and hyperbolic functions) as well as regular elliptic
integrals of the 1st, 2nd, and 2rd kind (both complete and
incomplete).
A source code distribution of FCNPACK is available.
The routines are written in Fortran 77 and are documented
in comment statements included within each source code file.
This is part of CMLIB.
See Smith et al. (1981) and
Carlson and Notis (1981).
[http://sunsite.doc.ic.ac.uk/public/computing/general/statlib/cmlib/]
- FCTOOLS
- A suite of verification tools for networks of communicating
processes. The software tools use a common file exchange
format for automata and networks called FC2 and their
functionality includes the graphical depiction of objects,
global model construction from hierarchical descriptions,
various types of model reductions and verification of simple
modal properties by observers, counterexample production, and
visualization.
The FCTOOLS suite comprises three main software modules:
- AUTOGRAPH, for graphical editing and display;
- FC2EXPLICIT, for the manipulation of enumerated
finite state machines; and
- FC2IMPLICIT, for the manipulation of symbolic finite state
machines.
These modules contain various programs to perform specific functions
including:
- atg, the program for invoking the AUTOGRAPH graphical
editor and display system for FC2 description files;
- fc2link, which links partial FC2 files producted by atg by
redirecting references to subcomponnets to their description and matching
the label indices;
- fc2min, an automata minimizer with respect to strong, weak,
and branching bisimulation;
- fc2implicit, which performs symbolic manipulation of labeled
synchronized automata vectors; and
- fc2explicit, which performs explicit manipulation of labeled
synchronized automata vectors.
A binary version of the FCTOOLS package is available for
Sun Solaris and SunOS, Linux Intel, and DEC OSF/1 platforms.
It's use is described in a user's manual available in
PostScript format.
[http://www.inria.fr/meije/verification/]
- FDDI
- The Fiber Distributed
Data Interface is a 100 Mbps
local area network (LAN) defined by ANSI and OSI standards. It
uses a token right media access control protocol. This is included
here because I'm presently interested in the possibility of linking
together a network of workstations as a distributed supercomputer
running PVM,
MPI or some other sort
of software for distributed computing applications. The given
URL is to the FDDI FAQ.
See Albert and Jayasumana (1994),
Jain (1994),
Mills (1995),
Inc. (1993), and
Taylor (1995).
[http://sholeh.nswc.navy.mil/x3t12/FDDIFAQ.html]
- FDLIBM
- The Freely Distributable LIBM is a C math
library for machines supporting IEEE 754 floating point
arithmetic. It was developed by SunSoft to provide a reasonably
portable, reference quality math library.
Only double precision is supported in the present version.
It includes routines for trigonometric functions, hyperbolic
functions, exponentials, modular arithmetic, gamma functions,
Bessel functions, cube roots, ceilings and floors, the error function,
absolute values, logarithms, and remainders.
A source code distribution of FDLIBM is available.
It is written in C and is documented in a brief reference manual
in ASCII format as well as in comments in the source codes.
Compilation requires IEEE 754 style (if not precisely compliant)
arithmetic and 32 bit 2's complement integer arithmetic, so
this should be reasonably portable to most UNIX flavors.
[http://www.netlib.org/fdlibm/index.html]
- fdutils
- A package containing utilities for configuring and debugging the
Linux floppy driver, for formatting extra capacity disks (up to
1992 K on a high density disk), and for sending raw commands to
the floppy controller.
The utilities in fdutils include:
- superformat, which formats high capacity disks;
- fdmount, which automatically mounts/unmounts disks when
they are inserted/removed;
- xdfcopy, which formats, reads, and writes OS/2 XDF disks;
- makefloppies, which creates the floppy devices in /dev;
- getfdprm, which prints the current disk geometry;
- setfdprm, which sets the current disk geometry;
- fdrawcmd, which sends raw commands to the floppy driver;
- floppycontrol, which configures the floppy driver; and
- floppymeter, which measures raw capacity and exact rotation
speed of a floppy drive.
The source code for fdutils is available. It is written in ANSI
C and an autoconfig file eases the
task of compilation.
The utilities are documented in man pages as well as in a user's
manual in Texinfo format.
[http://sunsite.unc.edu/pub/Linux/utils/disk-management/]
- fe
- The folding editor is a successor to the Origami folding
editor. The features include (believe it or not) folding,
regions and an Emacs-like kill ring, incremental search,
keyboard macros, editing binary files, menus for most
important functions, a small binary size, and a reference
manual in several formats (e.g. PostScript and HTML).
This should compile on any
system that supports POSIX, has an ANSI C compiler and the
SYSV curses library (or the equivalent ncurses clone), all of
which are avaiable for Linux platforms.
[ftp://cantor.informatik.rwth-aachen.de/pub/unix/]
- FEAT
- A general purpose purpose subroutine system for the
numerical solution of partial differential equations (PDEs)
by the finite element method (FEM).
FEAT provides tools for domain description, mesh generation,
finite element shape functions, the generation of matrices
and load vectors, boundary conditions, numerical solution,
error evaluation, and graphical postprocessing. It can
be applied to scalar elliptic boundary value problems (BVPs)
of 2nd and 4th order, mixed problems with saddlepoint
character, linear and nonlinear systems of equations, time
dependent problems, and more.
The FEAT system is being developed as a toolbox to allow
extensibility by users.
The features include:
- nonconformating, rotated, multilinear finite elements and
discrete projection schemes;
- various Stokes elements and a Morley element;
- a fractional-step,
-scheme for solving ODEs;
- various parallel techniques;
- optimized linear multigrid with mesh anisotropies and space
and time;
- robust nonlinear solvers;
- a multilevel pressure Schur complement solver;
- adaptive time-step control for 2nd-order schemes;
- adaptive upwind/stream-diffusion stabilization; and
- a CAD tool
for domain description and macro decomposition (currently
available only for Windows platforms).
The FEAT system currently (4/97) consists of separate source
packages for FEAT2D and FEAT3D, packages for the solution of
general 2- and 3-D PDEs, and FEATFLOW, a package for the solution
of the incompressible Navier-Stokes equations (which is based on
the other two packages). The programs are written in Fortran
and have an install script configured for Sun SunOS
and Solaris, IBM AIX, SGI IRIX, HP-UX, and Linux Intel platforms.
The are separate PostScript user's manuals for each package as
well as a report offering an overview of the FEAST project of
which FEAT is a part.
[http://gaia.iwr.uni-heidelberg.de/~featflow/]
- FELIX
- A computer algebra system
designed for computations in and with algebraic structures
and substructures. The
structures implemented are commutative polynomial rings and
non-commutative algebras as well as modules over them, with
the implementation of skewed fields planned.
FELIX consists of three layers, the first written completely
in assembly language and which is system dependent.
The second layer is the FELIX programming language which contains
control constructs and a complete procedure concept. The
last layer is a collection of built-in algebraic algorithms.
FELIX is available as a binary executable for NetBSD,
FreeBSD, Linux Intel, and Windows platforms. It is documented
in a user's manual available in TeX DVI and
PostScript format.
[ftp://aix550.informatik.uni-leipzig.de/pub/felix/]
[ftp://sunsite.unc.edu/pub/Linux/apps/math/symbolic/
]
[ftp://ftp.cc.gatech.edu/pub/linux/apps/math/symbolic/
]
- FElt
- An introductory finite element analysis tool for solving
linear problems in statics and dynamics.
FElt knows how to solve linear static and dynamic structural
and thermal analysis problems, and can also do modal and
spectral analysis for dynamic problems.
The element library contains 14 different types of elements.
Three user interfaces are available:
- felt, a basic command-line application for solving problems
given a standard FElt input file;
- burlap, a powerful interactive scripting environment; and
- velvet, a full-featured CAD-like pre- and post-processor
which uses the X Window System for a graphical environment.
All three use an ASCII-based syntax for problem definition
which allows analytic functions to be used in place of numeric values.
It also allows for time dependent forcing and boundary conditions
to be specified as analytic functions of time or as a series of
discrete time/magnitude pairs.
The velvet interface lets problems be defined graphically.
It has powerful post-processing options including the automatic
generation of stress contour, displacement contour, and
2- and 3-D wire frame plots.
Plots can be saved in PPM, EPS, and PostScript formats.
It can also do animations of transient structural analysis
problems and plot the mode shapes in a modal analysis problem.
Other applications included in the FElt package are:
- corduroy, a commmand-line application which gives access
to FElt's mesh generation capabilities;
- patchwork, an application for input file format conversions; and
- yardstick, a simple application for problem scaling and unit
conversions.
FElt can be obtained in a source code distribution as well as
in binary format for Linux Intel, Sun SunOS and Solaris,
SGI IRIX, IBM AIX, HP-UX, and DEC Ultrix platforms.
Extensive documentation includes a 230 page user's manual
available in PostScript format.
[http://www-cse.ucsd.edu/users/atkinson/FElt/]
- FEMLAB-2D
- A finite element package for the solution of 2-D PDEs.
Its main features include interactive input of the geometry,
automatic mesh generation, adaptive algorithms with error
control when solving the PDE, and postprocessing capabilities
for interactive viewing of the results. It is written in C and
Fortran and uses the X Window system,
and also requires the library
package libsx.
[http://www.math.chalmers.se/Math/Research/Femlab/]
- FEQ/FEQUTL
- The Full EQuations model and the
Full EQuations UTiLity are programs for
the simulation of stream flow.
FEQ simulates flow in a stream system by solving the full, dynamic
equations of motion for one-dimensional unsteady flow in open
channels and through control structures.
It is designed to follow the structure of a stream system while
providing maximum generality and flexibility of description.
In FEQ a stream system is divided into three classes of flow
paths: (1) stream reaches or branches; (2) parts of the system
for which complete information is not required, e.g. dummy branches;
and (3) level-pool reservoirs.
These components are connected by features or hydraulic control
structures such as junctions, bridges, culverts, dams, waterfalls,
spillways, weirs, side weirs, pumps, etc.
The hydraulic characteristics of channel cross-sections and special
features are stored in function tables calculated by the companion
program FEQUTL.
Allowable boundary conditions include water surface stage, discharge,
or the stage-discharge relationship at a node.
A source code distribution of FEQ for UNIX platforms is
available.
The primary documentation is contained within
Franz and Melching (1997).
This is part of the USGS
Water Resources Applications Software
collection.
[http://water.usgs.gov/software/feq.html]
[http://www.geogr.uni-jena.de/software/feq.html
]
- Fermitools
- A set of tools, more about which later.
[http://www-fermitools.fnal.gov/]
- FESI
- The Free EcmaScript Interpreter is
a full implementation of the EcmaScript language, which is mostly
equivalent to JavaScript version 1.1 or to the core part of JScript
without the Navigator-specific extensions.
FESIS consists of a library that allows it to be used as a macro
language for Java applications and an interactive interpreter.
[http://home.worldcom.ch/~jmlugrin/fesi/index.html]
- Festival
- A general multi-lingual speech synthesis system developed at the
Centre for Speech Technology Research at the University
of Edinburgh.
Festival is a full text to speech system with various APIs
as well as an environment for the research and development of
speech synthesis techniques.
It is written in C++ with a
Scheme-based command interpreter
(SIOD) for general control.
The features of Festival include:
- English (British and American), Spanish and Welsh text to speech;
- externally configurable language independent modules including
phonesets, lexicons, letter-to-sound rules, tokenizing, part of
speech tagging, intonation and duration;
- waveform synthesizers;
- MBROLA database support; and
- SSML/STML, Emacs, client/server, and scripting interfaces.
A source code distribution of Festival is available as
are binaries for Linux Intel platforms.
A large user's and reference guide is available in
PostScript format.
[http://www.cstr.ed.ac.uk/projects/festival.html]
- FESWMS
- The Finite Element Surface-Water
Modeling System for two-dimensional flow in the
horizontal plane is a modular set of programs that simulate
2-D, depth-integrated surface-water flows.
The programs were developed to analyze flow at bridge crossings
where complicated hydraulic conditions exists, although they
can also be applied to many other types of steady or unsteady
flow problems in shallow rivers, flood plains, estuaries,
and coastal seas.
The programs comprising FESWMS are:
- DINMOD, an input data preparation program designed to
assist in developing a finite element network that is free from
errors, although it can also be used to refine, update, or modify
an existing network;
- FLOMOD, a flow model program which can simulate either
1- or 2-D flow and includes the effects of bed friction, turbulent
stresses, surface wind stresses, and the Coriolis force;
- ANOMOD, a simulation output analysis program or postprocessor
which can
present the results of flow simulations graphically and in report
form, with output types including plots of velocity and unit-flow
vectors, ground surface and water surface elevation contours, and
time-history graphcs of velocity, unit-flow, or stage at a
computation point; and
- HPPLOT, a general purpose program to plot HPGL graphics
files in an X Window.
A source code distribution of FESWMS for UNIX platforms is
available.
The primary documentation is contained within
Froehlich (1989).
This is part of the USGS
Water Resources Applications Software
collection.
[http://water.usgs.gov/software/feswms.html]
[http://www.geogr.uni-jena.de/software/feswms.html
]
- fetchmail
- A solution to the remote mail retrieval problem for UNIX
machines, i.e. useful to anyone with an intermittent PPP or
SLIP connection to a remote mailserver. It can collect
mail using any variant of POP or IMAP and forwards
the mail via port 25 to the local SMTP listener. This
enables all the normal forwarding/filtering/aliasing
mechanisms to be used the same as they would be to local
mail or mail arriving via a full-time TCP/IP connection.
Fetchmail is capable of transparently handling every retreival
demand from those of a single-user ISP connection up to mail
retrieval and rerouting for an entire client domain.
Is is easy to configure, unobtrusive in operation, powerful,
well-documented, and has many features.
The features of fetchmail include:
- automatic decoding of armored 7-bit
MIME into 8 bits;
- configuration of which SMTP error is recognized as a SPAM block;
- support for Kerberos V authentication;
- support for IMAP-OTP authentication;
- support for IPv6 and IPSEC;
- support for IMAP with RFC-1731 conformant
GSSAPI authentication;
- fixed and verified support for the Cyrus IMAP server and a
couple of others available on much less elegant operating systems;
- support for multiple-folder retrieval in a single session
under IMAP;
- support for a hunt list of SMTP hosts;
- support for ESMTP 8BITMIME and SIZE and options and the ETRN command;
- support for secure use with ssh;
- optional transaction and error logging;
- host is auto-probed for a working server if no protocol is specified
for the connection;
- configurable timeout to detect if server connection is dropped; and
- support for retrieving and forwarding from multi-drop mailboxes
guaranteed not to cause mail loops.
The source code for fetchmail is available.
It is written in C and can be compiled on most generic UNIX
boxes with a C compiler via the use of the included
configuration file.
It is documented via a FAQ and a man page included in the
distribution.
[http://earthspace.net/~esr/fetchmail/index.html]
- fetchpop
- A POP3 mail client featuring:
- capability of running as a daemon process;
- capability of running in script files;
- interoperability with procmail and
.forward files;
- mail folder protection with exclusive write-lock on mail folder files;
- retrieval of only new unread messages; and
- retrieval of specific messages.
A source code distribution is available.
[http://sunsite.unc.edu/pub/Linux/system/mail/pop/]
- FFC
- The Firewall Foundation Classes are
a reusable C++ library designed to aid in the
construction of safe Internet clients, servers and firewalls.
The features of FFC include:
- a generic relay object with transparency support;
- an integrated netacl for simple IP-based source/destination
access control;
- a simple HTTP server object;
- encryption support;
- a Tcl interface that allows FFC objects to be configured with
a Tcl script;
- user-defined permission functions; and
- a non-forking server object for low system impact.
The FFC package also includes VOOM, a multiplatform proxy/web server
built on top of FFC.
A source code distribution is available which can be compiled and
used on several platforms including Linux Intel on which, by the
way, it is being developed. Documentation is currently (6/98) in
the embryonic stage.
[http://www.brd.ie/download/index.html]
- ffGraph
- A C++ class library for creating, manipulating,
and displaying directed graphs.
Graphs consist of a set of nodes and edges where edges have exactly
one target and one source.
The ffGraph library was designed to offer both a graph data
structure and a powerful means to display it, a combination of
features lacking in most similar packages which either have one
or the other or are too specialized.
The classes in the library provide an interface which is easy-to-use
and save; the capability of binding user-specific data to
graphs, nodes, and edges; and a powerful and flexible mechanism
for displaying graphs.
The Tcl/Tk toolkit is used to provide
graphics capabilities in ffGraph.
The classes available in ffGraph include:
- FFGraphClass, which provides standard methods to manipulate graphs;
- FFNodeClass, which provides methods to manipulate nodes;
- FFEdgeClass, which provides methods to manipulate edges;
- FFLabelClass, a superclass of all labels which defines methods
which all labels must provide;
- FFGraphLabel, FFNodeLabel, and FFEdgeLabel, classes
for labeling graphs, nodes, and labels;
- FFSugi, which implements a Sugiyama layout algorithm;
- FFSpring, which implements a spring-embedder layout algorithm;
- FFWindow, a general class for executing Tcl/Tk scripts;
- FFGraphicNode and FFGraphicEdge, which contain the
graphic information needed to display nodes and edges;
and several more.
A source code distribution of ffGraph is available.
It is written in C++ and has been compiled on several UNIX
flavors using g++ 2.6.3 or higher.
It also requires Tcl 7.4 or greater, Tk 4.0 or greater, and
the XPM library.
It is documented in an extensive user's manual available in
either HTML or
PostScript format.
[http://www.fmi.uni-passau.de/~friedric/ffgraph/main.shtml]
- FFTPACK
- A collection of Fortran programs to perform FFTs for both real and
complex periodic sequences and certain other symmetric sequences.
The routines in FFTPACK include;
- RFFTF, for a forward transform of a real periodic sequence;
- RFFTB, for a backward transform of a real coefficient array;
- EZFFTF, a simplified real periodic forward transform;
- EZFFTB, a simplified real periodic backward transform;
- SINT, a sine transform of a real odd sequence;
- COST, a cosine transform of a real even sequence;
- SINQF, a forward sine transform with odd wave numbers;
- SINQB, an unnormalized inverse of SINQF;
- COSQF, a forward cosine transform with odd wave numbers;
- COSQB, an unnormalized inverse of COSQF;
- CFFTF, a forward transform of a complex periodic sequence; and
- CFFTB, an unnormalized inverse of CFFTF.
There are also routines for initializing each of the above routines.
A source code distribution of FFTPACK is available. The documentation
is contained in a README file as well as in the source code
itself.
[ftp://ftp.ucar.edu/dsl/lib/fftpack/]
[http://www.netlib.org/fftpack/index.html
]
- FFTPACK++
- A C++ wrapper for FFTPACK
complex routines which uses LAPACK++
matrix and vector classes.
The source code for FFTPACK++ is available.
Compilation and use requires gcc 2.6.3 or later, the
LaMatrix++ class library from LAPACK++, and possibly
the original FFTPACK and f2c.
[http://www.xraylith.wisc.edu/~khan/software/fftpack/]
- FFTW
- The Fastest Fourier Transform in the West is
a C subroutine library for performing the
discrete Fourier transform (DFT) in one or more dimensions.
This is usually faster (and sometimes much faster) than all other
public domain Fourier transform programs.
It can do this because it comes with a code generator that produces
C programs for any particular array size you may have. It also doesn't
use a fixed strategy but finds an optimal decomposition strategy
(e.g. for decomposing a big problem into smaller problems)
at runtime for the machine on which it is running.
FFTW is also portable since
it automatically adapts itself to your machine, your cache, the size
of your memory, the number of registers, and all the other factors that
usually make it difficult to optimize a program for more than one machine.
The FFTW distribution includes the source code, written in ANSI C,
and a manual in Texinfo format.
The distribution also contains the program used to generate the
code that FFTW uses to compute the transforms. It is written in
Caml Light, a dialect of ML which can
also be obtained to experiment with the code generator.
[http://theory.lcs.mit.edu/~fftw/]
- fgen
- A makefile and dependencies generator for Fortran 77 or 90
source code. This is a Perl 5 script
that produces makefiles for GNU Make and is easy to customize.
Included are configuration files for several compilers.
Also included is a program called f2html which converts
Fortran 77 or 90 source code into HTML.
The user can specify a set of colors for keywords, comments, and
other structural parts of the code.
[http://sunsite.unc.edu/pub/Linux/devel/lang/fortran/]
- fhist
- A package containing three source control utilities.
These are:
fhist, which keeps track of versions of a file;
fcomp, which compares to versions of a file; and
fmerge, which merges together edits from two descendants
of a file.
The fhist distribution contains the source code which is
written in ANSI C. Installation on most generic UNIX
platforms is straightforward using the configure script
included in the package.
The utilities are documented in man pages.
[ftp://ftp.agso.gov.au/pub/Aegis/]
- FHS
- A filesystem hierarchy standard for Linux and other
UNIX-like systems. FHS defines a
common arrangement of the files and directories in UNIX-like
systems upon which many developers have agreed.
It is intended mainly for implementors of Linux and UNIX
distributions, but is also useful for system administrators
and users.
[http://www.pathname.com/fhs/]
- fhttpd
- The file/hypertext transfer protocols
daemon is a general-purpose FTP/HTTP server.
The features of fhttpd include:
- HTTP 0.9, 1.0 and rudimentary 1.1 support;
- FTP (RFC 959 with passive mode) support;
- virtual FTP/HTTP servers (both with separate IP addresses and
hostname aliases);
- processing of CGI scripts;
- application modules implemented as constantly running processes on
the same machine or across the network;
- access to files and CGI scripts on remote hosts running file I/O
and support modules;
- remapping based on client-supplied information;
- different pages or applications for different clients or options
without additional executables;
- access restrictions defined by password files and configuration scripts;
- support for server-side imagemaps without scripts; and
- preloaded files sent to users asynchronously.
A source code distribution is available which can be compiled and used
on several platforms including Linux Intel, although at present (4/98)
there is a problem which libc detailed at the site.
[http://phobos.illtel.denver.co.us/pub/fhttpd/]
- Fiasco
- Fiasco Implements Accurate Statistical
COmputations is a GNU software
package which is an upwardly compatible replacement for SPSS, a powerful
tool for the statistical analysis of data used at universities
and companies worldwide.
The features of Fiasco include:
support for most transformation language features;
support for most statistical procedures;
high quality output formatting including support for
ASCII, IBM-PC box drawing and similar formats, and PostScript;
and easily ported ANSI C source code.
The current (9/97) is, in the words of the author, ``woefully
incomplete,'' but it still might be useful for basic tasks.
[http://www.gnu.ai.mit.edu/software/fiasco/]
- FIDOGATE
- A FidoNet-Internet gateway and a Fido
tosser.
FIDOGATE converts between Fido NetMail/EchoMail (or Fido Technology
Networks, i.e. FTNs, in general) and the UNIX mail and news system.
IT will convert Fido mail packets to
RFC-822 and
RFC-1036 style
messages and vice-versa.
The package also includes a complete FIDO mail processor (i.e. a
NetMail/EchoMail scanner and tosser), an FTN-FTN gateway (for
NetMail only), a file processor (TIC file areas), and an
AreaFix/Filefix program.
It does not include a FIDO mailer, but can cooperate with the
ifcico program from the ifmail
package.
A source code distribution of FIDOGATE is available which will
compile and install on many UNIX flavors.
Its use requires a installed news system, a news reader,
a mail transport agent (MTA), a
mail user agent (MUA), and
Perl.
A user's guide is available in several formats.
[http://www.fido.de/fidogate/]
- FidoNet
- A group of around 30,000 computer systems worldwide
which form a network which exchanges mail and files via modems
using a proprietary protocol, i.e. a conferencing system similar
to Usenet newsgroups.
FidoNet newsgroups are known as Echoes and the mail in them as
EchoMail, and most are smaller than Usenet groups (as well as
moderated).
It is a ``store and forward'' system similar to
UUCP in which users send messages or replies
to another system up the line which forwards them ad infinitum.
FidoNet also has a private mail system known as NetMail or
MatrixMail which is similar to Internet mail and has several
gateways which allowing mailing to Internet addresses from
FidoNet.
FidoNet can also be used to distribute files containing
programs, pictures, text, etc. using a system similar to EchoMail
that is somewhat more centralized.
A system subscribes to a File Distribution and then receives all
of the files placed into that distribution.
FidoNet is organized into zones, regions, networks, and individual
nodes. The zones are: 1 for North America, 2 for Europe, 3 for
Australia, 4 for South America, 5 for Africa, and 6 for Asia.
Regions are administrative sub-blocks of zones and networks
local areas within the regions. A node is usually a single machine.
Addresses are of the form zone:net/node.point,
e.g. 2:259/7 would be in Europe at net 259 in Scotland at node
7 in Kooosliam. A point can be a sub-node of a node.
Available FidoNet software includes
FIDOGATE,
ifmail, and
ifmail-tx.
[http://www.fidonet.org/]
- FIGARO
- A Starlink Project general purpose
reduction package for a wide range of images and spectra.
It is most often used for reducing spectroscopic data but also
has powerful image and data cube manipulation facilities.
It can be run in command-line run from the UNIX shell and also
from the Starlink ICL interface.
It supports the NDF data format as well as all formats which
which conversion utilities exists, including the DST, FITS,
and IRAF formats.
The 230+ commands available in FIGARO are divided into several
broad categories. These include commands for
data input, data output, data display, wavelength calibration,
B-star calibration, arithmetic operations, flat fields,
data manipulation, aperture photometry, line analysis,
S-distortion and échelle order straightening,
fudging data, examining data, slicing through images and
cubes, fibre data, flux calibration, extinction, complex
data and FFTs, infra-red data, échelle data, and
miscellaneous tasks.
A binary distribution of FIGARO is available for DEC OSF/1,
Linux Intel, and Sun Solaris platforms.
It is documented in a 150 page user's manual available
in PostScript format.
[http://star-www.rl.ac.uk/store/storeapps.html]
- FileMan
- A file manager for UNIX platforms which is more configurable
and powerful than most.
The features of FileMan include:
multiple window support;
drag and drop between windows for copying, moving, and deletion;
a managed trashcan;
dropping files on the desktop;
event and error logging;
full configuration of menus, file types, double clock operations,
an application toolbox, a button bar, and window view characteristics;
security features;
graphical configuration and installation for all environments;
built-in menus to graphically manage splitting files,
encoding/decoding files, compression and uncompression,
spelling checking, word counting, file viewing and editing,
running programs, and archive creation and extraction;
some HTML-based online help;
requester level help;
web-like symbolic links;
customizable pixmaps; and
file partition information available on the main screen.
A binary distribution of FileMan is available which
supports Linux, Solaris 2.5x+ and AIX 4.1 systems.
A manual is included in PostScript format.
[http://sunsite.unc.edu/pub/Linux/X11/desktop/]
[http://sunsite.unc.edu/pub/Linux/Incoming/
]
- fileutils
- The GNU file managment utilities, most
of which have significant advantages over their UNIX counterparts,
e.g. greater speed, additional options, and fewer arbitrary
limits.
The fileutils are intended to be POSIX.2
compliant and are mostly so as of 9/97.
The programs in the fileutils collection include:
- ls, for listing information about files in one or more
directories;
- dir, which lists files in columns which are vertically
sorted (i.e. equivalent to ls -C);
- vdir, which lists files in long format (i.e. equivalent
to ls -l);
- dircolors, which outputs a sequence of commands to set
up the termianl for color output from ls etc.;
- cp, which copies files and directories;
- dd, which converts and copies files with a changable
I/O blocksize;
- install, which copies files while setting their permission
modes and, if possible, their owner and group;
- mv, which moves or renames files;
- rm, which removes files or directories;
- ln, which makes soft or hard links between files;
- mkdir, which creates directories;
- mkfifo, which creates FIFOs (i.e. named pipes);
- mknod, which creates a FIFO, character special file, or
a block special file;
- rmdir, which removes empty directories;
- chown, which changes owner and group of a file;
- chgrp, which changes the group ownership of a file;
- chmod, which changes the access permissions of a file;
- touch, which changes file timestamps;
- df, which reports filesystem disk space usage;
- dn, which estimates file space usage; and
- sync, which synchronizes data on disk with memory, i.e.
writes any data buffered in memory out to disk.
A source code distribution of the fileutils is available.
All of the programs are written in C and can be compiled and
installed on many platforms via the supplied
autoconf scripts.
The utilities are documented in a user's guide
supplied in Texinfo format.
[http://www.gnu.ai.mit.edu/order/ftp.html]
- FilterDesign
- A package consisting of a pair of programs for designed linear
phase Finite Impulse Response (FIR) filters.
The programs are:
- DFiltFIR, which designs minimax approximation FIR filters
using an algorithm developed by McLellan and Parks; and
- DFiltInt, which designs minimum mean-square error FIR
interpolating filters with the design specification in terms
of a tabulated power spectrum model for the input signal.
A source code distribution is available. Both programs are written
in C and have been compiled on a range of compilers.
[http://www.TSP.EE.McGill.CA/software.html]
- findutils
- A set of GNU utilities for finding files and
performing actions on them once they're found.
The programs in the distribution include:
- find, which searches for files in a directory hierarchy
and prints information about the files it finds;
- locate, which searches special file name databases for file
names that match patterns;
- xargs, which builds and executes command lines by gathering
together arguments it reads on standard input, e.g. lists of file
names generated by find; and
- updatedb, which creates the databases used by locate.
A source code distribution of findutils is available.
It is written in C and can be compiled and installed on many
types of platforms via the autoconf
scripts supplied with the distribution.
The programs are documented in a user's and reference manual
supplied in Texinfo format.
[http://www.gnu.ai.mit.edu/order/ftp.html]
- Finesse
- A tool to generate and evaluate windows in shell scripts. This allows the
easy conversion of the dialog portions of existing scripts to a
mouse-oriented Motif user interface. No knowledge of programming X
Windows is needed since the windows are generated by several
easy-to-use commands that are called in the script. A graphical shell script
user interface can thus be developed quickly and easily. Binaries of Finesse
are available for DEC Alpha, HP9000, SGI Iris, IBM RS6000, SUN4, and
Linux platforms, and documentation is available in both German and
English.
[ftp://ftp.science-computing.uni-tuebingen.de/pub/finesse/]
- Finite Element Resources
- A repository for software, documentation, papers and other
resources pertaining to finite element methods. This is maintained
by Roger Young.
[http://www.engr.usask.ca/~macphed/finite/fe_resources/
fe_resources.html]
- firewall
- Related software packages include:
Firewall Configuration Tool.
See Chapman and Zwicky (1995).
- Firewall Configuration Tool
- The FCT is a configuration tool for setting up a firewall on a Linux
box with an HTML browser.
It uses separate configuration files for setting:
network definitions (e.g. domain name);
allowed connections to and from the firewall;
allowed connections to and from internal networks;
definitions of trusted IPs;
alias definitions;
the necessary IP connections for each service;
the source and destination for each service; and
rules to set up the services.
The FCT is documented in HTML files included in the distribution.
[http://sunsite.unc.edu/pub/Linux/system/network/admin/]
[http://sunsite.unc.edu/pub/Linux/system/network/admin/
]
- FireWire
- A serial data transfer protocol and interconnection system for providing
the same services as IEEE standard parallel buses at a lower cost.
It is rapidly being adopted for the digital video and audio consumer
markets since it can support a variety of high-end applications
such as cnsumer audio/video device control and signal routing,
home networking, nonlinear DV editing, and 32-channel digital
audio mixing.
The FireWire (i.e. IEEE-1394) standard defines two bus categories - backplane
and cable. The backplane bus is designed to supplement parallel bus
structures by providing an alternate serial communication path
between devices plugged into the backplane, and the cable bus is a
non-cyclic network with finite branches consisting of bus bridges
and nodes or cable devices.
The first URL is for the Linux FireWire Project.
[http://www.edu.uni-klu.ac.at/~epirker/ieee1394.html]
[http://www.adaptec.com/technology/standards/1394bus.html
]
- FISHPAK
- A collection of Fortran programs for solving problems involving
separable ellliptic PDEs.
The available routines include:
- HWSCRT, for solving a five-point finite difference (FD)
approximation to the Helmholtz equation in Cartesian coordinates using
a centered FD grid;
- HWSPLR, for solving the same in polar coordinates;
- HWSCYL, for solving the same in cylindrical coordinates;
- HWSSSP, for solving the same in spherical coordinates on
the surface of the unit sphere;
- HWSCSP, for solving a five-point FD approximation to the
modified Helmholtz equation in spheric coordinates assuming
axisymmetry (i.e. no dependence on longitude);
- HSTCRT, the same as HWSCRT but with a staggered FD grid;
- HSTPLR, the same as HWSPLR but with a staggered FD grid;
- HSTCYL, the same as HWSCYL but with a staggered FD grid;
- HSTSSP, the same as HWSSSP but with a staggered FD grid;
- HSTCSP, the same as HWSCSP but with a staggered FD grid;
- HW3CRT, the same as HWSCRT but with a
seven-point approximation;
- SEPX4, automatically discretizes and solves second or fourth
order FD approximations on a uniform grid to certain separable elliptic
PDEs with constant coefficients in one direction;
- SEPELI, same as SEPX4 except to a PDE on a rectangle;
- GENBUN, solves the linear system of equations that results
from a FD approximation on a centered grid to certain 2-D elliptic
PDEs with constant coefficients in one direction;
- BLKTRI, solves block tridiagonal systems which arise in such
problems;
- POISTG, solves the same block tridiagonal system for 2-D elliptic
PDEs with constant coefficients in one direction;
- POIS3D, solves the same sort of equation system in a box;
- CMGNBN, solves a complex block tridiagonal linear system
arising from FD approximations to separable complex 2-D elliptic PDEs; and
- CBLKTR, another method for solving the previous situation.
A source code distribution of FISHPAK is available.
All routines are written in Fortran 77 and documented via comment
lines in each source code file.
This is part of CMLIB.
See Swarztrauber and Sweet (1979).
[ftp://ftp.ucar.edu/dsl/lib/fishpak/]
[http://www.netlib.org/fishpack/index.html]
[http://sunsite.doc.ic.ac.uk/public/computing/general/statlib/cmlib/
- FISMAT
- The Fuzzy Inference System for Matlab
includes programs implementing different arithmetic operators,
fuzzification and defuzzification algorithms, implication
relations, and different methods of approximate reasoning such
as the Compositional Rule of Inference (CRI) and the Approximate
Analogical Reasoning Scheme based on Similarity Measure.
A demonstration program is included in the package which
includes a fuzzy controller demo which investigates backing up
a truck, an inverted pendulum system, and the temperature and
humidity control of a bathroom.
The FISMAT package can be used on Matlab or on the freely available
Octave package which can run most Matlab
m-files.
[ftp://ftp.mathworks.com/pub/contrib/v4/misc/]
- FitExp
- A Fortran subroutine to fit a given set of data with the
best least-squares exponential-sum approximation having
positive coefficients.
Fitting sums of exponentials is a classical ill-conditioned
problem, and this subroutine embodies the only known method
which masters the ill-conditioning, finds the optimal number
of terms, and is guaranteed to give the best least-squares fit.
Read the ASCII documentation for this very carefully before
you use it to avoid several seemingly inevitable pitfalls.
A source code distribution of FitExp is available.
It is written in Fortran 77 and documented in an ASCII
text file available separately in the same directory.
A couple of test programs are also available.
See Wiscombe and Evans (1977) and
Evans et al. (1980).
[ftp://climate.gsfc.nasa.gov/pub/wiscombe/Expon_Fitting/]
- FITPACK
- A general purpose curve fitting package. This freely available
version contains about 20% of the entire larger package and represents
about 95% of the usages of the package with its 25 subprograms.
The capabilities not included in this subset include
automatic tension determination,
3-D curves, surface fitting in special geometries,
B-splines in tension, and general surface fitting
in 3-D space.
The programs in this FITPACK subset include:
- curv1, which determines the parameters needed to compute
an interpolatory spline under tension through a sequence of functional values;
- curvs, which determines the parameters needed to compute
a smoothing spline under tension;
- curv2, which interpolates a curve at a given piont using
a spline under tension;
- curvd, which differentiates a curve at a given point using
a spline under tension;
- curvi, which integrates a curve specified by a spline under
tension between two given limits;
- curvp1,
curvps,
curvp2, and
curvpi, which perform tasks similar to the previous programs
except using periodic splines under tension;
- kurv1, which determines the parameters needed to compute
a spline under tension forming a curve in the plane and passing
through a sequence of pairs;
- kurv2, which performs the mapping of points in the interval
[0,1] onto a curve in the plane;
- kurvd, which is similar to kurv2 but also returns the
first and second derivatives of the component functions;
- kurvp1, which determines the parameters needed to compute
a spline under tension forming a closed curve in the plane and
passing through a sequence of pairs;
- kurvp2, which performs the mapping of points in the
interval [0,1] onto a closed curve in the plane;
- kurvpd, similar to kurvp2 but also returns the
first and second derivatives of the component functions;
- surf1, which determines the parameters needed to compute an
interpolatory surface passing through a rectangular grid of
functional values;
- surf2, which interpolates a surface at a given coordinate
pair using a bi-spline under tension;
- ceez, which determines the coefficients used to determine
endpoint slopes;
- curvpp, which determines the parameters needed to compute
a periodic smoothing spline under tension;
- curvss, which determines the parameters needed to compute
a smoothing spline under tension;
- intrvl, which determines the index of the interval in
which a given value lies;
- intrvp, which determines the index of the interval in
which a given value lies after translating the value to within
the correct period;
- snhcsh, which returns approximations to various trig functions; and
- terms, which computes the diagonal and superdiagonal
terms of the tridiagonal linear system associated with spline under
tension interpolation.
A source code distribution of FITPACK is available.
All the programs are written in Fortran and are documented
via comment statements contained within the source code files.
Details about how to obtain the remainder of the package can be
found at the site.
[http://www.netlib.org/fitpack/index.html]
- FITS
- The Flexible Image Transport System
is the format adopted by the astronomical community for data
interchange and archival storage.
A FITS file consists of a series of Header Data Units (HDUs)
which are themselves composed of statements describing the
format and organization of the data in the HDU. Additional
information about the instrument status or the history of the
data may also be included.
The data follow each HDU in the specified format.
The data may be digital images, tables, or multidimensional matrices
which aren't images.
FITS is not principally a graphics format designed for the
transfer of pictures and doesn't incorporate viewers, although
there are a number of viewers which have been developed to view
FITS data.
A user's manual for the FITS format is available in several
formats.
Software which can read, write or view FITS data files includes:
- FITSIO, a machine-independent
subroutine interface
for reading or writing FITS files;
- FTOOLS, a collection of over 200 Fortran, C,
Perl and Tcl programs that operate on FITS files;
- Netpbm, an image file conversion and
manipulation toolkit that can handle the FITS format;
- SDB, a data browser that can handle the FITS format;
- XFITSview, a viewer of FITS files; and
xv, an image file viewer that can handle FITS images.
FITS files can also be handle by the major astronomical image
analysis packages such as IRAF,
AIPS,
AIPS++,
ESO-MIDAS, and
SAORD.
The Usenet group
sci.astro.fits
contains discussions and information about
the FITS format.
[http://fits.gsfc.nasa.gov/]
- FITSIO
- A subroutine interface library for reading and writing data files
in FITS format.
FITSIO was written to provide a powerful yet simple interface
for accessing FITS files which insulates the programmer from
having to deal with the gory internal details of the format.
It supports all of the common types of FITS files including
Primary Arrays, Image extensions, and ASCII and Binary table
extensions.
Subroutines are provided to perform a wide range of operations
on FITS files, e.g. opening and closing, reading, writing,
modifying or deleting the values of header keywords, and reading
and writing any element of the associated array or table.
The package also contains extensive error checking to verify
that files have a valid FITS format.
FITSIO requires random access I/O capabilities to the file and
as such does not directly support reading and writing to
sequential I/O devices such as tape drives.
The FITSIO library is available as source code in separate versions
for C and Fortran.
There are also separate user's guides for each version as well
as a cookbook detailing numerous examples of its use, all of which
are available in PostScript format.
[http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html]
- FL
- This has evolved into fltk.
- fltk
- The Fast Light Tool Kit is
a C++ GUI toolkit for X11,
OpenGL and Win32 NT/95.
It is a library of objects and routines that allow you to biuld a
UI with multiple windows containing buttons, sliders, input fields,
dials, etc. in a simple manner.
It is written on top of Xlib but hides the
interface to that cantankerous library.
It was designed to be a very small GUI library so it can be
statically linked with an application without bloating it too much.
The features of fltk include:
- an interactive user interface builder application called
Fluid that can produce fltk source code, i.e. human-readable
C++ source code;
- double buffered windows (using Xdbx if available);
- support for overlay hardware or emulation if unavailable;
- a fast and small portable 2-D drawing library hiding Xlib;
- an OpenGL/Mesa drawing area widget;
- capability of using OpenGL or Mesa to draw other widgets;
- pop-up and pull-down menus;
- compatibility header files for the Glut
and XForms libraries;
- the ability to label widgets with XBM, XPM or GIF files;
- text input fields with Emacs key bindings; and
- X11 cut and paste.
A source code distribution of fltk is available.
It can be configured and installed on Linux Intel systems
via the included scripts.
A user's manual is included in HTML format.
[http://www.cinenet.net/users/spitzak/fl/]
- Flex
- Flex is a lexical analyzer, a
tool for generating scanners, i.e. programs which recognize
lexical patterns in text. Flex reads input files containing
descriptions of a scanner to generate in the form of pairs
of regular expressions and C code called rules.
From this it generates a C source code file which is compiled
and linked with a library to produce an executable which
analyzes input for occurrences of the regular expressions.
It executes the corresponding C code whenever it finds an example
of such.
A source code distribution of Flex is available.
It is written in C and can be installed and used on many
platforms using the autoconfigure script supplied in the distribution.
A user's manual is included in
Texinfo format.
[http://www.gnu.ai.mit.edu/order/ftp.html]
- Flexible Bayesian Modeling
- A package which supports Bayesian regression and classification
models based on neural networks and Gaussian processes.
It also contains software for programs which implement both finite
and countably infinite mixture models.
The regression and classification models are based on multilayer
perceptron neural networks or on Gaussian processes.
Bayesian inference is performed using Markov chain Monte Carlo
methods.
A source code distribution of the FBM software is available.
It is written in C and can be compiled on most generic
UNIX platforms.
Some documentation is available at the site, although the
algorithms are most extensively documented in
Neal (1996).
[http://www.cs.utoronto.ca/ radford/fbm.software.html]
- FLIB
- A Fortran library that provides a large number of routines
to perform standard coding tasks that scientists and engineers
don't usually deal with, e.g. non-numeric tasks such as string
manipulation, input validation, etc.
Some subroutines to perform numeric tasks are also included.
FLIB is organized into sets of separte code packages based
on functionality. These
packages are:
- CharPak, a set of routines to manipulate character
variables;
- ErrPak, routines to perform error trapping and to
display error and warning messages;
- IoPak, miscellaneous routines
to create, modify and view ASCII files;
- GeomPak, routines to
perform geometrical transformations such as coordinate system
rotations;
- RanPak, routines to generate random numbers;
- TimPak, routines to compute to number of days between two dates;
and the
- Compiler Abstration Layer, a set of stubs or wrappers for
non-portable or non-standard system calls or routines including
routines to retrieve environment variables and execute system
or shell commands.
The library is available as Fortran source code and is documented
via a series of man pages.
[http://www.ne.ksu.edu/~robs/flib/flib.html]
- Flick
- An IDL (Interface Definition Language) compiler which is the
research and production IDL compiler within the
Flux Project
.
Flick uses techniques from traditional language compilers to
produce very fast client/server communication code. It is
significantly faster than traditional IDL compilers with
Flick-generated stubs increasing end-to-end throughput typically
by factors of 4 or more.
It currently (5/97) supports the CORBA and ONC RPC (Sun RPC)
IDLs. Interfaces written in any of these languages can be
implemented by CORBA-, ONC RPC-, or MIG-style C language stubs
communicating via CORBA IIOP, Sun/TCP, Mach 3 ports, or Fluke IPC.
Flick can also be extended to support new IDLs, message data
formats, and transport mechanisms.
It is not a complete CORBA ORB and is also not yet a drop-in
replacement for rpcgen or MIG.
The source code for Flick is available under the terms of the GPL.
It has been compiled and tested on FreeBSD, Linux Intel, Sun SunOS,
HP-UX, IBM AIX, and BSD 4.3+ platforms.
Flick is extensively documented in manuals included in the
distribution.
[http://www.cs.utah.edu/projects/flux/flick/]
- FLId
- A library designed for the decoding of FLI movies from an
application. It consists of three functions:
- FLId_open, which initializes the decoder;
- FLId_image, which is called each time you want
a frame from the movie; and
- FLId_close, which is called to close the FLI
and free all memory allocations.
A source code version of FLId is available.
[http://www.tardis.ed.ac.uk/~ark/flidlib/]
- Floppy/Flow
- Fortran source-code processing tools. Floppy checks a
given F77 source code file against various coding conventions
and outputs a cleaned and tidied file. Flow takes a binary
file created by Floppy and produces various reports about the
structure of the code.
Both tools are written in C and should install on any platform
with an ANSI C compiler.
[http://www.netlib.org/floppy/]
[http://sunsite.unc.edu/pub/Linux/devel/lang/fortran/
]
- FLORID
- The F-LOgic Reasoning In Databases package
is an implementation of a programming system based on the concepts
of F-logic, where F-logic is a logical language designed to
account for most of the structural aspects of object-oriented
data modeling in a clean, declarative fashion.
The objective of FLORID was to provide a prototype environment
where practical programming aspects of using such a language
for database development could
be investigated.
This prototype system supports data driven schema definition,
multiple and non-monotonic inheritance, and path expressions
which can also be used for anonymous object creation.
Program evaluation is based on a set-oriented bottom-up
computation.
The FLORID system can be accessed via a text shell, a
Tcl/Tk GUI, or an Emacs
interface.
A binary distribution of FLORID is available for Sun Solaris,
SGI IRIX, and Linux Intel systems.
The distributions include an executable, documentation, a tutorial,
and several examples.
[http://www.informatik.uni-freiburg.de/~dbis/florid/]
- FLpr
- A Perl script that unifies
the usage of several other programs used for printing. It automates
the usage of utilities such as dvips, up, psselect, a2ps, etc. in
one main program, so only the command line options for one program
need to be remembered. It can be used as a replacement for lpr and
adds many more features. FLpr automatically detects the type of
each file that needs to be printed. It recognizes DVI, PostScript,
plain text, images (e.g. GIF, JPG, etc.), and compressed or gzipped
versions of any of the above. It does this by converting any of
the input files to PostScript format and then spooling this code
to the printer. It also provides a unified framework for selecting
page ranges, and a Flprlog utility provides a simple printer
accounting mechanism.
The source code of FLpr, written in Perl, is available and comes
with the documentation for the program in Texinfo format.
FLpr requires, in addition to Perl, the a2ps,
dvips, GhostScript,
psutils, and
ImageMagick packages.
[http://www.ci.tuwien.ac.at/~leisch/docs/flpr/flpr.html]
[http://sunsite.unc.edu/pub/Linux/system/printing/
]
- Flux OS Toolkit
- A framework and set of modularized library code together
with extensive documentation whose goal is to make it easier
for OS developers to create a new OS. It facilitates
running user code directly on the hardware including
programming language runtimes, porting an existing OS to
a platform supported by the OS Toolkit, or enhancing an
OS to support a wider range of devices, file system formats,
or executable formats. The Toolkit is designed for someone
to be able to use it and immediately have a basis on which they
can begin concentrating on substantial OS issues such as
scheduling, VM, IPC, file systems, security, etc. instead
of spending forever writing boot loader code, startup code, device
drivers, malloc code, a kernel debugger, etc.
The set of support libraries in the Toolkit include:
- libkern, kernel support code for setting up a basic kernel
environment including the provision of default handlers for traps
and interrupts;
- libmc, a simple and minimal C library which minimizes dependencies
with the environment and between modules;
- liblmm, a flexible memory management library which can be used
to manage either physical or virtual memory and which supports many
special features needed by OS-level code, e.g. multiple memory
types, allocation priorities, and arbitrary alignment and placement
constraints for allocated blocks;
- libexec, a generic executable interpreter and loader which
currently supports both a.out and ELF either during bootstrap or
during general operation;
- libdiskpart, a generic library which recognizes various common
disk partitioning schemes and produces a map of the organization of
any disk;
- libmemdebug, a comprehensive drop-in memory allocation debugging
library which provides backtraces, file and line info, etc.;
- libfdev, a generic, well-defined device driver framework which
allows existing device drivers to be adopted from various sources
and used in a variety of kernel and user-space environments; and
- libfsread, a simple read-only file system interpretation
library which supports various common types of file systems including
BSD FFS, Linux ext2fs, and MINIX.
A new release of the Flux OS Toolkit is due for release in 5/97.
It replaces and is somewhat incompatible with the previous release
which is currently unavailable.
The Toolkit is documented in a 300+ page manual and user's guide
available in PostScript and several
other formats.
See also the Flick project.
[http://www.cs.utah.edu/projects/flux/oskit/]
[http://www.cs.uct.ac.za/~fabian/coding.html
]
- fMSX
- A portable emulator of MSX/MSX2/MSX2+ home computers written
in C. It has been ported to UNIX, Windows, MS/DOS, Mac, Amiga,
Playstation, OS/2, and other platforms.
[http://www.komkon.org/fms/fMSX/]