Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Nov 22 16:56
  • Nov 15 13:13
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 15 05:30
  • Nov 15 02:43
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 15 02:19
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 15 01:58
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 15 01:51
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 15 01:31
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 14:02
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 13:59
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 13:50
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 13:40
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 09:27
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 09:18
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 08:59
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 08:56
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 08:50
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 07:43
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 07:29
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
  • Nov 14 07:17
    GitLab | Ying-Jer Kao pushed 1 commits to uni10
Ying-Jer Kao
@yingjerkao
so rsp_idx is a mapping between bond index and label?
Yun-Hsuan Chou
@Yun-Hsuan
Yep. For example, If we want to do [5,4,3]->[3,5,4]. The rsp_idx is [2,0,1]
Ying-Jer Kao
@yingjerkao
OK, so you changed the nsy part but not this part?
A side note, we should do regular code review to understand all the changes made.
Yun-Hsuan Chou
@Yun-Hsuan
Sorry for that I didn't notice that reSwap is label dependent.
I think the codes should re-write to a consistent style.
Ying-Jer Kao
@yingjerkao
So can you create a MR and close the issue?
Let's patch first.
Maybe this also fixes the fermion issue
@Yun-Hsuan Could you add some comments on this part of the code, so we remember?
Yun-Hsuan Chou
@Yun-Hsuan
Sure.
After adding the comments, I'll create MR.
Ying-Jer Kao
@yingjerkao
Maybe let's group chat again in a couple of days? @Yun-Hsuan @cylo @pcchen @YenHsinWu @hypotomato ?

BTW, I always have test failed at

[  FAILED  ] Matrixd.LDQ_notDiag
[  FAILED  ] Matrixd.LDQ_inplace_notDiag

Using g++ with MKL, clang with Accelerate Framework. Nobody has the same problem?

Yun-Hsuan Chou
@Yun-Hsuan
------ st label set ------

************************************
REAL(1)
Status: 3; Status Address: x74dcb0

             ____________
            |            |
        ___|2          3|___1
            |            |
            |           1|___2
            |            |
            |____________|

================BONDS===============
IN : (U1 = 0, P = 0, 0)|1, (U1 = 0, P = 0, 1)|1, Dim = 2
OUT: (U1 = 0, P = 0, 0)|2, (U1 = 0, P = 0, 1)|1, Dim = 3
OUT: (U1 = 0, P = 0, 1)|1, Dim = 1

===============BLOCKS===============
--- (U1 = 0, P = 0, 0):
1 x 1 = 1 [ Real ElemNum: 0 ], REAL

[    1.0000 ];
--- (U1 = 0, P = 0, 1):
1 x 2 = 2 [ Real ElemNum: 0 ], REAL

[    1.0000   1.0000 ];
Total elemNum: 3
====================================


************************************
REAL(1)
Status: 3; Status Address: x74dcb0

             ____________
            |            |
        ___|1          3|___1
            |            |
        ___|2           |
            |            |
            |____________|

================BONDS===============
IN : (U1 = 0, P = 0, 1)|1, Dim = 1
IN : (U1 = 0, P = 0, 0)|1, (U1 = 0, P = 0, 1)|1, Dim = 2
OUT: (U1 = 0, P = 0, 0)|2, (U1 = 0, P = 0, 1)|1, Dim = 3

===============BLOCKS===============
--- (U1 = 0, P = 0, 0):
1 x 2 = 2 [ Real ElemNum: 0 ], REAL

[   -1.0000  -1.0000 ];
--- (U1 = 0, P = 0, 1):
1 x 1 = 1 [ Real ElemNum: 0 ], REAL

[    1.0000 ];
Total elemNum: 3
====================================


------ nd label set ------

************************************
REAL(1)
Status: 3; Status Address: x74f350

             ____________
            |            |
        ___|2          3|___1
            |            |
            |           1|___0
            |            |
            |____________|

================BONDS===============
IN : (U1 = 0, P = 0, 0)|1, (U1 = 0, P = 0, 1)|1, Dim = 2
OUT: (U1 = 0, P = 0, 0)|2, (U1 = 0, P = 0, 1)|1, Dim = 3
OUT: (U1 = 0, P = 0, 1)|1, Dim = 1

===============BLOCKS===============
--- (U1 = 0, P = 0, 0):
1 x 1 = 1 [ Real ElemNum: 0 ], REAL

[    1.0000 ];
--- (U1 = 0, P = 0, 1):
1 x 2 = 2 [ Real ElemNum: 0 ], REAL

[    1.0000   1.0000 ];
Total elemNum: 3
====================================


************************************
REAL(1)
Status: 3; Status Address: x74f350

             ____________
            |            |
        ___|1          3|___1
            |            |
        ___|2           |
            |            |
            |____________|

