/usr/share/axiom-20170501/src/algebra/NCEP.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 71 72 73 74 75 | )abbrev package NCEP NumericComplexEigenPackage
++ Author: P. Gianni
++ Date Created: Summer 1990
++ Date Last Updated: Spring 1991
++ Description:
++ This package computes explicitly eigenvalues and eigenvectors of
++ matrices with entries over the complex rational numbers.
++ The results are expressed either as complex floating numbers or as
++ complex rational numbers depending on the type of the precision parameter.
NumericComplexEigenPackage(Par) : SIG == CODE where
Par : Join(Field,OrderedRing) -- Float or RationalNumber
SE ==> Symbol()
RN ==> Fraction Integer
I ==> Integer
NF ==> Float
CF ==> Complex Float
GRN ==> Complex RN
GI ==> Complex Integer
PI ==> PositiveInteger
NNI ==> NonNegativeInteger
MRN ==> Matrix RN
MCF ==> Matrix CF
MGRN ==> Matrix GRN
MCPar ==> Matrix Complex Par
SUPGRN ==> SparseUnivariatePolynomial GRN
outForm ==> Record(outval:Complex Par,outmult:Integer,outvect:List MCPar)
SIG ==> with
characteristicPolynomial : MGRN -> Polynomial GRN
++ characteristicPolynomial(m) returns the characteristic polynomial
++ of the matrix m expressed as polynomial
++ over complex rationals with a new symbol as variable.
-- while the function in EigenPackage returns Fraction P GRN.
characteristicPolynomial : (MGRN,SE) -> Polynomial GRN
++ characteristicPolynomial(m,x) returns the characteristic polynomial
++ of the matrix m expressed as polynomial
++ over Complex Rationals with variable x.
-- while the function in EigenPackage returns Fraction P GRN.
complexEigenvalues : (MGRN,Par) -> List Complex Par
++ complexEigenvalues(m,eps) computes the eigenvalues of the matrix
++ m to precision eps. The eigenvalues are expressed as complex
++ floats or complex rational numbers depending on the type of
++ eps (float or rational).
complexEigenvectors : (MGRN,Par) -> List(outForm)
++ complexEigenvectors(m,eps) returns a list of
++ records each one containing
++ a complex eigenvalue, its algebraic multiplicity, and a list of
++ associated eigenvectors. All these results
++ are computed to precision eps and are expressed as complex floats
++ or complex rational numbers depending on the type of
++ eps (float or rational).
CODE ==> add
import InnerNumericEigenPackage(GRN,Complex Par,Par)
characteristicPolynomial(m:MGRN) : Polynomial GRN ==
x:SE:=new()$SE
multivariate(charpol m, x)
---- characteristic polynomial of a matrix A ----
characteristicPolynomial(A:MGRN,x:SE):Polynomial GRN ==
multivariate(charpol A, x)
complexEigenvalues(m:MGRN,eps:Par) : List Complex Par ==
solve1(charpol m, eps)
complexEigenvectors(m:MGRN,eps:Par) :List outForm ==
innerEigenvectors(m,eps,factor$ComplexFactorization(RN,SUPGRN))
|