diff options
| author | Richard Qin <richard.qin.001@gmail.com> | 2026-09-15 08:16:43 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.001@gmail.com> | 2026-09-15 08:16:43 +0800 |
| commit | 4022e5c95210631e4aceb08eaf9d9071aa5aefc4 (patch) | |
| tree | a5922559836e45fb3459a3d070367912e1035b1a /tests/functional/94_matrix_mul.sy | |
| download | rcc-4022e5c95210631e4aceb08eaf9d9071aa5aefc4.tar.gz rcc-4022e5c95210631e4aceb08eaf9d9071aa5aefc4.tar.xz | |
Diffstat (limited to 'tests/functional/94_matrix_mul.sy')
| -rw-r--r-- | tests/functional/94_matrix_mul.sy | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/functional/94_matrix_mul.sy b/tests/functional/94_matrix_mul.sy new file mode 100644 index 0000000..d9fb24f --- /dev/null +++ b/tests/functional/94_matrix_mul.sy @@ -0,0 +1,74 @@ +int M; +int L; +int N; + + +int mul(int a0[],int a1[], int a2[],int b0[],int b1[],int b2[],int c0[],int c1[],int c2[]) +{ + int i; + i=0; + c0[0]=a0[0]*b0[0]+a0[1]*b1[0]+a0[2]*b2[0]; + c0[1]=a0[0]*b0[1]+a0[1]*b1[1]+a0[2]*b2[1]; + c0[2]=a0[0]*b0[2]+a0[1]*b1[2]+a0[2]*b2[2]; + c1[0]=a1[0]*b0[0]+a1[1]*b1[0]+a1[2]*b2[0]; + c1[1]=a1[0]*b0[1]+a1[1]*b1[1]+a1[2]*b2[1]; + c1[2]=a1[0]*b0[2]+a1[1]*b1[2]+a1[2]*b2[2]; + c2[0]=a2[0]*b0[0]+a2[1]*b1[0]+a2[2]*b2[0]; + c2[1]=a2[0]*b0[1]+a2[1]*b1[1]+a2[2]*b2[1]; + c2[2]=a2[0]*b0[2]+a2[1]*b1[2]+a2[2]*b2[2]; + + return 0; + +} + +int main() +{ + N=3; + M=3; + L=3; + int a0[3];int a1[3]; int a2[3];int b0[3];int b1[3];int b2[3];int c0[6];int c1[3];int c2[3]; + int i; + i=0; + while(i<M) + { + a0[i]=i; + a1[i]=i; + a2[i]=i; + b0[i]=i; + b1[i]=i; + b2[i]=i; + i=i+1; + } + i=mul( a0, a1, a2, b0, b1, b2, c0, c1, c2); + int x; + while(i<N) + { + x = c0[i]; + putint(x); + i=i+1; + } + x = 10; + i=0; + putch(x); + while(i<N) + { + x = c1[i]; + putint(x); + + i=i+1; + } + x = 10; + i=0; + putch(x); + while(i<N) + { + x = c2[i]; + putint(x); + + i=i+1; + } + x = 10; + putch(x); + + return 0; +} |
