diff --git a/src/extra/use_eigen_ex.cpp b/src/extra/use_eigen_ex.cpp new file mode 100644 index 0000000..0ad6a97 --- /dev/null +++ b/src/extra/use_eigen_ex.cpp @@ -0,0 +1,52 @@ +/******************************************************** + * ██████╗ ██████╗████████╗██╗ + * ██╔════╝ ██╔════╝╚══██╔══╝██║ + * ██║ ███╗██║ ██║ ██║ + * ██║ ██║██║ ██║ ██║ + * ╚██████╔╝╚██████╗ ██║ ███████╗ + * ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝ + * Geophysical Computational Tools & Library (GCTL) + * + * Copyright (c) 2023 Yi Zhang (yizhang-geo@zju.edu.cn) + * + * GCTL is distributed under a dual licensing scheme. You can redistribute + * it and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either version 2 + * of the License, or (at your option) any later version. You should have + * received a copy of the GNU Lesser General Public License along with this + * program. If not, see . + * + * If the terms and conditions of the LGPL v.2. would prevent you from using + * the GCTL, please consider the option to obtain a commercial license for a + * fee. These licenses are offered by the GCTL's original author. As a rule, + * licenses are provided "as-is", unlimited in time for a one time fee. Please + * send corresponding requests to: yizhang-geo@zju.edu.cn. Please do not forget + * to include some description of your company and the realm of its activities. + * Also add information on how to contact you by electronic and paper mail. + ******************************************************/ + +// Declare the marco to enable eigen wrappers before include the head file. +// To compile the code, use: g++ use_eigen_ex.cpp -I +#define GCTL_USE_EIGEN3 + +#include "gctl/core/eigen_wrapper.h" + +using namespace gctl; + +int main(int argc, char const *argv[]) +{ + _1d_array a(10, 1, 0.5); + a.show(); + + Eigen::VectorXd b; + array2VectorXType(a, b); + std::cout << b << "\n"; + std::cout << b.mean() << "\n"; + + b.setRandom(); + + _1d_array c; + VectorXType2array(b, c); + c.show(); + return 0; +}