LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
rational_polynomial.hpp
浏览该文件的文档.
1#pragma once
2
3#include "polynomial.hpp"
4#include "rational.hpp"
5#include <utility>
6#include <vector>
7
8namespace LMCAS {
9
10/**
11 * @brief 查找有理系数多项式的所有有理根。
12 * @param poly 有理系数多项式
13 * @return 有理根列表,保留重数;零多项式和常数多项式返回空列表。
14 * 公共非零有理系数先通过首一化消去;一次余式直接精确求解。
15 */
16LMCAS_API std::vector<Rational> find_rational_roots(const Polynomial<Rational>& poly);
17
18/**
19 * @brief 对有理系数多项式进行无平方因子分解。
20 * @param poly 有理系数多项式
21 * @return 因子与重数的列表
22 */
23LMCAS_API std::vector<std::pair<Polynomial<Rational>, int>> square_free_factorization(
24 const Polynomial<Rational>& poly);
25
26}
一元多项式模板类
#define LMCAS_API
std::vector< std::pair< Polynomial< Rational >, int > > square_free_factorization(const Polynomial< Rational > &poly)
std::vector< Rational > find_rational_roots(const Polynomial< Rational > &poly)
一元多项式模板类 Polynomial<T>,支持四则运算,GCD,求导,求值.
精确有理数 Rational,基于 BigInt 分子/分母表示,自动约分。