This file is indexed.

/usr/include/singular/singular/kernel/GBEngine/tgbgauss.h is in libsingular4-dev-common 1:4.1.0-p3+ds-2build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
#ifndef TGBGAUSS_HEADER
#define TGBGAUSS_HEADER
/****************************************
*  Computer Algebra System SINGULAR     *
****************************************/
/*
* ABSTRACT: gauss implementation for F4 header
*/
// #include <kernel/mod2.h>
#include <coeffs/numbers.h>
#include <polys/monomials/p_polys.h>
#include <omalloc/omallocClass.h>
//#include "tgb_internal.h"

class slimgb_alg;

class tgb_matrix{
 private:
  number** n;
  int columns;
  int rows;
  BOOLEAN free_numbers;
 public:
  tgb_matrix(int i, int j);
  ~tgb_matrix();
  int get_rows();
  int get_columns();
  void print();
  void perm_rows(int i, int j);
  void set(int i, int j, number n);
  number get(int i, int j);
  BOOLEAN is_zero_entry(int i, int j);
  void free_row(int row, BOOLEAN free_non_zeros=TRUE);
  int min_col_not_zero_in_row(int row);
  int next_col_not_zero(int row,int pre);
  BOOLEAN zero_row(int row);
  void mult_row(int row,number factor);
  void add_lambda_times_row(int add_to,int summand,number factor);
  int non_zero_entries(int row);
};

class mac_poly_r :public omallocClass
{
public:
  number coef;
  mac_poly_r* next;
  int exp;
  mac_poly_r():next(NULL){}
};
//mac_polys exp are smaller iff they are greater by monomial ordering
//corresponding to solving linear equations notation

typedef mac_poly_r* mac_poly;

class tgb_sparse_matrix{
 private:
  ring r;
  mac_poly* mp;
  int columns;
  int rows;
  BOOLEAN free_numbers;
 public:
  void sort_rows();
  friend poly free_row_to_poly(tgb_sparse_matrix* mat, int row, poly* monoms, int monom_index);
  friend void init_with_mac_poly(tgb_sparse_matrix* mat, int row, mac_poly m);
  tgb_sparse_matrix(int i, int j, ring rarg);
  ~tgb_sparse_matrix();
  int get_rows();
  int get_columns();
  void print();
  void row_normalize(int row);
  void row_content(int row);
  //  void perm_rows(int i, int j);
  void perm_rows(int i, int j){
  mac_poly h;
  h=mp[i];
  mp[i]=mp[j];
  mp[j]=h;
  }
  void set(int i, int j, number n);
  number get(int i, int j);
  BOOLEAN is_zero_entry(int i, int j);
  void free_row(int row, BOOLEAN free_non_zeros=TRUE);
  int min_col_not_zero_in_row(int row);
  int next_col_not_zero(int row,int pre);
  BOOLEAN zero_row(int row);
  void mult_row(int row,number factor);
  void add_lambda_times_row(int add_to,int summand,number factor);
  int non_zero_entries(int row);
};
void simple_gauss(tgb_sparse_matrix* mat, slimgb_alg* c);
void simple_gauss2(tgb_matrix* mat);



mac_poly mac_p_add_ff_qq(mac_poly a, number f,mac_poly b);

void mac_mult_cons(mac_poly p,number c);
int mac_length(mac_poly p);

//contrary to delete on the mac_poly_r, the coefficients are also destroyed here
void mac_destroy(mac_poly p);

#endif