Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,61 @@
|
|||
Module CheckIt {
|
||||
Class cArray {
|
||||
a=(,)
|
||||
Function Power(n as integer){
|
||||
cArr=This ' create a copy
|
||||
dim new()
|
||||
new()=cArr.a ' get a pointer from a to new()
|
||||
Let cArr.a=new() ' now new() return a copy
|
||||
cArr.a*=0 ' make zero all elements
|
||||
link cArr.a to v()
|
||||
for i=dimension(cArr.a,1,0) to dimension(cArr.a, 1,1) : v(i,i)=1: next i
|
||||
while n>0
|
||||
let cArr=cArr*this ' * is the operator "*"
|
||||
n--
|
||||
end while
|
||||
=cArr
|
||||
}
|
||||
Operator "*"{
|
||||
Read cArr
|
||||
b=cArr.a
|
||||
if dimension(.a)<>2 or dimension(b)<>2 then Error "Need two 2D arrays "
|
||||
let a2=dimension(.a,2), b1=dimension(b,1)
|
||||
if a2<>b1 then Error "Need columns of first array equal to rows of second array"
|
||||
let a1=dimension(.a,1), b2=dimension(b,2)
|
||||
let aBase=dimension(.a,1,0)-1, bBase=dimension(b,1,0)-1
|
||||
let aBase1=dimension(.a,2,0)-1, bBase1=dimension(b,2,0)-1
|
||||
link .a,b to a(), b() ' change interface for arrays
|
||||
dim base 1, c(a1, b2)
|
||||
for i=1 to a1 : let ia=i+abase : for j=1 to b2 : let jb=j+bBase1 : for k=1 to a2
|
||||
c(i,j)+=a(ia,k+aBase1)*b(k+bBase,jb)
|
||||
next k : next j : next i
|
||||
\\ redim to base 0
|
||||
dim base 0, c(a1, b2)
|
||||
.a<=c()
|
||||
}
|
||||
Module Print {
|
||||
link .a to v()
|
||||
for i=dimension(.a,1,0) to dimension(.a, 1,1)
|
||||
for j=dimension(.a,2,0) to dimension(.a, 2,1)
|
||||
print v(i,j),: next j: print : next i
|
||||
|
||||
}
|
||||
Class:
|
||||
\\ this module used as constructor, and not returned to final group (user object in M2000)
|
||||
Module cArray (r) {
|
||||
c=r
|
||||
Dim a(r,c)
|
||||
For i=0 to r-1 : For j=0 to c-1: Read a(i,j): Next j : Next i
|
||||
.a<=a()
|
||||
}
|
||||
}
|
||||
Print "matrix():"
|
||||
P=cArray(2,3,2,2,1)
|
||||
P.Print
|
||||
For i=0 to 9
|
||||
Print "matrix()^"+str$(i,0)+"="
|
||||
K=P.Power(i)
|
||||
K.Print
|
||||
next i
|
||||
}
|
||||
Checkit
|
||||
Loading…
Add table
Add a link
Reference in a new issue