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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
/* automatically generated by rust-bindgen 0.65.1 */

pub type BQNV = u64;
extern "C" {
    pub fn bqn_init();
}
extern "C" {
    pub fn bqn_free(v: BQNV);
}
extern "C" {
    pub fn bqn_copy(v: BQNV) -> BQNV;
}
extern "C" {
    pub fn bqn_toF64(v: BQNV) -> f64;
}
extern "C" {
    pub fn bqn_toChar(v: BQNV) -> u32;
}
extern "C" {
    pub fn bqn_readF64(v: BQNV) -> f64;
}
extern "C" {
    pub fn bqn_readChar(v: BQNV) -> u32;
}
extern "C" {
    pub fn bqn_type(v: BQNV) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn bqn_call1(f: BQNV, x: BQNV) -> BQNV;
}
extern "C" {
    pub fn bqn_call2(f: BQNV, w: BQNV, x: BQNV) -> BQNV;
}
extern "C" {
    pub fn bqn_eval(src: BQNV) -> BQNV;
}
extern "C" {
    pub fn bqn_evalCStr(str_: *const ::std::os::raw::c_char) -> BQNV;
}
extern "C" {
    pub fn bqn_bound(a: BQNV) -> usize;
}
extern "C" {
    pub fn bqn_rank(a: BQNV) -> usize;
}
extern "C" {
    pub fn bqn_shape(a: BQNV, buf: *mut usize);
}
extern "C" {
    pub fn bqn_pick(a: BQNV, pos: usize) -> BQNV;
}
extern "C" {
    pub fn bqn_readI8Arr(a: BQNV, buf: *mut i8);
}
extern "C" {
    pub fn bqn_readI16Arr(a: BQNV, buf: *mut i16);
}
extern "C" {
    pub fn bqn_readI32Arr(a: BQNV, buf: *mut i32);
}
extern "C" {
    pub fn bqn_readF64Arr(a: BQNV, buf: *mut f64);
}
extern "C" {
    pub fn bqn_readC8Arr(a: BQNV, buf: *mut u8);
}
extern "C" {
    pub fn bqn_readC16Arr(a: BQNV, buf: *mut u16);
}
extern "C" {
    pub fn bqn_readC32Arr(a: BQNV, buf: *mut u32);
}
extern "C" {
    pub fn bqn_readObjArr(a: BQNV, buf: *mut BQNV);
}
extern "C" {
    pub fn bqn_hasField(ns: BQNV, name: BQNV) -> bool;
}
extern "C" {
    pub fn bqn_getField(ns: BQNV, name: BQNV) -> BQNV;
}
extern "C" {
    pub fn bqn_makeF64(d: f64) -> BQNV;
}
extern "C" {
    pub fn bqn_makeChar(c: u32) -> BQNV;
}
extern "C" {
    pub fn bqn_makeI8Arr(rank: usize, shape: *const usize, data: *const i8) -> BQNV;
}
extern "C" {
    pub fn bqn_makeI16Arr(rank: usize, shape: *const usize, data: *const i16) -> BQNV;
}
extern "C" {
    pub fn bqn_makeI32Arr(rank: usize, shape: *const usize, data: *const i32) -> BQNV;
}
extern "C" {
    pub fn bqn_makeF64Arr(rank: usize, shape: *const usize, data: *const f64) -> BQNV;
}
extern "C" {
    pub fn bqn_makeC8Arr(rank: usize, shape: *const usize, data: *const u8) -> BQNV;
}
extern "C" {
    pub fn bqn_makeC16Arr(rank: usize, shape: *const usize, data: *const u16) -> BQNV;
}
extern "C" {
    pub fn bqn_makeC32Arr(rank: usize, shape: *const usize, data: *const u32) -> BQNV;
}
extern "C" {
    pub fn bqn_makeObjArr(rank: usize, shape: *const usize, data: *const BQNV) -> BQNV;
}
extern "C" {
    pub fn bqn_makeI8Vec(len: usize, data: *const i8) -> BQNV;
}
extern "C" {
    pub fn bqn_makeI16Vec(len: usize, data: *const i16) -> BQNV;
}
extern "C" {
    pub fn bqn_makeI32Vec(len: usize, data: *const i32) -> BQNV;
}
extern "C" {
    pub fn bqn_makeF64Vec(len: usize, data: *const f64) -> BQNV;
}
extern "C" {
    pub fn bqn_makeC8Vec(len: usize, data: *const u8) -> BQNV;
}
extern "C" {
    pub fn bqn_makeC16Vec(len: usize, data: *const u16) -> BQNV;
}
extern "C" {
    pub fn bqn_makeC32Vec(len: usize, data: *const u32) -> BQNV;
}
extern "C" {
    pub fn bqn_makeObjVec(len: usize, data: *const BQNV) -> BQNV;
}
extern "C" {
    pub fn bqn_makeUTF8Str(len: usize, str_: *const ::std::os::raw::c_char) -> BQNV;
}
pub type bqn_boundFn1 = ::std::option::Option<unsafe extern "C" fn(obj: BQNV, x: BQNV) -> BQNV>;
pub type bqn_boundFn2 =
    ::std::option::Option<unsafe extern "C" fn(obj: BQNV, w: BQNV, x: BQNV) -> BQNV>;
extern "C" {
    pub fn bqn_makeBoundFn1(f: bqn_boundFn1, obj: BQNV) -> BQNV;
}
extern "C" {
    pub fn bqn_makeBoundFn2(f: bqn_boundFn2, obj: BQNV) -> BQNV;
}
pub const BQNElType_elt_unk: BQNElType = 0;
pub const BQNElType_elt_i8: BQNElType = 1;
pub const BQNElType_elt_i16: BQNElType = 2;
pub const BQNElType_elt_i32: BQNElType = 3;
pub const BQNElType_elt_f64: BQNElType = 4;
pub const BQNElType_elt_c8: BQNElType = 5;
pub const BQNElType_elt_c16: BQNElType = 6;
pub const BQNElType_elt_c32: BQNElType = 7;
pub type BQNElType = ::std::os::raw::c_uint;
extern "C" {
    pub fn bqn_directArrType(a: BQNV) -> BQNElType;
}
extern "C" {
    pub fn bqn_directI8(a: BQNV) -> *const i8;
}
extern "C" {
    pub fn bqn_directI16(a: BQNV) -> *const i16;
}
extern "C" {
    pub fn bqn_directI32(a: BQNV) -> *const i32;
}
extern "C" {
    pub fn bqn_directF64(a: BQNV) -> *const f64;
}
extern "C" {
    pub fn bqn_directC8(a: BQNV) -> *const u8;
}
extern "C" {
    pub fn bqn_directC16(a: BQNV) -> *const u16;
}
extern "C" {
    pub fn bqn_directC32(a: BQNV) -> *const u32;
}