source: git/factory/bifac.h @ b1dfaf

spielwiese
Last change on this file since b1dfaf was 4dfcb1, checked in by Hans Schönemann <hannes@…>, 16 years ago
*hannes: cstdio git-svn-id: file:///usr/local/Singular/svn/trunk@11012 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.8 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#ifdef HAVE_CSTDIO
24#include <cstdio>
25#else
26#include <stdio.h>
27#endif
28#ifdef HAVE_IOSTREAM
29#include <fstream>
30#include <iostream>
31#elif defined(HAVE_IOSTREAM_H)
32#include <fstream.h>
33#include <iostream.h>
34#endif
35#include <iomanip.h>
36#endif
37
38/*BEGINPUBLIC*/
39
40CFFList AbsFactorize( const CanonicalForm  & a );
41
42class BIFAC
43{
44////////////////////////////////////////////////////////////////
45  public:
46//////////////////////////////////////////////////////////////// 
47
48  // === KONST-/ DESTRUKTOREN ====
49  BIFAC         ( void );  // Konstruktor
50  virtual ~BIFAC( void );  // DESTRUKTOR
51
52  // === Funktionen =======
53  void     bifac(CanonicalForm f, bool absolute=true);
54  CFFList  getFactors( void ){ return  gl_RL; };
55
56
57////////////////////////////////////////////////////////////////
58 private:
59////////////////////////////////////////////////////////////////
60
61  // === Funktionen =======
62  void   passedTime();
63  void   biGanzMachen(  CanonicalForm & f );
64  void   biNormieren( CanonicalForm & f ) ;
65  void   convertResult(  CanonicalForm & f, int ch, int sw);
66  int    findCharacteristic(CanonicalForm f);
67//  void   matrix_drucken( CFMatrix M );
68  long int  anz_terme(  CanonicalForm & f );
69
70  CFList matrix2basis(CFMatrix A, int dim, int m, int n, CanonicalForm f);
71  CFList basisOfG(CanonicalForm f);
72  CFMatrix createA (CFList G, CanonicalForm f);
73  CanonicalForm  create_g    (CFList G);
74  CFList         createRg    (CFList G, CanonicalForm f);
75  CFList         createEg    (CFList G, CanonicalForm f);
76  CFList         createEgUni (CFList G, CanonicalForm f);
77
78  void     unifac(CanonicalForm f, int grad);
79  CanonicalForm RationalFactor (CanonicalForm phi, CanonicalForm f, \
80                                CanonicalForm fx, CanonicalForm g);
81  void   RationalFactorizationOnly (CFFList Phis, CanonicalForm f, CanonicalForm g);
82  CFList getAbsoluteFactors (CanonicalForm f1, CanonicalForm phi);
83  void   AbsoluteFactorization (CFFList Phis, CanonicalForm f, CanonicalForm g);
84  void   bifacSqrFree( CanonicalForm f );
85  void   bifacMain(CanonicalForm f);
86 
87
88  // === Variable =======
89  CFFList gl_RL;    // where to store the rational factorization
90  CFList  gl_AL;    // where to store the absolute factorization
91  bool   absolute;  // Compute an absolute factorization as well?
92  int    exponent;  //
93};
94
95/*ENDPUBLIC*/
96
97#endif
98// =============== Ende der Datei 'bifac.h' ============================
99
100#endif
Note: See TracBrowser for help on using the repository browser.