QMat RMat::QMat::sqrt( ) { int i; QMat R ( rows, cols ); for ( i=0;i< rows*cols;i++ ) R.getWriteData()[i] = ::sqrt ( fabs ( getReadData()[i]) ); return R; }
/** * \brief Multiplies a n-column vector times a m-row vector to generate a nxm matrix * @param vector vector to play the rol of row vector * @return resulting QMat matrix */ QMat QVec::externProduct(const QVec & vector) const { Q_ASSERT(size() == vector.size()); const int s = size(); QMat C ( size(), vector.size() ); #ifdef COMPILE_IPP ippmMul_mm_32f ( getReadData(), s * sizeof ( T ), sizeof ( T ), s , s , vector.getReadData(), vector.size() * sizeof ( T ), sizeof ( T ), vector.size() , vector.size() , C.getWriteData(), vector.size() * sizeof ( T ), sizeof ( T ) ); #else for(int r=0;r<s;r++) for(int c=0;c<vector.size();c++) C(r,c) = this->operator()(r) * vector(c); #endif return C; }