(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
;
20
}
dbm_pack_block_t
;
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
;
29
dbm_pack_block_t
*
blocks
;
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
dbm_pack_block_t
Internal struct for storing a dbm_block_t plus its norm.
Definition:
dbm_multiply_internal.h:15
dbm_pack_block_t::norm
float norm
Definition:
dbm_multiply_internal.h:19
dbm_pack_block_t::sum_index
int sum_index
Definition:
dbm_multiply_internal.h:17
dbm_pack_block_t::free_index
int free_index
Definition:
dbm_multiply_internal.h:16
dbm_pack_block_t::offset
int offset
Definition:
dbm_multiply_internal.h:18
dbm_pack_t
Internal struct for storing a pack - essentially a shard for MPI.
Definition:
dbm_multiply_internal.h:26
dbm_pack_t::data
double * data
Definition:
dbm_multiply_internal.h:30
dbm_pack_t::data_size
int data_size
Definition:
dbm_multiply_internal.h:28
dbm_pack_t::blocks
dbm_pack_block_t * blocks
Definition:
dbm_multiply_internal.h:29
dbm_pack_t::nblocks
int nblocks
Definition:
dbm_multiply_internal.h:27
dbm_task_t
Internal struct for storing a task, ie. a single block multiplication.
Definition:
dbm_multiply_internal.h:37
dbm_task_t::offset_a
int offset_a
Definition:
dbm_multiply_internal.h:41
dbm_task_t::offset_c
int offset_c
Definition:
dbm_multiply_internal.h:43
dbm_task_t::n
int n
Definition:
dbm_multiply_internal.h:39
dbm_task_t::m
int m
Definition:
dbm_multiply_internal.h:38
dbm_task_t::k
int k
Definition:
dbm_multiply_internal.h:40
dbm_task_t::offset_b
int offset_b
Definition:
dbm_multiply_internal.h:42
dbm
dbm_multiply_internal.h
Generated by
1.9.1