forked from ImortisInglorian/fbrtLib
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy patharray_core.bas
More file actions
34 lines (25 loc) · 822 Bytes
/
Copy patharray_core.bas
File metadata and controls
34 lines (25 loc) · 822 Bytes
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
/' dynamic arrays core '/
#include "fb.bi"
extern "C"
function fb_hArrayCalcElements cdecl ( dimensions as size_t, lboundTB as ssize_t const ptr, uboundTB as ssize_t const ptr ) as size_t
dim as size_t i, elements
elements = (uboundTB[0] - lboundTB[0]) + 1
for i = 1 to dimensions
elements *= (uboundTB[i] - lboundTB[i]) + 1
next
return elements
end function
function fb_hArrayCalcDiff cdecl ( dimensions as size_t, lboundTB as ssize_t const ptr, uboundTB as ssize_t const ptr ) as ssize_t
dim as size_t i, elements
dim as ssize_t diff = 0
if ( dimensions <= 0 ) then
return 0
end if
for i = 0 to dimensions - 1
elements = (uboundTB[i+1] - lboundTB[i+1]) + 1
diff = (diff + lboundTB[i]) * elements
next
diff += lboundTB[dimensions-1]
return -diff
end function
end extern