1 /* 2 * gretl -- Gnu Regression, Econometrics and Time-series Library 3 * Copyright (C) 2001 Allin Cottrell and Riccardo "Jack" Lucchetti 4 * 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * 18 */ 19 20 #ifndef MATRIX_EXTRA_H 21 #define MATRIX_EXTRA_H 22 23 typedef enum { 24 M_MISSING_OK, 25 M_MISSING_ERROR, 26 M_MISSING_SKIP, 27 M_MISSING_TRIM 28 } MMissingCode; 29 30 typedef enum { 31 QUAD_GHERMITE = 1, 32 QUAD_LEGENDRE, 33 QUAD_LAGUERRE, 34 QUAD_INVALID 35 } QuadMethod; 36 37 gretl_vector * 38 gretl_vector_from_array (const double *x, int n, GretlMatrixMod mod); 39 40 gretl_vector *gretl_vector_from_series (const double *x, 41 int t1, int t2); 42 43 gretl_matrix *gretl_matrix_from_2d_array (const double **X, 44 int rows, int cols); 45 46 gretl_matrix *gretl_matrix_from_scalar (double x); 47 48 gretl_matrix * 49 gretl_vcv_matrix_from_model (MODEL *pmod, const char *select, int *err); 50 51 gretl_vector * 52 gretl_coeff_vector_from_model (const MODEL *pmod, const char *select, int *err); 53 54 gretl_matrix * 55 gretl_covariance_matrix_from_varlist (const int *list, 56 const DATASET *dset, 57 gretl_matrix **means, 58 int *errp); 59 60 int gretl_matrix_row_to_array (const gretl_matrix *m, int i, double *x); 61 62 double **gretl_matrix_get_columns (const gretl_matrix *m, int *err); 63 64 gretl_matrix * 65 gretl_matrix_data_subset_masked (const int *list, 66 const DATASET *dset, 67 int t1, int t2, const char *mask, 68 int *err); 69 70 gretl_matrix *gretl_matrix_data_subset (const int *list, 71 const DATASET *dset, 72 int t1, int t2, int missop, 73 int *err); 74 75 gretl_matrix * 76 gretl_matrix_data_subset_special (const int *list, 77 const DATASET *dset, 78 const gretl_matrix *mmask, 79 int *err); 80 81 DATASET *gretl_dataset_from_matrix (const gretl_matrix *m, 82 const int *list, 83 gretlopt opt, 84 int *err); 85 86 int write_matrix_as_dataset (const char *fname, 87 gretlopt opt, 88 PRN *prn); 89 90 int gretl_plotfit_matrices (const double *yvar, const double *xvar, 91 FitType fit, int t1, int t2, 92 gretl_matrix **py, gretl_matrix **pX); 93 94 gretl_matrix *gretl_matrix_read_from_file (const char *fname, 95 int import, int *err); 96 97 int gretl_matrix_write_to_file (gretl_matrix *A, const char *fname, 98 int export); 99 100 void gretl_matrix_print_to_prn (const gretl_matrix *m, 101 const char *msg, 102 PRN *prn); 103 104 void gretl_matrix_print_range (const gretl_matrix *m, 105 const char *msg, 106 int rmin, int rmax, 107 PRN *prn); 108 109 void gretl_matrix_print_with_col_heads (const gretl_matrix *m, 110 const char *title, 111 const char **heads, 112 const DATASET *dset, 113 PRN *prn); 114 115 void gretl_matrix_print_with_format (const gretl_matrix *m, 116 const char *fmt, 117 int wid, int prec, 118 PRN *prn); 119 120 void debug_print_matrix (const gretl_matrix *m, const char *msg); 121 122 int gretl_matrix_cut_cols (gretl_matrix *m, const char *mask); 123 124 int gretl_matrix_cut_rows (gretl_matrix *m, const char *mask); 125 126 int gretl_matrix_cut_rows_cols (gretl_matrix *m, const char *mask); 127 128 char *gretl_matrix_zero_row_mask (const gretl_matrix *m, int *err); 129 130 char *gretl_matrix_zero_col_mask (const gretl_matrix *m, int *err); 131 132 char *gretl_matrix_zero_diag_mask (const gretl_matrix *m, int *err); 133 134 char *gretl_matrix_rank_mask (const gretl_matrix *m, int *err); 135 136 int gretl_matrix_mp_ols (const gretl_vector *y, const gretl_matrix *X, 137 gretl_vector *b, gretl_matrix *vcv, 138 gretl_vector *uhat, double *s2); 139 140 gretl_matrix *gretl_quadrule_matrix_new (int n, int method, 141 double a, double b, 142 int *err); 143 144 gretl_matrix *gretl_gauss_hermite_matrix_new (int n, int *err); 145 146 gretl_matrix *gretl_matrix_2d_convolution (const gretl_matrix *A, 147 const gretl_matrix *B, 148 int *err); 149 150 gretl_matrix *vector_from_strings (char **S, int ns, 151 const char *fmt, 152 int *nvals, 153 int *err); 154 155 #endif /* MATRIX_EXTRA_H */ 156