source: git/libfac/factor.h @ 82716e

spielwiese
Last change on this file since 82716e was d4c1d0, checked in by Jens Schmidt <schmidt@…>, 26 years ago
* header.tpl, factor.h, factor/version.cc (libfac_name, libgac_version, libfac_date, libfac_athur): defined/declared const git-svn-id: file:///usr/local/Singular/svn/trunk@1424 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.8 KB
Line 
1// Header file for libfac.a
2// Created by -- makeheader --
3///////////////////////////////////////
4#ifndef FACTOR_H
5#define FACTOR_H
6
7#include <factory.h>
8
9// Set this to a nonzero value to interrupt the computation
10extern int libfac_interruptflag;
11
12// some values you can ask for:
13extern const char * libfac_name;
14extern const char * libfac_version;
15extern const char * libfac_date;
16extern const char * libfac_author;
17
18//// Note: second argument for Factorize is for internal use only.
19CFFList Factorize( const CanonicalForm & F, int is_SqrFree=0 ) ;
20
21//// Note: InternalSqrFree does only the work needed for factorization.
22// CFFList SqrFree( const CanonicalForm & f ) ;
23
24typedef List<CFList> ListCFList;
25typedef List<int> IntList ;
26typedef ListIterator<int> IntListIterator ;
27typedef List<Variable> Varlist;
28typedef ListIterator<Variable> VarlistIterator;
29
30////////////////////////////////////////
31/// from charsets:
32
33class PremForm {
34public:
35  CFList FS1;
36  CFList FS2;
37  inline PremForm& operator=( const PremForm&  value ){
38    if ( this != &value ){
39      FS1 = value.FS1;
40      FS2 = value.FS2;
41    }
42    return *this;
43  }
44};
45
46CanonicalForm  Prem( const CanonicalForm &f, const CanonicalForm &g );
47CanonicalForm  Prem( const CanonicalForm &f, const CFList &L );
48CFList         Prem( const CFList &AS, const CFList &L );
49CFList     MCharSetN( const CFList &PS, PremForm & Remembern );
50ListCFList IrrCharSeries( const CFList &PS, int opt=0 );
51
52// the next three give you a heuristically optimal reorderd list of the
53// variables. For internal and external (e.g. Singular/Macaulay2) library use.
54// This is really experimental!
55// See the comments in reorder.cc.
56//
57// this gives you a heuristically optimal ordering for the ring variables
58// if you use the irreducible characteristic series.
59Varlist  neworder( const CFList & PolyList );
60// the same as neworder(...) only returning a list of CanonicalForm 's
61// (i.e. the variables as CanonicalForms)
62CFList   newordercf(const CFList & PolyList );
63// the same as neworder(...) only returning a list of int 's (i.e. the levels)
64IntList  neworderint(const CFList & PolyList );
65
66// for library internal use only:
67// next function reorders the variables in PS:
68// a code segment to use:
69// ...
70// #include <tmpl_inst.h> // for typedef's
71// CFList PS= <setup-your-list-of-CanonicalForms>;
72// Varlist betterorder= neworder(PS);
73// PS= reorder(betterorder,PS); // reorder variables in PS from oldorder
74//                                 to betterorder
75// ListCFList Q= IrrCharSeries( PS );
76// Q= reorder(betterorder,Q);   // revert ordering to oldorder
77//
78CFList reorder( const Varlist & betterorder, const CFList & PS);
79CFFList reorder( const Varlist & betterorder, const CFFList & PS);
80ListCFList reorder(const Varlist & betterorder, const ListCFList & Q);
81
82
83#endif /* FACTOR_H */
Note: See TracBrowser for help on using the repository browser.