You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA. */
#ifndef DICTIONARY_H
#define DICTIONARY_H
+#include <stdbool.h>
#include <stddef.h>
/* Dictionary. */
struct variable *dict_create_var (struct dictionary *, const char *,
int width);
+
struct variable *dict_create_var_assert (struct dictionary *, const char *,
int width);
struct variable *dict_clone_var (struct dictionary *, const struct variable *,
const char *);
-void dict_rename_var (struct dictionary *, struct variable *, const char *);
+struct variable *dict_clone_var_assert (struct dictionary *,
+ const struct variable *, const char *);
struct variable *dict_lookup_var (const struct dictionary *, const char *);
struct variable *dict_lookup_var_assert (const struct dictionary *,
const char *);
-int dict_contains_var (const struct dictionary *, const struct variable *);
+bool dict_contains_var (const struct dictionary *, const struct variable *);
void dict_delete_var (struct dictionary *, struct variable *);
void dict_delete_vars (struct dictionary *,
struct variable *const *, size_t count);
+void dict_delete_scratch_vars (struct dictionary *);
+void dict_reorder_var (struct dictionary *d, struct variable *v,
+ size_t new_index);
void dict_reorder_vars (struct dictionary *,
struct variable *const *, size_t count);
-int dict_rename_vars (struct dictionary *,
- struct variable **, char **new_names,
- size_t count, char **err_name);
+void dict_rename_var (struct dictionary *, struct variable *, const char *);
+bool dict_rename_vars (struct dictionary *,
+ struct variable **, char **new_names,
+ size_t count, char **err_name);
struct ccase;
struct variable *dict_get_weight (const struct dictionary *);
void dict_compact_values (struct dictionary *);
size_t dict_get_compacted_value_cnt (const struct dictionary *);
int *dict_get_compacted_idx_to_fv (const struct dictionary *);
+bool dict_needs_compaction (const struct dictionary *);
+
+struct dict_compactor *dict_make_compactor (const struct dictionary *);
+void dict_compactor_compact (const struct dict_compactor *,
+ struct ccase *, const struct ccase *);
+void dict_compactor_destroy (struct dict_compactor *);
struct variable *const *dict_get_split_vars (const struct dictionary *);
size_t dict_get_split_cnt (const struct dictionary *);
const char *dict_get_documents (const struct dictionary *);
void dict_set_documents (struct dictionary *, const char *);
-int dict_create_vector (struct dictionary *,
- const char *name,
- struct variable **, size_t cnt);
+bool dict_create_vector (struct dictionary *,
+ const char *name,
+ struct variable **, size_t cnt);
const struct vector *dict_get_vector (const struct dictionary *,
size_t idx);
size_t dict_get_vector_cnt (const struct dictionary *);
const char *name);
void dict_clear_vectors (struct dictionary *);
+void dict_assign_short_names (struct dictionary *);
+
#endif /* dictionary.h */