Exemplo n.º 1
0
/*!
 * \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));
}
Exemplo n.º 2
0
/*!
 * \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));
}
Exemplo n.º 3
0
	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]);
	}
Exemplo n.º 4
0
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);

  }

};
Exemplo n.º 5
0
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;
}
Exemplo n.º 6
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));
}