#ifndef _diag_band_to_rect_h_
#define _diag_band_to_rect_h_
#include "parsec.h"
#include "parsec/parsec_internal.h"

BEGIN_C_DECLS
#define PARSEC_diag_band_to_rect_DEFAULT_ARENA    0
#define PARSEC_diag_band_to_rect_ARENA_INDEX_MIN 1
    typedef struct parsec_diag_band_to_rect_taskpool_s {
    parsec_taskpool_t super;
    /* The list of globals */
    sym_two_dim_block_cyclic_t *_g_descA /* data descA */ ;
    two_dim_block_cyclic_t *_g_descB /* data descB */ ;
    int _g_MT;
    int _g_NT;
    int _g_MB;
    int _g_NB;
    size_t _g_TY;
    /* The array of datatypes (DEFAULT and co.) */
    parsec_arena_datatype_t *arenas_datatypes;
    uint32_t arenas_datatypes_size;
} parsec_diag_band_to_rect_taskpool_t;

extern parsec_diag_band_to_rect_taskpool_t *parsec_diag_band_to_rect_new(sym_two_dim_block_cyclic_t *
									 _g_descA /* data descA */ ,
									 two_dim_block_cyclic_t *
									 _g_descB /* data descB */ , int _g_MT,
									 int _g_NT, int _g_MB, int _g_NB, size_t _g_TY);

#if MAX_LOCAL_COUNT < 1		/* number of parameters and locals read_subdiag */
#error Too many parameters and local variables (1 out of MAX_LOCAL_COUNT) for task read_subdiag
#endif /* MAX_PARAM_COUNT */
typedef struct __parsec_diag_band_to_rect_read_subdiag_assignment_s {
    parsec_assignment_t k;
    parsec_assignment_t reserved[MAX_LOCAL_COUNT - 1];
} __parsec_diag_band_to_rect_read_subdiag_parsec_assignment_t;

#if MAX_PARAM_COUNT < 1		/* total number of flows for task read_subdiag */
#error Too many flows (1 out of MAX_PARAM_COUNT) for task read_subdiag
#endif /* MAX_PARAM_COUNT */
typedef struct __parsec_diag_band_to_rect_read_subdiag_data_s {
    parsec_data_pair_t _f_A;
    parsec_data_pair_t unused[MAX_LOCAL_COUNT - 1];
} __parsec_diag_band_to_rect_read_subdiag_data_t;

typedef struct __parsec_diag_band_to_rect_read_subdiag_task_s {
    PARSEC_MINIMAL_EXECUTION_CONTEXT
#if defined(PARSEC_PROF_TRACE)
    parsec_task_prof_info_t prof_info;
#endif				/* defined(PARSEC_PROF_TRACE) */
    struct __parsec_diag_band_to_rect_read_subdiag_assignment_s locals;
#if defined(PARSEC_SIM)
    int sim_exec_date;
#endif
    struct __parsec_diag_band_to_rect_read_subdiag_data_s data;
} __parsec_diag_band_to_rect_read_subdiag_task_t;


#if MAX_LOCAL_COUNT < 1		/* number of parameters and locals read_diag */
#error Too many parameters and local variables (1 out of MAX_LOCAL_COUNT) for task read_diag
#endif /* MAX_PARAM_COUNT */
typedef struct __parsec_diag_band_to_rect_read_diag_assignment_s {
    parsec_assignment_t k;
    parsec_assignment_t reserved[MAX_LOCAL_COUNT - 1];
} __parsec_diag_band_to_rect_read_diag_parsec_assignment_t;

#if MAX_PARAM_COUNT < 1		/* total number of flows for task read_diag */
#error Too many flows (1 out of MAX_PARAM_COUNT) for task read_diag
#endif /* MAX_PARAM_COUNT */
typedef struct __parsec_diag_band_to_rect_read_diag_data_s {
    parsec_data_pair_t _f_A;
    parsec_data_pair_t unused[MAX_LOCAL_COUNT - 1];
} __parsec_diag_band_to_rect_read_diag_data_t;

typedef struct __parsec_diag_band_to_rect_read_diag_task_s {
    PARSEC_MINIMAL_EXECUTION_CONTEXT
#if defined(PARSEC_PROF_TRACE)
    parsec_task_prof_info_t prof_info;
#endif				/* defined(PARSEC_PROF_TRACE) */
    struct __parsec_diag_band_to_rect_read_diag_assignment_s locals;
#if defined(PARSEC_SIM)
    int sim_exec_date;
#endif
    struct __parsec_diag_band_to_rect_read_diag_data_s data;
} __parsec_diag_band_to_rect_read_diag_task_t;


#if MAX_LOCAL_COUNT < 1		/* number of parameters and locals convert_diag */
#error Too many parameters and local variables (1 out of MAX_LOCAL_COUNT) for task convert_diag
#endif /* MAX_PARAM_COUNT */
typedef struct __parsec_diag_band_to_rect_convert_diag_assignment_s {
    parsec_assignment_t k;
    parsec_assignment_t reserved[MAX_LOCAL_COUNT - 1];
} __parsec_diag_band_to_rect_convert_diag_parsec_assignment_t;

#if MAX_PARAM_COUNT < 3		/* total number of flows for task convert_diag */
#error Too many flows (3 out of MAX_PARAM_COUNT) for task convert_diag
#endif /* MAX_PARAM_COUNT */
typedef struct __parsec_diag_band_to_rect_convert_diag_data_s {
    parsec_data_pair_t _f_B;
    parsec_data_pair_t _f_D;
    parsec_data_pair_t _f_SD;
    parsec_data_pair_t unused[MAX_LOCAL_COUNT - 3];
} __parsec_diag_band_to_rect_convert_diag_data_t;

typedef struct __parsec_diag_band_to_rect_convert_diag_task_s {
    PARSEC_MINIMAL_EXECUTION_CONTEXT
#if defined(PARSEC_PROF_TRACE)
    parsec_task_prof_info_t prof_info;
#endif				/* defined(PARSEC_PROF_TRACE) */
    struct __parsec_diag_band_to_rect_convert_diag_assignment_s locals;
#if defined(PARSEC_SIM)
    int sim_exec_date;
#endif
    struct __parsec_diag_band_to_rect_convert_diag_data_s data;
} __parsec_diag_band_to_rect_convert_diag_task_t;


END_C_DECLS
#endif /* _diag_band_to_rect_h_ */
