Add copyright and licence notices to files which lack them.
[pspp] / src / libpspp / array.h
index 3cfb245a26f7fe84d800329243d5349593503109..fbebd56835f0ba59bf4afc522e17f7240e7e1c50 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+PSPP - a program for statistical analysis.
+Copyright (C) 2017 Free Software Foundation, Inc.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #ifndef ALGORITHM_H
 #define ALGORITHM_H 1
 
@@ -118,7 +136,7 @@ void insert_range (void *array, size_t count, size_t size,
 /* Makes room for a new element at IDX in ARRAY, which initially
    consists of COUNT elements of SIZE bytes each, by shifting
    elements IDX...COUNT (exclusive) to the right by one
-   positions. */
+   position. */
 void insert_element (void *array, size_t count, size_t size,
                      size_t idx);
 
@@ -129,6 +147,12 @@ void insert_element (void *array, size_t count, size_t size,
 void move_element (void *array, size_t count, size_t size,
                    size_t old_idx, size_t new_idx);
 
+/* Moves N elements in ARRAY starting at OLD_IDX, which consists
+   of COUNT elements of SIZE bytes each, so that they now start
+   at NEW_IDX, shifting around other elements as needed. */
+void move_range (void *array, size_t count, size_t size,
+                 size_t old_idx, size_t new_idx, size_t n);
+
 /* Removes elements equal to ELEMENT from ARRAY, which consists
    of COUNT elements of SIZE bytes each.  Returns the number of
    remaining elements.  AUX is passed to COMPARE as auxiliary
@@ -217,8 +241,8 @@ void sort_heap (void *array, size_t count, size_t size,
                 algo_compare_func *compare, const void *aux);
 
 /* ARRAY contains COUNT elements of SIZE bytes each.  This
-   function tests whether ARRAY is a heap and returns true if so, 
-   false otherwise.  Uses COMPARE to compare elements, passing 
+   function tests whether ARRAY is a heap and returns true if so,
+   false otherwise.  Uses COMPARE to compare elements, passing
    AUX as auxiliary data. */
 bool is_heap (const void *array, size_t count, size_t size,
              algo_compare_func *compare, const void *aux);