Adrian Roman

Results 56 comments of Adrian Roman

It seems that the code that follows expects the matrix to be in a single row format if `is_diagonal` is true, so probably a better fix would be: ``` cmatrix_t...

`if (row == col)` is not necessary, so that should be removed as well.

That would be the case if a full matrix is constructed if is_diagonal is true. Looking down on the call path it seems that other functions expect a vector if...

Without yet looking over the referred article(s), it looks like the multiplication by left lambda should not be done, all lambdas are multiplied along into `mat' by the code that...

Related with the same code, I think there still is an enhancement possible, avoiding the same matrix multiplication twice if zero is measured on a qubit. What I mean is...

Here is the log for (generated with CUTENSORNET_LOG_LEVEL=5) applying a two qubits gate when the issue occurs: ``` [2025-12-16 14:23:50:604:715][cuTensorNet][16472][Api][cutensornetCreateTensorDescriptor] handle=0X56A0B096B890 numModes=4 extents=[2,2,2,2] strides=[] modes=[2,37,42,6] dataType=4 tensorDesc=0X7FFDBCC7DAD8 [2025-12-16 14:23:50:604:726][cuTensorNet][16472][Api][cutensornetCreateNetwork] handle=0X56A0B096B890...

Yes, a single workspace is used (having the allocated memory the max needed for any operations involved) in almost all cases. Yes, the largest problem is computed like in `mps_example.cu`....

Here it is, along with some operations - swapping, to bring the sites together, then another two qubit gate on the adjacent qubits - done before applying the two qubit...

Here is the log with the creation of the MPS, including finding the max workspace needed: ``` [2025-12-18 13:38:30:294:676][cuTensorNet][5736][Api][cutensornetCreate] handle=0X565183A56CA8 [2025-12-18 13:38:30:294:917][cuTensorNet][5736][Info][cutensornetCreate] cuTensorNet version: 21000, cuTENSOR version: 20401 [2025-12-18 13:38:30:662:896][cuTensorNet][5736][Api][cutensornetCreateWorkspaceDescriptor]...

I did not release the workspace memory yet (I was planning to release it only if needed - that is, if the needed memory was higher than the already allocated...