/usr/include/libgoffice-0.10/goffice/math/go-matrix.h is in libgoffice-0.10-dev 0.10.28-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | #ifndef GO_MATRIX_H__
#define GO_MATRIX_H__
#include <glib.h>
G_BEGIN_DECLS
struct GOQuadMatrix_ {
GOQuad **data; /* [m][n] */
int m; /* down */
int n; /* right */
};
GOQuadMatrix *go_quad_matrix_new (int m, int n);
GOQuadMatrix *go_quad_matrix_dup (const GOQuadMatrix *A);
void go_quad_matrix_free (GOQuadMatrix *A);
void go_quad_matrix_copy (GOQuadMatrix *A, const GOQuadMatrix *B);
void go_quad_matrix_transpose (GOQuadMatrix *A, const GOQuadMatrix *B);
void go_quad_matrix_multiply (GOQuadMatrix *C,
const GOQuadMatrix *A,
const GOQuadMatrix *B);
GOQuadMatrix *go_quad_matrix_inverse (const GOQuadMatrix *A, double threshold);
void go_quad_matrix_determinant (const GOQuadMatrix *A, GOQuad *res);
GOQuadMatrix *go_quad_matrix_pseudo_inverse (const GOQuadMatrix *A,
double threshold);
gboolean go_quad_matrix_back_solve (const GOQuadMatrix *R, GOQuad *x,
const GOQuad *b,
gboolean allow_degenerate);
gboolean go_quad_matrix_fwd_solve (const GOQuadMatrix *R, GOQuad *x,
const GOQuad *b,
gboolean allow_degenerate);
void go_quad_matrix_eigen_range (const GOQuadMatrix *A,
double *emin, double *emax);
void go_quad_matrix_dump (const GOQuadMatrix *A, const char *fmt);
/* ---------------------------------------- */
GOQuadQR *go_quad_qr_new (const GOQuadMatrix *A);
void go_quad_qr_free (GOQuadQR *qr);
void go_quad_qr_determinant (const GOQuadQR *qr, GOQuad *det);
const GOQuadMatrix *go_quad_qr_r (const GOQuadQR *qr);
void go_quad_qr_multiply_qt (const GOQuadQR *qr, GOQuad *x);
void go_quad_qr_mark_degenerate (GOQuadQR *qr, int i);
/* ---------------------------------------- */
#ifdef GOFFICE_WITH_LONG_DOUBLE
struct GOQuadMatrixl_ {
GOQuadl **data; /* [m][n] */
int m; /* down */
int n; /* right */
};
GOQuadMatrixl *go_quad_matrix_newl (int m, int n);
GOQuadMatrixl *go_quad_matrix_dupl (const GOQuadMatrixl *A);
void go_quad_matrix_freel (GOQuadMatrixl *A);
void go_quad_matrix_copyl (GOQuadMatrixl *A, const GOQuadMatrixl *B);
void go_quad_matrix_transposel (GOQuadMatrixl *A, const GOQuadMatrixl *B);
void go_quad_matrix_multiplyl (GOQuadMatrixl *C,
const GOQuadMatrixl *A,
const GOQuadMatrixl *B);
GOQuadMatrixl *go_quad_matrix_inversel (const GOQuadMatrixl *A, long double threshold);
void go_quad_matrix_determinantl (const GOQuadMatrixl *A, GOQuadl *res);
GOQuadMatrixl *go_quad_matrix_pseudo_inversel (const GOQuadMatrixl *A,
long double threshold);
gboolean go_quad_matrix_back_solvel (const GOQuadMatrixl *R, GOQuadl *x,
const GOQuadl *b,
gboolean allow_degenerate);
gboolean go_quad_matrix_fwd_solvel (const GOQuadMatrixl *R, GOQuadl *x,
const GOQuadl *b,
gboolean allow_degenerate);
void go_quad_matrix_eigen_rangel (const GOQuadMatrixl *A,
long double *emin, long double *emax);
void go_quad_matrix_dumpl (const GOQuadMatrixl *A, const char *fmt);
/* ---------------------------------------- */
GOQuadQRl *go_quad_qr_newl (const GOQuadMatrixl *A);
void go_quad_qr_freel (GOQuadQRl *qr);
void go_quad_qr_determinantl (const GOQuadQRl *qr, GOQuadl *det);
const GOQuadMatrixl *go_quad_qr_rl (const GOQuadQRl *qr);
void go_quad_qr_multiply_qtl (const GOQuadQRl *qr, GOQuadl *x);
void go_quad_qr_mark_degeneratel (GOQuadQRl *qr, int i);
#endif
G_END_DECLS
#endif
|