This file is indexed.

/usr/include/singular/singular/polys/templates/p_Procs.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
/****************************************
*  Computer Algebra System SINGULAR     *
****************************************/

/***************************************************************
 *  File:    pProcs.h
 *  Purpose: declaration of primitive procs for polys
 *  Author:  obachman (Olaf Bachmann)
 *  Created: 8/00
 *******************************************************************/
#ifndef P_PROCS_H
#define P_PROCS_H

// #include <polys/monomials/ring.h>
// #include <polys/structs.h>
#include <omalloc/omalloc.h>

struct spolyrec; typedef struct spolyrec polyrec; typedef polyrec* poly;
struct ip_sring; typedef struct ip_sring* ring; typedef struct ip_sring const* const_ring;

/*------------- p_Proc stuff ----------------------*/
typedef poly (*p_Copy_Proc_Ptr)(poly p, const ring r);
typedef void (*p_Delete_Proc_Ptr)(poly *p, const ring r);
typedef poly (*p_ShallowCopyDelete_Proc_Ptr)(poly p, const ring r, omBin dest_bin);
typedef poly (*p_Mult_nn_Proc_Ptr)(poly p, const number n, const ring r);
typedef poly (*pp_Mult_nn_Proc_Ptr)(poly p, const number n, const ring r);
typedef poly (*p_Mult_mm_Proc_Ptr)(poly p, const poly m, const ring r);
typedef poly (*pp_Mult_mm_Proc_Ptr)(poly p, const poly m, const ring r);
typedef poly (*pp_Mult_mm_Noether_Proc_Ptr)(poly p, const poly m,
                                            const poly spNoether, int &ll,
                                            const ring r);
typedef poly (*p_Add_q_Proc_Ptr)(poly p, poly q, int & shorter, const ring r);
typedef poly (*p_Minus_mm_Mult_qq_Proc_Ptr)(poly p, poly m, poly q,
                                            int &shorter, const poly spNoether,
                                            const ring r);
typedef poly (*p_Neg_Proc_Ptr)(poly p, const ring r);
typedef poly (*pp_Mult_Coeff_mm_DivSelect_Proc_Ptr)(poly p, const poly m,
                                                    int &shorter,const ring r);
typedef poly (*pp_Mult_Coeff_mm_DivSelectMult_Proc_Ptr)
  (poly p,const poly m, const poly a, const poly b, int &shorter,const ring r);

typedef poly (*p_Merge_q_Proc_Ptr)(poly p, poly q, const ring r);
typedef void (*p_kBucketSetLm_Proc_Ptr)(kBucket_pt bucket);

typedef struct p_Procs_s
{
  p_Copy_Proc_Ptr                       p_Copy;
  p_Delete_Proc_Ptr                     p_Delete;
  p_ShallowCopyDelete_Proc_Ptr          p_ShallowCopyDelete;
  p_Mult_nn_Proc_Ptr                    p_Mult_nn;
  pp_Mult_nn_Proc_Ptr                   pp_Mult_nn;
  pp_Mult_mm_Proc_Ptr                   pp_Mult_mm;
  pp_Mult_mm_Noether_Proc_Ptr           pp_Mult_mm_Noether;
  p_Mult_mm_Proc_Ptr                    p_Mult_mm;
  p_Add_q_Proc_Ptr                      p_Add_q;
  p_Minus_mm_Mult_qq_Proc_Ptr           p_Minus_mm_Mult_qq;
  p_Neg_Proc_Ptr                        p_Neg;
  pp_Mult_Coeff_mm_DivSelect_Proc_Ptr   pp_Mult_Coeff_mm_DivSelect;
  pp_Mult_Coeff_mm_DivSelectMult_Proc_Ptr   pp_Mult_Coeff_mm_DivSelectMult;
  p_Merge_q_Proc_Ptr                    p_Merge_q;
  p_kBucketSetLm_Proc_Ptr               p_kBucketSetLm;
} pProcs_s;


void p_ProcsSet(ring r, p_Procs_s* p_Procs);
#ifdef RDEBUG
void p_Debug_GetSpecNames(const ring r, const char* &field, const char* &length,
                          const char* &ord);
void p_Debug_GetProcNames(const ring r, p_Procs_s* p_Procs);
#endif
// if set, then dynamic p_procs are used, otherwise static
extern const BOOLEAN p_procs_dynamic;

#endif /* ! P_PROCS_H */