source: git/libpolys/polys/clapsing.h @ e070751

spielwiese
Last change on this file since e070751 was dc79bd, checked in by Oleksandr Motsak <motsak@…>, 12 years ago
Major Update for Enumerators + Fixes for Algrbraic & Transcendental extensions General: chg: cleanup + documentation + additional assumes Enumerators: chg: some polish on Enumerators add: CRecursivePolyCoeffsEnumerator<ConverterPolicy> for recursive treatment of converted coeffs as Enumerators Coeffs: chg: use mpz_lcm for readability in nlClearDenominators + cleanup add: nlClear*NoPositiveLead variants should not make LC positive chg: all nlClear* are not static in order to be usable from alg / trans exts. fix: fixed a bug in ndClearContent AlgExt: add: nCoeff_is_Q_algext for checking an alg. ext. of Q add: naClear* for alg. ext. over Q NOTE: coeffs are polynomials in Q[a] - one should simply consider each of them recursively as a collection of numbers... NOTE: compute GCDs over Alg. Ext... + gcds of (int.) numbers!? NOTE: trying to be conform with older Singular: no negative leading coeff. normalization chg: Alg. Ext: use singclap_*gcd (instead of Frank's gcd-stuff) p_poly: add: p_Cleardenom_n/p_Cleardenom also clear content afterwards... chg: major and minor changes to p_Content/p_Cleardenom_n/p_Cleardenom + cleanup add: additionally trying to assure positive leading coeff. after p_Content/p_Cleardenom_n(/p_Cleardenom?) NOTE: which should not be needed as n_ClearDenominators/n_ClearContent are supposed to assure that themselves! add: more assumes to p_polys.cc NOTE: massive usage of enumerators form p_* causes problems - only doing that for Q_a()! NOTE: do -normalization over Q(x...) TransExt: add: ntClear* for trans. ext's fix: correct ntGetDenom/ntGetNumerator (thanks to pSubstPar), NOTE: no negative denominator out of ntGetNumerator/ntGetDenom! add: first inefficient ntClearContent/Q and ntClearDenominators/Q & F_p impl. NOTE: careful with the use of nlClear* ! (only over Q!) add: added ntTest to transext.cc on most in/outs + use ntInit(poly)! NOTE: trying to fix the monic-poly-gcd problem in ntClearDenominators!
  • Property mode set to 100644
File size: 1.9 KB
Line 
1// emacs edit mode for this file is -*- C++ -*-
2/****************************************
3*  Computer Algebra System SINGULAR     *
4****************************************/
5/*
6* ABSTRACT: interface between Singular and factory
7*/
8
9
10#ifndef INCL_FACTORYSING_H
11#define INCL_FACTORYSING_H
12
13
14#ifdef HAVE_FACTORY
15
16#include <polys/monomials/p_polys.h>
17#include <polys/monomials/ring.h>
18#include <polys/simpleideals.h>
19#include <misc/intvec.h>
20#include <polys/matpol.h>
21#include <coeffs/bigintmat.h>
22//#include <polys/clapconv.h>
23//#include <kernel/longtrans.h>
24
25/// destroys f and g
26poly singclap_gcd ( poly f, poly g, const ring r );
27
28
29// commented out!
30// poly singclap_alglcm ( poly f, poly g, const ring r );
31// void singclap_algdividecontent ( napoly f, napoly g, napoly &ff, napoly &gg );
32
33poly singclap_resultant ( poly f, poly g , poly x, const ring r);
34
35BOOLEAN singclap_extgcd ( poly f, poly g, poly &res, poly &pa, poly &pb , const ring r);
36
37poly singclap_pdivide ( poly f, poly g, const ring r );
38
39void singclap_divide_content ( poly f, const ring r);
40
41ideal singclap_factorize ( poly f, intvec ** v , int with_exps, const ring r);
42
43ideal singclap_sqrfree ( poly f, intvec ** v , int with_exps, const ring r );
44
45#ifdef HAVE_NTL
46#if 1
47matrix singntl_HNF(matrix A, const ring r);
48intvec* singntl_HNF(intvec* A, const ring r);
49matrix singntl_LLL(matrix A, const ring r);
50intvec* singntl_LLL(intvec* A, const ring r);
51#endif
52#endif
53
54BOOLEAN singclap_isSqrFree(poly f, const ring r);
55
56#ifdef HAVE_LIBFAC
57 matrix singclap_irrCharSeries ( ideal I, const ring r);
58 char* singclap_neworder ( ideal I, const ring r);
59#endif
60
61poly singclap_det( const matrix m, const ring r );
62int singclap_det_i( intvec * m, const ring r );
63number singclap_det_bi( bigintmat * m, const coeffs cf);
64
65number   nChineseRemainder(number *x, number *q,int rl, const coeffs r);
66
67
68#endif /* HAVE_FACTORY */
69
70
71#endif /* INCL_FACTORYSING_H */
72
Note: See TracBrowser for help on using the repository browser.