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 GRETL_ARRAY_H_ 21 #define GRETL_ARRAY_H_ 22 23 void gretl_array_destroy (gretl_array *A); 24 25 void gretl_array_void_content (gretl_array *A); 26 27 void gretl_array_nullify_content (gretl_array *A); 28 29 void gretl_array_nullify_elements (gretl_array *A); 30 31 gretl_array *gretl_array_new (GretlType type, int n, int *err); 32 33 gretl_array *gretl_array_from_strings (char **S, int n, 34 int copy, int *err); 35 36 gretl_array *gretl_matrix_array_sized (int n, int r, int c, 37 int *err); 38 39 gretl_array *gretl_singleton_array (void *ptr, GretlType atype, 40 int copy, int *err); 41 42 void *gretl_array_get_element (gretl_array *A, int i, 43 GretlType *type, 44 int *err); 45 46 int gretl_array_set_element (gretl_array *A, int i, 47 void *ptr, GretlType type, 48 int copy); 49 50 int gretl_array_delete_element (gretl_array *A, int i); 51 52 void *gretl_array_get_data (gretl_array *A, int i); 53 54 int gretl_array_set_data (gretl_array *A, int i, void *ptr); 55 56 int gretl_array_set_type (gretl_array *A, GretlType type); 57 58 char **gretl_array_get_strings (gretl_array *A, int *ns); 59 60 char **gretl_array_steal_strings (gretl_array *A, int *ns); 61 62 char **gretl_array_get_stringify_strings (gretl_array *A, 63 int nreq, int *ns, 64 int *err); 65 66 char *gretl_strings_array_flatten (gretl_array *A, int space, int *err); 67 68 gretl_matrix *gretl_strings_array_pos (gretl_array *A, 69 const char *s, 70 int *err); 71 72 int gretl_array_drop_string (gretl_array *A, const char *s); 73 74 GretlType gretl_array_get_type (gretl_array *A); 75 76 GretlType gretl_array_get_content_type (gretl_array *A); 77 78 int gretl_array_get_length (gretl_array *A); 79 80 int gretl_array_get_next_index (gretl_array *A); 81 82 int gretl_array_set_string (gretl_array *A, int i, 83 char *s, int copy); 84 85 int gretl_array_append_string (gretl_array *A, 86 char *s, 87 int copy); 88 89 int gretl_array_set_matrix (gretl_array *A, int i, 90 gretl_matrix *m, 91 int copy); 92 93 int gretl_array_append_matrix (gretl_array *A, 94 gretl_matrix *m, 95 int copy); 96 97 int gretl_array_set_bundle (gretl_array *A, int i, 98 gretl_bundle *b, 99 int copy); 100 101 int gretl_array_append_bundle (gretl_array *A, 102 gretl_bundle *b, 103 int copy); 104 105 int gretl_array_set_array (gretl_array *A, int i, 106 gretl_array *ai, 107 int copy); 108 109 int gretl_array_append_array (gretl_array *A, 110 gretl_array *a, 111 int copy); 112 113 gretl_bundle *gretl_array_get_bundle (gretl_array *A, 114 int i); 115 116 gretl_matrix *gretl_matrix_array_flatten (gretl_array *A, 117 int vcat, 118 int *err); 119 120 gretl_array *gretl_matrix_split_by (const gretl_matrix *X, 121 const gretl_matrix *v, 122 int colwise, int *err); 123 124 int gretl_array_set_list (gretl_array *A, int i, 125 int *L, int copy); 126 127 int gretl_array_append_list (gretl_array *A, 128 int *L, int copy); 129 130 int gretl_array_append_object (gretl_array *A, 131 void *ptr, 132 int copy); 133 134 int gretl_array_copy_into (gretl_array *A1, 135 const gretl_array *A2); 136 137 gretl_array *gretl_arrays_join (gretl_array *A, 138 gretl_array *B, 139 int *err); 140 141 gretl_array *gretl_arrays_union (gretl_array *A, 142 gretl_array *B, 143 int *err); 144 145 gretl_array *gretl_arrays_intersection (gretl_array *A, 146 gretl_array *B, 147 int *err); 148 149 gretl_array *gretl_array_copy (const gretl_array *A, 150 int *err); 151 152 gretl_array *gretl_strings_sort (const gretl_array *A, 153 int descending, 154 int *err); 155 156 int gretl_array_copy_as (const char *name, const char *copyname, 157 GretlType copytype); 158 159 gretl_array *gretl_array_copy_subspec (gretl_array *A, 160 int *list, 161 int *err); 162 163 gretl_array *get_array_by_name (const char *name); 164 165 gretl_array *get_strings_array_by_name (const char *name); 166 167 gretl_array *gretl_array_pull_from_stack (const char *name, 168 int *err); 169 170 int gretl_array_print (gretl_array *A, PRN *prn); 171 172 int gretl_array_print_range (gretl_array *A, 173 int imin, int imax, 174 PRN *prn); 175 176 void gretl_array_serialize (gretl_array *A, PRN *prn); 177 178 gretl_array *gretl_array_deserialize (void *p1, void *p2, 179 int *err); 180 181 gretl_array *gretl_matrix_col_split (const gretl_matrix *m, 182 int leadcols, int maxcols, 183 int *err); 184 185 #endif /* GRETL_ARRAY_H_ */ 186