MBO
 All Data Structures Files Functions Variables Typedefs Enumerations Modules Pages
MboProdSpace.h
Go to the documentation of this file.
1 /*
2 Copyright 2014 Dominic Meiser
3 
4 This file is part of mbo.
5 
6 mbo is free software: you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free
8 Software Foundation, either version 3 of the License, or (at your
9 option) any later version.
10 
11 mbo is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 for more details.
15 
16 You should have received a copy of the GNU General Public License along
17 with mbo. If not, see <http://www.gnu.org/licenses/>.
18 */
29 #ifndef MBO_PROD_SPACE_H
30 #define MBO_PROD_SPACE_H
31 
32 #include <MboExport.h>
33 #include <MboIndices.h>
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
42 struct MboProdSpace_t;
46 typedef struct MboProdSpace_t *MboProdSpace;
47 
59 MBO_EXPORT MboProdSpace mboProdSpaceCreate(MboLocInd dim);
60 
68 MBO_EXPORT void mboProdSpaceDestroy(MboProdSpace *h);
69 
81 MBO_EXPORT void mboProdSpaceMul(MboProdSpace h1, MboProdSpace *h2);
82 
93 MBO_EXPORT MboProdSpace mboProdSpaceCopy(MboProdSpace h);
94 
103 MBO_EXPORT MboGlobInd mboProdSpaceDim(MboProdSpace h);
104 
113 MBO_EXPORT int mboProdSpaceSize(MboProdSpace h);
114 
127 MBO_EXPORT void mboProdSpaceGetDims(MboProdSpace h, int n, MboLocInd *dims);
128 
138 MBO_EXPORT int mboProdSpaceEqual(MboProdSpace h1, MboProdSpace h2);
139 
148 MBO_EXPORT int mboProdSpaceCheck(MboProdSpace h);
149 
150 #ifdef __cplusplus
151 }
152 #endif
153 
154 #endif
MBO_EXPORT void mboProdSpaceGetDims(MboProdSpace h, int n, MboLocInd *dims)
Returns the dimensions of the elementary subspaces of h.
struct MboProdSpace_t * MboProdSpace
Type for describing tensor product spaces.
Definition: MboProdSpace.h:46
MBO_EXPORT MboGlobInd mboProdSpaceDim(MboProdSpace h)
Dimension of a tensor product space.
MBO_EXPORT int mboProdSpaceCheck(MboProdSpace h)
Check internal integrety of a product space.
MBO_EXPORT int mboProdSpaceSize(MboProdSpace h)
Number of factor spaces.
MBO_EXPORT void mboProdSpaceMul(MboProdSpace h1, MboProdSpace *h2)
Kronecker product of two spaces.
long long MboGlobInd
Global indices.
Definition: MboIndices.h:34
MBO_EXPORT MboProdSpace mboProdSpaceCopy(MboProdSpace h)
Create a copy of a product space.
int MboLocInd
Local indices.
Definition: MboIndices.h:31
Integer types for indices used in mbo library.
MBO_EXPORT int mboProdSpaceEqual(MboProdSpace h1, MboProdSpace h2)
Check product spaces for equality.
MBO_EXPORT MboProdSpace mboProdSpaceCreate(MboLocInd dim)
Create a MboProdSpace.
MBO_EXPORT void mboProdSpaceDestroy(MboProdSpace *h)
Destroy a MboProdSpace.