This file is indexed.

/usr/share/axiom-20170501/src/algebra/IR2.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
)abbrev package IR2 IntegrationResultFunctions2
++ Author: Manuel Bronstein
++ Date Created: 1987
++ Date Last Updated: 12 August 1992
++ Description:
++ Internally used by the integration packages

IntegrationResultFunctions2(E, F) : SIG == CODE where
  E : Field
  F : Field

  SE  ==> Symbol
  Q   ==> Fraction Integer
  IRE ==> IntegrationResult E
  IRF ==> IntegrationResult F
  UPE ==> SparseUnivariatePolynomial E
  UPF ==> SparseUnivariatePolynomial F
  NEE ==> Record(integrand:E, intvar:E)
  NEF ==> Record(integrand:F, intvar:F)
  LGE ==> Record(scalar:Q, coeff:UPE, logand:UPE)
  LGF ==> Record(scalar:Q, coeff:UPF, logand:UPF)
  NLE ==> Record(coeff:E, logand:E)
  NLF ==> Record(coeff:F, logand:F)
  UFE ==> Union(Record(mainpart:E, limitedlogs:List NLE), "failed")
  URE ==> Union(Record(ratpart:E, coeff:E), "failed")
  UE  ==> Union(E, "failed")

  SIG ==> with

    map : (E -> F, IRE) -> IRF
      ++ map(f,ire) \undocumented

    map : (E -> F, URE) -> Union(Record(ratpart:F, coeff:F), "failed")
      ++ map(f,ure) \undocumented

    map : (E -> F,  UE) -> Union(F, "failed")
      ++ map(f,ue) \undocumented

    map : (E -> F, UFE) ->
               Union(Record(mainpart:F, limitedlogs:List NLF), "failed")
      ++ map(f,ufe) \undocumented

  CODE ==> add

    import SparseUnivariatePolynomialFunctions2(E, F)

    NEE2F: (E -> F, NEE) -> NEF
    LGE2F: (E -> F, LGE) -> LGF
    NLE2F: (E -> F, NLE) -> NLF

    NLE2F(func, r)         == [func(r.coeff), func(r.logand)]

    NEE2F(func, n)         == [func(n.integrand), func(n.intvar)]

    map(func:E -> F, u:UE) == (u case "failed" => "failed"; func(u::E))

    map(func:E -> F, ir:IRE) ==
      mkAnswer(func ratpart ir, [LGE2F(func, f) for f in logpart ir],
                                   [NEE2F(func, g) for g in notelem ir])

    map(func:E -> F, u:URE) ==
      u case "failed" => "failed"
      [func(u.ratpart), func(u.coeff)]

    map(func:E -> F, u:UFE) ==
      u case "failed" => "failed"
      [func(u.mainpart), [NLE2F(func, f) for f in u.limitedlogs]]

    LGE2F(func, lg) ==
      [lg.scalar, map(func, lg.coeff), map(func, lg.logand)]