Access Keys:
Skip to content (Access Key - 0)

What Runs Where on Athena - Programming Libraries

Graphics Libraries

OpenDX

Description: 3d data visualization and exploration system. Supports generation of standalone binaries and Java applets that can be run from a Web server
TO RUN:
athena% dx &
Online documentation starts at file:///usr/share/doc/dx/html/index.html
*See also: *ac3d, blender, geomview, ParaView, Open Inventor, Slicer, Visualization Toolkit

Visualization Toolkit

Description: graphics library for 3d image visualization - can generate stand-alone binaries or interface with Tcl/Tk, Java and Python
TO RUN:
Please see documentation at:
file:///usr/share/doc/vtk-doc/README.html
file:///usr/share/doc/vtk-doc/html/index.html
file:///usr/share/doc/vtk-examples/README.examples
Some examples need the following environment variable setting:
VTK_DATA_ROOT -> /usr/share/VTKData
To run with Tcl:
athena% vtk **{}myfile.tcl* (demos are in directories like */usr/share/vtk/Modelling/Tcl)
To run with Python:
athena% vtkpython **{}myfile.py* (demos are in directories like */usr/share/vtk/Modelling/Python)
To run C++ applications, see README.examples above; the Java examples are not installed
See book "The Visualization Toolkit", 3d Ed. (Kitware, Inc.), and other documentation starting from here. Author Website is here
*See also: *ac3d, blender, FreeWRL, geomview, OpenDX, Qt, ParaView, Open Inventor, Slicer, Tcl/Tk

Math Libraries

GNU Scientific Library

Description: collection of routines for numerical computing, meant to present a modern API for C programmers while allowing wrappers to be written for very high level languages (C source code available)
TO RUN:
To link against it:
athena% gcc -O2 -o **{}file _{{}}file.c _*`gsl-config --libs --cflags` *
and add include lines such as the following in your program:
#include <gsl/gsl_routine.h> (where routine* *identifies the name of the routine being used- see documentation for details)
documentation is at file:///usr/share/doc/gsl-ref-html/index.html; see also the GSL home page
For more background see Numerical Analysis links
*See also: *boost, IT++, Julia, LAPACK, matlab, Netlib, Numerical Recipes, NumPy, octave, scilab

IT++

