/*! * \brief LAArmadillo::multiply * Multiply m2 by m1 * \param result * \param m1 * \param m2 */ void LAArmadillo::multiply(OiMat &result, const OiMat &m1, const OiMat &m2){ int matRowCol = m1.getColCount(); arma::mat m1a(m1.getRowCount(), matRowCol), m2a(matRowCol, m2.getColCount()); this->oiMat2Arma(m1a, m1); this->oiMat2Arma(m2a, m2); this->arma2OiMat(result, (m1a * m2a)); }
/*! * \brief LAArmadillo::substract * Substract m2 from m1 * \param result * \param m1 * \param m2 */ void LAArmadillo::substract(OiMat &result, const OiMat &m1, const OiMat &m2){ int matRows = m1.getRowCount(); int matCols = m1.getColCount(); arma::mat m1a(matRows, matCols), m2a(matRows, matCols); this->oiMat2Arma(m1a, m1); this->oiMat2Arma(m2a, m2); this->arma2OiMat(result, (m1a - m2a)); }
void testMat2ConstructorAndAccessor() { glam::mat2 m2a(std::make_pair(M2, &M2[4])); TS_ASSERT_EQUALS(m2a[0][0], M2[0]); TS_ASSERT_EQUALS(m2a[0][1], M2[1]); TS_ASSERT_EQUALS(m2a[1][0], M2[2]); TS_ASSERT_EQUALS(m2a[1][1], M2[3]); glam::mat2 m2b(M2); TS_ASSERT_EQUALS(m2b[0][0], M2[0]); TS_ASSERT_EQUALS(m2b[0][1], M2[1]); TS_ASSERT_EQUALS(m2b[1][0], M2[2]); TS_ASSERT_EQUALS(m2b[1][1], M2[3]); }
int HighOrderMeshGenerator::meshDimension(int dim, int order){ element_set& elements = mesh.getElementsOfDim(dim); for(auto it = elements.begin(); it != elements.end(); ++it){ const unique_element_ptr& el = *it; MEl_to_ActiveEl m2a(mesh.getNodes(),index_factory); const arma::mat& elnodes = m2a.get(el).getNodesMatrix(); const arma::mat& interpolation_matrix = node_interpolator->getNodeInterpolationMatrix(el->getElementType(), el->getOrder(),order); arma::mat newelnodes = elnodes*interpolation_matrix; arma::mat new_parametric_coords; if(el->hasGeoEntity()){ ParametricCoordinateEvaluator parametric_evaluator(geometry,mesh.getNodes()); const arma::mat& parametric_coords = parametric_evaluator.getParametricCoordinates(el); const arma::mat& newparametric = parametric_coords*interpolation_matrix; newelnodes = parametric_evaluator.projectPointsOnGeometry(el, newelnodes, newparametric, new_parametric_coords); } //std::cout << "After has geo entity" << std::endl; std::vector<int> nodeindices = insertNewNodes(el,newelnodes,new_parametric_coords,order); /* for(int i = 0; i < nodeindices.size(); i++){ std::cout << nodeindices[i] << " "; } std::cout << std::endl; */ insertNewElement(el,nodeindices,order); } };
static ssize_t panmac_read(struct file *filp, char* buf, size_t count, loff_t *f_pos) { char temp[MAX_MAC_STR_LEN+1]; int copy_len=0 ; printk(KERN_INFO TAG " read\n") ; m2a(mac_addr_, temp); copy_len = count < MAX_MAC_STR_LEN ? count: MAX_MAC_STR_LEN; if(copy_to_user(buf, temp, copy_len)) { printk(KERN_ERR TAG " failed to copy\n"); return -EFAULT; } if (*f_pos == 0) { *f_pos += copy_len; return copy_len; } return 0; }
static void dump_mac_addr(const unsigned char* addr) { char temp[MAX_MAC_STR_LEN+1]; printk(KERN_INFO TAG " dump mac addr=%s\n", m2a( addr, temp)); }