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 C interface is developed by wrapping the C++ interface in C-style.

Warning

Not sure about how to let C code handle the exceptions that may be thrown in the C++ code.

The provided C interface (C header files) includes

Header

Description

<losc/matrix.h>

provide the C interface for the matrix objects that are used in the LOSC library.

<losc/curvature.h>

for the LOSC curvature matrix.

<losc/localization.h>

for the LOSC localization.

<losc/local_occupation.h>

for the LOSC local occupation.

<losc/correction.h>

for the LOSC corrections.

<losc/losc.h>

A convenient header that includes everything you need.

In order to use the C interface of the LOSC library, following the 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 LOSC C library defines matrix object with struct losc_matrix that is declared in <losc/matrix.h> header. You can call the constructor function losc_matrix_create to create a struct losc_matrix with any size, or you can pass a C pointer double * that points to an array to generate a struct losc_matrix, which does not own the data. Remember the storage of the matrix is ALWAYS interpreted in row-wise (C-style) major. See <losc/matrix.h> for more details.

Detailed References for the API

Please refer this section for the full documentation of C interface of the LOSC library.