source: git/kernel/fglm/fglmgauss.h @ 066288

spielwiese
Last change on this file since 066288 was 066288, checked in by Oleksandr Motsak <motsak@…>, 10 years ago
Separating headers: kernel/fglm/ NOTE: in this case git was able to detect the movement of headers despite minor changes to them, in general if git fails to do that one will get separate DELETION and ADDITION of a new file which is to be avoided e.g. at the cost of an extra commit (with all the changes)
  • Property mode set to 100644
File size: 1.0 KB
Line 
1// emacs edit mode for this file is -*- C++ -*-
2
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/*
7* ABSTRACT - header file for the gauss - reducer
8*            (used by fglm)
9*/
10#ifndef FGLMGAUSS_H
11#define FGLMGAUSS_H
12
13#include <kernel/structs.h>
14#include <kernel/fglm/fglmvec.h>
15
16class gaussElem;
17
18class gaussReducer
19{
20private:
21    gaussElem * elems;
22    BOOLEAN * isPivot;
23    int * perm;
24    fglmVector v;
25    fglmVector p;
26    number pdenom;
27    int size;
28    int max;
29public:
30    gaussReducer( int dimen );
31    ~gaussReducer();
32
33    // reduce returns TRUE, if v reduces to 0, FALSE otherwise;
34    BOOLEAN reduce( fglmVector v );
35
36    // if a vector does not reduce to zero, then it can be stored as a new gauss
37    // vector.
38    // Has to be called after reduce!
39    void store();
40
41    // if a vector reduces to zero, then one can get the corresponding fglmVector
42    // of the linear dependence
43    // Has to be called after reduce!
44    fglmVector getDependence();
45};
46
47#endif
Note: See TracBrowser for help on using the repository browser.