/usr/share/axiom-20170501/src/algebra/CDFVEC.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 | )abbrev domain CDFVEC ComplexDoubleFloatVector
++ Author: Waldek Hebisch
++ Description:
++ This is a low-level domain which implements vectors
++ (one dimensional arrays) of complex double precision floating point
++ numbers. Indexing is 0 based, there is no bound checking (unless
++ provided by lower level).
ComplexDoubleFloatVector() : SIG == CODE where
SIG ==> VectorCategory Complex DoubleFloat with
qnew : Integer -> %
++ qnew(n) creates a new uninitialized vector of length n.
++
++X t1:CDFVEC:=qnew 7
vector : List Complex DoubleFloat -> %
++ vector(l) converts the list l to a vector.
++
++X t1:List(Complex(DoubleFloat)):=[1+2*%i,3+4*%i,-5-6*%i]
++X t2:CDFVEC:=vector(t1)
CODE ==> add
Qelt1 ==> CDELT$Lisp
Qsetelt1 ==> CDSETELT$Lisp
qelt(x, i) == Qelt1(x, i)
qsetelt_!(x, i, s) == Qsetelt1(x, i, s)
Qsize ==> CDLEN$Lisp
Qnew ==> MAKE_-CDOUBLE_-VECTOR$Lisp
#x == Qsize x
minIndex x == 0
empty() == Qnew(0$Lisp)
qnew(n) == Qnew(n)
new(n, x) ==
res := Qnew(n)
fill_!(res, x)
elt(x:%, i:Integer) == Qelt1(x, i)
setelt(x : %, i : Integer, s : Complex DoubleFloat) ==
Qsetelt1(x, i, s)
fill_!(x, s) ==
for i in 0..((Qsize(x)) - 1) repeat Qsetelt1(x, i, s)
x
|