 |
FrontISTR
5.7.0
Large-scale structural analysis program with finit element method
|
Go to the documentation of this file.
47 static int varray_resize(
struct hecmw_varray_int *varray,
size_t new_max_val) {
55 if (new_max_val == 0) {
66 if (new_vals ==
NULL) {
70 varray->
vals = new_vals;
86 return varray_resize(varray, new_max_val);
105 return varray->
vals[index];
118 for (i = 0; i < varray2->
n_val; i++) {
125 static int int_cmp(
const void *v1,
const void *v2) {
128 i1 = (
const int *)v1;
129 i2 = (
const int *)v2;
131 if (*i1 < *i2)
return -1;
132 if (*i1 > *i2)
return 1;
138 qsort(varray->
vals, varray->
n_val,
sizeof(
int), int_cmp);
144 p = bsearch(&value, varray->
vals, varray->
n_val,
sizeof(
int), int_cmp);
146 *index = p - varray->
vals;
155 for (i = 1; i < varray->
n_val; i++) {
156 if (varray->
vals[i - 1] == varray->
vals[i]) {
160 varray->
vals[i - n_dup] = varray->
vals[i];
165 varray->
n_val -= n_dup;
168 varray_resize(varray, varray->
n_val);
202 for (i = 0; i < varray->
n_val; i++) varray2->
vals[i] = varray->
vals[i];
225 for (i = 0; i < varray->
n_val; i++) {
226 int *key = varray->
vals + i;
228 bsearch(key, tmp_array.
vals, tmp_array.
n_val,
sizeof(
int), int_cmp);
233 idx = res - tmp_array.
vals;
239 varray->
vals[i - n_dup] = varray->
vals[i];
242 varray->
n_val -= n_dup;
252 size_t end,
int val) {
259 for (i = begin; i < end; i++) {
260 varray->
vals[i] = val;
278 memmove(varray->
vals + index + 1, varray->
vals + index,
279 sizeof(
int) * (varray->
n_val - index));
281 varray->
vals[index] = val;
296 memmove(varray->
vals + index, varray->
vals + index + 1,
297 sizeof(
int) * (varray->
n_val - index - 1));
int * HECMW_varray_int_get_v(struct hecmw_varray_int *varray)
int HECMW_bit_array_get(struct hecmw_bit_array *ba, size_t index)
#define HECMW_realloc(ptr, size)
int HECMW_varray_int_search(struct hecmw_varray_int *varray, int value, size_t *index)
int HECMW_varray_int_delete(struct hecmw_varray_int *varray, size_t index)
void HECMW_varray_int_sort(struct hecmw_varray_int *varray)
int HECMW_varray_int_resize(struct hecmw_varray_int *varray, size_t len)
int HECMW_varray_int_get(const struct hecmw_varray_int *varray, size_t index)
int HECMW_varray_int_assign(struct hecmw_varray_int *varray, size_t begin, size_t end, int val)
int HECMW_bit_array_init(struct hecmw_bit_array *ba, size_t len)
void HECMW_varray_int_finalize(struct hecmw_varray_int *varray)
int HECMW_varray_int_init(struct hecmw_varray_int *varray)
void HECMW_bit_array_finalize(struct hecmw_bit_array *ba)
void HECMW_bit_array_set(struct hecmw_bit_array *ba, size_t index)
int HECMW_varray_int_cat(struct hecmw_varray_int *varray, const struct hecmw_varray_int *varray2)
int HECMW_varray_int_append(struct hecmw_varray_int *varray, int value)
size_t HECMW_varray_int_nval(const struct hecmw_varray_int *varray)
int HECMW_varray_int_rmdup(struct hecmw_varray_int *varray)
#define HECMW_assert(cond)
int HECMW_varray_int_copy(const struct hecmw_varray_int *varray, struct hecmw_varray_int *varray2)
size_t HECMW_varray_int_uniq(struct hecmw_varray_int *varray)
int HECMW_varray_int_insert(struct hecmw_varray_int *varray, size_t index, int val)
const int * HECMW_varray_int_get_cv(const struct hecmw_varray_int *varray)