Description: C++ library of mathematical, signal processing, speech processing and communications classes and functions. The kernel of the IT++ library consists of templated vector and matrix classes, and many functions for vectors and matrices; this makes the library functionality similar to that of matlab
TO RUN:
To link against it:
athena% g++ -O2 `itpp-config --cflags` -o **{}file file.cpp* `itpp-config --libs` *
and add include lines such as the following in your program:
#include <itpp/file.h> (where file* *identifies the include file required by the function(s) you are using- see documentation for details)
See also the[ IT++ documentation page |http://itpp.sourceforge.net/4.3.1/users_guide.html]and Numerical Analysis links
*See also: *boost, GNU Scientific Library, LAPACK, matlab, Netlib, Numerical Recipes, NumPy, octave, scilab

LAPACK

Description: library of FORTRAN 77 and C subroutines for solving many problems in numerical linear algebra and matrix applications
TO RUN:
To link against it:
FORTRAN version:
athena% gfortran -O2 -o *_file file.f _-llapack -lblas*
C version:
athena% gcc -O2 -I/usr/include/atlas -o *_file file.c _-llapack -lcblas*
and add the following include line to your program:
#include <f2c.h>
Some code may also require:
#include <clapack.h>
Documentation: file:///usr/share/doc/liblapack-doc/explore-html/index.html
File description: file:///usr/share/doc/liblapack-doc/explore-html/files.html
For more background see Numerical Analysis links
*See also: *GNU Scientific Library, IT++, Numerical Recipes, Netlib

Netlib

Description: Netlib is an archive containing code for Lapack, Blas and other related public-domain numerical computation routines. It is currently accessed by forms on the Web
TO RUN:
Go to the Netlib Web page
For more general information see the Guide to Available Mathematical Software and the IML++ Iterative Methods Library
For more background see Numerical Analysis links
*See also: *LAPACK, GNU Scientific Library, IT++

Numerical Recipes

{_}Note: __(old: second edition; the newer third edition is not available on Athena)_
Description: library of many numerical analysis routines (FORTRAN and C source available)
TO RUN:
athena% add recipes
See books "Numerical Recipes in C" or "Numerical Recipes in FORTRAN" that go with the software available online
To link against it:
C code:
add the following include lines to you program:
#include "nr.h"
#include "nrutil.h"
athena% gcc -O2 -I/mit/recipes/include -o *_file file.c _-L/mit/recipes/lib -lrecipes_c -lm*
FORTRAN code:
athena% gfortran -O2 -o *_file file.f _-L/mit/recipes/lib -lrecipes_f *
For more general information see the Guide to Available Mathematical Software and the IML++ Iterative Methods Library
For more background see Numerical Analysis links
*See also: *GNU Scientific Library, IT++, Julia, LAPACK, matlab, Netlib, octave, scilab
*Note: *Numerical Recipes on Athena are now at release level 2.1.0

User Interfaces/Widgets

boost

Description: extensive set of general-purpose and specialized C++ programming libraries that significantly extend the functionality of the C++ Standard Library
TO RUN:
To compile and link C++ code against the boost libraries, include the appropriate headers in your code; possible formats include:
#include <boost/test/test_tools.hpp>
#include <vector>
To link against it:
athena% g++ -O2 -o **{}file file.cpp* (simplest case, for code that doesn't require linkage against {}boost* libraries)
athena% g++ -O2 -o **{}file file.cpp* {}/usr/lib/x86_64-linux-gnu/libboost...{} (where {}libboost_..._*is one (or more) required libraries)
There is a boost Website with documentation
boost is very complex and you will most likely need to consult the documentation to use it effectively; this may help you get started
*See also: *g++, GNU Scientific Library, IT++, NumPy, Qt
*Note: *Full paths to the boost libraries are required on the compilation command-line due to a packaging issue on Ubuntu. Selecting the appropriate name for one (or more) libraries to link against can be complicated, and you must consult the documentation to understand how this works. There are many libraries in various Ubuntu packages, and many of these are not currently installed

FLTK

Description: cross-platform C++ GUI toolkit. FLTK provides modern GUI functionality and supports 3d graphics via OpenGL and its built-in GLUT emulation. fluid is a GUI designer for FLTK
TO RUN:
athena % fluid options (to run fluid GUI designer)
To link against it:
athena% g++ -O2 -o **{}file _{{}}file.cxx _*`fltk-config --cxxflags --ldflags`*
and add include lines such as the following in your program:
#include <FL/Fl.H>
#include <FL/Fl_Component.H> (where *{_}Component _*identifies the name of the component being used- see documentation for details)
Local documentation is at file:///usr/share/doc/fltk1.3-doc/HTML/index.html; see also the FLTK home page
*See also: *Motif, Qt

guile

Description: implementation of the Scheme programming language, also made available as a library that allows interfacing the interpreter with code from other programming languages (such as C)
TO RUN:
athena% *guile *(to start an interactive session)
To compile and link C code against the guile library put the following #include in your code:
*#include <libguile.h> *
and run the following from the command line:
athena%* {}gcc -O2{} `guile-config compile` -o file file.c `guile-config link` *
_where file.c _is the file you are compiling (you may need to link against additional libraries)
There is a guile documentation page
*See also: *Clojure, newLISP,[ racket|What Runs Where on Athena - Languages#drscheme], scheme, SCM

Motif

Description: software suite from Open Group incorporating the mwm Window Manager and a library of Widgets for building GUI applications with a "Motif look and feel". The instructions below describe how to build your own Motif applications by linking against the Motif library
Linux now comes with various versions of Motif libraries and associated header files (dynamic linking is the default). Linux formerly used Lesstif, a Motif clone, but now generally uses Motif released under Open Source license (OpenMotif).
To compile and link C code against the Motif library, put whatever include files your code requires at the top of your source file file.c, typically including:
#include <Xm/Xm.h>
*#include <Xm/Label.h> *
and compile as follows from the command line:
athena%* {}gcc *-O2 -o **{}file* file.c *-lXm -lXt -lX11
There is an Open MOTIF page
You may run into further complications, such as the need to link against additional libraries or supply additional directories for header files, that are beyond the scope of this document
*See also: *FLTK, Qt, Xaw

Qt

Description: Object-oriented framework for developing graphical user interface (GUI) applications using C++. Used as basis for Linux KDE interface; both Qt 4 and Qt 5 are available, but headers are only installed for Qt 4
TO RUN:
athena% designer & (to run Qt 4 GUI interface builder)
athena% assistant-qt4 & (to run Qt 4 GUI help browser)
For command-line builds, in a directory where you put your Qt C++ source code:
athena% qmake (to build UNIX Makefile from .pro file)
athena% make (to compile and build your code)
Qt is complex; you will need to study the documentation to build non-trivial code projects; there is online documentation; see also the Independent Qt Tutorial and the Qt home page and Qt project page
*See also: *boost, FLTK, Motif, Tcl, Tk, Visualization Toolkit

Tcl, Tk

Description: Programming environment for creating GUI interfaces under X windows
TO RUN:
athena% *tclsh *(for an interactive Tcl interpreter)
or executable script in Tcl with first line:
#!/usr/bin/wish -f (to run executable scripts with a windowing interpreter)
To compile applications that link against Tcl/Tk libraries:
Add include lines like the following in your code:
#include <tcl8.6/tcl.h>
#include <tcl8.6/tk.h>
link against libtcl8.6.so.0 and libtk8.6.so.0
There is a Tcl/Tk wiki and a Tcl/Tk home page
*See also: *lua, newLISP, perl, Qt, Visualization Toolkit
*Note: *Tcl/Tk 8.5 libraries are installed, but the corresponding headers are not

Xaw, Xt, Xlib

Description: Xaw is a set of X widgets called the Athena Toolkit. Xt is a set of X routines called X Toolkit Intrinsics, upon which widgets are built. Xlib is the lowest level of X routines. These are all low-level routines. Most graphical applications are now developed with one of the many more modern, high-level widget sets
To use:
To link against the Xlib libraries:
athena% gcc -O2 -o file file.c -lX11
To link against the Xt libraries:
athena% gcc -O2 -o _file file.c _-lXt -lX11
To link against the Athena widget libraries:
athena% gcc -O2 -o _file file.c _-lXaw -lXt -lX11
*See also: *Motif

IS&T Contributions

Documentation and information provided by IS&T staff members


Last Modified:

March 24, 2021

Get Help

Request help
from the Help Desk
Report a security incident
to the Security Team
Labels:
athena athena Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
Feedback
This product/service is:
Easy to use
Average
Difficult to use

This article is:
Helpful
Inaccurate
Obsolete
Adaptavist Theme Builder (4.2.3) Powered by Atlassian Confluence 3.5.13, the Enterprise Wiki