File: array_descriptor.h

package info (click to toggle)
gridtools 2.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 21,728 kB
  • sloc: cpp: 45,263; python: 9,383; javascript: 8,445; ansic: 2,564; sh: 509; f90: 370; makefile: 216
file content (52 lines) | stat: -rw-r--r-- 1,414 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
 * GridTools
 *
 * Copyright (c) 2014-2019, ETH Zurich
 * All rights reserved.
 *
 * Please, refer to the LICENSE file in the root directory.
 * SPDX-License-Identifier: BSD-3-Clause
 */

#pragma once

#include <stdbool.h>

enum bindgen_fortran_array_kind {
    bindgen_fk_Bool,
    bindgen_fk_Int,
    bindgen_fk_Short,
    bindgen_fk_Long,
    bindgen_fk_LongLong,
    bindgen_fk_Float,
    bindgen_fk_Double,
    bindgen_fk_LongDouble,
    bindgen_fk_SignedChar,

#ifdef CPP_BINDGEN_GT_LEGACY // remove once GT is at v2.0
    gt_fk_Bool = bindgen_fk_Bool,
    gt_fk_Int = bindgen_fk_Int,
    gt_fk_Short = bindgen_fk_Int,
    gt_fk_Long = bindgen_fk_Long,
    gt_fk_LongLong = bindgen_fk_LongLong,
    gt_fk_Float = bindgen_fk_Float,
    gt_fk_Double = bindgen_fk_Double,
    gt_fk_LongDouble = bindgen_fk_LongDouble,
    gt_fk_SignedChar = bindgen_fk_SignedChar
#endif
};
typedef enum bindgen_fortran_array_kind bindgen_fortran_array_kind;

struct bindgen_fortran_array_descriptor {
    bindgen_fortran_array_kind type;
    int rank;
    int dims[7];
    void *data;
    bool is_acc_present;
    // TODO: add support for strides, bounds end type bindgen_fortran_array_descriptor
};
typedef struct bindgen_fortran_array_descriptor bindgen_fortran_array_descriptor;

#ifdef CPP_BINDGEN_GT_LEGACY // remove once GT is at v2.0
typedef struct bindgen_fortran_array_descriptor gt_fortran_array_descriptor;
#endif