ergo
Main Page
Namespaces
Classes
Files
File List
File Members
csr_matrix.h
Go to the documentation of this file.
1
/* Ergo, version 3.2, a program for linear scaling electronic structure
2
* calculations.
3
* Copyright (C) 2012 Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek.
4
*
5
* This program is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation, either version 3 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*
18
* Primary academic reference:
19
* KohnâSham Density Functional Theory Electronic Structure Calculations
20
* with Linearly Scaling Computational Time and Memory Usage,
21
* Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek,
22
* J. Chem. Theory Comput. 7, 340 (2011),
23
* <http://dx.doi.org/10.1021/ct100611z>
24
*
25
* For further information about Ergo, see <http://www.ergoscf.org>.
26
*/
27
28
#ifndef CSR_MATRIX_HEADER
29
#define CSR_MATRIX_HEADER
30
31
#include "
realtype.h
"
32
33
34
typedef
struct
35
{
36
int
noOfElementsInRow
;
37
int
firstElementIndex
;
38
}
csr_matrix_row_struct
;
39
40
struct
csr_matrix_struct
41
{
42
int
n
;
43
int
nnz
;
44
int
symmetryFlag
;
45
csr_matrix_row_struct
*
rowList
;
46
ergo_real
*
elementList
;
47
int
*
columnIndexList
;
48
};
49
50
51
52
int
ergo_CSR_create
(
csr_matrix_struct
* csr,
53
int
symmetryFlag,
54
int
n,
55
int
nnz,
56
int
* rowind,
57
int
* colind);
58
59
int
ergo_CSR_destroy
(
csr_matrix_struct
* csr);
60
61
int
ergo_CSR_copy
(
csr_matrix_struct
* csrDest,
const
csr_matrix_struct
* csrSource);
62
63
int
ergo_CSR_add_equal_structure
(
csr_matrix_struct
* csrDest,
const
csr_matrix_struct
* csrSource);
64
65
int
ergo_CSR_add_to_element
(
csr_matrix_struct
* csr,
66
int
row,
67
int
col,
68
ergo_real
value);
69
70
ergo_real
ergo_CSR_get_element
(
const
csr_matrix_struct
* csr,
71
int
row,
72
int
col);
73
74
ergo_real
ergo_CSR_get_max_abs_element
(
const
csr_matrix_struct
* csr);
75
76
int
ergo_CSR_get_nvalues
(
const
csr_matrix_struct
* csr);
77
78
int
ergo_CSR_get_values
(
const
csr_matrix_struct
* csr,
79
int
* rowind,
80
int
* colind,
81
ergo_real
* values,
82
int
nvalues);
83
84
int
ergo_CSR_get_nvalues_singlerow
(
const
csr_matrix_struct
* csr,
85
int
row);
86
87
int
ergo_CSR_get_values_singlerow
(
const
csr_matrix_struct
* csr,
88
int
row,
89
int
* colind,
90
ergo_real
* values,
91
int
nvalues);
92
93
94
95
#endif
source
utilities_basic
csr_matrix.h
Generated on Sat Nov 24 2012 09:59:06 for ergo by
1.8.1.2