This file is indexed.

/usr/share/axiom-20170501/src/algebra/INPSIGN.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
)abbrev package INPSIGN InnerPolySign
++ Author: Manuel Bronstein
++ Date Created: 23 Aug 1989
++ Date Last Updated: 19 Feb 1990
++ Description:
++ Find the sign of a polynomial around a point or infinity.

InnerPolySign(R, UP) : SIG == CODE where
  R : Ring
  UP : UnivariatePolynomialCategory R
 
  U ==> Union(Integer, "failed")
 
  SIG ==> with

    signAround : (UP, Integer, R -> U) -> U
      ++ signAround(u,i,f) \undocumented

    signAround : (UP, R, Integer, R -> U) -> U
      ++ signAround(u,r,i,f) \undocumented

    signAround : (UP, R, R -> U) -> U
      ++ signAround(u,r,f) \undocumented
 
  CODE ==> add

    signAround(p:UP, x:R, rsign:R -> U) ==
      (ur := signAround(p, x,  1, rsign)) case "failed" => "failed"
      (ul := signAround(p, x, -1, rsign)) case "failed" => "failed"
      (ur::Integer) = (ul::Integer) => ur
      "failed"
 
    signAround(p, x, dir, rsign) ==
      zero? p => 0
      zero?(r := p x) =>
        (u := signAround(differentiate p, x, dir, rsign)) case "failed"
          => "failed"
        dir * u::Integer
      rsign r
 
    signAround(p:UP, dir:Integer, rsign:R -> U) ==
      zero? p => 0
      (u := rsign leadingCoefficient p) case "failed" => "failed"
      (dir > 0) or (even? degree p) => u::Integer
      - (u::Integer)