LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
multivariate_factor.hpp 文件参考

多元多项式因式分解器公共 API。 更多...

#include "lmcas_export.hpp"
#include "multivariate_poly.hpp"
#include "computation_context.hpp"
#include "result.hpp"
#include <optional>
#include <string>
#include <tuple>
#include <vector>
multivariate_factor.hpp 的引用(Include)关系图:
此图展示该文件被哪些文件直接或间接地引用了:

浏览该文件的源代码.

类

struct  LMCAS::MultiFactorResult
 多元因式分解结果 更多...
struct  LMCAS::SquareFreeDecomp
 无平方因子分解结果 更多...

命名空间

namespace  LMCAS
namespace  LMCAS::detail
 多元 Hensel 提升(单变量步)

类型定义

using LMCAS::MultiFactorCheckedResult = Result<MathResult<MultiFactorResult>>

函数

__attribute__((visibility("default"))) Result< EqvProfile > eqv_profile_from_name(const std LMCAS::__attribute__ ((visibility("default"))) BerlekampResult berlekamp_factor(const Polynomial< Rational > &poly
 Berlekamp 模素数分解(内部接口).
 LMCAS::detail::__attribute__ ((visibility("default"))) bool is_linear(const MultiPoly &poly
 检测是否为线性多项式

变量

const MultiPoly & LMCAS::b
const std::string & LMCAS::detail::main_var
const std::string & LMCAS::main_var

详细描述

多元多项式因式分解器公共 API。

采用 Wang-EEZ(Enhanced Extended Zassenhaus)算法,将多元多项式分解为 不可约因子的乘积。核心流程:预处理(容度/本原/无平方)→ 求值同态降维 → 一元分解 → 多元 Hensel 提升 → 试除验证。

参见
Wang, P.S. "An Improved Multivariate Polynomial Factoring Algorithm." Mathematics of Computation, 32(144), 1978.
Geddes, Czapor, Labahn. "Algorithms for Computer Algebra." Chapter 15.

在文件 multivariate_factor.hpp 中定义.


类说明

◆ LMCAS::MultiFactorResult

struct LMCAS::MultiFactorResult

多元因式分解结果

满足不变量:constant * ∏(factors[i] ^ multiplicities[i]) == 原多项式。 Complete 结果的终端因子已证明不可约;Inconclusive 结果保留精确乘积。

在文件 multivariate_factor.hpp 第 33 行定义.

LMCAS::MultiFactorResult 的协作图:
类成员
Rational constant 数值常数因子
vector< MultiPoly > factors 精确因子列表(各因子本原)
vector< int > multiplicities 各因子的重数

◆ LMCAS::SquareFreeDecomp

struct LMCAS::SquareFreeDecomp

无平方因子分解结果

components[i] 的重数为 i+1。 满足:f = components[0] * components[1]² * components[2]³ * ...(至多差常数)。

在文件 multivariate_factor.hpp 第 100 行定义.

LMCAS::SquareFreeDecomp 的协作图:
类成员
vector< MultiPoly > components 各无平方分量,components[i] 重数为 i+1