tutility.cpp - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
HTML git clone git://src.adamsgaard.dk/sphere
DIR Log
DIR Files
DIR Refs
DIR LICENSE
---
tutility.cpp (1615B)
---
1 // MISC. UTILITY FUNCTIONS
2
3 #include "datatypes.h"
4
5
6 //Round a / b to nearest higher integer value
7 unsigned int iDivUp(unsigned int a, unsigned int b)
8 {
9 return (a % b != 0) ? (a / b + 1) : (a / b);
10 }
11
12 // Swap two arrays pointers
13 void swapFloatArrays(Float* arr1, Float* arr2)
14 {
15 Float* tmp = arr1;
16 arr1 = arr2;
17 arr2 = tmp;
18 }
19
20 // Get minimum value in 1D array
21 Float minVal(Float* arr, int length)
22 {
23 Float min = 1.0e13; // initialize with a large number
24 unsigned int i;
25 Float val;
26 for (i=0; i<length; ++i) {
27 val = arr[i];
28 if (val < min) min = val;
29 }
30 return min;
31 }
32
33 // Get maximum value in 1d array
34 Float maxVal(Float* arr, int length)
35 {
36 Float max = -1.0e13; // initialize with a small number
37 unsigned int i;
38 Float val;
39 for (i=0; i<length; ++i) {
40 val = arr[i];
41 if (val > max) max = val;
42 }
43 return max;
44 }
45
46 // Get minimum value in 3d array
47 Float minVal(Float3* arr, int length)
48 {
49 Float min = 1.0e13; // initialize with a large number
50 unsigned int i;
51 Float3 val;
52 for (i=0; i<length; ++i) {
53 val = arr[i];
54 if (val.x < min) min = val.x;
55 if (val.y < min) min = val.y;
56 if (val.z < min) min = val.z;
57 }
58 return min;
59 }
60
61 // Get maximum value in 3d array
62 Float maxVal(Float3* arr, int length)
63 {
64 Float max = -1.0e13; // initialize with a small number
65 unsigned int i;
66 Float3 val;
67 for (i=0; i<length; ++i) {
68 val = arr[i];
69 if (val.x > max) max = val.x;
70 if (val.y > max) max = val.y;
71 if (val.z > max) max = val.z;
72 }
73 return max;
74 }