guppi-matrix

Name

guppi-matrix -- 

Synopsis



struct      GuppiMatrix;
#define     guppi_matrix_rows               (m)
#define     guppi_matrix_cols               (m)
#define     guppi_matrix_is_square          (m)
GuppiMatrix* guppi_matrix_new               (gint r,
                                             gint c);
GuppiMatrix* guppi_matrix_copy              (GuppiMatrix*);
void        guppi_matrix_free               (GuppiMatrix*);
void        guppi_matrix_touch              (GuppiMatrix*);
void        guppi_matrix_set_constant       (GuppiMatrix*,
                                             double);
#define     guppi_matrix_ptr                (m, i, j)
#define     guppi_matrix_ptr_col_incr       (m, p)
#define     guppi_matrix_ptr_row_incr       (m, p)
#define     guppi_matrix_entry              (m, i, j)
GuppiVector* guppi_matrix_get_row           (GuppiMatrix*,
                                             gint r);
GuppiVector* guppi_matrix_get_col           (GuppiMatrix*,
                                             gint c);
void        guppi_matrix_normalize_row      (GuppiMatrix*,
                                             gint r);
gboolean    guppi_matrix_row_is_nonzero     (GuppiMatrix*,
                                             gint r);
gboolean    guppi_matrix_column_is_nonzero  (GuppiMatrix*,
                                             gint r);
double      guppi_matrix_row_dot            (GuppiMatrix*,
                                             gint r1,
                                             gint r2);
void        guppi_matrix_subtract_scaled_row_from_row
                                            (GuppiMatrix *m,
                                             double scale,
                                             gint r,
                                             gint r_sub_from);
GuppiVector* guppi_matrix_solve             (GuppiMatrix*,
                                             GuppiVector *vec);
GuppiVector* guppi_matrix_solve_with_fallback
                                            (GuppiMatrix*,
                                             GuppiVector *vec,
                                             gboolean (*fallback) (GuppiMatrix *, GuppiVector *vec, gint i, gpointer),
                                             gpointer);
GuppiMatrix* guppi_matrix_invert            (GuppiMatrix*);
GuppiVector* guppi_matrix_apply             (GuppiMatrix*,
                                             GuppiVector*);
void        guppi_matrix_spew               (GuppiMatrix*);

Description

A longer description goes here.

Details

struct GuppiMatrix

struct GuppiMatrix {
  gint r, c;
  double *data;
  double epsilon;

  GuppiMatrix *LU;
  gint *perm;
};

guppi_matrix_rows()

#define guppi_matrix_rows(m) ((m)->r)

guppi_matrix_cols()

#define guppi_matrix_cols(m) ((m)->c)

guppi_matrix_is_square()

#define guppi_matrix_is_square(m) ((m)->c == (m)->r)

guppi_matrix_new ()

GuppiMatrix* guppi_matrix_new               (gint r,
                                             gint c);

guppi_matrix_copy ()

GuppiMatrix* guppi_matrix_copy              (GuppiMatrix*);

guppi_matrix_free ()

void        guppi_matrix_free               (GuppiMatrix*);

guppi_matrix_touch ()

void        guppi_matrix_touch              (GuppiMatrix*);

guppi_matrix_set_constant ()

void        guppi_matrix_set_constant       (GuppiMatrix*,
                                             double);

guppi_matrix_ptr()

#define guppi_matrix_ptr(m, i, j)       ((m)->data + ((i)*((m)->c)) + (j))

guppi_matrix_ptr_col_incr()

#define guppi_matrix_ptr_col_incr(m, p) ((p)+1)

guppi_matrix_ptr_row_incr()

#define guppi_matrix_ptr_row_incr(m, p) ((p)+((m)->c))

guppi_matrix_entry()

#define guppi_matrix_entry(m, i, j)       (*(guppi_matrix_ptr (m,i,j)))

guppi_matrix_get_row ()

GuppiVector* guppi_matrix_get_row           (GuppiMatrix*,
                                             gint r);

guppi_matrix_get_col ()

GuppiVector* guppi_matrix_get_col           (GuppiMatrix*,
                                             gint c);

guppi_matrix_normalize_row ()

void        guppi_matrix_normalize_row      (GuppiMatrix*,
                                             gint r);

guppi_matrix_row_is_nonzero ()

gboolean    guppi_matrix_row_is_nonzero     (GuppiMatrix*,
                                             gint r);

guppi_matrix_column_is_nonzero ()

gboolean    guppi_matrix_column_is_nonzero  (GuppiMatrix*,
                                             gint r);

guppi_matrix_row_dot ()

double      guppi_matrix_row_dot            (GuppiMatrix*,
                                             gint r1,
                                             gint r2);

guppi_matrix_subtract_scaled_row_from_row ()

void        guppi_matrix_subtract_scaled_row_from_row
                                            (GuppiMatrix *m,
                                             double scale,
                                             gint r,
                                             gint r_sub_from);

guppi_matrix_solve ()

GuppiVector* guppi_matrix_solve             (GuppiMatrix*,
                                             GuppiVector *vec);

guppi_matrix_solve_with_fallback ()

GuppiVector* guppi_matrix_solve_with_fallback
                                            (GuppiMatrix*,
                                             GuppiVector *vec,
                                             gboolean (*fallback) (GuppiMatrix *, GuppiVector *vec, gint i, gpointer),
                                             gpointer);

guppi_matrix_invert ()

GuppiMatrix* guppi_matrix_invert            (GuppiMatrix*);

guppi_matrix_apply ()

GuppiVector* guppi_matrix_apply             (GuppiMatrix*,
                                             GuppiVector*);

guppi_matrix_spew ()

void        guppi_matrix_spew               (GuppiMatrix*);