source: git/factory/bifac.h @ 19fc57b

fieker-DuValspielwiese
Last change on this file since 19fc57b was 0c4a34b, checked in by Hans Schönemann <hannes@…>, 19 years ago
*hannes: HAVE_BIFAC git-svn-id: file:///usr/local/Singular/svn/trunk@8338 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.7 KB
Line 
1/* ======================================================================
2    Dateiname:          bifac.h
3    Autor:              Holger L. Cröni
4    Bearbeitung:        29. August 2002
5
6
7    Beschreibung: Klasse zur Faktorisierung bivariater Polynome
8   =================================================================== */
9
10#ifndef bifac__H
11#define bifac__H
12
13
14#include <time.h>
15#include <factoryconf.h>
16#ifdef HAVE_BIFAC
17
18#include "lgs.h"
19#include "bifacConfig.h"
20
21// === IO-Streams ===
22#ifndef NOSTREAMIO
23#include <stdio.h>
24#include <fstream.h>
25#include <iostream.h>
26#include <iomanip.h>
27#endif
28
29/*BEGINPUBLIC*/
30
31CFFList AbsFactorize( const CanonicalForm  & a );
32
33class BIFAC
34{
35////////////////////////////////////////////////////////////////
36  public:
37//////////////////////////////////////////////////////////////// 
38
39  // === KONST-/ DESTRUKTOREN ====
40  BIFAC         ( void );  // Konstruktor
41  virtual ~BIFAC( void );  // DESTRUKTOR
42
43  // === Funktionen =======
44  void     bifac(CanonicalForm f, bool absolute=true);
45  CFFList  getFactors( void ){ return  gl_RL; };
46
47
48////////////////////////////////////////////////////////////////
49 private:
50////////////////////////////////////////////////////////////////
51
52  // === Funktionen =======
53  void   passedTime();
54  void   biGanzMachen(  CanonicalForm & f );
55  void   biNormieren( CanonicalForm & f ) ;
56  void   convertResult(  CanonicalForm & f, int ch, int sw);
57  int    findCharacteristic(CanonicalForm f);
58//  void   matrix_drucken( CFMatrix M );
59  long int  anz_terme(  CanonicalForm & f );
60
61  CFList matrix2basis(CFMatrix A, int dim, int m, int n, CanonicalForm f);
62  CFList basisOfG(CanonicalForm f);
63  CFMatrix createA (CFList G, CanonicalForm f);
64  CanonicalForm  create_g    (CFList G);
65  CFList         createRg    (CFList G, CanonicalForm f);
66  CFList         createEg    (CFList G, CanonicalForm f);
67  CFList         createEgUni (CFList G, CanonicalForm f);
68
69  void     unifac(CanonicalForm f, int grad);
70  CanonicalForm RationalFactor (CanonicalForm phi, CanonicalForm f, \
71                                CanonicalForm fx, CanonicalForm g);
72  void   RationalFactorizationOnly (CFFList Phis, CanonicalForm f, CanonicalForm g);
73  CFList getAbsoluteFactors (CanonicalForm f1, CanonicalForm phi);
74  void   AbsoluteFactorization (CFFList Phis, CanonicalForm f, CanonicalForm g);
75  void   bifacSqrFree( CanonicalForm f );
76  void   bifacMain(CanonicalForm f);
77 
78
79  // === Variable =======
80  CFFList gl_RL;    // where to store the rational factorization
81  CFList  gl_AL;    // where to store the absolute factorization
82  bool   absolute;  // Compute an absolute factorization as well?
83  int    exponent;  //
84};
85
86/*ENDPUBLIC*/
87
88#endif
89// =============== Ende der Datei 'bifac.h' ============================
90
91#endif
Note: See TracBrowser for help on using the repository browser.