This file is indexed.

/usr/share/axiom-20170501/src/algebra/MAGCDOC.spad is in axiom-source 20170501-3.

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
)abbrev category MAGCDOC ModularAlgebraicGcdOperations
++ Description: This category specifies operations needed by
++ ModularAlgebraicGcd package.  Since we have multiple
++ implementations we specify interface here and put
++ implementations in separate packages.  Most operations
++ are done using special purpose abstract representation.
++ Apropriate types are passesd as parametes: MPT is type
++ of modular polynomials in one variable with coefficients
++ in some algebraic extension.  MD is type of modulus.
++ Final results are converted to packed representation,
++ with coefficients (from prime field) stored in one
++ array and exponents (in main variable and in auxilary
++ variables representing generators of algebrac extension)
++ stored in parallel array.

ModularAlgebraicGcdOperations(MPT,MD) : Category == SIG where
  MPT : Type
  MD : Type

  MP ==> Polynomial Integer
  PA ==> U32Vector

  SIG ==> with

    pseudoRem : (MPT, MPT, MD) -> MPT
      ++ pseudoRem(x, y, m) computes pseudoremainder of x by y
      ++ modulo m.

    canonicalIfCan : (MPT, MD) -> Union(MPT, "failed")
      ++ canonicalIfCan(x, m) tries to divide x by its leading
      ++ coefficient modulo m.

    packModulus : (List MP, List(Symbol), Integer) -> Union(MD, "failed")
      ++ packModulus(lp, ls, p) converts lp, ls and prime p which
      ++ together describe algebraic extension to packed
      ++ representation.

    MPtoMPT : (MP, Symbol, List(Symbol), MD) -> MPT
      ++ MPtoMPT(p, s, ls, m) coverts p to packed represntation.

    zero? : MPT -> Boolean
      ++ zero?(x) checks if x is zero.

    degree : MPT -> Integer
      ++ degree(x) gives degree of x.

    packExps : (Integer, Integer, MD) -> SortedExponentVector
      ++ packExps(d, s, m) produces vector of exponents up
      ++ to degree d.  s is size (degree) of algebraic extension.
      ++ Use together with repack1.

    repack1 : (MPT, PA, Integer, MD) -> Void
      ++ repack1(x, a, d, m) stores coefficients of x in a.
      ++ d is degree of x.  Corresponding exponents are given
      ++ by packExps.