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

在计算预算内对提升因子进行精确有理重构。 更多...

#include "exact_factorization.hpp"
#include "internal/exact_factorization_support.hpp"
#include <string>
#include <vector>
#include <unordered_set>
#include <cmath>
#include <limits>
#include <cstdint>
zassenhaus_combine.cpp 的引用(Include)关系图:

浏览该文件的源代码.

类

struct  LMCAS::ZcFactorSearch

命名空间

namespace  LMCAS

函数

ZassenhausResult LMCAS::zassenhaus_combine_checked (const Polynomial< Rational > &poly, const std::vector< Polynomial< BigInt > > &lifted_factors, const BigInt &reconstruction_modulus)
ZassenhausResult LMCAS::zassenhaus_combine_checked (const Polynomial< Rational > &poly, const std::vector< Polynomial< BigInt > > &lifted_factors, const BigInt &reconstruction_modulus, ComputationContext &context)
static ZassenhausResult LMCAS::zassenhaus_combine_impl (const Polynomial< Rational > &poly, const std::vector< Polynomial< BigInt > > &lifted_factors, const BigInt &reconstruction_modulus, ComputationContext &context)
static Polynomial< Rational > LMCAS::zc_bigint_to_rational_poly (const std::vector< BigInt > &coeffs, const std::string &var)
 将 BigInt 系数向量转换为有理系数多项式.
static bool LMCAS::zc_divides_exactly (const Polynomial< Rational > &f, const Polynomial< Rational > &candidate)
 检验候选因子是否整除原多项式(精确有理除法).
static ZassenhausResult LMCAS::zc_enumerate (const Polynomial< Rational > &poly, const std::vector< Polynomial< BigInt > > &lifted_factors, const BigInt &modulus, ComputationContext &context)
static ZassenhausResult LMCAS::zc_finalize (const Polynomial< Rational > &original, std::vector< Polynomial< Rational > > factors, Polynomial< Rational > remaining, Completeness completeness, std::string reason)
static Result< bool > LMCAS::zc_find_factor (ZcFactorSearch &search)
static Polynomial< Rational > LMCAS::zc_make_primitive (const Polynomial< Rational > &poly)
 使候选多项式首一化(首项系数归一).
static bool LMCAS::zc_next_combination (std::vector< size_t > &positions, size_t count)
static bool LMCAS::zc_rational_reconstruction (const BigInt &a, const BigInt &m, BigInt &num, BigInt &den)
 对 BigInt 系数执行有理数重构.
static Polynomial< Rational > LMCAS::zc_reconstruct_candidate (const std::vector< BigInt > &product_coeffs, const BigInt &mod, const std::string &var)
 对子集乘积的所有系数执行有理重构,构造有理系数多项式.
static std::vector< size_t > LMCAS::zc_select_indices (const std::vector< size_t > &active, const std::vector< size_t > &positions)
static Result< std::vector< BigInt > > LMCAS::zc_subset_product (const std::vector< Polynomial< BigInt > > &lifted_factors, const std::vector< size_t > &indices, const BigInt &mod, ComputationContext &context)
 在模 m 下乘以按字典序枚举的提升因子子集.
static Result< bool > LMCAS::zc_try_candidate (ZcFactorSearch &search, const std::vector< size_t > &positions)
static Result< void > LMCAS::zc_validate_lifted_product (const Polynomial< Rational > &poly, const std::vector< Polynomial< BigInt > > &lifted_factors, const BigInt &modulus, ComputationContext &context)

详细描述

在计算预算内对提升因子进行精确有理重构。

在文件 zassenhaus_combine.cpp 中定义.


类说明

◆ LMCAS::ZcFactorSearch

struct LMCAS::ZcFactorSearch

在文件 zassenhaus_combine.cpp 第 347 行定义.

LMCAS::ZcFactorSearch 的协作图:
类成员
vector< size_t > active
ComputationContext & context
vector< Polynomial< Rational > > factors
const vector< Polynomial< BigInt > > & lifted
const BigInt & modulus
Polynomial< Rational > remaining