================BONDS===============
IN : (U1 = 0, P = 0, 1)|1, Dim = 1
IN : (U1 = 0, P = 0, 0)|1, (U1 = 0, P = 0, 1)|1, Dim = 2
OUT: (U1 = 0, P = 0, 0)|2, (U1 = 0, P = 0, 1)|1, Dim = 3

===============BLOCKS===============
--- (U1 = 0, P = 0, 0):
1 x 2 = 2 [ Real ElemNum: 0 ], REAL

[   -1.0000  -1.0000 ];
--- (U1 = 0, P = 0, 1):
1 x 1 = 1 [ Real ElemNum: 0 ], REAL

[    1.0000 ];
Total elemNum: 3
====================================
After the line 506 and 514 are changed to labels[rsp_idx[b]], the issue #154 is fixed.
Ying-Jer Kao
@yingjerkao
Can you also change "Real ElemNum" to "Non-zero ElemNum"?
Yun-Hsuan Chou
@Yun-Hsuan
OK.
cylo
@cylo
@Yun-Hsuan GJ~
Ying-Jer Kao
@yingjerkao
After fixing the fermion problem, I will bump the version number to 2.0.1
Ying-Jer Kao
@yingjerkao

Repost

BTW, I always have test failed at

[  FAILED  ] Matrixd.LDQ_notDiag
[  FAILED  ] Matrixd.LDQ_inplace_notDiag

Using g++ with MKL, clang with Accelerate Framework. Nobody has the same problem?

Also g++/ openblas
Yun-Hsuan Chou
@Yun-Hsuan
@yingjerkao I also encounter in it. But I still don't figure out what wrong with LDQ.
I'll give a report soon.
Ying-Jer Kao
@yingjerkao
@Yun-Hsuan But regular blas/lapack works fine. I wonder if there is difference between the header of original lapack and that of openblas/mkl?
Yun-Hsuan Chou
@Yun-Hsuan
But I remember that Qdr works fine.
This is the strange part. If there are differences among the libraries, all the functions should break.
And that's why I can't find the bug easily...
I'm not sure it comes from lapack-like libraries or my wrapping codes.
Ying-Jer Kao
@yingjerkao
Maybe we should move to lapacke, the C interface?
Yun-Hsuan Chou
@Yun-Hsuan
I remember that lapacke do not include all the linear solvers.
I'll check it later.
Ying-Jer Kao
@yingjerkao
@pcchen 's comment from FB
uni10 label determines the memory layout, but label is not the fermion order.
Maybe this is the source of all evil @Yun-Hsuan
Ying-Jer Kao
@yingjerkao
@Yun-Hsuan @cylo @YenHsinWu Please implement "pseudo"-permute, which moves the memory but not adding gates. The essential point it to separate the index permutation (memory layout) and label permutation (physical quantum number layout). Then fix the network class using these two types of permutes. Any Blas related permute should follow "pseudo" permute, only the changes in the normal ordering uses fermion permute.
Yun-Hsuan Chou
@Yun-Hsuan_gitlab
@yingjerkao Get it.
YenHsinWu
@YenHsinWu
Roger
Ying-Jer Kao
@yingjerkao
I just sent out @pcchen 's note on our current understanding of the fermion permutation. Should be useful
Pochung Chen
@pcchen
It seems that use network to contract two tensors and use uni10.Contract to contract two tensors will get different results.
Ying-Jer Kao
@yingjerkao
@Yun-Hsuan @cylo How much progress did you make for the pseudo-permute?
Pochung Chen
@pcchen
Also for the network contraction, the result depends on the "order" of tensors appears in the .net file. It is reasonable that the results is different, as similar to contract. Contract(A,B) can be different from Contract(B,A).
Might get extra minus sign
Pochung Chen
@pcchen
new issue opened.....
Ying-Jer Kao
@yingjerkao
Maybe we should have a Hackathon again soon.
cylo
@cylo
@yingjerkao How about merging the following request first?
https://gitlab.com/uni10/uni10/merge_requests/43
The permute_bsy function does the same thing as pseudo-permute
We still need one more approval to merge it
Ying-Jer Kao
@yingjerkao
@cylo I will accept this MR as a temporary test. I do not want to change API. My proposal is two functions:
Permute does the usually permute with swap gates (your permute_fm and our original permute) and PseudoPermutewhich does not add swap gates.
cylo
@cylo
@yingjerkao @pcchen @Yun-Hsuan I resolved a merge conflict, and we need two approvals to merge the branch.
Ying-Jer Kao
@yingjerkao
I approved
jsf15
@jsf15
Hello, I'm starting a project with Lindblads and thought about using uni10. I wanted to know if the tensors are implemented densely or sparsely. Thank you!
Ying-Jer Kao
@yingjerkao
Only dense tensors are currently implemented