Collection of Haskell modules
Jan Skibinski, Numeric Quest Inc.
Initialized: 1998.09.18, last modified: 2001.05.24This is a collection of Haskell modules that we have developed during the period shown above. You can find here library modules, standalone applications, utilities, examples, and HOWTO solutions -- some sketchy and some complete. All of this is supplemented by few tutorials.
Modules designated as literate modules are written in HTML format, but they can be fed to Haskell compilers or to Hugs interpreter as they are -- providing that you rename them first or make symbolic links: XYZ.html -> XYZ.lhs.
Library
- Fractional calculus
- Roots of polynomials
- Indexless linear algebra algorithms : Orthogonalization, solution of linear equations, eigenvalues and eigenvectors
- State vector evolution: Modal and numerical solvers for systems of linear differential equations, applicable to classical and quantum problems
- N-dimensional tensors. The design needs some improvements, but it works.
- Module Collection. Collections can be used instead of lists anywhere where fast indexing operations are required and where the append operation is a prefered mode of a container expansion.
- Quantum Vector. Abstract representation of vector spaces for Quantum Mechanical applications.
- Haskell Simulator of Quantum Computer. A preliminary version.
- Module Eigensystem. Eigenvalues and eigenvectors for operators (mainly Hermitian, but some generalization will be added at due time). Supports notation of QuantumVector.
- Module LinearAlgorithms. Several selected algorithms for eigensystems described by small dense matrices. Partially overlaps with module Orthogonals. Provides support for module Eigensystem.
- Quantum harmonic oscillator. A canonical example of neat things in QM. Uses QuantumVector. Theoretical introduction provided.
- Composition of quantum angular momenta. Clebsch-Gordan coefficients, basis transformation.
- Module Spike.hs. Implementation of theory presented in a paper "Jan Skibinski, Exact solutions for a family of discretely spiked harmonic oscillators, e-print quant-ph/0007059", available at e-print archive http://xxx.lanl.gov/abs/quant-ph/0007059,
- Module Observation. A simulation
- Module QuantumSearch. A simulation of a quantum search algorithm, in three qubits. Finds a marked item on on 8-item unordered list in just two calls.
Utilities
- PDF writer for three functional languages: Q, Ocaml and Haskell
- Plotting and drawing to PNG and JPEG files. Module Gif, which was previously available here, has been scrapped and transformed into module GD. Reasons are explained in the linked document.
Examples
- State evolution examples: classical oscillator tortured again, spin in magnetic fields, magnetic resonance
Applications
- Shock and vibration isolation -- An engineering report presented as a literate Haskell program with documentation illustrated by plots made by Gif module above.
- Short study of fuzzy oscillator. Included are nine PNG plots. Here is also the gzipped bundle for faster downloads.
- Solid modeler
HOWTO's
Hugs on the orbit -- How to convert the interpreter Hugs into an ORBit server and supply it with a GUI client
Fast-CGI Hugs server -- How to convert Hugs into a Fast-CGI application server. Includes several C and Haskell modules. Two can be used outside this framework to compute dates and times, and to compute Md5 digests from within Haskell programs.
Tutorials
- Two-dimensional spinors -- Originally written as a complementary explanation for one of the examples in module Evolution_examples, this little tutorial gained quite unexpected popularity outside Haskell community. (Strange ways of Internet).
For this reason it was recently significantly upgraded and includes introduction to NMR, relation with quaternions, more examples and better notation.- Haskell Companion -- Most common concepts and definitions of functional language Haskell
- Introduction to Hawk from PacSoft -- this is a demo presentation I gave to V3 Semiconductor in Toronto, in December 1999. It consists of four tutorial units with 10 Haskell modules and a lot of introductory material about Haskell. This tutorial might be of some help to more technically inclined people.
See also: Advanced programming