Matrix operator() buig fix

This commit is contained in:
kradchen
2023-05-25 16:22:52 +08:00
parent eddc4f57c0
commit 1766d19fcd

View File

@@ -671,6 +671,13 @@ namespace Aurora {
allDimIndex.push_back(j);
}
}
if (isScalar()){
mode = 0;
}
if (isVector()){
if (getDimSize(0)>1 && aRowIdx!=$) mode = 0;
if (getDimSize(1)>1 && aColIdx!=$) mode = 0;
}
int rowStride = 1;
int colStride = getDimSize(0);
int sliceStride = getDimSize(0)*getDimSize(1);
@@ -1157,6 +1164,10 @@ namespace Aurora {
std::cerr <<"Assign value fail!Src slice(dim 2 size:"<< matrix.getDimSize(1) <<"), not match of des(dim 2 size:"<<mSize2<<")!";
return *this;
}
if (matrix.getDimSize(0)!=mSize) {
std::cerr <<"Assign value fail!Src matrix(dim 1 size:"<< matrix.getDimSize(0)<<"), not match of des(dim 1 size:"<<mSize<<")!";
return *this;
}
break;
}
case 1:{
@@ -1165,6 +1176,10 @@ namespace Aurora {
std::cerr <<"Assign value fail!Src matrix(dims count:"<< matrix.getDims() <<"), not match of des(dims count:"<<mSliceMode<<")!";
return *this;
}
if (matrix.getDimSize(0)!=mSize && matrix.getDimSize(1)!=mSize) {
std::cerr <<"Assign value fail!Src matrix(dim 1 size:"<< matrix.getDimSize(0)<<"), not match of des(dim 1 size:"<<mSize<<")!";
return *this;
}
break;
}
case 0:{
@@ -1174,10 +1189,7 @@ namespace Aurora {
}
}
}
if (matrix.getDimSize(0)!=mSize) {
std::cerr <<"Assign value fail!Src matrix(dim 1 size:"<< matrix.getDimSize(0)<<"), not match of des(dim 1 size:"<<mSize<<")!";
return *this;
}
if (matrix.getValueType()!=mType) {
std::cerr <<"Assign value fail!Src slice(value type:"<< matrix.getValueType() <<"), not match of des(value type:"<<mType<<")!";
return *this;