Last checked or modified: Jun. 16, 1998
- R
- A language ``which bears a passing resemblance to the S
language developed at AT&T'' for statistical calculations.
The goal of the project producing R is to demonstrate
that it is possible to produce an S-like environment
which does not suffer from the memory demands and performance
problems of the current S implementation. The short term
goal is to create a small portable free system which provides
most of the functionality of S with perhaps some extensions.
The S language provides general facilities for organizing,
storing, and retrieving all types of data; numerical methods
and other computational techniques; the capability of writing
programs in S as well as interfaces
to UNIX commands or C or
Fortran routines;
and interactive, informative and flexible
ways of looking a data graphically. The S language contains
a wide variety of expressions and operators and all computations
are done by functions, which are either built in or operator
defined. There are many built-in data manipulation,
mathematical and statistical distribution functions.
Many kinds of plots can be created with the graphics
package including scatter plots, box plots, x-y plots,
bar graphs, dot charts, pie charts, geographical maps, and
perspective grid plots. Many data object types are supported,
including truth values, numbers, complex numbers, character
strings, and lists of objects. It is the goal of R to
replicate all of these capabilities.
R is written in Fortran and C and I've compiled it successfully
using g77 and gcc (up to version R-0.9alpha).
The current distribution is an alpha pre-release as of 6/96.
There is a small amount
of documentation that comes with the package, although more
can be found in the published documentation for S, i.e. the
first ("Blue") and second ("White") published manuals.
The blue manual is "The New S Language" by R. Becker, J. Chambers
and A. Wilks (Wadsworth and Brooks/Cole Advanced Books and
Software, Pacific Grove, CA, ISBN 0-534-09192-X, QA 76.73 S15 B43).
The blue manual describes the language is general and the white
manual focuses on statistical applications.
There are quite a few packages and some tutorial documents
concerning the S language at the
Statlib S Repository
.
The S tutorials presumably can also function as R tutorials.
[ftp://stat.auckland.ac.nz/pub/R/]
- Radiance
- A suite of programs for the analysis and visualization of lighting
in design.
Radiance is used by architects and engineers to predict illumination,
visual quality, and the appearance of innovative design spaces, and
also by researchers to evaulate new lighting and daylighting
technologies.
An input file containing the scene geometry, materials, luminaires,
time, data and sky conditions is transformed into calculated values
including spectral radiance, irradiance, and glare indices.
The results can be displayed as color images, numerical values, or
contour plots.
There are no limitations on the geometry or materials that can
be simulated with Radiance.
A source code distribution of Radiance is available. It is written
in strict ANSI C and portable to most platforms.
There are over 100 programs/commands in the Radiance package, each
of which is described in a separate manual page.
Documentation also includes a tutorial, a reference manual, technical
papers, and seminar and course notes.
[http://radsite.lbl.gov/radiance/HOME.html]
- RADIUS
- The Remote Authentication Dial In
User Service
is a protocol for providing a standard method for dial-up
authentication, offering access and control and accounting
features as well as security.
RADIUS is based on a distributed security model and provides
an open and scalable client/server security system.
It includes two pieces: an authentication server and client
protocols.
All user authentication and network service access information is
located on the former which communicates with clients via the
latter.
The communications channel between the client and server is
UDP/IP with messages acknowledged.
RADIUS software for Linux systems include the
RADIUS ISP Package
and the
Ascend RADIUS Package
.
- RAID
- A Redundant Array of Inexpensive Disks
is a method whereby information is spread across several disks
using techniques such as disk striping and disk mirroring to
achieve redundancy, lower latency and/or higher bandwidth for
reading and/or writing, and recoverability from disk crashes.
The use of RAID with Linux is described in an article in the December
1997 issue of the Linux Journal.
[http://linas.org/linux/raid.html]
- RAM
- The Range-dependent Acoustic Model is a Fortran 77
software package for solving range-dependent ocean acoustics
problems using the parabolic equation (PE) method.
RAM is based on the split-step Padé solution method which
allows large range steps and is the most efficient PR algorithm.
Range dependence is handle accurately by applying an energy
conservation correction as the acoustic parameters varying with
range. In initial condition (or starting field) is constructed
using the self-starter, i.e. an accurate and efficeint approach
based on the PE method.
A source code distribution of RAM is available.
It is written in Fortran 77 and documented in a user's
manual available in PostScript
format.
There are separate source code versions for codes designed
to run on single and parallel processors.
See Collins (1993) and Collins (1993).
[ftp://ram.nrl.navy.mil/pub/]
- RANDMOD
- A package designed to enable random variations in a resident
linear program (LP) whose matrix file was previously generated or
was read as a library. This is done to test either the performance
of an algorithm or the sensivity of a model to variations. This
is related to the
ANALYZE and
MODLER packages.
A binary version of RANDMOD is available for Linux and DOS
platforms. The documentation is contained within a manual
that can be obtained from the author via the
IMPS Software Site
.
A quick summary of the ins and outs of optimization can be found at the
NEOS Optimization Tree
.
[http://www-math.cudenver.edu/~hgreenbe/consortium/softget.html]
- RANDLIB
- A library of Fortran or C routines for random number
generation.
The bottom level routines provide 32 virtual random number generators.
RANDLIB provides routines that return:
beta random deviates, chi-square random deviates,
exponential random deviates, F random deviates,
gamma random deviates, multivariate normal random deviates
(mean and covariance matrix specified), noncentral
chi-square random deviates, univariate normal random deviates,
random permutations of an integer array,
real uniform random deviates between specified limits,
binomial random deviates,
negative binomial random deviates,
multinomial random deviates, Poisson random deviates,
integer uniform deviates between specified limits, and
seeds for the random number generator calculated from
a character string.
RANDLIB versions are available written in C, Fortran,
or Perl.
Each routine is documented in comment statements contained
within the source code.
Several test driver programs are included in the distributions.
[odin.mdacc.tmc.edu/anonftp/]
[http://www.netlib.org/random/
]
[http://lib.stat.cmu.edu/general/Utexas/
]
- random numbers
- Software packages which generate random numbers or which contain random
number generators include:
C++SIM,
Cheney-Kincaid,
CMLIB,
CNCL,
COSMICS,
DCDFLIB,
Diehard,
FLIB,
Gstat,
Karma,
libobjects,
LInteger,
MatClass,
Octave,
Ox,
RANDMOD,
RANDLIB,
RV,
SIMEX,
SPRLIB,
SPRNG,
SPECFUN,
STARPAC,
Swarm,
WNLIB,
Xi, and
Xlisp-Stat.
- RasMol
- A molecular graphics package intended for the visualization
of proteins, nucleic acids and small molecules. It is aimed
at the display, teaching and generation of publication quality
images. RasMol reads in molecular coordinate files in a number
of formats and interactively displays the molecule on the screen
in a variety of color schemes and representations. Connectivity
and secondary structure information are automatically calculated
in not contained in the file.
The input file formats supported by RasMol are:
Brookhaven Protein Databank (PDB), Tripos' Alchemy and
Sybol Mol2 formats, Molecular Design Limited's (MDL) Mol
format, the Minnesota Supercomputer Center's (MSC) XMol XYZ
format and CHARMm format files.
The loaded file can be displayed in several different ways:
wireframe, cylinder (Dreiding) stick bonds, alpha-carbon trace,
spacefilling (CPK) spheres, macromolecular ribbons (either smooth
shaded solid ribbons or parallel strands), hydrogen http://www.umass.edu/microbio/rasmol/index2.htmbonding, and
dot surface. Different parts of a molecule may be displayed and
colored independently of the rest of the molecule or simultaneously
shown in different representations. The displayed molecule can
be rotated, translated, zoomed, z-clipped (slabbed) interactively
using the mouse, the scroll bars, the command line, or an attached
dials box.
The resulting image can be written in in a variety of formats
including both raster and vector PostScript, GIF,
PPM, BMP, PICT,
Sun rasterfile, MolScript input script, or Kinemage.
The source code is available and should readily install
on generic UNIX/X11 platforms as well as on Mac, Windows and
OS/2 platforms.
The package is documented in a user's manual available in
PostScript format.
[http://www.umass.edu/microbio/rasmol/index2.htm]
- Raster3D
- A set of tools for generating high quality raster images
of proteins and other molecules. The core Raster3D program
renders spheres, triangles, and cylinders with specular
highlighting, Phong shading, and shadowing. An efficient
software Z-buffer algorithm is used which is independent of
hardware. Ancillary programs perform a variety of other tasks.
The programs comprising Raster3D are:
- avs2ps, which converts an AVS image to monochrome PostScript;
- balls, a preprocessor which prepares a description of a
space-filling model;
- normal3d, which applies coordinate manipulations to a file;
- rastep, which reads a Brookhaven PDB coordinate file and
creates a input file for render;
- render, the central image rendering program of the package;
- ribbon, a preprocessor which prepares a simple ribbon
representation of a protein backbone;
- rods, a preprocessor for ball and stick figures; and
- stereo3d, a shell script that renders a single Raster3D
input file as a side-by-side stereo pair.
A source code distribution of Raster3D is available. It contains
makefiles for several platforms including Linux Intel.
It is documented in a user's guide available in both PostScript
and HTML formats.
See also Merritt and Bacon (1997).
[http://www.bmsc.washington.edu/raster3d/raster3d.html]
- RAT
- The Robust Audio Tool is designed to allow users
to talk to each other over the Multicast Backbone
(MBone). RAT is designed to be adaptive
to changing network and host conditions.
Features of RAT include:
use of a second low bandwidth version of the original signal
piggy-backed on the original to provide a back-up for lost
packets;
adaptive scheduling protection which minimizes the end-to-end delay
of the system and minimizes the gaps caused by late scheduling of
the audio process by the host operating system;
continuously update statistics about loss rates;
a lip-synchronization option; and
improved hands-free operation via an improved method of silence
detection.
RAT is available in binary format for Sun SunOS and Solaris,
SGI IRIX, Windows 95/NT, HP-UX and Linux Intel platforms.
Documentation is contained in a man page as well as in
several technical reports available in
PostScript format.
[http://www-mice.cs.ucl.ac.uk/mice/rat/]
- Ratatosk
- A mail user application (MUA) with an X Window interface.
Ratatosk features include:
a multilingual user interface (currently English, Swedish,
and Italian);
MIME support in which incoming text in plain, GIF, or
RFC-822 content type formats are decoded and shown if
the character set is compatible;
support of MIME in headers;
support for the delivery status notifications (DSN) standard;
message composition using the built-in editor or via a chosen external editor;
a message database;
virtual folders;
message holding to put message composition on temporary hiatus;
a watcher utility which regulary checks the mailbox and notifies the
user via an icon;
interfaces to standard UNIX mailboxes, POP, IMAP,
and mh with messages sent by SMTP
or by any user-configured program, e.g. sendmail;
and more.
The source code for Ratatosk is available. It is written in C
and Tcl/Tk and requires Tcl 7.5 and
Tk 4.1 or above.
The program is documented in several ASCII files included in
the distribution.
This package is also known as TkRat.
[http://www.dtek.chalmers.se/~maf/ratatosk/]
- RATC
- RATional C is a macro package designed to update the
control structures available in C.
RATC is designed to use the standard C/C++ macro preprocessor
and as such can be used by anyone with an ANSI C or C++
compiler.
The new constructs available include
if ... elseif ... else ... endif,
while ... endwhile,
repeat ... until and repeat ... aslongas,
loop ... endloop,
for ... endfor,
context .. endcontext with leave and leaveif,
switch ... case .. endcase ... default ... endswitch,
breakif, continueif,
ifx, func and endfunc, and several more.
[http://webster.ucr.edu/Page_cpp/randy_h.html]
- RATFOR
- A Fortran preprocessor that allows the
use of C-like flow control expressions.
The 7th Edition AT&T UNIX man page for Ratfor, written by
Brian Kernighan, states that it ``attempts to conceal the main
deficiencies of Fortran while retaining its desirable qualities,
by providing decent flow control statements.''
The flow control enhancements include statement grouping
via curly braces (e.g. to create do loops without statement numbers);
if-else and switch statements for decision making;
while, for, do, and repeat-until for
looping;
and break and next for controlling loop exits.
It also provides some syntactic sugar including
free form input (e.g. multiple statements per line; automatic
continuation; an unobtrusive comment convention,
translation of >, >=, etc. into .GT., .GE., etc.;
a return(expression) statement for functions,
a define statement for symbolic parameters, and an
include statement for including source files.
All of these are translated into Fortran 77 by Ratfor.
Kernighan goes on to say that, ``Once the control flow and cosmetic
deficiencies of Fortran are hidden, the resulting language is remarkably
pleasant to use. Ratfor programs are markedly easier to write, and to
read, and thus easier to debug, maintain and modify than their
Fortran equivalents.''
This is a public domain version of Ratfor which is not derived
from AT&T code.
It is written in C and derived from a pre-processor originally
distributed by the University of Arizona, although is closely
corresponds to the pre-processor described in the
``Software Tools'' book and the man page.
[http://sepwww.stanford.edu/software/ratfor.html]
- RATlib
- The Rectangular Access Tree library is a
function library for inserting, deleting, acessing, and querying
objects which can be described using 2-D rectangular regions.
Each rectangular object is associated with an arbitrary
(void *) which can be used to hold either raw data or
a pointer to data. All objects are described with four parameters
x, y, w, h where (x,y) is the center point and (w,h) the width and
height of the rectangle. Supported queries include rectangle insersection
and containment using an arbitrary query rectangle along with an
exact/close match query.
A source code distribution of the C library is available.
It is documented in a technical report and in a set of
man pages.
[http://www.cs.cmu.edu/afs/cs/project/pcvision/RATlib/www/ratlib.html]
- RAToolSet
- A suite of routing policy analysis tools including:
- RTConfig, which generates router configurations from policies
expressed in RPSL or RIPE-181 (and supports several public domain
router languages);
- roe, which lists the routines registered by a provider,
highlighting the discrepancies between the registered routes and
those actually being routed;
- aoe, a GUI program that displays the aut-num object
for an AS;
- prpath, which enumerates a list of paths between two
AS locations;
- prcheck, which performs syntactic and semantic checking of
registered aut-num objects;
- peval, a low-level policy evaluation tool that can be used
to write router configuration generators;
- CIDR Advisor, which uses registered policies to suggest
aggregations that do not violate policies or cause suboptimal routing;
- pmatch, which, given a BGP route, lists all neighbors either
exporting or importing this route to or from the provider; and
- prtraceroute, which compares the result of a traceroute with
policies registered in the IRR.
A source code distribution of RAToolSet is available. It is
written in C++ and requires
GCC 2.7.2 or higher and libg++ 2.7.2 or higher for compilation.
The GUI tools also require Tcl/Tk
4.0 and 7.4, respectively, or higher.
[http://www.isi.edu/ra/]
- Ra-vec
- A vectorizing program designed to rapidly prototype 3-D worlds
from line drawings, particularly architect's plans.
It creates a 2-D vector file describing the features in a plan
which can then be imported to AC3D and
either extruded to produce a quick 3-D environment or used as
the basis for a more detailed model.
The only file type that Ra-vec can currently (4/97) import is
an X11 bitmaps (XBM), but xv and other
programs can convert quite a few raster file types into XBM
so that's not a great limitation. The original image must be
scanned using your choice of scanning hardware and software.
The source code for Ra-vec, written in C, is available and
has been tested on SGI IRIX, Sun SunOS and Solaris, and
Linux Intel platforms.
A user's guide is available at the site in HTML format.
[http://www.comp.lancs.ac.uk/computing/users/aspinr/ra-vec.html]
- RAY++
- A collection of C++ classes for performing
various ray tracking tasks.
A source code distribution is available.
[http://www.mpa-garching.mpg.de/~martin/ray++/raymain.html]
- Rayshade
- An extensible system for creating ray traced images that reads an ASCII
file describing a scene and produces an image.
The features of Rayshade include:
- ten types of primitive objects, e.g. blobs, boxes, cones, cylinders, etc.;
- use of uniform spatial subdivision or a hierarchy of bounding volumes
to speed up rendering;
- constructive solid geometry;
- light sources including point, directional, extended, spot and
quadrilateral;
- solid procedural texturing, bump mapping, and 2-D image texture
mapping;
- antialiasing via variable-rate sampling;
- arbitrary linear transformations of objects and texture/bump maps;
- rudimentary animation support;
- rendering stereo pairs; and
- extensibility, i.e. easy addition of new geometry, textures or
other features.
A source code distribution of Rayshade is available which can be
compiled and installed on most UNIX varieties.
It includes the source, example input files, a user's guide,
and tools for converting scene descriptions from other formats into
that of rayshade.
[http://www-graphics.stanford.edu/~cek/rayshade/]
- ray tracing
- Available programs include:
- AERO, a package for simulating rigid body
systems with ray tracing capabilities;
- BMRT, a collection of rendering programs
that adhere to the RenderMan interface standard;
- DragonRay, a package similar to
POV-Ray in design;
- GOOD, an interactive environment for creating
3-D graphics that has ray tracing capabilities;
- Panorama, a framework for creating,
rendering, and processing 3-D images;
- Pixcon/Anitroll, a 3-D animation
and rendering package;
- POV-Ray, the most reknowned and widely
used ray tracking package;
- Radiance, a package for lighting design
and rendering;
- RAY++, a C++
library for ray tracing;
- Rayshade, a system for generating
ray traced images;
- RenderPark, a photorealistic
rendering tool;
- RTrace, a ray tracing program;
- SART, a library for ray tracing and
high-complexity 3-D modeling;
- synpic, a ray tracking package;
- VORT, a collection of tools and a library
for the generation and manipulation of images;
- rc
- The AT&T Plan 9 shell ported to UNIX. It features a minimal
and easy to understand syntax and conditional and loop structures
that are more like C than those in csh. Quoting has also been
simplified. Signal handlers are written as functions with
special anmes instead of using strings and I/O redirection
is more powerful. See the
rc FAQ
for further details.
[ftp://ftp.cc.gatech.edu/pub/linux/system/shells/]
- RCOS.java
- A tool designed to help understand the inner workings of an operating
system, RCOS.java is an animated, multi-tasking OS which runs on
simulated hardware.
It is designed to demonstrate general OS principles via controlled
animation, and as such allows students to modify, experiment with,
and compare different data structures and algorithms.
As you might have guessed, this is written in
Java.
[http://cq-pan.cqu.edu.au/rcos/]
- RCS
- The Revision Control System software
manages multiple revisions of files.
It can store, retrieve, log, identify, and merge revisions. It is
useful for files that are revised frequently, e.g. programs,
documentation, graphics, and papers. This is a GNU package with
the usual configure file that should facilitate easy compilation
and installation on numerous systems, including Linux.
See Bolinger and Bronson (1995).
[http://www.gnu.ai.mit.edu/order/ftp.html]
- RCS (Control)
- The Real-time Control Systems library is an archive
of C++ code, scripts, makefiles and documentation
developed to aid programmers of software to be used in real-time control
systems. It is a class library intended for multi-platform real-time
distributed applications.
The components of RCS include:
- lower level classes and functions including timer, semaphore,
linked list, print and Internet classes with which the higher level
utilities are built;
- the Communication Management System (CMS), which provides access to
a fixed-size buffer of general data to multiple reader or writer processes
on the same processor, across a backplane, or over a network;
- the Neutral Manufacturing Language (NML), which provides a high-level
interface to CMS, i.e. a mechanism for handling multiple types of messages
in the same buffer as well as a simplified interface for encoding and
decoding buffers in neutral format;
- a PoseMath library containing classes for representing positions,
translations and rotations in several different coordinate systems; and
- an RCS Design Tool written in Java that
allows programmers to create applications graphically and which
generates source code.
A source code distribution is available which has been successfully
compiled on a wide range of platforms including Linux Intel.
Much documentation is available in hypertext format.
[http://isd.cme.nist.gov/proj/rcs_lib/]
- RDist
- A program for maintaining identical copies of files over
multiple hosts. RDist preserves the owner, group, mode, and
mtime of files if possible and can update programs that are
executing.
This version doesn't need to be run as root, can
be used with ssh, supports automatic
system determination and configuration for pre-ported platforms,
can run the m4 preprocessor before processing,
will check free space and files on a filesystem before installing,
can update multiple hosts concurrently via rdist, and more.
A source code distribution of RDist is available as are
binaries for several platforms including Linux Intel.
It is documented in an extensive man page.
[http://www.magnicomp.com/rdist/rdist.shtml]
- RDP
- A parser generator which
compiles attributed LL(1) grammars decorated with C semantic
actions into recursive descent compilers.
RDP was written in strict ANSI C and produces strict ANSI C.
It was created for a course on compiler design to enable
undergraduates to get through the early parts of the syllabus in
just a few weeks.
The features of RDP include:
- it is C++ clean, i.e. there are no identifiers used that clash
with C++ reserved words;
- use of standard library modules to manage symbol tables, sets,
graphs, memory allocation, text buffering, and command line argument
processing and scanning;
- production of complete runnable programs with built-in help
information and command line switches specified as part of the EBNF
file;
- text buffering routines that automatically handle nested files,
error message reporting, and text data buffering to provide an efficient,
general purpose front end;
- a graph handling package that provides a general framework for
building graph data structures;
- self-generation, i.e. it can generate itself; and
- support for parameter passing into parser functions.
A source code distribution of RDP is available.
It includes the machine generated source code for the translator,
the EBNF file describing RDP that was processed by the RDP executable
to produce its own source code, EBNF files for several mini-languages,
an EBNF file for a Pascal-like language, an ANSI C pretty printer
written using RDP, a set of wrapper functions for standard C memory
allocation routines, a programmable scanner, a standard text buffering
package, makefiles for several platforms including Linux Intel,
and documentation in the form of a tutorial, reference manuals, and
case study manuals.
[http://www.dcs.rhbnc.ac.uk/research/languages/rdp.shtml]
- Reactive-C
- A C-based language for
reactive programming implemented as
a C preprocessor.
Reactive programs are those which react continuously to sequences
of activations from the external world, which leads to a new
programming style in which one programs in terms of reactions to
activations and reasons in a logic of instants.
Reactive programs can react differently to successive
activations within a paradigm in which a logical time is
induced by sequences of actions, with each activation/reaction
pair called an instant. Reasoning is thus carried out by
reference to instants.
Reactive-C serves as the basis for several additional formalisms.
Nets of Reactive Processes (NRP) are programs consisting of reactive
processes executed in parallel and communicating through
unbounded FIFO files called channels.
This is a method for using R-C to implement synchronous models
with asynchronous communications.
The Synchronous Language (SL) is a language in which reactions
are instantaneous. This apparoach allows the expressive simplicity
and power of parallelism, the ease of specification and debugging
for deterministic programs, and the power and modularity of broadcast
and instantaneous dialogs.
The Reactive Object Model (ROM) merges an object approach with the
notion of a global instant to allow methods to be invoked using
instantaneous non-blocking send orders which are processed
immediately, although not more than once at each instant. This
leads to an approach wherein systems are decomposed into reactive
areas where agents communicate inside their area via instantaneous
orders and between distinct areas by unbounded delay orders.
A Reactive Script is a program represented as a character string
and intended to be run by a reactive interpreter, which is a
broadcast event driven interpreter which can react to several
commands in parallel.
Icobj programming is a simple and fully graphical programming
method which uses a powerful method to combine behaviors.
It is based on the idea of an icobj which has
behavioral, graphical, and animation aspects.
This provides parallelism, broadcast event communication, and
migration through the network.
This project is also working on a set of Java
classes for implementing event based, parallel, and reactive systems
called SugarCubes which are used to implement reactive scripts
and icobj programming on top of the Java language.
A software package containing the Reactive-C implementation
and various derived packages is available for various platforms.
This package includes:
rcc, the Reactive-C compiler;
nrp, an implementation of Nets of Reactive Processes;
sl, an implementation of the SL synchronous language;
ro, an implementation of reactive objects;
icobj, a visual programming demonstration based on
reactive scripts; and
a reactive script interpreter on top of Tcl/Tk.
Various manuals and technical reports are available for most of
these in PostScript format.
See Boussinot (1991), Boussinot (1996), and
Boussinot and de Simone (1996).
[http://www.inria.fr/meije/rc/general-presentation.html]
- reactive programming
- Programming systems which maintain a permanent interaction
with their environment, reacting to inputs coming from the
environment by sending output to it.
A reactive system is one whose main component is a reactive
program, and examples of such systems include
real-time process controllers, signal processing units,
digital watches, and video games.
Examples of reactive programs embedded in larger systems
include operating system drivers, mouse/keyboard interface
drivers, and communication protocol emitters and receivers.
Reactive programs are usuallly thought to consists of three
layers: an interface with the environment which is in charge
of input reception and output production, i.e. it transforms
external physical events into internal logical events and
vice versa;
a reactive kernel which contains the logic of the system and
handles logical inputs and outputs; and
a data handling layer which performs the computations requested
by the reactive kernel.
Available reactive programming language systems include
Esterel and
Reactive-C.
See Halbwachs (1993).
- Real-Time Linux
- An extension to Linux which allows the handling of time-critical
tasks, even hard real-time tasks.
The real-time capabilities are accomplished mainly by the
insertion of a Real-Time Kernel Layer between the Linux kernel
and hardware interrupts. This eliminates the large interrupt
latency which is currently the main source of difficulties in
using Linux for such tasks.
The Linux kernel is just another real-time task under the RT-Kernel,
one with the lowest priority which can be preempted when needed.
While this makes it difficult to use Linux drivers and networking,
it does allow data to be transferred to and from ordinary Linux
processes through memory buffers.
Simple FIFOs are implemented for transferring data betwee real-time
processes and Linux processes.
A typical application consists of real-time tasks that deal directly
with hardware, e.g. acquiring data from a device, and Linux tasks
which perform non-real-time processing such as recording the data
on a disk or sending it over a network.
The Real-Time Linux distribution contains a kernel patch,
a library to link with Linux processes, some documentation
in HTML format, and some test examples.
A couple of technical papers in
PostScript format are
also available.
[http://luz.cs.nmt.edu/~rtlinux/]
- Red
- A GUI text editor. Its features include the graphical
interface, full mouse and key support, 40 step undo and redo,
user-definable key bindings, automatic backup creation,
cut/paste exchange with other X applications, an online
function list, help pages and a manual. It is available in
source code form and requires X Windows, Motif and a C++
compiler to install. The G++ compiler has been successfully
used to compile this on Sun and Linux platforms.
[http://www.sd.monash.edu.au/~mik/red-manual/]
- REGAL
- A distributed
genetic algorithm-based
system designed for learning First Order Logic concept descriptions
from examples.
REGAL is based on a selection operator called Universal Suffrage
which provably allows the population to asymptotically converge,
on average, to an equilibrium state in which several species
coexist.
The population constitutes a redundant set of partial concept
descriptions, each separately evolved.
REGAL has a graphical interface based on
Tcl/Tk.
A source code distribution of REGAL is available. It is
written in ANSI C and can be compiled and used on most
UNIX systems.
The full use of REGAL additionally requires
PVM,
Tcl/Tk, and
BLT.
See Giordana and Saitta (1993).
[ftp://ftp.di.unito.it/pub/MLprog/REGAL3.2]
- Regina
- An implementation of the REXX language
developed by Anders Christensen. It is currently (2/96) still
in beta release. This interpreter can be built on most
generic UNIX platforms with an ANSI C compiler, a lex program,
and a yacc program. The author states that he has successfully
compiled Regina on a Linux box using the GNU versions of
the abovementioned tools. A manual (as yet incomplete) in
LaTeX form is included with the distribution.
[http://wwwcn.cern.ch/regina/Welcome.regina]
- Regis
- A programming environment for constructing distributed programs and systems.
More later.
[http://www-dse.doc.ic.ac.uk/~regis/regis.html]
- regridpack
- A package of Fortran subroutines for transferring values
between one, two, three and four dimensional arrays defined
on uniform and nonuniform orthogonal grids, i.e. for
regridding. Linear or cubic interpolation can be selected
independently in each dimension, and extrapolation is not
performed. The subroutine source code and example driver
programs are available. The documentation is contained
within a README file and in the source code of each routine.
This used to be called TCLPACK.
[ftp://ftp.ucar.edu/dsl/lib/regridpack/]
- Regularization Tools
- A collection of Matlab programs (m-files) for performing experiments
with numerical methods for analysis and for the solution of discrete
ill-posed problems.
Ill-posed problems are those in which the solution is not unique
or is not a continuous function of the data, i.e. if an arbitrarily
small perturbation of the data can cause an arbitrarily large
perturbation of the solution. This sort of problem arises in
most areas of science and engineering.
Many of the routines in the package are based on the singular
value decomposition (SVD) and the generalized SVD.
The package is not optimized for efficiency since it is meant
more as an exploratory environment than a production environment.
The routines available in the Tools package include:
- cg, for computing the least squares solution based on k steps
of the conjugate gradient algorithm;
- discrep, which minimizes the solution norm subject to an upper
bound on the residual norm;
- dsvd, which computes a damped SVD/GSVD solution;
- lsqi, which minimizes the residual norm subject to an upper
bound on the norm of the solution;
- lsqr, which computes the least squares solution based on k steps
of the LSQR algorithm;
- maxent, which computes the maximum entropy regularized solution;
- mtsvd, which computes the modified TSVD solution;
- nu, which computes the solution based on k steps of Brakhage's
iterative nu-method;
- pcg, the same as cg for general-form regularization;
- plsqr, the same as lsqr for general-form regularization;
- pnu, the same as nu for general-form regularization;
- tgsvd, which computes the truncated GSVD solution;
- tkhonov, which computes the Tikhonov regularized solution;
- tls, which computes the truncated TLS solution; and
- tsvd, which computes the truncated SVD solution.
The package also contains several analysis routines, routines for
transforming a problem in general form into one of standard form
and back again, and utility and auxiliary routines for performing
various linear algebra tasks.
The Regularization Tools package can be used with Matlab or with the
freely available Octave which can run
most Matlab m-files.
It is extensively documented in a 140 page user's guide and
reference manual in PostScript
format.
[http://www.mathworks.com/ftp/linalgv5.shtml]
[http://www.mathworks.com/ftp/linalgv4.shtml
]
- reiserfs
- A file system that uses a variant of classical balanced tree algorithms
which can be more effective then extfs for large files and small files not near
node size in time performance, become less effective in time performance
and more significantly effective in space performance as one approaches
files close to the node size, and become markedly more effective in
both space and time as file size decreases substantially below
node size (i.e. 4k), reaching order of magnitude advantages for
file sizes on the order of 100 bytes.
This is available as a source code distribution which is used
to modify the kernel before recompilation.
[http://idiom.com/~beverly/reiserfs.html]
- Remembrance Agent
- A program that augments human memory by displaying a list of documents
which might be relevant to the user's current context.
RA runs continuously in the background and an unobtrusive interface
allows the user to pursue or ignore its suggestions.
It consists of two parts: a front end that continuously watches what the
user types and reads and a back end that finds old email, notes files,
and online documents which are somehow relevant to the user's context.
The front end currently (5/98) runs in Elisp under
Emacs. It displays one-line suggestions at
the bottom of the Emacs display buffer along with a numeric rating
of how relevant it thinks the document is.
The full text of the suggested document can be brought up with just
a keystroke or two.
The back end is presently the SMART information retrieval program,
which decides document similarity based on the frequency of words
common to the query and reference documents.
It indexes all sources nightly and supplies relevant documents
based on the query text supplied by the front end.
A source code distribution of RA is available. The back end is
written in C and the front end in Elisp for Emacs.
Documentation is contained within a README file included in
the distribution.
Further information can be found at the web site.
[http://rhodes.www.media.mit.edu/people/rhodes/Remembrance-distribution/]
- remind
- A sophisticated alarm and calendar program. It handles the
common and Hebrew calendars, produces PostScript output, calculates
sunrise, sunset and moon phases, is multilingual, and can
do complicated date calculations. It also includes a WWW
server.
[ftp://ftp.doe.carleton.ca/pub/remind-3.0]
- RenderPark
- A photorealistic rendering tool whose goal is to offer a solid
implementation of several existing photorealistic rendering
algorithms to compare them, evaluate their benefits and shortcomings,
find solutions to the latter, and develop newer and better algorithms.
The algorithms implemented in RenderPark include:
- Galerkin radiosity (gathering and shooting) with or without
hierarchical refinement, higher-order approximations, clustering,
and view importance;
- stochastic ray radiosity;
- ray casting; and
- classic and stochastic ray tracing.
A source code distribution is available. It is written in C and
has been test on Linux Intel amongst other platforms.
[http://www.cs.kuleuven.ac.be/cwis/research/graphics/RENDERPARK/]
- Rendez-Vous
- An Internet videoconferencing tool developed as a successor to
IVS.
It is an experimental research tool developed as a testbed for
such topics as layered video and audio transport and coding,
Forward Error Correction for video and audio on the Internet,
and wireless and satellite link access to the Internet.
The features of Rendez-Vous include:
- RTP protocol support over multicast or unicast IP;
- support for the H261 video standard;
- high quality PCMU, ADPCM, VADPCM and low bandwidth GSM and
LPC audio coding;
- MPEG 1/2 file reading and transcoding;
- an integrated scheduler for multilayer video and audio flow management
and processing;
- a flexible interface written in C++;
- support for layered coding and transmission of video and audio flows;
- experimental multiresolution DCT video codecs; and
- application level hierarchical FEC.
Distributions of Rendez-Vous are available for Sun Solaris,
Linux Intel and FreeBSD Intel platforms.
Documentation is sketchy and scattered about in several ASCII
text files.
[http://www.inria.fr/rodeo/personnel/Frank.Lyonnet/IVStng/]
- REXX
- A procedural programming language that allows programs and
algorithms to be written in a clear and structured way. It is
also designed to be used as a macro language by arbitrary
application programs so that application developers don't have to
design their own macro languages and interpreters. It was originally
developed for IBM mainframes but there are now ports to other
platforms.
UNIX-based REXX implementations include:
Object REXX,
Regina and
REXXimc. See also the
REXX Language Association
site.
See Daney (1992).
[http://www2.hursley.ibm.com/rexx/]
- REXXimc
- An implementation of an interpreter for the
REXX language. It is written in ANSI C and
will compile using the GCC compiler. The included make file
is set up with definitions for several UNIX platforms, including
Linux. A reference and users manual is also available.
[http://www.comlab.ox.ac.uk/oucl/users/ian.collier/Rexx/
index.html]
- RFC
- The Request For Comments documents are a series
of numbered reports in which documentation for Internet standards
is maintained, although not all of the RFCs contain standards.
RFC 1594, entitled ``FYI on Questions and Answers,'' describes
RFCs as ``... working notes of the Internet research and development
community. A document in this series may be on essentially any
topic related to computer communication, and may be anything from
a meeting report to the specification of a standard. ... Once
a document is assigned an RFC number and published, that RFC is
never revised or re-issued with the same number. ... However,
a protocol may be improved
and re-documented many times in several different RFCs.''
Memos proposed to be RFCs can be submitted by anyone, although
most are created by Internet Engineering Task Force (IETF) working
groups.
RFCs can be divided into four groups based on naming conventions:
- Best Current Practices (BCP) RFCs, which describe best current
practices for the Internet community and must go through a review
process to earn the technical approval of the IETF (although they
do not become standards);
- For Your Information (FYI) RFCs, which are informative and
explanatory in nature and can address any topic of interest to the
Internet community;
- Standards (STD) RFCs, which contain technical information that either
has attained the status of Internet Standard or is on track to becoming
one (with those that have been standardized carrying the STD label);
- Other RFCs, a catch-all group containing RFCs that aren't BCP,
FYI, or STD RFCs but still are technical and relate in some way to
an Internet protocol.
Beginning with RFC 899, all those ending in 99 are reserved to summarize
the preceding 99 RFCs.
There are currently (4/98) over 2200 RFC documents with some of the
more well known ones dealing with Internet standards including
768 (UDP), 793 (TCP), 821 (SMTP), 822 (Mail),
854 (Telnet), 959 (FTP),
977 (NNTP), 1001 (NetBIOS),
1034 (DNS), 1122 (TCP/IP),
1661 (PPP), HTML 2.0 (1866), and HTTP (2068).
Other RFCs of more than passing interest include
``The RFC Reference Guide'' (1000),
``A TCP/IP Tutorial'' (1180),
``A Glossary of Networking Terms'' (1208),
``Internet Users' Glossary'' (1983), and
``The Internet Standards Process - Revision 3'' (2026).
[http://ds.internic.net/]
- RHIDE
- An integrated development environment (IDE) for
DJGPP which
provides a friendly user interface to the compilers which come
with DJGPP, e.g. gcc.
A version is also available which provides an IDE for developing
Linux applications.
The capabilities of RHIDE include:
compilation of programs without knowing the exact command line
syntax of your compiler;
compilation of collections of source files belonging to specific
projects;
syntax highlighting for C/C++ and Pascal files and headers;
an integrated debugger allowing debugging from within RHIDE;
easy customizability of colors, screen mode, compilers, compiler
options, language, etc.; and more.
A binary version of RHIDE is available for Linux Intel platforms.
It is extensively documented in a user's manual available in
both HTML and PostScript formats.
[http://www.tu-chemnitz.de/~sho/rho/rhide-1.4/rhide.html]
- RIB
- Repository In a Box is a package for setting up and
maintaining software repositories.
In addition to setting up your own repository, RIB will allow your
repository to interoperate with other repositories which use the
Basic Interoperability Data Model (BIDM), an IEEE standard for
interoperable software cataloging on the Internet.
The source code for RIB is available. It is written in
Perl and requires version 5.003 or
greater to operate as well as several Perl modules available via CPAN.
An HTTP server and the
Isearch text search engine are
also required.
A user's manual is available in HTML format.
[http://www.nhse.org/RIB/]
- Rice Wavelet Toolbox
- A collection of Matlab M and Mex files
which implement wavelet and filter bank analysis.
[http://jazz.rice.edu/software/RWT/]
- RIGAL
- A compiler construction tool
which is a language for compiler writing. It is a tool for parsing,
code optimization, code generation, static analysis of programs, and
for the programming of preprocessors and converters.
The main data structures are atoms, lists, and trees, with the
control structures based on advanced pattern matching.
All phases of compilation, including parsing, optimization, and
code generation, can be programmed in the language in short
and readable form.
A source code distribution of RIGAL written in C is available.
It can be compiled and used on most UNIX flavors.
It is documented in a manual and a man page, both of which are
available in PostScript and
HTML format.
See Auguston (1991).
[http://www.ida.liu.se/labs/pelab/members/vaden/rigal/]
- RIPEM
- Riordan's Internet Privacy Enhanced Mail
is an implementation of
Privacy Enhanced Mail (PEM) that allows your electronic mail to have
the four security facilities provided by PEM: disclosure protection,
originator authenticity, message integrity measures, and
non-repudiation of origin. RIPEM has been ported to many systems,
including Linux.
[http://www.cs.indiana.edu/ripem/dir.html]
[ftp://ftp.funet.fi/pub/crypt/cryptography/rpem/
]
- Ripper
- A program for inducing classification rules from a set of
preclassified examples which is broadly similar to such
methods as neural nets, nearest neighbor, and decision
tree induction systems. The user provides a set of examples,
each having been labeled with the appropriate class, and
Ripper looks at the examples and finds a set of rules
that will predict the class of later examples.
Ripper has several advantages over other learning techniques including:
- a hypothesis expressed as a set of if-then rules which are
relatively easy to understand;
- it is asymptotically faster than other competitive rule learning
algorithms, i.e. it will be much faster on very large datasets;
- it allows the user to specify constraints on the format of the
learned if-then rules; and
- it allows attributes to be either nominal, continuous, or
``set-valued'' (where a set-valued attribute is a set of atoms which,
e.g. could be used to encode the set of words appearing in
a document).
A source code distribution of Ripper is available upon completing
an online license agreement form.
It is written in ANSI C and thus portable to most
UNIX flavors.
It is documented in a man page as well as in a set of
technical papers available in PostScript
format.
[http://www.research.att.com/~wcohen/ripperd.html]
- Risa
- The Research Instrument for Symbolic Algebra
is a computer algebra system which provides a programming
language Asir with several subroutine libraries that can also be used
as parts of other programs. The programming system has a C-like
language, and interpreter, and a dbx-like source debugger.
Risa is
available as a binary for Linux platforms as well as several
other UNIX platforms.
A user's manual is available but is written in Japanese.
Some research papers are available in English in PostScript
format.
[ftp://endeavor.fujitsu.co.jp/pub/isis/asir/]
- Rivet
- A version of Tk, the
graphical interface part of the Tcl/Tk package. Rivet differs
from Tcl/Tk in that it requires no Tcl code evaluation and is
therefore suitable for embedding in other programming languages
without the overhead of Tcl. It presently (8/96) contains
interfaces for C and
Python,
with the former providing the basis
for embedding in other languages and the latter suitable for
developing applications.
Rivet offers several advantages to the Python programmer.
The interface is clean and efficient with performance on par
or better than Tcl/Tk. Python's structured programming
environment also better allows the development of larger
applications. The programming interface is organized for
easy translation from Tcl/Tk, allowing the quick reuse
of existing applications, documentation and experience.
The source code is available and is known to have successfully
compiled on Solaris 5.3/5.4, SGI 5.3, HPUX9.05 and Linux
platforms. The present release requires Tk4.0, Tcl7.4 and
Python 1.3 or later.
[http://personal.veritas.com/~brianw/rivet/index.html]
- Rivl
- The Resolution Independent
Video Language is
a Tcl/Tk extension
for multimedia processing. It provides primitives for manipulating
image, audio and video objects. Programs written in Rivl
use high level operators that are independent of video
resolution and format, increasing a program's portability,
simplifying code reuse, and reducing development time.
The Rivl source code is available and has been successfully
compiled on Sun 4, Solaris, HP-UX and Linux systems. It
requires Tcl 7.4 and Tk 4.0. A user's guide and additional
documentation is available in PostScript and HTML format.
Rivl is part of the
Zeno Project
at Cornell.
[http://www.cs.cornell.edu/Info/Projects/zeno/Projects/
Rivl.html]
- rjobs
- A remote periodic job agent/daemon that can be run periodically and
automatically establishes a connection with other machines, exchanging
job requests to be performed at remote locations or while it is online.
A secondary daomen runs at the remote locations and accepts job requests
for full automated bi-directional cooperation.
The rjobs agent can deal with non-ideal circumstances such as broken
connections and hanging jobs.
A source code distribution is available.
[http://www.psych.mcgill.ca/perpg/stds/rk/linux/rjobs.html]
- RKSUITE
- A suite of codes based on Runge-Kutta formulas that
solves the initial value problem for a first order system
of ordinary differential equations (ODEs). There are
single and double precision Fortran 77 versions as well as
a Fortran 90 version of the package available. The documentation
is contained within the programs as well as in ASCII files.
[http://www.netlib.org/ode/rksuite/]
- RLaB
- ``Our''-lab is
an interactive, interpreted scientific programming
environment. This is a very high level language intended
to provide fast prototyping and program development along
with easy data visualization and processing. It is not a
Matlab (i.e. it wasn't
designed to run Matlab programs) but possesses similar operators
and concepts due to a similar purpose, i.e. creating an
experimental environment or laboratory for scientific
programming.
RLaB is called a high level language because typing and dimensioning
of variables aren't performed by the user but rather are
inferred by the program from usage context. It is also high
level due to its interactivity which allows the user to
set up, perform, and visualize experiments in real time in
the context of a single environment. The structured language
in RLaB is similar to C in that a program is sequence of
functions acting on variables, with the functions being either
built-in or user defined. It also features strongly typed
objects in classes. The classes are numeric, string, function,
and list with the numeric class encompassing scalars, vectors and
matrices. Functions are also objects and as such can call or
be called by other functions, including themselves.
The build-in functions generally are those that operate on
either scalars, vectors or matrices. Scalar functions include
trig functions, rounding, absolute values, square roots, etc.
Vector functions include sum, products, means, max/min, FFT,
sort, etc. Matrix functions include Cholesky decomposition,
eigenvalue determination, determinants, inverses, norms,
and much more. Plotting is performed using either the
PLplot library or
Gnuplot. This allows
the creation, viewing and printing of the usual range of
2- and 3-D and histogram plots.
The source code for RLaB
is available as well as binaries for Linux, DOS, OS/2,
Mac and Acorn platforms. Installation from source
requires other packages such as
BLAS,
LAPACK,
FFTPACK,
RANLIB, and
either PLplot or Gnuplot as mentioned above.
The documentation includes a tutorial and
a manual for the built-in functions in both HTML and
PostScript format.
The June 1996 issue of the
Linux Journal
has an article about RLaB written by its creator, Ian
Searle.
[http://www.eskimo.com/~ians/rlab.html]
- rlpr
- A program which uses TCP/IP to
send print jobs to lpd servers anywhere on a network.
It does not require that the remote printers be explicitly
known to the local system (via /etc/printcap) and is thus
more flexible than other similar programs.
The rlpr package can be used anywhere that lpr is used and
is backwards compatible iwth the traditional BSD lpr.
If rlpr is installed setuid root it
can directly interact with other lpd programs on a network.
If it cannot be so installed then it can be used in conjunction
with an rlprd proxy agent which takes lpd requests on a non-privileged
port, maps them to a privileged port, and sends them out to the
real lpd. The proxy and the lpd do not have to be on the same
machine so, for example, a user could configure his lpd to accept
connections from an rlprd running somewhere else on the network
and use that rlprd as a proxy for rlpr.
A source code distribution of rlpr is available. It
is written in C and can be compiled and used on most
UNIX flavors.
Its use is documented in a set of man pages included in
the distribution.
[http://sunsite.unc.edu/pub/Linux/system/printing/]
[ftp://sherilyn.wustl.edu/pub/
]
- RMF
- The Reliable Multicast Framework is a
protocol developed to address a variety of multicast needs on
the Internet. The RMF framework does not uniquely identify
a single reliable multicast protocol but instead provides
sufficient structure and mechanism such that various reliable
multicast protocols can be implemented and even interoperate
within the framework.
The features of RMF include:
- self-identifying packets which permit fine grained per-packet
reliability semantics and also allow a sender to induce desired
receiver behavior on packet reception;
- a notion of a universal multicast receiver, i.e. an RMF-based
receiver that interoperates with any sender via the use of self-identifying
packets; and
- a clear separation between data- and session-level functionality.
Source code distributions of RMF written in Java
and C++ are available.
The C++ version has been tested on Solaris, IRIX and Linux platforms,
with compilation on the latter requiring the
egcs compiler suite.
The Java version requires JDK 1.1.x or higher.
Documentation for both is included in the distributions.
[http://www.tascnets.com/mist/RMF/index.html]