This file is indexed.

/usr/include/singular/singular/kernel/GBEngine/nc.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
#ifndef KERNEL_NC_H
#define KERNEL_NC_H

#include <kernel/mod2.h>

#ifdef HAVE_PLURAL

#ifdef PLURAL_INTERNAL_DECLARATIONS

# include <polys/nc/gb_hack.h>

#else // #ifdef PLURAL_INTERNAL_DECLARATIONS

# define PLURAL_INTERNAL_DECLARATIONS
# include <polys/nc/gb_hack.h>
# undef PLURAL_INTERNAL_DECLARATIONS

#endif // #ifdef PLURAL_INTERNAL_DECLARATIONS

#include <polys/nc/nc.h>
#include <polys/simpleideals.h>

#include <kernel/polys.h>



static inline ideal nc_GB(const ideal F, const ideal Q, const intvec *w, const intvec *hilb, kStrategy strat, const ring r)
{
  assume(rIsPluralRing(r));
  assume(r->GetNC()->p_Procs.GB!=NULL);

  BBA_Proc gb = cast_A_to_B<void*, BBA_Proc>(r->GetNC()->p_Procs.GB);

  // NOTE: the following code block is a hack in order to make a linker to
  // believe in these functions but in reallity it should not be used.
  // Although it can also serve as an illustration for the
  // NC-initialization procedure for GB hidden away (hackedly) in
  // libpolys.
  // The only other solution would be to separate GB and the whole NC
  // subsystems from both libpolys AND kernel... which would require
  // too much effort and thus cannot be done right now.
  // Therefore this is a TODO for a future (large-scale) cleanup.
  if( gb == NULL)
  {
    if( rIsSCA(r) )
    {
      if (rHasLocalOrMixedOrdering(r))
        gb = sca_mora;
      else
        gb = sca_bba; // sca_gr_bba???
    } else
    {
      if (rHasLocalOrMixedOrdering(r))
        gb = gnc_gr_mora;
      else
        gb = gnc_gr_bba;
    }

    r->GetNC()->p_Procs.GB = cast_A_to_vptr(gb);
  }

  return gb(F, Q, w, hilb, strat, r);
}

/// Compute two-sided GB:
ideal twostd(ideal I);

/// Ann: ???
ideal Approx_Step(ideal L);

#endif // HAVE_PLURAL

#endif // KERNEL_NC_H