(git:ccc2433)
dbm_multiply_internal.h
Go to the documentation of this file.
1 /*----------------------------------------------------------------------------*/
2 /* CP2K: A general program to perform molecular dynamics simulations */
3 /* Copyright 2000-2024 CP2K developers group <https://cp2k.org> */
4 /* */
5 /* SPDX-License-Identifier: BSD-3-Clause */
6 /*----------------------------------------------------------------------------*/
7 
8 #ifndef DBM_MULTIPLY_INTERNAL_H
9 #define DBM_MULTIPLY_INTERNAL_H
10 
11 /*******************************************************************************
12  * \brief Internal struct for storing a dbm_block_t plus its norm.
13  * \author Ole Schuett
14  ******************************************************************************/
15 typedef struct {
16  int free_index; // Free index in Einstein notation of matrix multiplication.
17  int sum_index; // Summation index - also called dummy index.
18  int offset;
19  float norm;
21 
22 /*******************************************************************************
23  * \brief Internal struct for storing a pack - essentially a shard for MPI.
24  * \author Ole Schuett
25  ******************************************************************************/
26 typedef struct {
27  int nblocks;
28  int data_size;
30  double *data;
31 } dbm_pack_t;
32 
33 /*******************************************************************************
34  * \brief Internal struct for storing a task, ie. a single block multiplication.
35  * \author Ole Schuett
36  ******************************************************************************/
37 typedef struct {
38  int m;
39  int n;
40  int k;
41  int offset_a;
42  int offset_b;
43  int offset_c;
44 } dbm_task_t;
45 
46 #endif
47 
48 // EOF
Internal struct for storing a dbm_block_t plus its norm.
Internal struct for storing a pack - essentially a shard for MPI.
dbm_pack_block_t * blocks
Internal struct for storing a task, ie. a single block multiplication.