/*************************************** Auteur : Pierre Aubert Mail : aubertp7@gmail.com Licence : CeCILL-C ****************************************/ #include "temporary_alloc.h" ///Allocate temporary /** @param[out] tmpU1 : matrix temporary U * @param[out] tmpU2 : matrix temporary U * @param[out] tmpV1 : matrix temporary V * @param[out] tmpV2 : matrix temporary V * @param[out] tmpInU : Tensor temporary in U * @param[out] tmpInV : Tensor temporary in V * @param[out] tmpOutU : Tensor temporary out U * @param[out] tmpOutV : Tensor temporary out V * @param nbRow : number of rows of the matrices to be created * @param nbCol : number of columns of the matrices to be created */ void allocate_temporary(float *& tmpU1, float *& tmpU2, float *& tmpV1, float *& tmpV2, PTensor & tmpInU, PTensor & tmpInV, PTensor & tmpOutU, PTensor & tmpOutV, size_t nbRow, size_t nbCol) { tmpInU.resize(AllocMode::ALIGNED, nbRow, nbCol); tmpInV.resize(AllocMode::ALIGNED, nbRow, nbCol); tmpOutU.resize(AllocMode::ALIGNED, nbRow, nbCol); tmpOutV.resize(AllocMode::ALIGNED, nbRow, nbCol); tmpInU.fill(1.0f); tmpOutU.fill(1.0f); tmpInV.fill(0.0f); tmpOutV.fill(0.0f); size_t frac(16lu), numBegin(7lu), numEnd(8lu), rowShift(-4lu); for(size_t i(rowShift + (numBegin*nbRow)/frac); i < rowShift + (numEnd*nbRow)/frac; ++i){ for(size_t j((numBegin*nbCol)/frac); j < (numEnd*nbCol)/frac; ++j){ tmpInU.setValue(i, j, 0.0f); tmpInV.setValue(i, j, 1.0f); } } tmpU1 = tmpInU.getData(); tmpU2 = tmpOutU.getData(); tmpV1 = tmpInV.getData(); tmpV2 = tmpOutV.getData(); }