Add compareSet to 1D

This commit is contained in:
kradchen
2023-06-08 15:59:57 +08:00
parent a0db3777d2
commit 1a29baeef8
3 changed files with 43 additions and 0 deletions

View File

@@ -904,6 +904,30 @@ void Aurora::padding(Matrix &aMatrix, int aIndex, double aValue)
aMatrix = Matrix::New(newData,size,1,1,aMatrix.getValueType());
}
void Aurora::compareSet(Matrix& aMatrix,double compareValue, double newValue,CompareOp op){
Eigen::Map<Eigen::VectorXd> v(aMatrix.getData(),aMatrix.getDataSize());
switch (op) {
case EQ:
v = (v.array() == compareValue).select(newValue, v);
break;
case GT:
v = (v.array() > compareValue).select(newValue, v);
break;
case LT:
v = (v.array() < compareValue).select(newValue, v);
break;
case NG:
v = (v.array() <= compareValue).select(newValue, v);
break;
case NL:
v = (v.array() >= compareValue).select(newValue, v);
break;
case NE:
v = (v.array() != compareValue).select(newValue, v);
break;
}
}
Matrix Aurora::convertfp16tofloat(short* aData, int aRows, int aColumns)
{

View File

@@ -131,6 +131,10 @@ namespace Aurora {
Matrix auroraNot(const Matrix& aMatrix);
Matrix auroraNot(Matrix&& aMatrix);
enum CompareOp{
EQ,GT,LT,NG,NL,NE
};
void compareSet(Matrix& aMatrix,double compareValue, double newValue,CompareOp op);
Matrix convertfp16tofloat(short* aData, int aRows, int aColumns);
};