source: git/factory/bifac.h @ 958fc4

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