SourceForge.net Logo

Welcome!

Welcome to the home page of laurentpoly project and its "children" (at the moment only recover_stream)

Brief introduction

What is laurentpoly?
Laurentpoly was born as a C++ template library to work with multidimensional finitely support signals. It evolved into a library which allows to do computations with generic commutative rings
What is recover_stream?
Recover_stream is a library based on laurentpoly. Its goal is to recover lost coefficients from a frame coefficient stream. Although the last sentence could make no sense to you, it is not possible to explain here what it means. Let me refer you to my research page, if you are interested in more details.
Where can I find more informations?
Follow the link

Overview of laurentpoly

Laurentpoly is a C++ template library which allows to work with multivariate Laurent polynomials or, equivalently, with multidimensional signals with finite support. The strong point of this library is that the signal samples (equivalently, the polynomial coefficients) are not constrained to be of a fixed type, but they can belong to any commutative ring. This allows to work easily with signals defined over integeres, rationals, double, complex, finite fields, rational functions and so on... The only constraint is that the coefficient ring must be correspond to a C++ type which satisfies the interface specified in the documentation (called General Ring Interface or GRI for short). The library provides the necessary functions in order to use C++ types (such as double, int, complex<double>) as coefficient rings.

Besides the signal-related functions, the library provides also a template library for matrices with entries in a commutative ring. This with the signal-related part makes easy to work with polynomial matrices.

The matrix related part has also some high-level functions such as a function smith_normal_form to compute the Smith normal form. Note that since all the functions have been written by exploiting only the GRI, they will work whatever the ring used. For example, smith_normal_form will compute the Smith normal form of matrices whose entries are integers, polynomials with rational/real/complex coefficients, polynomials with coefficient in a finite field and so on.

What you find in laurentpoly

System requirements

Laurentpoly is written in C++ and since it is just number-crunching software it should be fairly portable. I develop it on Linux with g++ 3.4.2. I compiled it also on OpenBSD 3.4 with g++ 2.95.3, on Solaris 9 with g++ 3.3.2 and on Linux 2.6 (AMD64) with g++ 3.4.2.

Since I use some quite recent C++ constructs, I suggest you to get a fairly new compiler (for example, I could not compile it with g++ 2.95.2 since the sstream header is missing).

Documentation

If you want to give a look to the documentation, please follow

Download

You can download the most recent version of laurentpoly from Sourceforge


Overview of recover_stream

Recover_stream is a C++ library for recovering losses in coefficient streams obtained by means of an oversampled filter bank. If the previous sentence makes no sense to you, then probably you do not need this library. Actually, recover_stream is an implementation of an algorithm I developed at University of Udine during my researches about robust multimedia transmission. Because of this, it is clear that recover_stream has a very narrow field of application.

If the sentence above almost made sense to you and you want to know something more about the algorithm it implements, may I suggest you to give a look to this introductory page .

When I began working on recover_stream I wanted to make a libray which would meet the following goals

Those goals were met by interfacing the library to the ``external world'' by means of a C++ abstract class StreamDescr from which the user should derive a "concrete"e; class suited to its own needs. Since the filter bank based case is the most common case, the library provides a pret-a-porter class FilterBankStream.

What you find in recover_stream

System requirements

Recover_stream is written in C++ and since it is just number-crunching software it should be fairly portable. I develop it on Linux with g++ 3.4.2. I compiled it also on OpenBSD 3.4 with g++ 2.95.3 on Solaris 9 with g++ 3.3.2 and on Linux 2.6 (AMD64) with g++ 3.4.2.

Since I use some quite recent C++ constructs, I suggest you to get a fairly new compiler (for example, I could not compile it with g++ 2.95.2 since the sstream header is missing).

Although recover_stream uses some functions of laurentpoly you do need to have it installed since the most recent version of laurentpoly is included (as a subpackage) in the distribution of recover_stream.

Documentation

If you want to give a look to the documentation, please follow

Download

You can download the most recent version of recover_stream from Sourceforge