FLINT3.7.0-dev

_ca_mat_charpoly_berkowitz, ca_mat_charpoly_berkowitz, _ca_mat_charpoly_danilevsky, ca_mat_charpoly_danilevsky, _ca_mat_charpoly, ca_mat_charpoly

Synopsis#include <flint/ca_mat.h>
void _ca_mat_charpoly_berkowitz(ca_ptr cp, const ca_mat_t mat, ca_ctx_t ctx)source
void ca_mat_charpoly_berkowitz(ca_poly_t cp, const ca_mat_t mat, ca_ctx_t ctx)source
int _ca_mat_charpoly_danilevsky(ca_ptr cp, const ca_mat_t mat, ca_ctx_t ctx)source
int ca_mat_charpoly_danilevsky(ca_poly_t cp, const ca_mat_t mat, ca_ctx_t ctx)source
void _ca_mat_charpoly(ca_ptr cp, const ca_mat_t mat, ca_ctx_t ctx)source
void ca_mat_charpoly(ca_poly_t cp, const ca_mat_t mat, ca_ctx_t ctx)source

Sets cp to the characteristic polynomial \det(xI - A) of the square matrix mat. The underscore versions write n + 1 coefficients.

The berkowitz version is division-free, uses O(n^4) operations and always succeeds. The danilevsky version uses O(n^3) operations with divisions; it needs zero tests and returns 0 if one fails (1 on success). Both are wrappers of the corresponding gr_mat functions. The default version currently always uses the Berkowitz algorithm.

Cite this page

The FLINT team, “_ca_mat_charpoly_berkowitz, ca_mat_charpoly_berkowitz, _ca_mat_charpoly_danilevsky, ca_mat_charpoly_danilevsky, _ca_mat_charpoly, ca_mat_charpoly (ca_mat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/ca_mat/_ca_mat_charpoly_berkowitz.html (generated 2026-10-20).