/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 */
|