Some specific topics are:
- Solving systems of linear equations and inequalities
- Solving systems of polynomial equations, inequalities and inequations
- Solving ordinary differential equations (ODE's)
- Solving systems of partial differential equations (PDE's)
- Symbolic analysis of analytic and special functions)
- high-performance aspects of computer algebra systems
- Applications of the above
We support both research projects and software projects.
This section lists recent research projects
on which the current students of the SCL lab are working together.
These research projects are
While computer algebra systems can perform highly
sophisticated algebraic tasks, they are much less equipped for solving
problems from mathematical analysis in a symbolic manner. Elementary
problems in analysis, such as the manipulation of Taylor series and
the calculation of limits of univariate functions, are supported,
with some limitations, in general-purpose computer algebra systems.
However, limits of multivariate functions and more advanced notions of
limits, like topological closures, are almost absent from such
systems.
Many fundamental concepts in mathematics are defined in terms of limits and it is highly
desirable for computer algebra systems to implement these concepts. However, limits are, by
their essence, hard to compute, in the sense of performing finitely many rational operations
on polynomials or matrices.
Our research group develops better algorithms for fundamental tools
in symbolic analysis, such as:
-
Weierstrass preparation theorem
(and its extensions)
which essentially reduces the local study of analytic functions (and more
general functions) to the local study of polynomials via the manipulation of power series.
- Newton–Puiseux algorithm (and its extensions) which essentially
allows for the local study of curves (separating their branches about a point) via the
manipulation of Laurent and and Puiseux series.
The integer points of rational polyhedral sets are of great interest in various areas of scientific
computing. Two such areas are combinatorial optimization (in particular integer linear programming) and compiler optimization (in particular, the analysis, transformation and scheduling of for-loop nests in computer programs), where a variety of algorithms solve questions
related to the points with integer coordinates belonging to a given polyhedron. Another area is
at the crossroads of computer algebra and polyhedral geometry, with topics such as toric ideals
and Hilbert bases, as well the manipulation of Laurent series.
We develop and implement algorithms for computing integer hulls
of polyhedral sets. We also study the pseudo-periodicity of the vertices
of integer hulls of parametric polyhedral sets.
We are motivated by applications in the area of compiler theory. In particular, the
so-called delinearization problem in the dependence analysis of for-loop nests.
Bohemian matrices are a relatively new research area, with
connections to algebra, algorithms, analysis, combinatorics,
generative art, geometry, graph theory, number theory, numerical
analysis, parallel algorithms, probability, random matrices,
statistics, and more. Current projects in this general area involve
searching for efficient algorithms to compute minimal height companion
matrices and to investigate numerical homotopy (continuation)
algorithms for computation of eigenvalues and nonlinear eigenvalues.
More details can be found at the
Bohemian Matrices
project page.
This section lists the software projects
on which the current students of the SCL lab are working together.
These software projects are:
- either
used and supported by our industrial partners
Maplesoft and
IBM Canada
- or made publicly available in source on dedicated web sites and GitHub.
Therefore, software development is done in our research group
with constraints similar to those of a software company.
In particular, constant interactions between students
and regular meetings with supervisors are of the essence of our work.
Since our lab produces mathematical software, typical interactions
between our students are of the following types:
- an Applied Math student helping a Computer Science student
on a mathematical question,
- a Computer Science student helping an Applied Math student
on an software implementation issue.