This file is indexed.

/usr/share/axiom-20170501/src/algebra/EXPRSOL.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
)abbrev package EXPRSOL ExpressionSolve
++ Description:
++ This package has no description

ExpressionSolve(R, F, UTSF, UTSSUPF) : SIG == CODE where
  R : Join(OrderedSet, IntegralDomain, ConvertibleTo InputForm)
  F : FunctionSpace R
  UTSF : UnivariateTaylorSeriesCategory F
  SUP ==> SparseUnivariatePolynomialExpressions
  UTSSUPF : UnivariateTaylorSeriesCategory SUP F

  OP  ==> BasicOperator
  SY  ==> Symbol
  NNI ==> NonNegativeInteger
  MKF ==> MakeBinaryCompiledFunction(F, UTSSUPF, UTSSUPF, UTSSUPF)

  SIG ==> with

    seriesSolve : (F, OP, SY, List F) -> UTSF
      
    replaceDiffs : (F, OP, Symbol) -> F
      
  CODE ==> add


        opelt := operator("elt"::Symbol)$OP

        opdiff := operator("D"::Symbol)$OP

        opcoerce := operator("coerce"::Symbol)$OP

        replaceDiffs (expr, op, sy) ==
            lk := kernels expr
            for k in lk repeat

                if is?(k, op) then
                    arg := first argument k
                    if arg = sy::F 
                    then expr := subst(expr, [k], [(name op)::F])
                    else expr := subst(expr, [k], [opelt [(name op)::F, 
                                                          replaceDiffs(arg, op,
                                                          sy)]])

                if is?(k, %diff) then
                    args := argument k
                    differentiand := 
                     replaceDiffs(subst(args.1, args.2 = args.3), op, sy)
                    expr := subst(expr, [k], [opdiff differentiand])
            expr


        seriesSolve(expr, op, sy, l) ==
            ex := replaceDiffs(expr, op, sy) 
            f := compiledFunction(ex, name op, sy)$MKF
            seriesSolve(x+->f(x, monomial(1,1)$UTSSUPF), l)_
              $TaylorSolve(F, UTSF, UTSSUPF)