(git:d18deda)
Loading...
Searching...
No Matches
dbm_internal.h
Go to the documentation of this file.
1
/*----------------------------------------------------------------------------*/
2
/* CP2K: A general program to perform molecular dynamics simulations */
3
/* Copyright 2000-2025 CP2K developers group <https://cp2k.org> */
4
/* */
5
/* SPDX-License-Identifier: BSD-3-Clause */
6
/*----------------------------------------------------------------------------*/
7
8
#ifndef DBM_INTERNAL_H
9
#define DBM_INTERNAL_H
10
11
/*******************************************************************************
12
* \brief Returns the larger of two given integers (missing from the C standard)
13
* \author Ole Schuett
14
******************************************************************************/
15
static
inline
int
imax
(
int
x,
int
y) {
return
(x > y ? x : y); }
16
17
/*******************************************************************************
18
* \brief Internal struct for storing a dbm_block_t plus its norm.
19
* \author Ole Schuett
20
******************************************************************************/
21
typedef
struct
{
22
int
free_index
;
// Free index in Einstein notation of matrix multiplication.
23
int
sum_index
;
// Summation index - also called dummy index.
24
int
offset
;
25
float
norm
;
26
}
dbm_pack_block_t
;
27
28
/*******************************************************************************
29
* \brief Internal struct for storing a pack - essentially a shard for MPI.
30
* \author Ole Schuett
31
******************************************************************************/
32
typedef
struct
{
33
int
nblocks
;
34
int
data_size
;
35
dbm_pack_block_t
*
blocks
;
36
double
*
data
;
37
}
dbm_pack_t
;
38
39
/*******************************************************************************
40
* \brief Internal struct for storing a task, ie. a single block multiplication.
41
* \author Ole Schuett
42
******************************************************************************/
43
typedef
struct
{
44
int
m
;
45
int
n
;
46
int
k
;
47
int
offset_a
;
48
int
offset_b
;
49
int
offset_c
;
50
}
dbm_task_t
;
51
52
#endif
53
54
// EOF
imax
static int imax(int x, int y)
Returns the larger of two given integers (missing from the C standard)
Definition
dbm_internal.h:15
dbm_pack_block_t
Internal struct for storing a dbm_block_t plus its norm.
Definition
dbm_internal.h:21
dbm_pack_block_t::norm
float norm
Definition
dbm_internal.h:25
dbm_pack_block_t::sum_index
int sum_index
Definition
dbm_internal.h:23
dbm_pack_block_t::free_index
int free_index
Definition
dbm_internal.h:22
dbm_pack_block_t::offset
int offset
Definition
dbm_internal.h:24
dbm_pack_t
Internal struct for storing a pack - essentially a shard for MPI.
Definition
dbm_internal.h:32
dbm_pack_t::data
double * data
Definition
dbm_internal.h:36
dbm_pack_t::data_size
int data_size
Definition
dbm_internal.h:34
dbm_pack_t::blocks
dbm_pack_block_t * blocks
Definition
dbm_internal.h:35
dbm_pack_t::nblocks
int nblocks
Definition
dbm_internal.h:33
dbm_task_t
Internal struct for storing a task, ie. a single block multiplication.
Definition
dbm_internal.h:43
dbm_task_t::offset_a
int offset_a
Definition
dbm_internal.h:47
dbm_task_t::offset_c
int offset_c
Definition
dbm_internal.h:49
dbm_task_t::n
int n
Definition
dbm_internal.h:45
dbm_task_t::m
int m
Definition
dbm_internal.h:44
dbm_task_t::k
int k
Definition
dbm_internal.h:46
dbm_task_t::offset_b
int offset_b
Definition
dbm_internal.h:48
dbm
dbm_internal.h
Generated by
1.9.8