Personal tools
You are here: Home Documentation SincLib
Document Actions

SincLib Introduction

by admin last modified 2007-07-24 03:33

SincLib is a high-level library written to implement various numerical recipes for sinc methods. It aims to be accessible for others to easily modify while still being relatively high-performance. This page is the best place to start learning about SincLib.

SincLib is a library written in python that implements several numerical recipes using sinc methods.  Many of the algorithms presented in Lund and Bower's book, "Sinc Methods for Quadrature and Differential Equations" are covered, including:
The above links should take you to a page with some notes on implementation details.  You should only explore these after you understand the basics of SincLib, and you want to see some code examples.

By using the python programming language with parts implemented in C for speed, SincLib attempts to be reasonably accessible for all, while also being high-performance.  Currently, it takes a moderate amount of skill to download and install, but attempts will be made to simplify installation.

Several preconditioners and solution methods (especially iterative methods) are considered, as well as parallel implementations using PETSc.

SincLib Documentation

As with any open source library, writing decent documentation is as equally hard as implementing the library itself.  Here is the current documentation:
The documentation progress can be followed on this Trac ticket: http://t2.unl.edu:8092/ticket/5.  If there's any part you feel that is lacking, please let us know on that ticket.

Downloads

Prerequisite Code

There are several prerequisite to using SincLib:
  • Python (version 2.4 or better).  A general purpose programming language; this is pre-installed on modern Linux and Mac OS X distributions.  http://www.python.org/
  • Numpy. (version 1.0 or better).  A fast implementation of numerical arrays for Python.  http://numpy.org.
    • When numpy compiles, it will attempt to find system versions of LAPACK, BLAS, ATLAS, and/or other numerical libraries.  If it does not find the core BLAS routines, it will compile a library called lapack_lite for itself.  The lapack_lite source is taken from the reference BLAS implementations; it will have respectable performance, but nowhere near optimal.
  • Scipy. (version 0.5.2 or better).  A comprehensive numerical library for Python written on top of Numpy. http://scipy.org.
  • Matplotlib. (version 0.87.0 or better).  A plotting library for Python written on top of numpy; it is very powerful, and its usage in SincLib barely scratches the surface of what it can do.  http://matplotlib.sourceforge.net/.
Fedora Core 7 has packaged all of the above libraries, so there should be no need to compile these packages for those users.


Prerequisites for Parallel SincLib


SincLib Binaries

Linux 32-bit binaries (which should work on 64-bit computers) are available at the following link:


SincLib Source Code

Currently, there is no released version of SincLib.  It is still being heavily developed, and we suggest only using the developer code available in the UNL subversion repository.  It is available here:
svn://t2.unl.edu/brian/SincMethods
In order to download it, you need to use the subversion tool, available for download at http://subversion.tigris.org/.  Many modern Linux distributions have the tool built-in (with versions available at the above link for Mac OS X and Windows).  From a command prompt in the desired installation directory (I personally install it to ~/projects/SincMethods), type this command:
svn co svn://t2.unl.edu/brian/SincMethods
Use the installation guide to continue from here.


Powered by Plone, the Open Source Content Management System