FrontISTR 5.2.0
Large-scale structural analysis program with finit element method
Loading...
Searching...
No Matches
varray_test.c
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright (c) 2019 FrontISTR Commons
3 * This software is released under the MIT License, see LICENSE.txt
4 *****************************************************************************/
5
6#include <stdio.h>
7#include "hecmw_config.h"
8#include "hecmw_varray_int.h"
9
10int main() {
11 struct hecmw_varray_int va, vb;
12 int i;
13 int ndup;
14 int *vb_vals;
15
17 perror("init va");
18 return HECMW_EXIT_ERROR;
19 }
20
21 for (i = 0; i < 1000; i += 7) {
22 if (HECMW_varray_int_append(&va, i % 13) != HECMW_SUCCESS) {
23 perror("append va");
24 return HECMW_EXIT_ERROR;
25 }
26 }
27
28 printf("Initial va:");
29 for (i = 0; i < HECMW_varray_int_nval(&va); i++) {
30 printf(" %d", HECMW_varray_int_get(&va, i));
31 }
32 printf("\n");
33
35 perror("sort va");
36 return HECMW_EXIT_ERROR;
37 }
38
39 printf("After sorting va:");
40 for (i = 0; i < HECMW_varray_int_nval(&va); i++) {
41 printf(" %d", HECMW_varray_int_get(&va, i));
42 }
43 printf("\n");
44
45 ndup = HECMW_varray_int_uniq(&va);
46 printf("%d elemeent(s) removed\n", ndup);
47
48 printf("After uniq va:");
49 for (i = 0; i < HECMW_varray_int_nval(&va); i++) {
50 printf(" %d", HECMW_varray_int_get(&va, i));
51 }
52 printf("\n");
53
55 perror("init vb");
56 return HECMW_EXIT_ERROR;
57 }
58
59 if (HECMW_varray_int_resize(&vb, 100) != HECMW_SUCCESS) {
60 perror("resize vb");
61 return HECMW_EXIT_ERROR;
62 }
63
64 vb_vals = HECMW_varray_int_get_v(&vb);
65
66 if (vb_vals == NULL) {
67 perror("get_v vb");
68 return HECMW_EXIT_ERROR;
69 }
70
71 for (i = 0; i < 100; i++) {
72 vb_vals[i] = i * 23 % 31;
73 }
74
75 printf("Initial vb:");
76 for (i = 0; i < HECMW_varray_int_nval(&vb); i++) {
77 printf(" %d", HECMW_varray_int_get(&vb, i));
78 }
79 printf("\n");
80
81 if (HECMW_varray_int_cat(&va, &vb) != HECMW_SUCCESS) {
82 perror("cat va vb");
83 return HECMW_EXIT_ERROR;
84 }
85
86 printf("After cat va&vb:");
87 for (i = 0; i < HECMW_varray_int_nval(&va); i++) {
88 printf(" %d", HECMW_varray_int_get(&va, i));
89 }
90 printf("\n");
91
93 perror("rmdup va");
94 return HECMW_EXIT_ERROR;
95 }
96
97 printf("After rmdup va:");
98 for (i = 0; i < HECMW_varray_int_nval(&va); i++) {
99 printf(" %d", HECMW_varray_int_get(&va, i));
100 }
101 printf("\n");
102
105
106 return HECMW_EXIT_SUCCESS;
107}
#define HECMW_EXIT_ERROR
Definition: hecmw_config.h:62
#define HECMW_SUCCESS
Definition: hecmw_config.h:64
#define HECMW_EXIT_SUCCESS
Definition: hecmw_config.h:60
#define NULL
int HECMW_varray_int_rmdup(struct hecmw_varray_int *varray)
size_t HECMW_varray_int_nval(const struct hecmw_varray_int *varray)
size_t HECMW_varray_int_uniq(struct hecmw_varray_int *varray)
void HECMW_varray_int_sort(struct hecmw_varray_int *varray)
int * HECMW_varray_int_get_v(struct hecmw_varray_int *varray)
int HECMW_varray_int_get(const struct hecmw_varray_int *varray, size_t index)
int HECMW_varray_int_init(struct hecmw_varray_int *varray)
void HECMW_varray_int_finalize(struct hecmw_varray_int *varray)
int HECMW_varray_int_append(struct hecmw_varray_int *varray, int value)
int HECMW_varray_int_cat(struct hecmw_varray_int *varray, const struct hecmw_varray_int *varray2)
int HECMW_varray_int_resize(struct hecmw_varray_int *varray, size_t len)
int main()
Definition: varray_test.c:10