ScaMaC  0.8.2
A Scalable Matrix Collection
scamac_multidx.h
Go to the documentation of this file.
1 
8 #ifndef SCAMAC_MULTIDX_H
9 #define SCAMAC_MULTIDX_H
10 
11 #include "scamac_inttypes.h"
12 #include "scamac_error.h"
13 
14 typedef struct {
15  int n;
16  /* i-th index runs from 0 to ni[i]-1 */
17  ScamacIdx *ni;
18  /* product of ni[0]*ni[1]* ... */
19  ScamacIdx *niprod;
20  /* number of differents index entries */
21  ScamacIdx nidx;
22 } scamac_multidx_st;
23 
24 ScamacErrorCode scamac_multidx_alloc(int n, scamac_multidx_st ** midx);
25 ScamacErrorCode scamac_multidx_free(scamac_multidx_st *midx);
26 ScamacErrorCode scamac_multidx_set(scamac_multidx_st *midx, int pos, ScamacIdx ni);
27 
28 ScamacIdx scamac_multidx_nidx(const scamac_multidx_st *midx);
29 
30 ScamacIdx scamac_multidx_decode(const scamac_multidx_st *midx, int pos, ScamacIdx idx);
31 
32 ScamacIdx scamac_multidx_upd(const scamac_multidx_st *midx, int pos, ScamacIdx idx_at_pos, ScamacIdx idx);
33 
34 #endif /* SCAMAC_MULTIDX_H */
ScaMaC index/integer types.
ScaMaC data structure and macro definitions.