# Numeric Quest

(Difference between revisions)

## 1 Introduction

Numeric Quest is a collection of Haskell modules written by Jan Skibinski. The modules in Numeric Quest are useful for Mathematics in general, and Quantum Mechanics in particular.

Some of the modules in Numeric Quest are hosted on haskell.org. Those are summarized below.

Other modules in Numeric Quest are currently only available via the Internet Archive. See Jan Skibinski's Haskell page via the Internet Archive for more information.

## 2 Numeric Quest modules hosted on haskell.org

### 2.1 Rational numbers

Fraction.hs
This is a generalized Rational in disguise. Rational, as a type

synonim, could not be directly made an instance of any new class at all. But we would like it to be an instance of Transcendental, where trigonometry, hyperbolics, logarithms, etc. are defined. So here we are tiptoe-ing around, re-defining everything from scratch, before designing the transcendental functions -- which is the main motivation for this module.

Aside from its ability to compute transcendentals, Fraction

allows for denominators zero. Unlike Rational, Fraction does not produce run-time errors for zero denominators, but use such entities as indicators of invalid results -- plus or minus infinities. Operations on fractions never fail in principle.

### 2.2 Polynomials

Roots.hs
List of complex roots of a polynomial

a0 + a1*x + a2*x^2...

### 2.3 General linear algebra

Eigensystem.hs
This module extends the QuantumVector module by providing functions

to calculate eigenvalues and eigenvectors of Hermitian operators. Such toolkit is of primary importance due to pervasiveness of eigenproblems in Quantum Mechanics.

EigensystemNum.hs

### 2.4 Tensors

Tensor.lhs
This is a quick sketch of what might be a basis of a real

Tensor module.

Datatype Tensor defined here is an instance

of class Eq, Show and Num. In addition, several customized operations are defined for variety of inner products.

Tensor components are Doubles.
The shape of tensors defined here involves two parameters:

dimension and rank. Rank is associated with the depth of the tensor tree and corresponds to a total number of indices by which you can access the individual components.

### 2.5 Quantum mechanics

QuantumVector.lhs
This is our attempt to model the abstract Dirac's formalism