Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-02 08:48:23

0001 /**
0002  * @file EigenUtils.h
0003  * @author Nabil Chouika (Irfu/SPhN, CEA Saclay)
0004  * @date 11 oct. 2016
0005  * @version 1.0
0006  */
0007 
0008 #ifndef EIGENUTILS_H_
0009 #define EIGENUTILS_H_
0010 
0011 #include <Eigen/Core>
0012 
0013 #include "../matrix/MatrixD.h"
0014 #include "../vector/VectorD.h"
0015 
0016 namespace NumA {
0017 
0018 /**
0019  * @class EigenUtils
0020  * @brief Tools for the Eigen wrapper.
0021  *
0022  * Workaround to not have PARTONS depend on Eigen.
0023  * The methods defined here are only used in the cpp files of NumA++. Do not include this file in PARTONS.
0024  */
0025 
0026 class EigenUtils {
0027 public:
0028     /**
0029      * Convert a matrix from NumA type to Eigen type.
0030      * @param A NumA matrix.
0031      * @return Eigen matrix.
0032      */
0033     static Eigen::MatrixXd convertToEigen(const MatrixD & A);
0034     /**
0035      * Convert a vector from NumA type to Eigen type.
0036      * @param V NumA vector.
0037      * @return Eigen vector.
0038      */
0039     static Eigen::VectorXd convertToEigen(const VectorD & V);
0040     /**
0041      * Convert a vector from Eigen type to NumA type.
0042      * @param V Eigen vector.
0043      * @return NumA vector.
0044      */
0045     static VectorD convertToVectorD(const Eigen::VectorXd & V);
0046 };
0047 
0048 } /* namespace NumA */
0049 
0050 #endif /* EIGENUTILS_H_ */