================ LOSC C++ library ================ Introduction ------------ The LOSC library provides a C++ interface to perform calculations of LOSC, including the construction of LOSC curvature matrix, LOSC localization, local occupation number and LOSC corrections. The provided C++ interface (C++ header files) includes ================================== ====================================== Header Description ================================== ====================================== ```` for the LOSC curvature matrix. ```` for the LOSC localization. ```` for the LOSC local occupation. ```` for the LOSC corrections. ```` for the exceptions that may be thrown in LOSC library. ```` for the declarations of matrix used in LOSC library. ```` A convenient header that includes everything you need. ================================== ====================================== In order to use the C++ interface of the LOSC library, following the :ref:`steps of installation `. Then all you need to do is to include the corresponding headers in your project to use the LOSC C++ library. Data Structure -------------- The main data structure in the LOSC C++ library is the representation of matrix/vector objects. In the LOSC C++ library, we use the popular `Eigen library `_, which lets us achieve the manipulation of matrices and vectors easily. Particularly, we use ``Eigen::Matrix`` to represent matrices, and ``Eigen::Vector`` to represent vectors. Being different to the default behavior in ``Eigen`` that the storage of matrix is column-wise (Fortran-style), the storage of matrix in the LOSC C++ library is row-wise (C-style). To avoid declaring the row-wise ``Eigen::Matrix`` in a cumbersome way being like .. code-block:: C++ Eigen::Matrix; an alias ``LOSCMatrix`` is defined in ```` as .. code-block:: C++ using LOSCMatrix = Eigen::Matrix; There is a similar alias ``LOSCVector`` for the vector objects. For other alias of ``Eigen`` types that are used the LOSC C++ library, please refer to ````. Detailed References for the API ------------------------------- Please refer `this section <./doxygen/losc/html/index.html>`_ for the full documentation of C++ interface of the LOSC library.