Tensor Network Theory Library  Beta release 1.2.1
A library of routines for performing TNT-based operations
 All Data Structures Functions Variables Groups Pages
tntMps.h
1 #ifndef TNT_MPS_DOT_H
2 #define TNT_MPS_DOT_H
3 
4 /*
5 Authors: Sarah Al-Assam, Stephen Clark and Dieter Jaksch (Oxford) and Chris Goodyer (NAG)
6 $LastChangedDate: 2016-10-27 16:55:46 +0100 (Thu, 27 Oct 2016) $
7 (c) University of Oxford 2014
8 */
9 
10 /* Software Licence
11  *
12  * TENSOR THEORY NETWORK LIBRARY © 2014, The University of Oxford (the "Software")
13  *
14  * The Software remains the property of the University of Oxford ("the University").
15  *
16  * The Software is distributed "AS IS" under this Licence solely for non-commercial use in the hope that it will be useful,
17  * but in order that the University as a charitable foundation protects its assets for the benefit of its educational and
18  * research purposes, the University makes clear that no condition is made or to be implied, nor is any warranty given or
19  * to be implied, as to the accuracy of the Software, or that it will be suitable for any particular purpose or for use
20  * under any specific conditions. Furthermore, the University disclaims all responsibility for the use which is made of
21  * the Software. It further disclaims any liability for the outcomes arising from using the Software.
22  *
23  * The Licensee agrees to indemnify the University and hold the University harmless from and against any and all claims,
24  * damages and liabilities asserted by third parties (including claims for negligence), which arise directly or indirectly
25  * from the use of the Software or the sale of any products based on the Software.
26  *
27  * No part of the Software may be reproduced, modified, transmitted or transferred in any form or by any means, electronic
28  * or mechanical, without the express permission of the University. The permission of the University is not required if the
29  * said reproduction, modification, transmission or transference is done without financial return, the conditions of this
30  * Licence are imposed upon the receiver of the product, and all original and amended source code is included in any
31  * transmitted product. You may be held legally responsible for any copyright infringement that is caused or encouraged by
32  * your failure to abide by these terms and conditions.
33  *
34  * You are not permitted under this Licence to use this Software commercially. Use for which any financial return is received
35  * shall be defined as commercial use, and includes:
36  *
37  * (1) integration of all or part of the source code or the Software into a product for sale or license by or on behalf of Licensee to third parties or
38  *
39  * (2) use of the Software or any derivative of it for research with the final aim of developing software products for sale or license to a third party or
40  *
41  * (3) use of the Software or any derivative of it for research with the final aim of developing non-software products for sale or license to a third party, or
42  *
43  * (4) use of the Software to provide any service to an external organisation for which payment is received.
44  *
45  * If you are interested in using the Software commercially, please contact Isis Innovation Limited ("Isis"), the technology transfer company of the University, to negotiate a licence.
46  *
47  * Contact details are: innovation@isis.ox.ac.uk quoting reference MG/11431.
48  * */
49 
50 /* include header for core library */
51 #include "tnt.h"
52 
53 /* Commonly used leg labels */
54 #define TNT_MPS_L "L"
55 #define TNT_MPS_R "R"
56 #define TNT_MPS_D "D"
57 #define TNT_MPS_U "U"
58 #define TNT_MPS_TUL "U"
59 #define TNT_MPS_TUR "V"
60 #define TNT_MPS_TDL "D"
61 #define TNT_MPS_TDR "E"
62 
63 /* Code to denote the system is a spin system. */
64 #define TNT_MPS_SPIN 1
65 
66 /* Code to denote the system is a boson system. */
67 #define TNT_MPS_BOSON 2
68 
69 /* error code for any error generated in MPS public functions */
70 #define TNT_MPS_ERRCODE 2
71 
75 #define tntMpsExOp tntExOp
76 
77 void tntMpoExpecOutput(tntNetwork rho, tntMpsExOp *Op, unsigned printOutput, unsigned saveOutput, char *saveprefix, unsigned counter);
78 
79 tntNetwork tntMpoHC(tntNetwork O);
80 
81 tntNetwork tntMpoMpoProduct(tntNetwork O, tntNetwork P);
82 
83 tntComplex tntMpoMpoTrace(tntNetwork mpoO, tntNetwork mpoP);
84 
85 void tntMpoPmpoProduct(tntNetwork mpo, tntNodeArray *op, tntIntArray *sitenum);
86 
87 tntComplex tntMpoPmpoTrace(tntNetwork mpo, tntNodeArray *op, tntIntArray *sitenum);
88 
89 void tntMpoPropST2scConnect(tntNetwork mpo, tntNetwork PropB, tntNetwork PropT);
90 
91 double tntMpoPropSTscContract(tntNetwork mpoProp, int chi);
92 
93 double tntMpoPropST2scProduct(tntNetwork mpo, tntNetwork PropB, tntNetwork PropT, int chi);
94 
95 tntNode tntMpoPropTwoSite(tntNode *Mlp, tntNode *Mrp, int chi, double *err);
96 
97 tntComplex tntMpoTrace(tntNetwork mpo);
98 
99 tntNode tntMpsVarMinMpo2sContract_alt(tntNode theta, tntNetwork nwMV);
100 
101 tntNetwork tntMpsAdd(tntNetwork mpsA, tntNetwork mpsB, int orthresult);
102 
103 void tntMpsCreateBosonOp(unsigned Nmax, tntNode *b, tntNode *bd, tntNode *n, tntNode *os_int, tntNode *eye);
104 
105 tntNetwork tntMpsCreateConfig(unsigned L, const char *config);
106 
107 #define tntMpsCreateMpo(...) tntMpsCreateMpo_IMP(__VA_ARGS__, 0)
108 #define tntMpsCreateMpo_IMP(L, nnL, nnR, nnparam, os, osparam, ignore_qn, ...) tntMpsCreateMpo_(L, nnL, nnR, nnparam, os, osparam, ignore_qn)
109 tntNetwork tntMpsCreateMpo_(unsigned L, tntNodeArray *nnL, tntNodeArray *nnR, tntComplexArray *nnparam, tntNodeArray *os, tntComplexArray *osparam, unsigned ignore_qn);
110 
111 tntNetwork tntMpsCreateEyeMpo(unsigned L, tntNode basisOp);
112 
113 tntNetwork tntMpsCreateProductMpo(unsigned L, tntNodeArray *op, tntIntArray *sitenum);
114 
115 tntNodeArray tntMpsCreatePropArray(unsigned L, tntComplex dtc, tntNodeArray *nnL, tntNodeArray *nnR, tntComplexArray *nnparam, tntNodeArray *os, tntComplexArray *osparam);
116 
117 tntNetwork tntMpsCreatePropST2sc(unsigned L, tntComplex dtc, tntNodeArray *nnL, tntNodeArray *nnR, tntComplexArray *nnparam, tntNodeArray *os, tntComplexArray *osparam);
118 
119 void tntMpsCreateSpinOp(unsigned TwoS, tntNode *Sx, tntNode *Sy, tntNode *Sz, tntNode *Sp, tntNode *Sm, tntNode *eye);
120 
121 tntNetwork tntMpsCreateRandom(unsigned L, unsigned D);
122 
123 tntNetwork tntMpsCreateSymmRandom(unsigned L, int *qn);
124 
125 tntNode tntMpsCreateTwoSiteOp(tntNodeArray *Lnodes, tntNodeArray *Rnodes, tntComplexArray *params);
126 
127 void tntMpsExOpFree(tntMpsExOp *ExOp);
128 
129 void tntMpsExpecOutput(tntNetwork wf, tntMpsExOp *Op, int orthCentre, unsigned printOutput, unsigned saveOutput, char *saveprefix, unsigned counter);
130 
131 #define tntMpoLength(wf) tntMpsLength(wf)
132 unsigned tntMpsLength(tntNetwork wf);
133 
134 tntIntArray tntMpsOpGetQN(tntNode op);
135 
136 void tntMpsMpoConnect(tntNetwork mps, tntNetwork mpo);
137 
138 double tntMpsMpoContract(tntNetwork mpsmpo, int chi);
139 
140 double tntMpsMpoProduct(tntNetwork mps, tntNetwork mpo, int chi);
141 
142 tntNetwork tntMpsMpoMpsConnect(tntNetwork mps, tntNetwork mpo);
143 
144 tntComplex tntMpsMpoMpsContract(tntNetwork sandwich);
145 
146 void tntMpsMpoMpsInitOrth(tntNetwork mps, tntNetwork mpo, tntNodeArray *beta, tntNodeArray *gammas);
147 
148 void tntMpsMpoMpsInit(tntNetwork mps, tntNetwork mpo, tntNodeArray *beta, tntNodeArray *gammas);
149 
150 tntComplex tntMpsMpoMpsPartProduct(tntNetwork mps, tntNetwork mpo, unsigned site_left, unsigned site_right, tntNode beta, tntNode gamma);
151 
152 tntComplex tntMpsMpoMpsProduct(tntNetwork mps, tntNetwork mpo);
153 
154 void tntMpsMpsConnect(tntNetwork mpsA, tntNetwork mpsB);
155 
156 
157 #define tntMpsMpsContract(...) tntMpsMpsContract_IMP(__VA_ARGS__, NULL, NULL)
158 #define tntMpsMpsContract_IMP(sandwich, site_left, site_right, betas, gammas, ...) tntMpsMpsContract_(sandwich, site_left, site_right, betas, gammas)
159 tntComplex tntMpsMpsContract_(tntNetwork sandwich, int site_left, int site_right, tntNode beta, tntNode gamma);
160 
161 tntComplex tntMpsMpsProduct(tntNetwork mpsA, tntNetwork mpsB);
162 
163 double tntMpsNodeNodeMpsProduct(tntNetwork wf, tntNode op, unsigned sitenum);
164 
165 void tntMpsNodeProduct(tntNetwork wf, tntNode op, unsigned sitenum);
166 
167 void tntMpsOrth(tntNetwork wf, unsigned orth_centre);
168 
169 void tntMpsOrthNorm(tntNetwork mps,unsigned orth_centre);
170 
171 #define tntMpsPmpoMpsProduct(...) tntMpsPmpoMpsProduct_IMP(__VA_ARGS__, NULL, NULL)
172 #define tntMpsPmpoMpsProduct_IMP(mps, op, sitenum, orth_centre, betas, gammas, ...) tntMpsPmpoMpsProduct_(mps, op, sitenum, orth_centre, betas, gammas)
173 tntComplex tntMpsPmpoMpsProduct_(tntNetwork mps, tntNodeArray *op, tntIntArray *sitenum, int orth_centre, tntNodeArray *betas, tntNodeArray *gammas);
174 
175 void tntMpsPmpoProduct(tntNetwork mps, tntNodeArray *op, tntIntArray *sitenum);
176 
177 void tntMpsProcessDmrgCLOptions(int argc, char **argv, int *max_it, double *precision);
178 
179 void tntMpsProcessExpecOptions(int argc, char **argv, tntMpsExOp *Op);
180 
181 void tntMpsProcessSysOptions(int argc, char **argv, tntNetwork *mps, tntNetwork *mpo, tntNetwork *prop, tntMpsExOp *Op);
182 
183 void tntMpsProcessTebdCLOptions(int argc, char **argv, int *numsteps, int *tbigstep, int *update_chi, double *emax, int *delta_chi, int *max_chi);
184 
185 tntNetwork tntMpsPropArrayToST2sc(tntNodeArray Proparr);
186 
187 void tntMpsPropST2scConnect(tntNetwork mps, tntNetwork Prop);
188 
189 double tntMpsPropSTscContract(tntNetwork mpsProp, int chi);
190 
191 double tntMpsPropST2scProduct(tntNetwork mps, tntNetwork Prop, int chi);
192 
193 tntNode tntMpsPropTwoSite(tntNode *Mlp, tntNode *Mrp, int chi, double *err);
194 
195 void tntMpsSelfInit(tntNetwork mps, tntNodeArray *betas, tntNodeArray *gammas);
196 
197 double tntMpsSelfProduct(tntNetwork mps, int orth_centre);
198 
199 tntNetwork tntMpsVarMinMpo2sBuild(tntNode beta, tntNode gamma, tntNode theta, tntNode tno);
200 
201 tntNode tntMpsVarMinMpo2sContract(tntNode theta, tntNetwork nwMV);
202 
203 tntNetwork tntMpsVarMinMpo1sBuild(tntNode beta, tntNode gamma, tntNode A, tntNode tno);
204 
205 tntNode tntMpsVarMinMpo1sContract(tntNode A, tntNetwork nwMV);
206 
207 double tntMpsVarMinMpo1sFullContract(tntNode beta, tntNode gamma, tntNode A, tntNode O);
208 
209 #define tntMpsVarMinMpoInit(mps, mpo, betas, gammas) tntMpsMpoMpsInit(mps, mpo, betas, gammas)
210 
211 double tntMpsVarMinMpo2sSweep(tntNetwork mps, tntLegLabel direction, int chi, tntNetwork mpo, tntNodeArray *HeffL, tntNodeArray *HeffR, double *err, int start_site, int end_site);
212 
213 double tntMpsVarMinMpo1sSweep(tntNetwork mps, tntLegLabel direction, int chi, tntNetwork mpo, tntNodeArray *HeffL, tntNodeArray *HeffR, double *err, int start_site, int end_site);
214 
215 tntNode tntDmrg2sLocalOps(tntNode Al, tntNode Ar, tntNode Ol, tntNode Or, tntNode beta, tntNode gamma, int chi, double *errp, double *eigvp);
216 
217 tntNode tntDmrg1sLocalOptimise(tntNode A, tntNode O, tntNode beta, tntNode gamma, double *eigvp);
218 
219 tntNode tntDmrg1sSubspaceExpand(tntNode Al, tntNode Ar, tntNode Ol, tntNode Or, tntNode beta, tntNode gamma, tntLegLabel dir, int chi, double *errp);
220 
221 #define tntMpsVarMinMpo2sStep(...) tntMpsVarMinMpo2sStep_IMP(__VA_ARGS__, 0)
222 #define tntMpsVarMinMpo2sStep_IMP(mps, chi, mpo, HeffL, HeffR, err, start_site, ...) tntMpsVarMinMpo2sStep_(mps, chi, mpo, HeffL, HeffR, err, start_site)
223 double tntMpsVarMinMpo2sStep_(tntNetwork mps, int chi, tntNetwork mpo, tntNodeArray *HeffL, tntNodeArray *HeffR, double *err, unsigned start_site);
224 
225 #define tntMpsVarMinMpo1sStep(...) tntMpsVarMinMpo1sStep_IMP(__VA_ARGS__, 0)
226 #define tntMpsVarMinMpo1sStep_IMP(mps, chi, mpo, HeffL, HeffR, err, start_site, ...) tntMpsVarMinMpo1sStep_(mps, chi, mpo, HeffL, HeffR, err, start_site)
227 double tntMpsVarMinMpo1sStep_(tntNetwork mps, int chi, tntNetwork mpo, tntNodeArray *HeffL, tntNodeArray *HeffR, double *err, unsigned start_site);
228 
229 void tntMpsVarMinMpoUpdate(tntNode tnA, tntNode tno, tntLegLabel dir, unsigned j, tntNodeArray *Heff);
230 
231 /* Deprecated functions */
232 
233 tntNodeArray tntMpsCreatePropagator(unsigned L, tntComplex dtc, tntNodeArray *nnL, tntNodeArray *nnR, tntComplexArray *nnparam, tntNodeArray *os, tntComplexArray *osparam);
234 
235 double tntMpsExpecSing(tntNetwork wf, unsigned num_op, tntNode op[], unsigned sitenum[], int orth_centre, double norm);
236 
237 void tntMpsFlip(tntNetwork mpsA, tntNetwork mpsB);
238 
239 void tntMpsProcessInitOptions(int argc, char **argv, tntNetwork *wf, tntNetwork *H, tntNodeArray *Uarr, tntMpsExOp *Op);
240 
241 double tntMpsOverlap(tntNetwork wfa, tntNetwork wfb);
242 
243 double tntMpsMpoExpec(tntNetwork mps, tntNetwork mpo);
244 
245 double tntMpsMpoProdExpec(tntNetwork wf, unsigned num_op, tntNode op[], unsigned sitenum[]);
246 
247 double tntMpsNorm(tntNetwork wf, int orth_centre);
248 
249 double tntMpsTruncate(tntNetwork mps, unsigned orth_centre, int chi);
250 
251 double tntMpsTebdSweepInhom(tntNetwork wf, int direction, int chi, tntNodeArray U);
252 
253 double tntMpsTebdSweepUni(tntNetwork wf, int direction, int chi, tntNode UL, tntNode UM, tntNode UR);
254 
255 double tntMpsTebdSweepVar(tntNetwork wf, int direction, int chi, tntNode U, tntDoubleArray params);
256 
257 #endif
tntNode tntDmrg1sSubspaceExpand(tntNode Al, tntNode Ar, tntNode Ol, tntNode Or, tntNode beta, tntNode gamma, tntLegLabel dir, int chi, double *errp)
Definition: tntMps1sDmrg.c:216
void tntMpoPmpoProduct(tntNetwork mpo, tntNodeArray *op, tntIntArray *sitenum)
Definition: tntMpoPmpo.c:84
#define tntMpsExOp
Definition: tntMps.h:75
void tntMpsExOpFree(tntMpsExOp *ExOp)
Definition: tntMpsUtil.c:97
void tntMpsProcessSysOptions(int argc, char **argv, tntNetwork *mps, tntNetwork *mpo, tntNetwork *prop, tntMpsExOp *Op)
tntComplex tntMpsMpsProduct(tntNetwork mpsA, tntNetwork mpsB)
Definition: tntMpsMps.c:490
tntNode tntMpsVarMinMpo2sContract(tntNode theta, tntNetwork nwMV)
void tntMpsProcessTebdCLOptions(int argc, char **argv, int *numsteps, int *tbigstep, int *update_chi, double *emax, int *delta_chi, int *max_chi)
Definition: tntMpsOptions.c:60
void tntMpsCreateSpinOp(unsigned TwoS, tntNode *Sx, tntNode *Sy, tntNode *Sz, tntNode *Sp, tntNode *Sm, tntNode *eye)
void tntMpsProcessExpecOptions(int argc, char **argv, tntMpsExOp *Op)
void tntMpsProcessDmrgCLOptions(int argc, char **argv, int *max_it, double *precision)
tntComplex tntMpoTrace(tntNetwork mpo)
Definition: tntMpoTrace.c:20
void tntMpsMpoMpsInit(tntNetwork mps, tntNetwork mpo, tntNodeArray *beta, tntNodeArray *gammas)
Definition: tntMpsMpoMps.c:362
tntNetwork tntMpoMpoProduct(tntNetwork O, tntNetwork P)
Definition: tntMpoMpo.c:24
double tntMpsPropSTscContract(tntNetwork mpsProp, int chi)
Definition: tntMpsST2sc.c:97
double tntMpsVarMinMpo1sSweep(tntNetwork mps, tntLegLabel direction, int chi, tntNetwork mpo, tntNodeArray *HeffL, tntNodeArray *HeffR, double *err, int start_site, int end_site)
Definition: tntMps1sDmrg.c:43
double tntMpsTruncate(tntNetwork mps, unsigned orth_centre, int chi)
double tntMpsVarMinMpo2sSweep(tntNetwork mps, tntLegLabel direction, int chi, tntNetwork mpo, tntNodeArray *HeffL, tntNodeArray *HeffR, double *err, int start_site, int end_site)
Definition: tntMps2sDmrg.c:63
tntNetwork tntMpoHC(tntNetwork O)
Definition: tntMpoMpo.c:161
tntNetwork tntMpsVarMinMpo1sBuild(tntNode beta, tntNode gamma, tntNode A, tntNode tno)
tntNetwork tntMpsVarMinMpo2sBuild(tntNode beta, tntNode gamma, tntNode theta, tntNode tno)
void tntMpsCreateBosonOp(unsigned Nmax, tntNode *b, tntNode *bd, tntNode *n, tntNode *os_int, tntNode *eye)
tntComplex tntMpsMpoMpsContract(tntNetwork sandwich)
Definition: tntMpsMpoMps.c:94
void tntMpsMpsConnect(tntNetwork mpsA, tntNetwork mpsB)
Definition: tntMpsMps.c:38
tntNetwork tntMpsMpoMpsConnect(tntNetwork mps, tntNetwork mpo)
Definition: tntMpsMpoMps.c:25
tntNode tntDmrg1sLocalOptimise(tntNode A, tntNode O, tntNode beta, tntNode gamma, double *eigvp)
Definition: tntMps1sDmrg.c:181
tntNode tntMpoPropTwoSite(tntNode *Mlp, tntNode *Mrp, int chi, double *err)
Definition: tntMpoST2sc.c:185
double tntMpsSelfProduct(tntNetwork mps, int orth_centre)
Definition: tntMpsMps.c:544
void tntMpsOrthNorm(tntNetwork mps, unsigned orth_centre)
Definition: tntMpsOrth.c:83
unsigned tntMpsLength(tntNetwork wf)
Definition: tntMpsUtil.c:17
void tntMpoExpecOutput(tntNetwork rho, tntMpsExOp *Op, unsigned printOutput, unsigned saveOutput, char *saveprefix, unsigned counter)
tntNetwork tntMpsCreateConfig(unsigned L, const char *config)
double tntMpoPropST2scProduct(tntNetwork mpo, tntNetwork PropB, tntNetwork PropT, int chi)
Definition: tntMpoST2sc.c:236
tntNode tntMpsVarMinMpo1sContract(tntNode A, tntNetwork nwMV)
Definition: tnt.h:65
void tntMpsExpecOutput(tntNetwork wf, tntMpsExOp *Op, int orthCentre, unsigned printOutput, unsigned saveOutput, char *saveprefix, unsigned counter)
tntNode tntDmrg2sLocalOps(tntNode Al, tntNode Ar, tntNode Ol, tntNode Or, tntNode beta, tntNode gamma, int chi, double *errp, double *eigvp)
Definition: tntMps2sDmrg.c:184
tntNetwork tntMpsCreateRandom(unsigned L, unsigned D)
double tntMpsPropST2scProduct(tntNetwork mps, tntNetwork Prop, int chi)
Definition: tntMpsST2sc.c:203
tntNode tntMpsPropTwoSite(tntNode *Mlp, tntNode *Mrp, int chi, double *err)
Definition: tntMpsST2sc.c:157
double tntMpsMpoProduct(tntNetwork mps, tntNetwork mpo, int chi)
Definition: tntMpsMpo.c:225
tntComplex tntMpsMpoMpsProduct(tntNetwork mps, tntNetwork mpo)
Definition: tntMpsMpoMps.c:541
void tntMpsMpoConnect(tntNetwork mps, tntNetwork mpo)
Definition: tntMpsMpo.c:30
tntIntArray tntMpsOpGetQN(tntNode op)
Definition: tntMpsUtil.c:51
void tntMpoPropST2scConnect(tntNetwork mpo, tntNetwork PropB, tntNetwork PropT)
Definition: tntMpoST2sc.c:27
tntNodeArray tntMpsCreatePropArray(unsigned L, tntComplex dtc, tntNodeArray *nnL, tntNodeArray *nnR, tntComplexArray *nnparam, tntNodeArray *os, tntComplexArray *osparam)
void tntMpsSelfInit(tntNetwork mps, tntNodeArray *betas, tntNodeArray *gammas)
Definition: tntMpsMps.c:329
void tntMpsOrth(tntNetwork wf, unsigned orth_centre)
Definition: tntMpsOrth.c:36
tntComplex tntMpoMpoTrace(tntNetwork mpoO, tntNetwork mpoP)
Definition: tntMpoMpo.c:87
void tntMpsMpoMpsInitOrth(tntNetwork mps, tntNetwork mpo, tntNodeArray *beta, tntNodeArray *gammas)
Definition: tntMpsMpoMps.c:171
void tntMpsVarMinMpoUpdate(tntNode tnA, tntNode tno, tntLegLabel dir, unsigned j, tntNodeArray *Heff)
void tntMpsPmpoProduct(tntNetwork mps, tntNodeArray *op, tntIntArray *sitenum)
Definition: tntMpsPmpo.c:35
tntNetwork tntMpsPropArrayToST2sc(tntNodeArray Proparr)
double tntMpoPropSTscContract(tntNetwork mpoProp, int chi)
Definition: tntMpoST2sc.c:113
tntNetwork tntMpsCreateProductMpo(unsigned L, tntNodeArray *op, tntIntArray *sitenum)
double tntMpsVarMinMpo1sFullContract(tntNode beta, tntNode gamma, tntNode A, tntNode O)
tntNetwork tntMpsCreateEyeMpo(unsigned L, tntNode basisOp)
tntNetwork tntMpsAdd(tntNetwork mpsA, tntNetwork mpsB, int orthresult)
Definition: tntMpsUtil.c:123
tntComplex tntMpsMpoMpsPartProduct(tntNetwork mps, tntNetwork mpo, unsigned site_left, unsigned site_right, tntNode beta, tntNode gamma)
Definition: tntMpsMpoMps.c:574
tntNetwork tntMpsCreatePropST2sc(unsigned L, tntComplex dtc, tntNodeArray *nnL, tntNodeArray *nnR, tntComplexArray *nnparam, tntNodeArray *os, tntComplexArray *osparam)
tntComplex tntMpoPmpoTrace(tntNetwork mpo, tntNodeArray *op, tntIntArray *sitenum)
Definition: tntMpoPmpo.c:35
double tntMpsMpoContract(tntNetwork mpsmpo, int chi)
Definition: tntMpsMpo.c:91
double tntMpsNodeNodeMpsProduct(tntNetwork wf, tntNode op, unsigned sitenum)
void tntMpsNodeProduct(tntNetwork wf, tntNode op, unsigned sitenum)
Definition: tntMpsPmpo.c:146
void tntMpsPropST2scConnect(tntNetwork mps, tntNetwork Prop)
Definition: tntMpsST2sc.c:31
tntNode tntMpsCreateTwoSiteOp(tntNodeArray *Lnodes, tntNodeArray *Rnodes, tntComplexArray *params)
tntNetwork tntMpsCreateSymmRandom(unsigned L, int *qn)