polyjam is a C++ library for setting up algebraic geometry problems and generating efficient C++ code that solves the underlying polynomial systems of equations. It notably does so by applying the theory of Gröbner bases. It is mostly a math library, and its main functionality is a mini CAS (Computer Algebra System) for polynomial manipulations in symbolic and finite prime fields. The custom symbolic computation capabilities also lead to the library’s main advantage with respect to other solver generators: A separation of known and unknown variables, meaning coefficients and monomials. This permits a quick solution of even larger problems with geometrically consistent finite field coefficients.
polyjam is the driving force behind OpenGV, as all my geometric computer vision algorithms that involve the solution of multivariate polynomial equation systems contain solvers generated by this library. Problems of such form may be required in many engineering disciplines, which is why the tools provided through polyjam are of potentially broad applicability. Please read the documentation for in-depth user instructions. The library is published under the GPL license, and thus is free for use in academia or non-proprietary applications. It is also available through github.
Australian Centre for Robotic Vision
2 George Street Brisbane, 4001
+61 7 3138 7549