FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
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 
10 int 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 }
HECMW_varray_int_get_v
int * HECMW_varray_int_get_v(struct hecmw_varray_int *varray)
Definition: hecmw_varray_int.c:183
main
int main()
Definition: varray_test.c:10
HECMW_varray_int_sort
void HECMW_varray_int_sort(struct hecmw_varray_int *varray)
Definition: hecmw_varray_int.c:136
HECMW_varray_int_resize
int HECMW_varray_int_resize(struct hecmw_varray_int *varray, size_t len)
Definition: hecmw_varray_int.c:173
HECMW_varray_int_get
int HECMW_varray_int_get(const struct hecmw_varray_int *varray, size_t index)
Definition: hecmw_varray_int.c:101
hecmw_varray_int
varray int
Definition: hecmw_varray_int_f.f90:7
HECMW_EXIT_ERROR
#define HECMW_EXIT_ERROR
Definition: hecmw_config.h:62
hecmw_varray_int.h
hecmw_config.h
HECMW_varray_int_finalize
void HECMW_varray_int_finalize(struct hecmw_varray_int *varray)
Definition: hecmw_varray_int.c:29
HECMW_varray_int_init
int HECMW_varray_int_init(struct hecmw_varray_int *varray)
Definition: hecmw_varray_int.c:18
HECMW_SUCCESS
#define HECMW_SUCCESS
Definition: hecmw_config.h:64
HECMW_varray_int_cat
int HECMW_varray_int_cat(struct hecmw_varray_int *varray, const struct hecmw_varray_int *varray2)
Definition: hecmw_varray_int.c:108
HECMW_varray_int_append
int HECMW_varray_int_append(struct hecmw_varray_int *varray, int value)
Definition: hecmw_varray_int.c:89
HECMW_varray_int_nval
size_t HECMW_varray_int_nval(const struct hecmw_varray_int *varray)
Definition: hecmw_varray_int.c:41
NULL
#define NULL
Definition: hecmw_io_nastran.c:30
HECMW_varray_int_rmdup
int HECMW_varray_int_rmdup(struct hecmw_varray_int *varray)
Definition: hecmw_varray_int.c:207
HECMW_varray_int_uniq
size_t HECMW_varray_int_uniq(struct hecmw_varray_int *varray)
Definition: hecmw_varray_int.c:150
HECMW_EXIT_SUCCESS
#define HECMW_EXIT_SUCCESS
Definition: hecmw_config.h:60