29 lines
543 B
Plaintext
29 lines
543 B
Plaintext
real vector range1(real scalar n, real scalar i) {
|
|
if (i < 1 | i > n) {
|
|
return(1::n)
|
|
} else if (i == 1) {
|
|
return(2::n)
|
|
} else if (i == n) {
|
|
return(1::n-1)
|
|
} else {
|
|
return(1::i-1\i+1::n)
|
|
}
|
|
}
|
|
|
|
real matrix submat(real matrix a, real scalar i, real scalar j) {
|
|
return(a[range1(rows(a), i), range1(cols(a), j)])
|
|
}
|
|
|
|
real scalar sumrec(real matrix a, real scalar x) {
|
|
real scalar n, s, p
|
|
n = rows(a)
|
|
if (n==1) return(a[1,1])
|
|
s = 0
|
|
p = 1
|
|
for (i=1; i<=n; i++) {
|
|
s = s+p*a[i,1]*sumrec(submat(a, i, 1), x)
|
|
p = p*x
|
|
}
|
|
return(s)
|
|
}
|