Fix MatrixSlice scalar mode bug.

This commit is contained in:
Krad
2023-04-20 11:21:11 +08:00
parent 044de7be5f
commit 286008c4ab
3 changed files with 66 additions and 23 deletions

View File

@@ -16,56 +16,53 @@
int main() {
{
double * dataA =new double[8];
double * dataB =new double[8];
double * dataC =new double[4];
double *dataA = new double[8];
double *dataB = new double[8];
double *dataC = new double[4];
for (int i = 0; i < 8; ++i) {
dataA[i]=(double)(i-3);
dataB[i]=(double)(i+2);
dataC[i/2]=(double)(i+9);
dataA[i] = (double) (i - 3);
dataB[i] = (double) (i + 2);
dataC[i / 2] = (double) (i + 9);
}
Aurora::Matrix A = Aurora::Matrix::New(dataA,2,2,2);
Aurora::Matrix A = Aurora::Matrix::New(dataA, 2, 2, 2);
printf("A:\r\n");
A.printf();
Aurora::Matrix B = Aurora::Matrix::New(dataB,2,2,2);
Aurora::Matrix B = Aurora::Matrix::New(dataB, 2, 2, 2);
printf("B:\r\n");
B.printf();
printf("A slice 1 = B slice 0\r\n");
A(Aurora::$,Aurora::$,1) = B(Aurora::$,Aurora::$,0);
A(Aurora::$, Aurora::$, 1) = B(Aurora::$, Aurora::$, 0);
printf("B:\r\n");
B.printf();
printf("New A:\r\n");
A.printf();
printf("A Row slice 1 = B Row slice 0\r\n");
A(1,Aurora::$,Aurora::$) = B(0,Aurora::$,Aurora::$);
A(1, Aurora::$, Aurora::$) = B(0, Aurora::$, Aurora::$);
printf("B:\r\n");
B.printf();
printf("New A:\r\n");
A.printf();
printf("A Col slice 1 = B Col slice 0\r\n");
A(Aurora::$,1,Aurora::$) = B(Aurora::$,0,Aurora::$);
A(Aurora::$, 1, Aurora::$) = B(Aurora::$, 0, Aurora::$);
printf("B:\r\n");
B.printf();
printf("New A:\r\n");
A.printf();
printf("New A col slice 1 toMatrix:\r\n");
auto Ds = A(Aurora::$,1,Aurora::$);
auto D = Ds.toMatrix();
D.printf();
printf("New A col slice 1 toMatrix:\r\n");
auto Ds = A(Aurora::$, 1, Aurora::$);
auto D = Ds.toMatrix();
D.printf();
Aurora::Matrix C = Aurora::Matrix::New(dataC,2,2);
Aurora::Matrix C = Aurora::Matrix::New(dataC, 2, 2);
printf("C:\r\n");
C.printf();
A(Aurora::$,Aurora::$,0) = C;
A(1, 1, 1) = 1024.0;
printf("New A:\r\n");
A.printf();
return 0;
}
{
}{
double * dataA =new double[9];
double * dataB =new double[9];
for (int i = 0; i < 9; ++i) {