binary_library.cpp File Reference
#include "binary_library.h"
#include <Eigen/Core>

Functions

MatrixXd & c_to_eigen (C_MatrixXd *ptr)
 
const MatrixXd & c_to_eigen (const C_MatrixXd *ptr)
 
C_MatrixXdeigen_to_c (MatrixXd &ref)
 
const C_MatrixXdeigen_to_c (const MatrixXd &ref)
 
Map< MatrixXd > & c_to_eigen (C_Map_MatrixXd *ptr)
 
const Map< MatrixXd > & c_to_eigen (const C_Map_MatrixXd *ptr)
 
C_Map_MatrixXdeigen_to_c (Map< MatrixXd > &ref)
 
const C_Map_MatrixXdeigen_to_c (const Map< MatrixXd > &ref)
 
C_MatrixXdMatrixXd_new (int rows, int cols)
 
void MatrixXd_delete (C_MatrixXd *m)
 
doubleMatrixXd_data (C_MatrixXd *m)
 
void MatrixXd_set_zero (C_MatrixXd *m)
 
void MatrixXd_resize (C_MatrixXd *m, int rows, int cols)
 
void MatrixXd_copy (C_MatrixXd *dst, const C_MatrixXd *src)
 
void MatrixXd_copy_map (C_MatrixXd *dst, const C_Map_MatrixXd *src)
 
void MatrixXd_set_coeff (C_MatrixXd *m, int i, int j, double coeff)
 
double MatrixXd_get_coeff (const C_MatrixXd *m, int i, int j)
 
void MatrixXd_print (const C_MatrixXd *m)
 
void MatrixXd_multiply (const C_MatrixXd *m1, const C_MatrixXd *m2, C_MatrixXd *result)
 
void MatrixXd_add (const C_MatrixXd *m1, const C_MatrixXd *m2, C_MatrixXd *result)
 
C_Map_MatrixXdMap_MatrixXd_new (double *array, int rows, int cols)
 
void Map_MatrixXd_delete (C_Map_MatrixXd *m)
 
void Map_MatrixXd_set_zero (C_Map_MatrixXd *m)
 
void Map_MatrixXd_copy (C_Map_MatrixXd *dst, const C_Map_MatrixXd *src)
 
void Map_MatrixXd_copy_matrix (C_Map_MatrixXd *dst, const C_MatrixXd *src)
 
void Map_MatrixXd_set_coeff (C_Map_MatrixXd *m, int i, int j, double coeff)
 
double Map_MatrixXd_get_coeff (const C_Map_MatrixXd *m, int i, int j)
 
void Map_MatrixXd_print (const C_Map_MatrixXd *m)
 
void Map_MatrixXd_multiply (const C_Map_MatrixXd *m1, const C_Map_MatrixXd *m2, C_Map_MatrixXd *result)
 
void Map_MatrixXd_add (const C_Map_MatrixXd *m1, const C_Map_MatrixXd *m2, C_Map_MatrixXd *result)
 

Function Documentation

◆ c_to_eigen() [1/4]

Map<MatrixXd>& c_to_eigen ( C_Map_MatrixXd ptr)
inline
33 { return *reinterpret_cast<Map<MatrixXd> *>(ptr); }
A matrix or vector expression mapping an existing array of data.
Definition: Map.h:96

◆ c_to_eigen() [2/4]

◆ c_to_eigen() [3/4]

const Map<MatrixXd>& c_to_eigen ( const C_Map_MatrixXd ptr)
inline
35  {
36  return *reinterpret_cast<const Map<MatrixXd> *>(ptr);
37 }

◆ c_to_eigen() [4/4]

const MatrixXd& c_to_eigen ( const C_MatrixXd ptr)
inline
25 { return *reinterpret_cast<const MatrixXd *>(ptr); }

◆ eigen_to_c() [1/4]

const C_Map_MatrixXd* eigen_to_c ( const Map< MatrixXd > &  ref)
inline
41  {
42  return reinterpret_cast<const C_Map_MatrixXd *>(&ref);
43 }
Definition: binary_library.h:22

◆ eigen_to_c() [2/4]

const C_MatrixXd* eigen_to_c ( const MatrixXd &  ref)
inline
29 { return reinterpret_cast<const C_MatrixXd *>(&ref); }
Definition: binary_library.h:21

◆ eigen_to_c() [3/4]

C_Map_MatrixXd* eigen_to_c ( Map< MatrixXd > &  ref)
inline
39 { return reinterpret_cast<C_Map_MatrixXd *>(&ref); }

◆ eigen_to_c() [4/4]

C_MatrixXd* eigen_to_c ( MatrixXd &  ref)
inline
27 { return reinterpret_cast<C_MatrixXd *>(&ref); }

Referenced by Map_MatrixXd_new(), and MatrixXd_new().

◆ Map_MatrixXd_add()

void Map_MatrixXd_add ( const C_Map_MatrixXd m1,
const C_Map_MatrixXd m2,
C_Map_MatrixXd result 
)
101  {
102  c_to_eigen(result) = c_to_eigen(m1) + c_to_eigen(m2);
103 }
Matrix3d m1
Definition: IOFormat.cpp:2
MatrixType m2(n_dims)
MatrixXd & c_to_eigen(C_MatrixXd *ptr)
Definition: binary_library.cpp:23

References c_to_eigen(), m1, and m2().

◆ Map_MatrixXd_copy()

