Add padding and test
This commit is contained in:
@@ -633,3 +633,23 @@ void Aurora::nantoval(Matrix& aMatrix, double val2) {
|
||||
Eigen::Map<Eigen::VectorXd> srcV(aMatrix.getData(),aMatrix.getDataSize());
|
||||
srcV = srcV.array().isNaN().select(val2,srcV);
|
||||
}
|
||||
|
||||
void Aurora::padding(Matrix &aMatrix, int aIndex, double aValue)
|
||||
{
|
||||
if(aMatrix.isNull() || !aMatrix.isVector())
|
||||
{
|
||||
std::cerr<<"padding only support vector"<<std::endl;
|
||||
return;
|
||||
}
|
||||
if (aMatrix.getDataSize()>aIndex){
|
||||
aMatrix.getData()[aIndex] = aValue;
|
||||
return;
|
||||
}
|
||||
int size = (aIndex+1);
|
||||
double* newData = malloc(size,aMatrix.isComplex());
|
||||
cblas_dcopy(aMatrix.getDataSize()*aMatrix.getValueType(),
|
||||
aMatrix.getData(),1,newData,1);
|
||||
cblas_dcopy((size-aMatrix.getDataSize())*aMatrix.getValueType(),
|
||||
&aValue,0,newData+aMatrix.getDataSize()*aMatrix.getValueType(),1);
|
||||
aMatrix = Matrix::New(newData,size,1,1,aMatrix.getValueType());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user