1;;; Package defs for the Scheme Underground sorting package,
2;;; in the Scheme 48 module language.
3
4;;; This code is
5;;;     Copyright (c) 1998 by Olin Shivers.
6;;; The terms are: You may do as you please with this code, as long as
7;;; you do not delete this notice or hold me responsible for any outcome
8;;; related to its use.
9;;;
10;;; Blah blah blah. Don't you think source files should contain more lines
11;;; of code than copyright notice?
12
13;;; The general sort package:
14
15(define-structure sorting sorting-interface
16  (open scheme
17	list-merge-sort
18	vector-heap-sort
19	vector-merge-sort
20	vector-quick-sort
21	sorted
22	delete-neighbor-duplicates)
23  (files sort)
24  (optimize auto-integrate))
25
26(define-structure sorted sorted-interface
27  (open scheme
28	vector-utils)
29  (files sortp)
30  (optimize auto-integrate))
31
32(define-structure delete-neighbor-duplicates delete-neighbor-duplicates-interface
33  (open scheme
34	vector-utils)
35  (files delndups)
36  (optimize auto-integrate))
37
38(define-structure binary-searches binary-searches-interface
39  (open scheme
40	vector-utils)
41  (files vbinsearch))
42
43(define-structure list-merge-sort list-merge-sort-interface
44  (open scheme
45	(subset exceptions (assertion-violation)))
46  (files lmsort)
47  (optimize auto-integrate))
48
49(define-structure vector-merge-sort vector-merge-sort-interface
50  (open scheme
51	vector-utils
52	vector-insertion-sort-internal)
53  (files vmsort)
54  (optimize auto-integrate))
55
56(define-structure vector-heap-sort vector-heap-sort-interface
57  (open scheme
58	vector-utils)
59  (files vhsort)
60  (optimize auto-integrate))
61
62(define-structures ((vector-insertion-sort vector-insertion-sort-interface)
63		    (vector-insertion-sort-internal
64		     vector-insertion-sort-internal-interface))
65  (open scheme
66	vector-utils)
67  (files visort)
68  (optimize auto-integrate))
69
70(define-structure vector-quick-sort vector-quick-sort-interface
71  (open scheme
72	vector-utils
73	vector-insertion-sort-internal)
74  (files vqsort2))
75
76(define-structure vector-quick-sort3 vector-quick-sort3-interface
77  (open scheme
78	vector-utils
79	vector-insertion-sort-internal)
80  (files vqsort3))
81
82(define-structure vector-utils (export vector-copy
83				       vector-portion-copy
84				       vector-portion-copy!
85				       vector-start+end
86				       vectors-start+end-2)
87  (open scheme)
88  (files vector-util))
89
90