void Map_MatrixXd_copy ( C_Map_MatrixXd dst,
const C_Map_MatrixXd src 
)
87 { c_to_eigen(dst) = c_to_eigen(src); }

References c_to_eigen().

◆ Map_MatrixXd_copy_matrix()

void Map_MatrixXd_copy_matrix ( C_Map_MatrixXd dst,
const C_MatrixXd src 
)
89 { c_to_eigen(dst) = c_to_eigen(src); }

References c_to_eigen().

◆ Map_MatrixXd_delete()

void Map_MatrixXd_delete ( C_Map_MatrixXd m)
83 { delete &c_to_eigen(m); }
int * m
Definition: level2_cplx_impl.h:294

References c_to_eigen(), and m.

◆ Map_MatrixXd_get_coeff()

double Map_MatrixXd_get_coeff ( const C_Map_MatrixXd m,
int  i,
int  j 
)
93 { return c_to_eigen(m)(i, j); }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2

References c_to_eigen(), i, j, and m.

◆ Map_MatrixXd_multiply()

void Map_MatrixXd_multiply ( const C_Map_MatrixXd m1,
const C_Map_MatrixXd m2,
C_Map_MatrixXd result 
)
97  {
98  c_to_eigen(result) = c_to_eigen(m1) * c_to_eigen(m2);
99 }

References c_to_eigen(), m1, and m2().

◆ Map_MatrixXd_new()

C_Map_MatrixXd* Map_MatrixXd_new ( double array,
int  rows,
int  cols 
)
79  {
80  return eigen_to_c(*new Map<MatrixXd>(array, rows, cols));
81 }
int rows
Definition: Tutorial_commainit_02.cpp:1
int cols
Definition: Tutorial_commainit_02.cpp:1
C_MatrixXd * eigen_to_c(MatrixXd &ref)
Definition: binary_library.cpp:27
std::array< T, N > array
Definition: EmulateArray.h:231

References cols, eigen_to_c(), and rows.

◆ Map_MatrixXd_print()

void Map_MatrixXd_print ( const C_Map_MatrixXd m)
95 { std::cout << c_to_eigen(m) << std::endl; }

References c_to_eigen(), and m.

◆ Map_MatrixXd_set_coeff()

void Map_MatrixXd_set_coeff ( C_Map_MatrixXd m,
int  i,
int  j,
double  coeff 
)
91 { c_to_eigen(m)(i, j) = coeff; }

References c_to_eigen(), i, j, and m.

◆ Map_MatrixXd_set_zero()

void Map_MatrixXd_set_zero ( C_Map_MatrixXd m)
85 { c_to_eigen(m).setZero(); }

References c_to_eigen(), and m.

◆ MatrixXd_add()

void MatrixXd_add ( const C_MatrixXd m1,
const C_MatrixXd m2,
C_MatrixXd result 
)
73  {
74  c_to_eigen(result) = c_to_eigen(m1) + c_to_eigen(m2);
75 }

References c_to_eigen(), m1, and m2().

◆ MatrixXd_copy()

void MatrixXd_copy ( C_MatrixXd dst,
const C_MatrixXd src 
)
59 { c_to_eigen(dst) = c_to_eigen(src); }

References c_to_eigen().

◆ MatrixXd_copy_map()

void MatrixXd_copy_map ( C_MatrixXd dst,
const C_Map_MatrixXd src 
)
61 { c_to_eigen(dst) = c_to_eigen(src); }

References c_to_eigen().

◆ MatrixXd_data()

double* MatrixXd_data ( C_MatrixXd m)
53 { return c_to_eigen(m).data(); }

References c_to_eigen(), and m.

◆ MatrixXd_delete()

void MatrixXd_delete ( C_MatrixXd m)
51 { delete &c_to_eigen(m); }

References c_to_eigen(), and m.

◆ MatrixXd_get_coeff()

double MatrixXd_get_coeff ( const C_MatrixXd m,
int  i,
int  j 
)
65 { return c_to_eigen(m)(i, j); }

References c_to_eigen(), i, j, and m.

◆ MatrixXd_multiply()

void MatrixXd_multiply ( const C_MatrixXd m1,
const C_MatrixXd m2,
C_MatrixXd result 
)
69  {
70  c_to_eigen(result) = c_to_eigen(m1) * c_to_eigen(m2);
71 }

References c_to_eigen(), m1, and m2().

◆ MatrixXd_new()

C_MatrixXd* MatrixXd_new ( int  rows,
int  cols 
)
49 { return eigen_to_c(*new MatrixXd(rows, cols)); }

References cols, eigen_to_c(), and rows.

◆ MatrixXd_print()

void MatrixXd_print ( const C_MatrixXd m)
67 { std::cout << c_to_eigen(m) << std::endl; }

References c_to_eigen(), and m.

◆ MatrixXd_resize()

void MatrixXd_resize ( C_MatrixXd m,
int  rows,
int  cols 
)
57 { c_to_eigen(m).resize(rows, cols); }

References c_to_eigen(), cols, m, and rows.

◆ MatrixXd_set_coeff()

void MatrixXd_set_coeff ( C_MatrixXd m,
int  i,
int  j,
double  coeff 
)
63 { c_to_eigen(m)(i, j) = coeff; }

References c_to_eigen(), i, j, and m.

◆ MatrixXd_set_zero()

void MatrixXd_set_zero ( C_MatrixXd m)
55 { c_to_eigen(m).setZero(); }

References c_to_eigen(), and m.