Fix Matrix operator bug.

This commit is contained in:
kradchen
2023-05-05 16:40:14 +08:00
parent 73f58cfca8
commit 23e2771233

View File

@@ -184,12 +184,18 @@ namespace Aurora{
if (aMatrix.getValueType() != aOther.getValueType()) { if (aMatrix.getValueType() != aOther.getValueType()) {
//aOther is not a complex matrix //aOther is not a complex matrix
if (aMatrix.getValueType() == Complex) { if (aMatrix.getValueType() == Complex) {
double *output = _MxM_NC_Calc(aFuncD,aMatrix.getDataSize(), X, Y,DimsStride); double *output = oppside?_MxM_NC_Calc(aFuncD,aMatrix.getDataSize(), aOther.getData(),aMatrix.getData(),DimsStride)
return Matrix::New(output, aOther); :_MxM_CN_Calc(aFuncD,aMatrix.getDataSize(), aMatrix.getData(), aOther.getData(),DimsStride);
return Matrix::New(output, aMatrix);
} }
//aOther is a complex matrix, use aOther as output //aOther is a complex matrix, use aOther as output
V_MxM_NC_Calc(aFuncD, aMatrix.getDataSize(), X, Y, aOther.getData(), if (oppside){
DimsStride); V_MxM_CN_Calc(aFuncD, aMatrix.getDataSize(), aOther.getData(),aMatrix.getData(),aOther.getData(),DimsStride);
}
else
{
V_MxM_NC_Calc(aFuncD, aMatrix.getDataSize(), aMatrix.getData(),aOther.getData(),aOther.getData(),DimsStride);
}
return aOther; return aOther;
} else if (aMatrix.getValueType() == Normal) { } else if (aMatrix.getValueType() == Normal) {
V_MxM_NN_Calc(aFuncD, aMatrix.getDataSize(), X, Y, aOther.getData(), V_MxM_NN_Calc(aFuncD, aMatrix.getDataSize(), X, Y, aOther.getData(),