Next: Ta-Tm
Up: Linux Software Encyclopedia
Previous: Sa-Sm
  Contents
Last checked or modified: Jan. 8, 2001
[home /
linux ]
CATEGORIES |
NEW
Aa-Am |
An-Az |
Ba-Bm |
Bn-Bz |
Ca-Cm |
Cn-Cz |
Da-Dm |
Dn-Dz |
Ea-Em |
En-Ez |
Fa-Fm |
Fn-Fz |
Ga-Gm |
Gn-Gz |
Ha-Hm |
Hn-Hz |
Ia-Im |
In-Iz |
Ja-Jm |
Jn-Jz |
Ka-Km |
Kn-Kz |
La-Lm |
Ln-Lz |
Ma-Mm |
Mn-Mz |
Na-Nm |
Nn-Nz |
Oa-Om |
On-Oz |
Pa-Pm |
Pn-Pz |
Qa-Qm |
Qn-Qz |
Ra-Rm |
Rn-Rz |
Sa-Sm |
Sn-Sz |
Ta-Tm |
Tn-Tz |
Ua-Um |
Un-Uz |
Va-Vm |
Vn-Vz |
Wa-Wm |
Wn-Wz |
Xa-Xm |
Xn-Xz |
Ya-Ym |
Yn-Yz |
Za-Zm |
Zn-Zz |
- SNA
- The Systems Network Architecture is not strictly a protocol
or system but rather an architecture forming the basis for several
hardware and software products.
It was developed by IBM in the 1970s but has become a major
mainframe protocol on which a large number of other vendors have
based their products.
Presently there are two forms of SNA:
- classic SNA, the original architecture for mainframes used for
host terminal communication; and
- APPN (Advanced Peer to Peer Networking), a newer version
based on networks of non-mainframe
computers which supports email and has a peer-to-peer architecture.
The differences between SNA and TCP/IP are so
significant that the two protocols can be said to be complementary.
One huge difference is that while the latter exchanges information
via individual packets the former is a stateful protocol wherein a
session must be established before a client and server can exchange
messages. Another involves TCP/IP being fairly simple while SNA
has been called ``astonishingly complex.''
The programming interface for present-day (late 1990s) SNA networks
is the Common Programming Interface for Communications (CPIC)
which provides a common set of subroutines, services and return codes
for programs written in COBOL,
C or REXX.
IBM currently (12/98) has a Communications Blueprint under which
SNA is one of several interchangeable transport options and a peer
of TCP/IP. This Blueprint is realized in products that carry the
``Anynet'' title which allow CPIC programs to run over TCP/IP and
programs written using the UNIX socket interface to run over SNA
networks. Basically, SNA has characteristics needed by large corporations
whose network needs can't be satisfied by TCP/IP. Conversely, the
Internet couldn't have been built on top of SNA.
Source for information about SNA/APPN include:
- Linux-SNA
- A project to develop a working SNA implementation
for Linux.
[http://www.linux-sna.org/]
- Snacc
- The Sample Neufeld ASN.1 to C Compiler is
an ASN.1 to
C or C++ compiler with
a BER encoding/decoding library.
Given an ASN.1 source file this can produce:
- C routines for BER encoding, decoding, printing and freeing;
- C++ routines for BER encoding, decoding and printing; and
- a type table that can be used with generic C routines for
BER encoding, decoding, printing and freeing.
The ASN.1 features supported include:
- parsing ASN.1 `90 including subtype notation;
- handling multiple ASN.1 module compiling/linking;
- parsing some X.400 and SNMP macros; and
- support for separated type or value definitions in the ASN.1 source.
A source code distribution is available.
[http://www.fokus.gmd.de/ovma/freeware/snacc/entry.html]
- Snack
- An extension to Tcl/Tk that adds commands for
sound I/O and sound visualization, e.g. waveforms and spectrograms.
It was originally developed to handle digital speech recordings,
although it has wider applications for general audio tasks and
1-D signals.
The features include:
- commands for basic sound operations, e.g. playing, recording, reading
and writing;
- support for in-memory sound objects, file-based and streaming
audio, and background audio processing;
- waveform, spectrogram and spectrum section canvas item types that
are self-updating in real time;
- PostScript output;
- extensibility via the Snack C library; and
- Web-enabled via the Tcl plug-in.
[http://www.speech.kth.se/snack/]
- SnapFS
- An enhancement for Linux journaling filesystems
that provides snapshots and versioning.
The main components of SnapFS include:
- a filtering filesystem layer that intercepts calls to the disk
filesystem and preserves it;
- extended attributes that provide the space needed to store where
older versions of inodes are kept;
- an API for the filter layer that provides functions generally provided
by filesystems but not exported; and
- journal transactions wherein the filter layer participates in filesystem
transactions.
SnapFS is based on parts of both the Lustre
and InterMezzo projects.
[http://www.snapfs.org/]
- Snapix
- A set of tools designed for the creation of interactive
applications under Unix, X and Motif. It consists of an editor,
an interpreter/compiler, a driver and an object oriented language.
The editor makes it easy to define the visual appearance of an
application, with all the tasks associated with specifying an
interface (e.g. designing input forms and dialog boxes, selecting
fonts, etc.) quick and simple. The driver is supplied with over
20 pre-defined classes including some high-level classes like
menus, and it can also handle user-defined classes. The language
is complete, typed, structured, event driven and object oriented.
Additional features of Snapix include:
- the possibility of modular application design;
- manual code generation with a standard editor or automatic
code generation using an interactive editor;
- version management under SCCS;
- code maintainability and rapid modification;
- pre-compilation for fast run times and source protection;
- use of C-like syntax; and
- integration of user defined C functions using standard calls.
A Linux version is freely available and
comes with 110+ page manual in
PostScript format.
[http://sunsite.unc.edu/pub/Linux/X11/devel/builders/]
- SnarfNews
- The name of this has been changed to
Sitescooper.
- snd
- A sound editor based loosely on Emacs
and a PDP-10 sound editor named Dpysnd which is currently
an X/Motif application.
It can accomodate any number of sounds at once, each with any
number of channels. Each channel of each sound is displayed in
its own window with its own cursor, edit history, and
marks. Each sound as a control panel to try out various changes
quickly, and an expression parser usedly mainly during searches.
There is an overall stack of regions which can be browsed and
edited, and channels and sounds can be grouped together during
editing. Edits can be undone and redone without limit and snd
can be customized using an Elisp-like syntax. It can also be
extended with user-supplied editing or display functions loaded
at run time.
Snd is available as source code or as a binary for SGI and
Linux Intel platforms. It is written in ANSI C and requires
the Motif widget set for compilation.
It is documented in a user's manual in HTML format which is
included in the distribution.
This is useful by itself but can also be used with the
CLM package.
[http://www-ccrma.stanford.edu/CCRMA/Software/snd/snd.html]
- SNDAN
- A package of signal analysis, graphics, modification, and
synthesis routines for UNIX systems.
One group of programs performs analysis and converts sound
files into analysis files which contain data for the amplitudes
and frequences of components within the file.
Another group contains programs for viewing the data in either
signal or analysis format.
Another group contains programs to modify the analysis data,
and the final group programs to synthesize signal files from
the analysis data.
The programs assume that sound files are in monaural NeXT
sound file format, although the SoX package
can be used to convert other formats to this.
Graphics files are output in EPS format.
The programs available in SNDAN include:
- sp, which graphs sound files;
- sextract, which extracts individual sounds from a sound file
containing a sequence of sounds and puts them in separate files;
- pvan, which performs phase vocoder analysis;
- mqan, which performs spectral tracking analysis; and
- monan, which combines the activities of parameter viewing,
modification, and additive synthesis.
A source code distribution of SNDAN is available.
It is written in C and has been compiled successfully on
several systems including Linux Intel.
[http://cmp-rs.music.uiuc.edu/cmp/facil/software.html]
- SNePS
- The Semantic Network Processing System
is a system for building, using, and retrieving from propositional
semantic networks.
A semantic network can be thought of as a labeled directed graph
in which nodes represent entites, arc labels represent binary
relations, and an arc labeled R going from node n to node m means
that n bears the relation R to m.
SNePS is a propositional semantic network because every proposition
represented in the network is represented by a node and not by an arc.
The core of SNePS is a system for building nodes in the network,
retrieving nodes that have a certain pattern of connectivity to other
nodes, and performing housekeeping tasks like dumping a network
to a file or loading a network from a file.
The major components which comprise SNePS are:
- SNIP (SNePS Inference Package), which interprets certain nodes
as representing reasoning rules called deduction rules and supports
a variety of specially designed propositional connectives and
quantifiers and performs a kind of combined forward/backward
inference called bi-directional inference;
- SNeBR (SNePS Belief Revision System), which recognizes
when a contradiction exists in the network and interacts with the
user when it detects the user operating in a contradictory belief space;
- SNaLPS (SNePS Natural Language Processing System), which consists
of a morphological analyzer, a morphological synthesizer, and
a Generalized Augmented Transition Network (GATN) Grammar interpreter
and compiler, all of which allow natural language interfaces for
SNePS to be built;
- SNePSUL, (SNePS User Language), the standard command language
for SNePS which resembles Lisp;
- XGinseng, an X Window-based graphical
editing and display environment for SNePS networks which can be
used to build and edit networks; and
- SNePSLOG, a logic programming interface to SNePS which provides
direct access in a predicate logic notation to almost all of the
facilities provided by SNePSUL.
A source code distribution of SNePS is available.
It is written entirely in Common Lisp
and has been used successfully with both CLISP
and CMUCL.
It may also work with AKCL and
Allegro CL.
The program and its use are documented in a 94 page
user's manual available in PostScript
format.
[http://www.cse.buffalo.edu/sneps/]
- snes
- An emulator for the
Super Nintendo Entertainment System (SNES) for Linux
SVGA and X. It is currently (5/98) under development but
plans on including features such as SuperFX support,
sound digital FIR filter and echo, sound pitch modulation,
mouse and multi-tap support, 8- and 16-bit color screen
modes, transparency, hi-res and interlaced screen modes,
improved ROM detection routines, and more.
An older version is available at the second URL.
[http://www.snes9x.com/]
[http://sunsite.unc.edu/pub/Linux/system/emulators/]
- SNES9EXPRESS
- A graphical front-end for the X11 version of
Snes9X. It offers many of the available options
as checkboxes, sliders, etc. along with tips for each option.
It can also save profiles for loading favorite sets of options on
the fly.
[http://www.linuxgames.com/snes9express/]
- SNI
- The Simulation Network Interface is a set of
tools developed for interacting and exchanging data between different
simulation programs on possibly remote machines through a simple
set of calls.
The package consists of an SNI server and a client library.
[http://iee.umces.edu/~villa/sni/]
- sniffers
- Sniffing is a euphemism given to the practice of intercepting and
analyzing TCP/IP packets.
Sniffing is the practice of scanning the various ports on a UNIX
box to obtain various kinds of information.
This information - just like about everything else on this planet - can
of course be used for both good and bad purposes.
Available packet sniffers include:
- exscan, a port scanner;
- IPFT, a userspace IP
networking stack that includes a port scanner;
- K-Arp-Ski, a sniffer;
- KSniffer, a sniffer;
- NID, a security package for protecting against
various problems including port scanning;
- nmap, a port scanner;
- Protolog, for evading sniffer attacks;
- scanallert, a port scanner detector;
- Sentry, a security program designed to detect
and respond to port scans;
- Sniffit, a sniffer;
- Snort, a sniffer/logger that can be used
as in intrusion detection system; and
- Unix Hacker Tools, includes a sniffer.
- Sniffit
- A packet sniffer which supports both Ethernet and PPP.
See the related TOD.
[http://reptile.rug.ac.be/~coder/sniffit/sniffit.html]
[http://lrp.steinkuehler.net/Packages/sniffit.htm]
- SNLS1E
- A Fortran 77 subroutine package which solves nonlinear least
squares problems, i.e. it minimizes a sum of squares of M nonlinear
functions of N variables.
It also contains programs for solving systems of nonlinear equations
which can be used separately.
The package consists of:
- SNLS1, which minimizes the sum of the squares of M functions
in N variables using a modification of the Levenberg-Marquardt
algorithm with the user providing a subroutine to calculate the functions
(and optionally the full Jacobian);
- SNLS1E, an easy-to-use version of SNLS1;
- SNSQ, which finds a zero of a system of N nonlinear equations
in N variables using a modification of the Powell hybrid method with
the user supplying a subroutine to calculate the functions (and
optionally to calculate the full Jacobian);
- SNSQE, an easy-to-use version of SNSQ; and
- SOS, which solves a system of N simultaneous nonlinear
equations in N unknowns based on an iterative method which is
a variation of Newton's method using Gaussian elimination in a manner
similar to the Gauss-Seidel process.
A source code distribution of SNLS1E is available.
All of the routines are written in Fortran 77 and are documented
via comment statements contained within each source code file.
This is part of CMLIB.
[http://sunsite.doc.ic.ac.uk/public/computing/general/statlib/cmlib/]
- SNMP
- The Simple Network Management Protocol
is a protocol for Internet network management services.
It facilitates communication between a managed device, i.e. a
device with an SNMP agent, e.g. a router, and an SNMP manager
or management application.
Communication is via SNMP protocol data units (PDUs) typically
encapsulated in UDP packets, with various operations permitted
between managers and agents to either handle objects on the
managed device or notify the manager about events occurring on the device.
An SNMP manager obtains information about the available objects
on a managed device via Management Information Base (MIB)
modules. An MIB file contains a description of the object
hierarchy on the managed device as well as the name, syntax,
and access priveleges for each variable in the MIB, i.e. only
the types of objects are specified and not the specific objects.
It is basically an enormous tree which provides a map for
locating information.
There is only one official SNMP MIB, although other kinds of MIBs
exist which are extensions to the official SNMP MIB.
The standard implementation of SNMP for Linux platforms
is CMU-SNMP, although many also use
UCD-SNMP.
More about these can be found in the
User's Guide to SNMP for Linux.
SNMP-related programs include include:
- AgentX, a protocol with which subagents can
advertise and export MIB regions via a single SNMP agent;
- btng, a package of network measurement software;
- CMIP, a protocol once thought to be the
successor to SNMP;
- CMU-SNMP, an SNMP implementation;
- Corba/SNMP Gateway, a gateway
between CORBA and SNMP;
- Erlang, a language environment that includes an
SNMP agent;
- HNMS, a network management system;
- MON, a network service monitoring daemon;
- MRTG, a network traffic load monitor;
- NeTraMet, a network traffic flow meter;
- NOCOL, a network monitoring package;
- OSI, a protocol suite advanced as an alternative
to TCP/IP;
- OSIMIS, a network management platform based
on the OSI model;
- Scion, a network data collection package;
- Scotty, a network management package;
- SNMPY, a Python
interface to SNMP;
- SNMX, an SNMP manager;
- SYSMAN, an SNMP management library written
using Common Lisp;
- TclHttpd, a Web server with SNMP integration;
- UCD-SNMP, an SNMP implementation;
- VRRP, an MIB extension for used with SNMP-based
network management;
- Webbin' CMIP, a package for simplifying
access to network information and resources; and
- WILMA, a network management package.
The available literature on SNMP is vast, e.g.
see
Black (1995a),
Comer (1991),
Comer and Stevens (1991),
Comer and Stevens (1993),
Feit (1994),
Griffith and Hein (1994),
Halsall (1996),
Leinwand and Fang (1993),
Miller (1993),
Perkins and McGinnis (1997),
Rose (1994),
Rose and McCloghrie (1995),
Stallings (1993),
Stevens (1994),
Taylor (1996), and
Townsend (1995).
[http://netman.cit.buffalo.edu/Archives.html]
- SNMPY
- An interface to SNMP for
Python.
[http://snmpy.sourceforge.net/]
- SNMX
- The Simple Network Management eXecutive
is a self-contained SNMP manager,
extensible SNMP agent, scripting language,
and development environment which allows users to rapidly create
SNMP applications. The program provides a shell-like command
line interface which presents the SNMP MIB as a series of
virtual directories which can be traversed using standard
cd commands and listed with the ls command. The scripting
language can be used to create SNMP interactive and background
applications including SNMP agent processes.
SNMX can be used as:
- an administrative tool, i.e. it is a full-featured
MIB browser providing numerous functions allowing users to explore
the structured management information on a device;
- an element configurator since it allows an entire MIB to be listed
to a disk file, potentially edited, and then put back on the network
device;
- a network scanner useful for making comparative measurements of
network devices, e.g. a built-in agent table (as part of its private
MIB) allows a variety of scanning and charting operations; and
- a network configurator, i.e. multiple network devices and be updated
with a single commmand.
Scripts can be constructed to poll devices, check network
performance, and issue traps when network anomalies are detected.
Agent scripts can be built to provide SNMP compatibility with existing
systems or processes including such applications as instrumenting queues and
controlling network graphical systems.
An evaluation copy of
SNMX is freely available to individuals and organizations with
the base distribution containing an SNMX interpreter, a MIB
compiler, and several examples of management and agent scripts.
Extensive documentation is provided in several large manuals
in ASCII format.
[http://www.ddri.com/Products/ace-snmx.html]
- SNNAP
- The Simulator for Neural Networks and
Action Potentials is a tool designed for the
rapid development and simulation of realistic models of
single neurons and small neural networks.
The electrical properties of individual neurons are
described with Hodgkin-Huxley type voltage- and time- dependent ionic
currents. The connections among neurons can be made by either electrical
or chemical synapses. The chemical synaptic connections are capable of
expressing several forms of plasticity, such as homo- and heterosynaptic
depression and facilitation.
SNNAP also includes mathematical descriptions of intracellular second
messengers and ions. The synthesis of second messengers can be driven by
either synaptic inputs or by externally applied transmitters. The
accumulation of an ion can be driven by any specified voltage- and time-
dependent ionic current(s). The intracellular concentrations of ions
and/or second messengers, in turn, can be linked to one or more ionic
conductances and/or mechanisms contributing to chemical synaptic
transmission. Thus, SNNAP can simulate the modulation, either
enhancement or inhibition, of membrane currents and synaptic
transmission. SNNAP also can simulate current flow in multicompartment
models of neurons by using the equations describing electrical coupling.
The features of SNAPP include:
- the specifics of all intrinsic neuron properties, network structures,
and simulation properties can be controlled using editors in a GUI
framework;
- the capability of simulating common experimental manipulations, e.g.
the injection of external currents into multiple cells, the
removal of individual conductances to simulate pharmacological
agents, etc; and
- the modular organization of all input files, i.e. the equations
and related parameters are passed to SNNAP via files generated by
the graphical editors which allows for the creation of a library of
modules for describing different aspects of neural networks.
A source code distribution of SNNAP is available.
It is written in ANSI C using Xlib functions
and is thus portable to most UNIX/X11 environments.
A user's manual is available in
PostScript format.
[http://nba19.med.uth.tmc.edu/snnap/home.htm]
- SNNS
- The Stuttgart Neural Net Simulator
is a software simulator for neural nets which runs on UNIX workstations.
The goal of the project is to create an efficient and flexible
simulation environment for research on and the application of
neural networks.
SNNS consists of a simulator kernel and a graphical interface.
The simulator kernel operates on the internal network data
structures of the neural nets and performs all operations of
learning and recall, and it can also be used as an embedded
program in custom applications.
It supports arbitrary network topologies and can be extended by
the user with user-defined activation functions, output functions,
site functions, and learning procedures which are written as
C programs and linked to the kernel.
The graphical interface controls the kernel during the simulation
and gives 2- and 3-D representations of the networks being simulated.
The network architectures and learning procedures included in
SNNS include:
- backpropagation (BP) for feedforward networks (i.e. vanilla BP, BP
with a momentum term and flat spot elimination, and batch BP),
- counterpropagation, quickprop, backpercolation 1, and RProp,
- generalized radial basis functions (RBF),
- ART1 and ART2 and ARTMAP,
- cascade correlation and recurrent cascade correlation,
- dynamic LVQ,
- backpropagation and quickprop through
time (for recurrent networks),
- self-organizing (Kohonen) maps,
- time-delay networks (TDNN) with backpropagation,
- Jordan, Elman extended hierarchical Elman networks, and
- associative memory.
A genetic algorithm tool called Enzo is separately available
which allows the evolutionary
optimization of neural networks.
A tool called snns2c automatically generates C code from
nets built interactively.
The source code for SNNS is available. It is written in C
and has been tested on Sun SunOS, DEC Ultrix and Alpha,
IBM AIX, HP-UX, SGI IRIX, and Linux Intel platforms.
The huge user's manual is available in either PostScript
or HTML format.
[http://www.informatik.uni-stuttgart.de/ipvr/bv/projekte/snns/snns.html]
- Snob
- A package which uses the Minimum Message Length (MML) principle
to to mixture modeling, which concerns modeling a statistical
distribution by a mixture (or weighted sum) of other
distributions and is also known as unsupervised concept
learning, intrinsic classification, clustering, and
numerical taxonomy.
Snob can use several distributions, e.g. normal (i.e. Gaussian),
discrete multi-state (i.e. Bernoulli or categorical),
Poisson, and von Mises distributions, and can also handle
missing data.
The source code for Snob, written in Fortran
77, is available.
It is documented in a ASCII user's guide as well as in several
papers and technical reports available in PostScript format.
See also AutoClass C.
[http://www.cs.monash.edu.au/~dld/Snob.html]
- SNOBOL
- The StriNg Oriented symBOLic language is
an unconventional programming language based on logical principles
of pattern matching to solve string manipulation problems.
It features a powerful collection of string processing and
pattern matching functions.
SNOBOL was developed at Bell Labs in 1962 to develop applications
in symbolic formula manipulation. Improved versions called
SNOBOL3 (1966) and SNOBOL4 (1969) were later developed, with
active development on the language stopping with SNOBOL4.
It was initially developed for formula manipulation but
was extended to perform graph processing and text manipulation
tasks, with the primary objective being to provide a general purpose
language for the manipulation of non-numerical scientific data that
can be naturally represented by strings of characters.
Another significant design criteria was to develop a language
suitable for use by non-programmers.
An available compiler is SNOBOL4.
[http://people.ne.mediaone.net/philbudne/snobol.html]
[http://iris1.let.kun.nl/TSpublic/coppen/SNOBOL.html]
- SNOBOL4
- A port of Macro SNOBOL4 (i.e. the original Bell Labs implementation
written in SIL macros) to machines with 32-bit C compilers.
It supports the full SNOBOL4 language plus extensions from
Catspaw SNOBOL4+, SPITBOL, and SITBOL.
All aspects of the language are implemented except the
trapping of arithmetic exceptions and the dynamic use
of LOAD() platforms not using the a.out executable format.
It has been tested on most UNIX flavors.
See Gimpel (1976),
Griswold et al. (1971),
Griswold (1972), and
Griswold (1975).
[http://people.ne.mediaone.net/philbudne/src.html]
- Snort
- A packet sniffer/logger that can be used as a
network intrusion detection system.
This performs rule-based logging which can perform content searching and/or
matching and can be used to detect a variety of attacks and probes, e.g.
buffer overflows, stealth port scans, CGI attacks, SMB probes, etc.
This has real-time alerting capabilities.
[http://www.snort.org/]
- SNP
- The SemiNonParametric software is a package
for multivariate nonparametric time series analysis by maximum
likelihood polynomial expansion which permits uneven weighting,
non-normality, and nonlinearity.
An extensive user's manual is available in
PostScript format.
[http://lib.stat.cmu.edu/general/]
- SOAR
- Soar is an AI programming language which implements a theory of
cognition as a set of principles and constraints on cognitive
processing, i.e. it provides a cognitive architectural framework
within which cognitive models can be constructed. It can be
considered as an integrated architecture for knowledge-based
problem solving, learning, and interacting with external environments.
It incorporates problem spaces as a single framework for all tasks
and subtasks to be solved, production rules as the single
representation of permanent knowledge, objects with attributes
and values as the single representation of temporary knowledge,
automatic subgoaling as the single mechanism for generating goals, and
chunking as the single learning mechanism. Soar is used by
AI researchers to construct integrated intelligent
agents and by
cognitive scientists for cognitive modeling.
Soar is written in C and versions are available for both UNIX
and Mac systems. There is quite a bit of documentation available,
including several tutorials and manuals in PostScript format.
Quite a bit of ancillary software has also been developed.
Browse the several Soar sites to see what's available.
[http://bigfoot.eecs.umich.edu/~soar/]
- Socket++
- A library of C++ classes that can be used more
effectively to work with sockets than directly calling the underlying low-level
system functions.
It has the same interface as that of the
iostream library in the G++ library.
[http://www.cs.utexas.edu/users/lavender/courses/socket++/]
[ftp://ftp.virginia.edu/pub/tools/]
- Socket Script
- A simple scripting language for accessing sockets. Socket Script
was designed to provide users with a quick and easy way to make
powerful networking applications without needing to learn C or
complicated socket code. It can be used for such tasks as
retrieving web pages or creating an IRC bot, a web server,
an ICMP water, a network monitor tool, online forms, etc.
It consists of over 80 commands, some simple and some highly
complex.
It can be compiled into text only, Xt
graphics, or GTK graphics modes.
The Socket Script distribution consists of an interpreter,
a compiler, and a C library of Socket Script functions for
those who wish to program in C.
Documemtation is a bit sparse but available in various ASCII
text files within the distribution.
[http://www.linsupport.com/sw/socketscript.html]
- SOCKS
- An open Internet standard for performing network proxies
at the transport layer. This is also known as authenticated
firewall traversal (AFT) and is described
in RFC-1928.
SOCKS is a networking proxy protocol which enables hosts on
one side of a SOCKS server to gain full access to hosts on the
other side of the server without having to create a direct
IP connection. The server authenticates and authorizes
the requests, establishes a proxy connection, and relays the
data. It is most commonly used as a network firewall which
enables those behind it to gain full access to the Internet
and prevents unauthorized access from the outside. There
are two major versions: SOCKS V4 and V5, with the latter
supporting authentication methods and UDP proxy and the former not.
Newer features also allow SOCKS to be used as:
- a network enabler which allows an unstructured and unsecured
enterprise network to safely use the Internet;
- a network broker supporting a wide range of security mechanisms;
a network folder which can collect a group of networks and represent
them as a single node;
- a network keeper which provides a centralized network access
point that facilitates administration; and
- a network master which, as a generic internetworking proxy
mechanism becomes the master of a network.
This (i.e. the NEC) reference implementation of SOCKS
supports all the requirements of RFC-1928 and has
additional features including:
- a shared library for UNIX clients,
- a ping and traceroute proxy,
- a SOCKS Server-to-Server proxy,
- an address resolution proxy,
- an Ident name proxy,
- preforking and threading, and
- a Kerberos-based Server-to-Server proxy.
These features allow SOCKS users to build virtual private
networks (VPN) over the Internet which offer:
one-time sign on,
user-based authentication,
encrypted communication channels,
transparent access across the entire VPN,
centralized network access control and audit,
localization of network administration, and the
masking of the VPN computing environment.
The UNIX SOCKS5 package contains
a socks server, static and
unshared client libraries, and some popular client applications.
It is available in source code format or in binary
format for several UNIX flavors.
Extensive documentation is available at the site and
in the distribution.
This is also covered in Garfinkel and Spafford (1996).
Other SOCKS-related software includes:
- Dante, an implementation of a
SOCKS v4/v5 client and server;
- Freestone, a firewall
implementation with SOCKS support; and
- LinGate, a network gateway package which
includes a SOCKS server and client.
[http://www.socks.nec.com/]
- SoftFloat
- An implementation of the IEC/IEEE Standard for
Binary Floating-point Arithmetic that is completely faithful
to the IEEE Standard and relatively fast.
If 64-bit operations are supported by the compiler, four types
are defined, i.e. float32 (single precision), float64 (double precision),
floatx80 (extended double precision) and float128 (quadruple precision).
The first two types are defined in terms of 32- and 64-bit integer
types, respectively, while the last is defined as a structure of two
64-bit integers. The floatx80 type is defined as a structure containing
one 16-bit and one 64-bit integer.
If 64-bit integers aren't supported, then only float32 and float64
types are defined.
In both cases the types are defined such that if a system implements
the C float and double types according to the IEC/IEEE standard, then
the float32 and float64 types should be indistinguishable in memory
from th enative float and double types.
The arithmetic operations implemented by SoftFloat include:
- conversions among all the floating-point formats as well as
between integers (32- and 64-bit) and any floating-point format;
- the usual add, subtract, multiply, divide and square root operations
for all floating point formats;
- the floating point remainder operation defined by the IEC/IEEE
Standard for each format;
- a ``round to integer'' operation for each floating-point format
that rounds to the nearest integer value in the same format; and
- comparisons between two values in the same floating-point format.
The only required IEC/IEEE functions not supplied are conversions
to and from decimal.
SoftFloat is written in ISO/ANSI C and should compile on any
machine with an ISO-conformant C compiler, e.g. gcc. The package
has been tested using gcc on Intel 386, SPARC, MIPS and
HP Precision Architecture processors.
The SoftFloat distribution includes the source code and documentation.
A test program called FloatTest is also supplied.
[http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/SoftFloat.html]
- SoftRelTools
- A UNIX-based software management system developed for the high energy
physics codes used at Fermilab.
The system provides software version control with
CVS configured in a client-server mode and
using a CVSH shell.
SoftRelTools uses CPP for preprocessing and the creation of dependency
files, and GNU Make for building object libraries and executables.
The system handles the version control, management, building and
distribution of code written in
Fortran,
C and
C++.
A distinguishing features is the capability of allowing rapid
asynchronous development of package versions, which can be easily
integrated into complete consistent releases of the entire
offline software.
SoftRelTools includes a set of shell scripts for working with
packages and releases. They are intended for use by developers,
librarians and code managers and include:
- addpkg, adds a new package to a release;
- depend, lists the packages that uses includes from a given
package;
- lnkpkg, creates soft links to a production package;
- newrel, create a new test or production release;
- rmrel, remove a release completely; and
- statusrel, lists the contents of a release.
[http://RunIIComputing.fnal.gov/runiiweb/cmgt.html]
- Software ChipSet
- A collection of reusable software components written in C.
The goal is to provide small, general, production quality off-the-shelf
solutions to common problems faced by programmers.
The name comes from an analogy to components used in the development
of integrated circuits.
The components of the ChipSet are intended to be general enough to
use in a wide variety of applications.
This goal is reached by providing generalized interfaces and
programmability, with the former permitting the components to be used
with arbitrary data types and the latter permitting the application to
tune the components to its data types and performance requirements at
runtime.
The components are also programmable in that they can be composed into
larger components.
The components of the ChipSet are:
- btree, a in-memory B-tree implementation;
- dupkey, which generalizes in-memory unique key index structures
(i.e. btree and list) to allow redundant keys;
- list, an in-memory doubly-linked list; and
- readln, a component for safe text line input which supports
lines of arbitrary length.
A source code distribution is available. All components are written
in C for maximum portability.
[http://www.sander.cupertino.ca.us/source.html]
- software engineering
- Related packages include:
- ACL2, an automated reasoning system;
- Aslan, a low-level implementation of the
ASM approach for building higher-level ASMs;
- ASM Workbench, a toolkit for supporting
the design and validation of ASMs;
- Balboa, a server-based process event data
analysis system to help in the construction of event data analysis tools;
- CADP, a software engineering toolbox for
protocols and distributed systems;
- CSML/MCB, produces a finite state machine
from a description of it in a high level language;
- DGL, a tool for generating test data for software
and hardware;
- EVES, a formal methods tool;
- Expect, a tool for automating and testing
interactive applications;
- Floppy/Flow, for processing Fortran code;
- ftnchek, a Fortran code checking tool;
- GCT, a coverage tool that measures how thoroughly
tests exercise C programs;
- GemMex, a graphical editor and program
generator for the Montages language;
- HOL, an automatic theorem prover;
- Isabelle, a generic theorem prover;
- Larch, a format specification language;
- LOTOS, a language implementing a formal
description technique for the unambiguous definition of standards;
- Murphi, a description language and verifier;
- Rapide, a package for building large-scale,
distributed, multi-language systems;
- SMV, a symbolic model checking software collection;
- SRLT, a toolbox for developing code that
closely meets system specifications;
- unravel, a program slicing tool;
- Verus, for the formal specification and
verification of real-time and other time critical systems;
- WinWin, a distributed groupware negotiation
tool;
- software configuration management
- Related packages include:
- SOLID
- A library for collision detection of 3-D objects undergoing rigid
motion and deformation. SOLID is designed to be used in interactive
3-D graphics applications and is especially suited for the collision
detection of objects and worlds described in
VRML.
The features include:
- object shapes represented by both primitive shapes and
complexes of polytopes;
- motion specified by translations, rotations and nonuniform
scalings of the local coordinate system of each object;
- specification of complex shape deformations using client-defined
vertex arrays;
- collision reponse defined by the client via call-back functions;
- response call-backs that can use collision data describing
the configuration of a pair of colliding objects; and
- frame coherence achieved by maintaining a set of pairs of proximate
objects and caches separate axes for the pairs.
A source code distribution is available under the terms of the
LGPL. It is written in C++
and relies heavily on STL. It is known to
compile under g++ 2.8.1.
A user's guide is available in the usual popular formats.
[http://www.win.tue.nl/cs/tt/gino/solid/]
- SOLO
- A standalone shell and boot loader for protected mode 32-bit
x86 microkernels, operating systems, and standalone programs.
The SOLO features include:
- loading 32-bit protected mode executables (ELF or a.out format);
- allowing BIOS calls form 32-bit mode;
- provision of file access and console I/O from 32-bit mode;
- a statically mapped file system providing up to 32 Mb of startup
files;
- a built-in shell;
- booting from any partition;
- can be used to boot any partition (primary or extended);
- passing arguments to 32-bit programs;
- loading Linux directly;
- booting other operating systems;
- scanning and listing all available text and graphics video
modes;
- redirection of console I/O over a serial port;
- a built-in monitor for examining and changing memory and I/O;
- a built-in panic with a full register dump;
- protected mode and virtual memory initialization to allow kernels
to actually start executing in the memory region in which they are
expected to run;
- a circular message buffer that survives panics to save information
about crashes;
- an extensible built-in help command; and
- several 32-bit test programs.
Source code and demo binary disk images are available.
[http://www.csh.rit.edu/~shaggy/software.html]
- SOLVATE
- A program for constructing atomic solvent environment models for
given atomic macromodule models (solutes) used in
molecular dynamics
simulations.
The capabilities of SOLVATE include:
- generation of irregularly shaped solve volumes adapted to a given
solute's structure;
- efficient computation of boundary forces as required in molecular
dynamics simulations;
- a guaranteed minimal solute boundary distance;
- specification of a minimum solvent surface curvature to avoid flat
surface regions;
- generation of disordered (i.e. fluid) water rather than a grid of
water molecules, i.e. ice;
- local minimization of the positions of all water molecules;
- optional placement of salt ions obeying a Debye-Hückel distribution;
- optional placing and marking of buried water molecules; and
- compatibility with X-PLOR and CHARMm with
output in PDB/PSF format.
A source code distribution of SOLVATE is available. It is written
in Fortran and can be compiled on most generic UNIX platforms.
A user's manual is included in PostScript format.
[http://www.mpibpc.gwdg.de/abteilungen/071/solvate/docu.html]
[ftp://ftp.osc.edu/pub/chemistry/software/SOURCES/FORTRAN/solvate/]
- SOMA
- Stefan's Own Mail Application
is a mail reader (i.e. a
mail user agent) for Linux
under X11 based on the XView library
which provides an OpenLook user interface.
[http://sunsite.unc.edu/pub/Linux/system/mail/mua/]
- SOM_PAK
- The Self-Organizing Map package implements the
SOM algorithm for the visualization of complex experimental data.
The SOM represents the result of a vector quantization algorithm
that places a number of refererence or codebook vectors into
a high-dimensional input data space to approximate to its data
sets in an ordered fashion.
Local-order relations are defined between the reference vectors,
with the relative values of the vectors made to depend on each other
as if their neighboring values lie along an elastic surface.
The SOM algorithm defines this surface as a kind of nonlinear
regression of the reference vectors through the data points, a procedure
that also serves to define a mapping from a high-dimensional data space onto
a 2-D lattice of points.
This mapping can be used to visualize the metric ordering relations
of the data.
A C source code distribution of
SOM_PAK is freely available for scientific purposes.
A technical report that serves as a user's guide and reference
manual is available in PostScript format.
See Kohonen (1995).
[http://www.cis.hut.fi/nnrc/nnrc-programs.html]
- SOM Toolbox
- A Matlab toolbox implementing the
self-organizing map (SOM) algorithm.
The features include:
- a GUI for the initialization and training procedures;
- the capability of giving the components different weights and names;
- batch or sequential training; and
- support for but not visualization of N-dimensional maps for N higher
than two.
[http://www.cis.hut.fi/projects/somtoolbox/]
- SoPlex
- The Sequential Object-oriented simPLEX class
library is a C++ library of primal and dual simplex algorithms
for solving linear programming problems.
It consists of
elementary classes for general purposes,
linear algebra classes providing basic data types for regular
and sparse linear algebra computations, and
algorithmic classes implementing a wide variety of algorithms
for solving numerical problems and subproblems.
The elementary classes include Array, CmdLine,
DataArray, DataHashTable, DataSet,
IdElement, IdList, IsElement,
IsList, NameSet, Random, and Timer classes
as well as classes for data objects and sorting functions.
The linear algebra classes include those for dynamic index sets,
dynamic sparse vectors, dynamic vectors, index sets, LP columns,
sets of LP columns, sets of LP rows, semi-sparse vectors, parts
of semi-sparse vectors, sparse vectors, sparse vector sets,
sparse unit vectors, vectors with updates, and dense vectors.
The algorithmic classes are divided into several categories including
general, pricer, ratio test, simplifier, start basis, and
linear system solver classes.
The general classes include:
- LPSOlver, an interface class for LP solvers;
- CacheLPSolver, an LP solver with result caching;
- SoPlex, a sequential object-oriented simplex solver;
- SPxBasis, a simplex basis;
- SPxSolver, a preconfigured SoPlex LP solver;
- SPxLP_SPxColId, IDs for LP columns;
- SPxLP_SPxRowId, IDs for LP rows;
- SPxLP_Id, generic IDs for LP rows or columns;
- SPxLP, for saving LPs in a form suitable for SoPlex; and
- SPxTCL, a TCL interpreter for SoPlex.
The pricer classes include:
- SPxPricer, a SoPlex pricer base class;
- SPxWeightPR, for weighted pricing;
- SPxSteepPR, a steepest edge pricer;
- SPxDefaultPR, a default pricer;
- SPxParMultPR, for partial multiple pricing; and
- SPxHybridPR, a hybrid pricer for SoPlex.
The ratio test classes are:
- SPxRatioTester, a SoPlex ratio test base class;
- SPxDefaultRT, a textbook ratio test for SoPlex;
- SPxHarrisRT, for Harris pricing with shifting; and
- SPxFastRT, a fast shifting ratio test.
The simplifier classes are:
- SPxSimplifier, an LP simplification base class;
- SPxScale, for LP scaling;
- SPxRedundantSM, to remove redundant rows and columns;
- SPxRem1SM, an LP simplifier for removing singletons;
- SPxAggregateSM, to remove redundant rows and columns; and
- SPxGeneralSM, for general LP preprocessing.
The start basis classes include:
- SPxStarter, a SoPlex start basis generation base class;
- SPxSumST, a simple heuristic SPxStarter;
- SPxWeightST, a weighted start basis; and
- SPxVectorST, a solution vector based start basis.
The linear system solver classes are
- SLinSolver, a sparse linear solver virtual class base; and
- SLUFactor, a sparse LU factorization class.
A source code distribution of SoPlex is available.
It is written in C++ and includes a user's guide
in PostScript format.
It is available by filling in an interactive form at
the site.
[http://www.zib.de/Optimization/Software/Soplex/index.html]
- sound
- Useful metasites for such things include:
There are many packages for synthesizing, editing, annotating,
and doing various other things with sound.
Sound synthesis packages include
- Cecilia, an environment for digital sound
processing and Csound programming;
- CLM, a music synthesis and signal processing
package;
- CM, an object-oriented music composition
environment;
- CMIX, a library of C
functions designed to create and manipulate sound files;
- Csound, a sound synthesis package;
- Nyquist, a language for sound synthesis and
music composition;
- PD, a programming language for computer
music;
- saolc, an MPEG-4 feature
allowing sound to be described with a high-level, sophisticated
synthesis language;
- Sapphire, an acoustic compiler that
transforms text files into sound files; and
- STK, a set of audio signal processing classes
and instruments for music synthesis;
Sound editors include:
- Broadcast 2000, a nonlinear audio and
video editor for Linux;
- DAP, a comprehensive audio sample editing and
processing suite;
- GOM, a generic audio mixer program;
- MiXViews, a tool for editing, processing
and analyzing digital sounds and other binary data;
- SLab, a suite of applications for
direct-to-disk digital audio recording, mixing and signal
manipulation;
- smix, a sound mixing tool;
- snd, a sound editor;
- SoundTracker, a music tracker allowing
the arrangement of sound samples on tracks; and
- Studio, a sound editing tool.
Music notation editors and/or typesetting systems include:
- CMN, a music notation package;
- LilyPond, the GNU
music typesetter;
- MusicTeX, a music typesetting system;
- MusiXTeX, a music typesetting system;
- Rosegarden, a music notation editing
and sequencing system; and
- Vivace, an editor for creating, editing,
typesetting and generating music.
MIDI-related software includes:
- JAZZ, an audio capable MIDI
sequencer;
- KeyKit, a programming langauge and GUI
for experimentation with MIDI;
- kooBase, a music application for
KDE that includes score, drum and event editors as
well as MIDI import and export;
- midikb, reads standard computer keyboard
input like a synthesizer keyboard and outputs MIDI
events to other devices;
- Midi2Cs, converts MIDI
files to Csound format;
- Tclmidi, a language for creating and
editing standard MIDI files; and
- TiMidity, a MIDI to
WAVE converter.
- sound modules
- Sound modules (or modules or mods) are digital music files composed of
a set of samples (i.e. instruments) along with sequencing information
that tells a module player when to play which sample on which track.
They differ from other sound file types such as pure sample files (e.g.
WAV or AU files) which don't contain sequencing information and
MIDI files which don't include custom samples
or instruments, i.e. they are a sort of hybrid of the two latter
file types. The sequencing information is based on patterns and
tracks, with a pattern being a group of tracks with a specific length.
There are at least a couple of dozen types of MODs that are or have
been been used. Details about various formats can be found at:
Available sound and module players include:
Libraries and programs for accessing various audio formats include:
- AFsp, a library for reading and writing audio
files with emphasis on speech processing;
- Audio File Library, an implementation
of the SGI Audio File Library for accessing several audio formats;
- CMT, a toolkit for multimedia applications that
supports several audio encoding formats;
- libsndfile, for reading and writing
various sound sample files;
- MIDAS, a multichannel digital sound and
music system for use with games, demos and multimedia applications;
- RawSoundStudio, a sound package
for playing, recording and analyzing sound files;
- SEAL, a library for playing digital audio
waveforms and multichannel music module sequences concurrently;
- SkySOUND, a project to build a
stream-oriented audio library;
- Snack, a Tcl/Tk
extension adding commands for sound I/O and sound visualization;
- SNDAN, a package of signal analysis, graphics,
modification and synthesis routines;
- SoX, a sound file conversion package;
- SPKit, an object-oriented class library
for audio signal processing.
Miscellaneous other available music-related software includes:
- sf ALSA, a project to create a fully modularized
sound driver for Linux systems;
- BashFest, a virtual drum machine front-end
to CMIX;
- Drumachine, translates a drum pattern
description into a Csound score;
- GramoFile, for transferring audio signals
from vinyl records onto CDs;
- OSS, sound drivers for Linux;
- Rivl, a Tcl/Tk extension
for multimedia processing;
- SMIL, a standard for choreographing interactive
multimedia content for the Web; and
- Space, a program for spatializing sound
using a scripting language;
See also the CD-ROM,
MPEG and
MBone sections for related
packages.
[http://www.bright.net/~dlphilp/linux_soundapps.html]
[http://www.castlex.com/modfaq/]
[http://www.digiserve.com/ar/linux-snd/]
- SoundTracker
- A music tracker that allows the arrangement of sound samples on tracks
where a track (or channel) can't play more than one sample at a time.
Sets of tracks played simultaneously are called patterns with a pattern
typically having 64 entries per track.
From these modules are built, i.e. compact files containing
various patterns and samples along with a position list specifying
the playback order of the contents.
A source code distribution is available which requires
GTK for compilation.
[http://www.soundtracker.org/]
- Source Coding Toolbox
- The Matlab source coding toolbox
contains programs related to systems for transmitting or storing data
use codes for data compression, data translation, and error correction.
The programs include:
- bitstring_to_index, converts any bitstring to an
integer index;
- index_to_bitstring, reverses the previous operation;
- print_bitstrings, prints to the screen several bitstrings
whose indices are given in a vector;
- archive_bitstrings, prints the above to a file;
- input_bitstrings, inputs several bitstrings at once into
memory as a vector of indices;
- concat, concatenates two or more bitstrings input in the form
of a vector of indices;
- prefix_encode, encodes a data vector via a memoryless prefix
code induces by a given prefix set;
- compactcodeP, designs a compact prefix code having a given
proper Kraft vector as the vector of codeword lengths;
- compactcodeI, designs a compact prefix code whose vector of
codeword lengths is less than or equal to a given improper Kraft vector;
- numkraft, computes the number of compact prefix codeword sets
having a given number of codewords;
- frequency, computes the frequency with which each symbol appears
in a given data vector;
- huffmanlength, computes the length of the binary codeword that
results when a data vector is encoded via the Huffman code designed for
that vector;
- huffmancode, computes the codeword lengths for the Huffman code
designed to encode a given data vector;
- pseudoseq, generates a pseudorandom sequence from a given
alphabet with prescribed symbol frequencies;
- entropy, computes the first order entropy of a given data
vector;
- block_entropy, computes the entropy from partitioning a data
vector into blocks of a given length;
- cond_entropy, computes the conditional entropy of a data vector
using a memory window of a given size;
- Bcomprate, computes the minimum compression rate achievable in the
encoding of a data vector via finite memory codes employing a memory window
of a given size;
- FMcomprate, computes the minimum compression rate achievable in
the encoding of a data vector via finite memory codes employing a fixed
memory window;
- LZparse, computes the indices of the variable-length blocks
appearing in the Lempel-Ziv parsing of a binary data vector;
- LZcodelength, computes the length of the codeword generated by
the Lempel-Ziv encoder for a binary data vector;
- opt2level, determines the optimal two-level scalar quantizer
for a given data vector;
- lloyd, designs a scalar quantizer via Lloyd's algorithm;
- LBG, designs a scalar quantizer via the LBG algorithm;
- SQNR, computes the signal to quantizing noise ratio for a vector
quantizer;
- dist_rate_func, computes the distortion rate function of
a memoryless information source;
- laplace, a pseudorandom number generator for simulating a
Laplacian memoryless source; and
- signum, implements the signum function.
[http://www.ee.umn.edu/users/kieffer/programs.html]
- source code documentation/formatting
- Packages related to the documenting and/or formatting of source code include:
- SoX
- Sound Exchange is a sound file converter which also
does sample rate conversion and some sound effects.
This has been called the swiss army knife of sound tools.
The sound file formats understood by SoX include:
- RAW sound data in various data formats;
- RAW textual sound data;
- Microshaft WAV files (PCM, U-law, A-law, ADPCM read only,
IMA ADPCM read only);;
- MAUD files;
- Sound Blaster VOC files;
- IRCAM SoundFile files;
- Sun au files (PCM, U-law, A-law, G7xx ADPCM files);
- mutant DEC au files;
- Apple/SGI AIFF files;
- CD-R data, i.e. music CD format;
- GSM raw data (with an optional library);
- Mac HCOM files;
- Sounder files;
- NeXT snd files;
- Soundtool (DOS) files;
- Psion (palmtop) A-law files; and
- recording and playing from OSS /dev/dsp
or Sun /dev/audio.
The effects that SoX can apply to sound data include:
- channel averaging;
- band-pass filtering;
- a chorus effect;
- cutting out loop samples;
- adding an echo or sequence of echos;
- applying a flanger effect or a high- or low-pass filter;
- adding masking noise to a signal;
- applying a phaser effect;
- converting from stereo to mono and vice-versa;
- changing sampling rates via several different algorithms;
- applying a reverb effect;
- reversing sound samples;
- adding the Fender Vibro-Champ effect; and
- displaying general statistics of sound samples.
A source code distribution of SoX is available as are binary
packages for Linux Intel.
It is written in C and should compile
on most UNIX platforms.
Its use is documented on the site as well as in the
distribution. The second URL is the original home page while the second
contains an updated version with some new capabilities and several
bug fixes.
[http://home.sprynet.com/~cbagwell/sox.html]
[http://www.spies.com/Sox/]
- SP
- An SGML system conforming to
International Standard ISO 8879. It is a free, object-oriented
toolkit for SGML parsing and entity management.
The features of SP include:
- nsgmls, a program which parses and validates an
SGML document whose entity is specified by system identifiers
and prints to standard output a simple text representation of
its Element Structure Information Set (ESIS);
- spam, a markup stream editor or normalizer;
- sgmlnorm, a normalizer which focuses on producing
the same ESIS rather than preserving details of the markup;
- sx, converts from SGML to XML;
- spent, a program providing access to SP's entity manager;
- access to all the information about an SGML document, e.g.
to DTD and SGML declarations as well as document instance,
to markup as well as abstract document, etc., sufficient
to recreate an identical copy of any SGML document;
- support for almost all optional SGML features, e.g. arbitrary
concrete syntaxes, SHORTTAG, OMITTAG, RANK, SUBDOC,
LINK, etc.;
- a sophisticated entity manager which supports ISO/IEC 10744
Format System Identifiers, SGML Open catalogs, and WWW and
can be used independently of the parser;
- support for multi-byte character sets, e.g. ISO/IEC 10646
Unicode, Japanese character sets (Shift-JIS, EUC), etc.; and
- production quality tested using several SGML test suites.
The SP distribution is available as source code. It is
written in C++ which can be compiled using gcc 2.7.2 or
later. Binary versions are also available for MS-DOS,
Linux Intel, DEC Alpha, Sun Solaris, and Windows NT and 95
platforms.
[http://ftp.jclark.com/sp/]
- SP (Semidefinite Programming)
- The Semidefinite Programming software is an implementation
of Nesterov and Todd's primal-dual potential reduction method for
semidefinite programming.
The package includes the full source code (written in C),
a Matlab interface to SP (although it can also
be used directly), Matlab examples, and the documentation.
The C source code includes calls to LAPACK.
The documentation is a user's manual in PostScript format.
See also CSDP, INCT,
LMITOOL, MAXDET,
SDPA,
SDPpack, and SDPSOL.
[http://www-ISL.Stanford.EDU/people/boyd/SP.html]
- space
- The stochastic process analysis of
computer experiments package is for the analysis
of data with Gaussian stochastic processes, i.e. the analysis and
optimization of computer models or
simulations.
Its major functions are:
- fitting the model;
- cross-validating the model fit;
- predicting new design sites using the fitted model;
- visualizing main and joint effects;
- minimizing a response in stages or automatically with
a supplied function of the response.
A source code distribution of this C++ package
is available along with a manual in PostScript format.
[http://www.schonlau.net/space.html]
- Space
- A program which spatializes sound using a script by placing and
moving mono sound files using 3-D coordinates.
It will render the same script in stereo, Ambisonics, or
in crude mono.
The features of Space include:
- the use of delay lines to correspond to the distance the sound
is from the listener;
- the use of low-pass filtering and the inverse-square law to further
process the signal as it travels long distances;
- the capability for sounds to stay motionless, move in straight lines,
or in long arcs;
- the capability of mixing in pre-spatialized sound files which are
in the same format as the output;
- the use of Angled Cardiod Virtual Microphones to record the two
signals used for stereo;
- the inclusion of Ambisonic decoding equations so the system can be
modified to produce a four speaker feed; and
- the reflection of sounds off of configurable walls within a simple
room model to generate early reflection images or cruder echoes.
A source code distribution of Space is available.
Compilation requires C,
Yacc, and Lex and
it works by creating a shell and using the
Csound package to process output.
[http://www.muse.demon.co.uk/csound.html]
- SPACELIB
- A library for performing calculations involving 3-D kinematics and
dynamics of systems of rigid bodies.
It is based on an extension of the 4x4 transformation matrix approach
that adds 4x4 matrices for the velocity and accelerations (angular
and linear) plus similar matrices for forces, torques, angular and linear
momentum, and inertia.
The functionality of the library includes:
- basis operations on matrices;
- basic operations on points, lines and planes;
- basic operations of vectors;
- transformation matrices;
- velocity and acceleration matrices;
- Cardan/Euler angles; and
- linear systems.
Both Matlab and C source
distributions of the library are freely available.
User's guides for both versions are available in PostScript format
as are several technical reports.
[http://bsing.ing.unibs.it/~legnani/]
[http://isb.ri.ccf.org/tgcs/software/]
- SPAK
- Send PACket is a collection of tools that can be used
to generate and send arbitrary packets to a UNIX socket.
It was originally written as part of a
firewall testing project,
and is designed to be modular and allow maximal control over the
design of the packet.
SPAK consists of several programs including:
- makeip, which makes an IP packet;
- maketcp, which makes a TCP packet;
- makeudp, which makes a UDP packet; and
- sendpacket, which sends a packet to a socket.
A source code distribution of SPAK is available. It is written
in C and can be compiled on most UNIX flavors.
[http://www.xenos.net/~xenon/software/spak/index.html]
- Spanner
- A combination glue/scripting/prototyping
programming language.
The design goal of Spanner was to glue together software components
written in C++.
It is interpreted but can be translated to C++ and then compiled
if speed is of great necessity.
The syntax is similar to C although it is easier to use since
variables need not be declared. Strings, lists and associative
arrays are built into the language as first class objects.
Binary and source distributions of Spanner are available.
[http://www.ataman.com/spanner/index.html]
- SparkGL
- A portable, fast graphics toolkit designed specifically for 16-bit graphics.
This library sits on top of a display system such as
SDL,
OpenPTC or
SVGALIB.
The features include:
- scaling;
- raw and transparent blitting;
- alpha blending;
- font loading and rendering;
- native surface management;
- conversion from 16 to 24 bpp formats and vice-versa;
- loading/saving of raw PPM format images;
- RGB value mapping;
- extraction of RGB values from pixels;
- coordinate reference precalculation;
- a 16-bit memset;
- area clipping;
- horizonal and vertical lines;
- filled and empty rectangles;
- circles; and
- several demos including a 3-D starfield, image explosion, etc.
[http://sparkgl.netpedia.net/]
- Sparse
- A set of C subroutines for solving large sparse real or complex
systems. Besides being able to solve large linear systems it
solves transposed systems, finds determinants, and estimates
errors due to ill-conditioning in the system of equations and
instability in the computations. It is generally as fast or
faster than other sparse matrix packages when solving many
matrices of similar structure.
Sparse has several features beyond the basic creation, factoring
and solving of systems of equations. These include the ability
to handle both real and complex systems of equations, the ability
to quickly solve the transposed system, the dynamic allocation
of memory for matrix elements, the ability to efficiently compute
the condition number of the matrix, the ability to do much of
the matrix initialization and to preorder modified node admittance
matrices, the ability to exploit sparsity in the right-hand-side
vector, the ability to scale matrices prior to factoring to reduce
uncertainty in the solution, and much more.
The Sparse package includes the C source code, a user's guide
in ASCII and Troff format, and a selection of test matrices.
[http://www.netlib.org/sparse/index.html]
- SparseBLAS
- The NIST Sparse BLAS library
provides computational kernels for fundamental sparse matrix
operations such as sparse matrix products and solution of
triangular systems. This package supports various sparse
formats such as compressed-row, compressed-column, and coordinate
storage formats (together with block and variable-block versions
of these).
The source code for Sparse BLAS is written in ANSI C and the routines
are callable from Fortran and C through the standard interface.
The source code is available along with a user's guide and
various other types of documentation in PostScript format.
[http://math.nist.gov/spblas/]
- SparseLib++
- A C++ class library for efficient sparse matrix computations
across various computational platforms. The package consists
of matrix classes encompassing several sparse storage formats
and provides basic functionality for managing sparse matrices.
Various preconditioners commonly used in iterative solvers for
linear systems of equations are included. The focus is on
support for iterative methods (e.g.
IML++),
but the objects in this package can be used in their own right.
SparseLib++ matrices can be built out of nearly any C++
matrix/vector classes and is shipped with the
MV++ classes. A PostScript
manual is available.
[http://math.nist.gov/sparselib++]
- SparseQR
- A C or C++ routine which computes the QR decomposition of
a sparse matrix using row ordering.
See Robey and Sulsky (1994).
[http://www.arc.unm.edu/~trobey/]
- SPARSKIT2
- A basic toolkit for sparse matrix computations which takes the
form of a general purpose Fortran
library. It includes several useful tools for developing
and implementing sparse matrix techniques, particularly for
iterative solvers. Examples of the tools available include programs for
converting data structures, printing simple statistics on
a matrix, and plotting a matrix profile.
It contains just about any algorithm you
might need for performing a sparse matrix operation as well as
several iterative accelerators and efficient preconditioners.
The distribution also includes a repository of sparse matrices.
SPARSKIT can handle conversions among most commonly used sparse matrix storage
formats including the dense, LINPACK
banded, compressed sparse row, compressed sparse column,
coordinate, Ellpack/ITPACK generalized
diagonal, diagonal, block sparse row, modified compressed sparse
row, symmetric skyline, nonsymmetric skyline, linked list,
jagged diagonal, symmetric sparse skyline, unsymmetric sparse
skyline, and variable block row formats.
Non-algebraic operations available include extraction of rectangular
submatrices, filtering and sorting matrix elements, in-place
transpositions, copying, extracting diagonals and upper and lower
matrix portions, column and row permutations, extracting bandwidth
information, and more.
A module called BLASSM (Basic Linear Algebra Subroutines for Sparse
Matrices) contains subroutines for computing various matrix products
and sums.
A MATVEC module contains routines for matrix by vector products and
various sparse triangular solution methods.
A matrix generation module contains routines for generating various
symmetric and nonsymmetric matrices as might result from finite
difference or finite element algorithms.
An iterative solution module contains various subroutines including
conjugate gradient, biconjugate gradient, generalized minimum
residual (GMRES), several GMRES preconditioners, etc.
A source code distribution of SPARSKIT is available.
It is written in Fortran 77 and
takes the form of a library of efficient and well-tested
subroutines. It is documented in a user's manual
available in PostScript format
as well as in some technical reports.
[http://www.cs.umn.edu/Research/arpa/SPARSKIT/sparskit.html]
- Spatial Statistics Toolbox
- A Matlab toolbox for estimating large-scale
lattice models that includes code for simultaneous spatial
autoregressions (SAR), conditional spatial autoregressions (CAR), and
mixed regressive spatially autoregressive (MRSA) models.
This toolbox includes most of the common estimators uses in spatial
econometrics. It also uses sparse matrices and other techniques to
accelerate computations and expanded the size of data sets that can
be analyzes.
The components are divided into several categories.
The spatial weight matrix functions are:
- fclosestnn1, finds the closest neighbors to each observation;
- fdelw1, creates a spatial weight matrix using Delaunay triangles;
- fnndel1, creates individual neighbor weight matrices from first
and second order Delaunay neighbors;
- fnnsym1, creates overall symmetric weight matrices from
neighbor weight matrices;
- fnnasym1, forms overall asymmetric weight matrices from
neighbor weight matrices.
The spatial Jacobian computation and spatial autocorrelation testing
functions are:
- fdetfil1, computes ln |l-aD| where D is a symmetric spatial
weight matrix;
- fdetinterp1, similar to fdetfil1 but uses spline
interpolation to reduce determinant computations;
- fdetinterpasym1, similar to fdetinterp1 but handles
asymmetric weight matrices; and
- fary1, computes ML for a single vector or collection of vectors.
The lattice model estimation functions are:
- fcar1, computes maximum likelihood estimates for CAR errors;
- fclosestmix1, computes closed-form maximum likelihood estimates
when using only the nearest neighbor;
- fsar1, computes maximum likelihood estimates for SAR errors;
- fmix1, computes maximum likelihood SAR estimates with spatially
lagged X and Y;
- fpar1, computes maximum likelihood SAR estimates with spatially
lagged Y but not X;
- flagx1, computes maximum likelihood SAR estimates with spatially
lagged X and likelihoo ratios for the hypothesis that a variable and its
spatial lag have no effect; and
- flagx2, computes maximum likelihood SAR estimates with spatially
lagged X and likelihood ratios for the hypothesis that each individual
variable (lagged or not) has no effect.
The lattice model simulation and non-spatial estimation functions are:
- fsimcar1, simulates CAR random variables;
- fsimsar1, simulates SAR random variables;
- fsimmix1, simulates mixed and pure SAR random variables; and
- fols1, computes OLS with likelihood ratios in the same
form as fcar1, fsar1, etc.
[http://www.spatial-statistics.com/software_index.htm]
- Speak Freely
- An application that allows you to engage in bidirectional conversations
over the network. Speak Freely uses both GSM
compression and sample interpolation to reduce the data bandwidth
sufficiently to allow conversations over the Web.
Conversations can also be encrypted using either DES or IDEA.
The individual programs that comprise the package are:
- sfmike, for sending sound to remote hosts;
- sfspeaker, to receive sound from remote hosts;
- sflwl, a client program which requests information from a
server running the Look Who's Listening server;
- sflwld, the Look Who's listening server which maintains
a list of users running Speak Freely who have identified themselves;
- sfecho, a server program that receives sound from a remote
host, buffers it, and then retransmits it to the sending host;
- sfreflect, operates a conference reflector; and
- sfvod, which monitors connections to a given port.
A source code distribution of Speak Freely is available.
The supplied makefile includes instructions on how to compile on
several UNIX platforms including Linux Intel.
The utilities are documented in separate man pages.
[http://www.speakfreely.org/]
- SPECDRE
- A Starlink Project package
for SPECtroscopy Data REduction.
A typical SPECDRE data set is contained within a
hyper-cube where each row or hyper-column is a spectrum.
Any line or continuum fits calculated are stored along with
the data in this format, as well as are bad values or errors.
Variance information can also be included and is used in
the processing steps, e.g. for statistical weights, if present.
A SPECDRE extension to the basic NDF data format is used which
is recognized by all SPECDRE applications and uncritically
propagaged by other packages.
The tasks performed by the SPECDRE applications include:
- using the data and errors of hyper-cubes to write to or read
from printable/editable tables;
- plotting of spectra and data with full control of various
aspects such as font, color, line styles, error bars, etc. as
well as overlay on previous plots according to their world
coordinates if possible;
- hyper-cube manipulations such as extraction of averaged hyper-planes,
assembly of hyper-cubes from hyper-planes, and filling in hyper-cubes
from several other hyper-cubes;
- resampling capabilities including resampling all spectra in a
hyper-cube or resampling and averaging into one spectrum any
number of input spectra; and
- spectral fits using polynomials, blended Gauss, or triangle
profiles with fit results stored along with data.
A binary distribution of SPECDRE is available for DEC OSF/1,
Linux Intel, and Sun Solaris platforms.
The package is documented in a 78 page user's manual available
in PostScript format.
[http://star-www.rl.ac.uk/store/storeapps.html]
- SPECFUN
- A collection of portable Fortran
routines for calculating special functions.
The routines include:
- ALGAMA, for calculating the log(gamma) function for positive
real arguments;
- DAW, a program to evaluate Dawson's integral for real arguments;
- EI, for computing various exponential integrals;
- ERF, for computing the error function and its variants;
- GAMMA, for calculating the gamma function for a real argument;
- I0 and I1, for modified Bessel functions
of the first kind and order zero;
- J0Y0 and J1Y1, for zero- and first-order Bessel functions
of the first and second kind;
- K0 and K1, for modified Bessel functions of the second kind
and orders zero and one;
- PSI, for evaluating the logarithmic derivative of the gamma function;
- REN, a random number generator;
- RIBESL, for Bessel functions of non-negative argument and order
with or without exponential scaling;
- RJBESL, for Bessel functions of non-negative argument and order;
- RKBESL, for modified Bessel functions of the second kind of
non-negative argument and order and with or without exponential scaling;
- RYBESL, for Bessel functions of non-negative argument and order;
- MACHAR, for determining the parameters of the floating-point
arithmetic on a given machine.
A source code distribution of SPECFUN is available.
All of the programs are written in Fortran and are available in
single and double precision versions.
Each program is documented in comment statements within the program.
This is TOMS algorithm 715 and is documented
in Cody (1993b).
[http://www.netlib.org/specfun/]
[http://www.acm.org/calgo/contents/]
[http://www.netlib.org/toms/index.html]
- specPerl
- A rewrite of SpecTcl for use with
Perl.
[http://keck.ucsf.edu/~kvale/specperl.html]
- SpecTcl
- A development environment for building applications with
graphical user interfaces that run on multiple platforms.
The SpecTcl packages lets you design GUIs interactively
and graphically,
uses a geometry manager precise enough to keep elements aligned
across all platforms,
enables the fast development of applications that can require
many more lines of code in traditional procedural languages,
provides flexibility at runtime to to, e.g. generate menus
at runtime,
allows the integration of Tcl/Tk
scripts with scripts generated in SpecTcl,
allows the quick alternation between design and execution for
quick feedback on changes,
produces executable files that use Tcl/Tk and don't require
SpecTcl for use, and
lets you develop and test simple applications separately and
then combine them into subassemblies of a larger application.
A source code distribution of SpecTcl is available.
It is written in Tcl/Tk and requires recent versions of
those to work.
It is documented in a user's guide available in PostScript
and PDF formats.
[http://dev.scriptics.com/software/spectcl/]
- spectral analysis
- Packages for performing various types of spectral analyses include:
- ARfit,
- Cubic Spline Library,
- FFTPACK,
- Matlab Astronomy Library,
- MCSSA,
- MSSA,
- MTM,
- PSD,
- SNP,
- SSA,
- SSA-MTM,
- STARPAC, and
- XQz.
- SPEM
- The S-coordinate Primitive Equations Model
is a finite difference ocean circulation model written in
Fortran 77.
It has been used for a variety of regional and basin scale
simulations.
The features of SPEM include:
- an s-coordinate generalized topography following vertical coordinate
designed to retain resolution in the upper ocean even over deep
water so the mixed layer can be uniformly resolved independent of depth;
- staggered finite differences in the vertical;
- three available example simulations;
- floats and rotated mixing tensors;
- several C preprocessor flags to modify the model before compilation;
- options for using implicit time steps on the vertical viscosity and
diffusion;
- options for computing the vertical diffusion and viscosity
coefficients; and
- an option for using NetCDF for input and
output files.
The source code is available. It is written in Fortran 77
and can be compiled with several Fortran compilers, including g77.
A user's guide is available in PostScript
format.
The NCAR Graphics library is required for using the built-in
graphics capabilities of SPEM.
A package called gridpak is also available for creating
curvilinear orthogonal grids for use with SPEM.
[http://marine.rutgers.edu/po/models/spem.html]
- Spharmonic Kit
- A collection of routines that implement discrete Legendre and spheric
harmonic transforms via several different algorithms.
Some algorithms also include inverse transforms and routines for
spherical convolutions.
The included Legendre algorithms are:
- a variation of the basic Driscoll-Healy algorithm;
- a bounded DH-Mid algorithm; and
- simple-split and hybrid algorithms.
The included spherical algorithms are:
- a hybrid transform (based on the hybrid Legendre transform) that
precomputes in memory all needed Legendre polynomial cosine transforms;
- a hybrid transform that reads the precomputed data off disk;
- a spherical convolution routine that uses the hybrid transform in
the forward direction and a semi-naive algorithm in the reverse, and
precomputes in memory prior to transforming;
- a version of the immediately previous that reads precomputed data
from disk.
[http://www.cs.dartmouth.edu/~geelong/sphere/]
- SPHERAY
- A Fortran package for computing travel-times
in a spherical earth.
SPHERAY computes travel-times, epicentral distances, amplitudes, phases,
etc. using geometric ray theory in an isotropic spherical earth model.
The features include:
- use of an analytical expression for the integrals giving the
epicentral distance and travel-time increments in a layer wherein
the velocity varies linearly with radius (allowing a typical model
to be described with only about 40 layers);
- recognition of standard wave names such as pP, PKIKP, SKKS,
PcP, sPcS, etc.;
- acceptance of wave names built on discontinuities other than those
on which the standard names are based (as per a set of conventions);
- computation of the amplitude and polarization if the focal
mechanism is given;
- computation of amplitude changes and phase shifts due to reflection
and transmission along the ray;
- independence of particular planet models or p-delta tables, i.e.
for each considered wave a suite of rays that span the entire range of
allowed parameter values are shot;
- interactive, event-station oriented and network modes; and
- correction of epicentral distance from event to station for
ellipticity.
[http://geosp6.ipgp.jussieu.fr/pub/logiciels/rays/]
- SPHERE
- The SPeech HEader REsources library provides an
interface to NIST SPHERE-formatted speech waveform files.
The primary components of the package are a C
interface library and system level file manipulation utilities.
The library was developed to provide a simple, intuitive interface
to access and manipulate SPHERE files.
The utilities were written using the SPHERE library and allow
command-line manipulation of SPHERE files as well as functional
examples of the usage of the libraries.
The library functionality is divided into five main areas:
- file access functions;
- header manipulation functions;
- waveform I/O and conversion functions;
- file I/O error status functions; and
- data (waveform) buffer allocation and deallocation functions.
The available system level utilities include:
- h_read, readers headers from files;
- h_add, adds an empty header to raw unheadered speech samples;
- h_strip, strips the SPHERE header from an input file;
- h_edit, for editing specified header fields;
- h_delete, for deleting specified header fields;
- w_encode, encode the file in one of several available formats;
- w_decode, decode a file in a specified output format;
- w_edit, for manipulating and sampling waveform data
in a file; and
- w_diff, for comparing waveforms.
[ftp://jaguar.ncsl.nist.gov/pub/]
- Spherekit
- An integrated toolkit for spatial interpolation and comparison
of spatial interpolation algorithms developed at the
NCGIA
(National Center for
Geographic Information and Analysis).
The capabilities of the package include large-scale interpolation,
smart interpolation, and error analysis.
Spherekit can interpolate over continental and global scales since
its computations are based on spherical distances and orientations,
as opposed to conventional interpolations based on various planar
projects of the Earth. It also permits the user to incorporate
knowledge or information about the processes that produced the
spatial fields in a process called smart interpolation. This is
implemented via the interpolation of user-defined, derived
variables. The performance of an interpolation method and its
associated set of parameters is evaluated using cross-validation
wherein the error at each observation point is defined as the difference
between its actual value and its estimated value using the remaining
n-1 points. The available interpolation methods are inverse distance
weighting, triangulation, kriging, multiquadric, and thin plate
spline.
Spherekit is UNIX based and includes a complete graphical interface.
The source code is available and should compile on most generic
UNIX platforms. It uses the
GMT package for displaying
interpolated fields.
[http://www.ncgia.ucsb.edu/pubs/spherekit/]
- SPHEREPAK
- A library of 17 Fortran 77 routines for
computing spherical harmonic analyses and syntheses.
Harmonic analysis is used for problem solving in spherical coordinates
in the same way that Fourier analysis is used in Cartesian coordinates.
It simplifies the tasks interpolation and smoothing on the sphere,
and significantly lessens the problems of solving partial differential
equations (PDEs) on the sphere.
The options include that the grid in the latitudinal direction can be
either Gaussian or equally spaced, the number of grid points in either
latitude or longitude are arbitrary, the analysis can be performed
either on the entire sphere or only in the northern hemisphere,
the associated Legendre functions can either be stored or recomputed
as needed, multiple analyses or syntheses can be specified, and the
spectral truncation is completely under user control.
SPHEREPAK uses Gaussian integration to compute the analysis in the
programs that use a Gaussian grid in the latitude direction, and
uses multiple vectorized FFTs in the longitudinal direction.
The programs in SPHEREPAK are:
- SHAEC, for computing an analysis on a equally spaced grid using
computed functions;
- SHAECI, for initializing an array that may be used repeatedly
by SHAEC;
- SHSEC, for computing a synthesis on an equally spaced grid using
computed functions;
- SHSECI, for initializing an array that may be used repeatedly
- SHAES, for