1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#include "lua.h"
#include "i_util.h"
#include "i_common.h"
int l_len(lua_State*); //[double+int] -> i
int l_reverse(lua_State*); //[double+int] -> arr[N]
int l_greatest(lua_State*); //[double+int] -> i
int l_least(lua_State*); //[double+int] -> i
int l_shuffle(lua_State*); //[double+int] -> arr[N]
int l_sum(lua_State*); //[double+int] -> i
int l_indexof(lua_State*); //[double+int], item -> i
int l_sindexof(lua_State*);//[double+int] (greatest -> least), item -> i
//comparison sorts
int l_quicksort(lua_State*); //[double+int] -> arr[N] (greatest -> least)
int l_mergesort(lua_State*); //[double+int] -> arr[N] (greatest -> least)
int l_shellsort(lua_State*); //[double+int] -> arr[N] (greatest -> least)
int l_bubblesort(lua_State*); //[double+int] -> arr[N] (greatest -> least)
int l_heapsort(lua_State*); //[double+int] -> arr[N] (greatest -> least)
//non-comparison sorts
//good for large arrays filled with small values
int l_countingsort(lua_State*); //[int] (arr[N] >= 0) -> arr[N] (least -> greatest)
//esoteric sorts
int l_miraclesort(lua_State*); //[double+int] -> arr[-∞<=N<=∞] (greatest -> least)
int l_stalinsort(lua_State*); //[double+int] -> arr[?<=N] (greatest -> least)
int l_slowsort(lua_State*); //[double+int] -> arr[N] (greatest -> least)
int l_bogosort(lua_State*); //[double+int] -> arr[N] (greatest -> least)
static const luaL_Reg array_function_list [] = {
{"len",l_len},
{"reverse",l_reverse},
{"greatest",l_greatest},
{"least",l_least},
{"shuffle",l_shuffle},
{"sum",l_sum},
{"index",l_indexof},
{"sindex",l_sindexof},
{"quicksort",l_quicksort},
{"mergesort",l_mergesort},
{"shellsort",l_shellsort},
{"bubblesort",l_bubblesort},
{"heapsort",l_heapsort},
{"countingsort",l_countingsort},
{"miraclesort",l_miraclesort},
{"stalinsort",l_stalinsort},
{"slowsort",l_slowsort},
{"bogosort",l_bogosort},
{NULL,NULL}
};
|