Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ORNL Quantum Computing Institute
exatn
Commits
fb7a168a
Commit
fb7a168a
authored
Sep 27, 2021
by
Dmitry I. Lyakh
Browse files
Fixed tensor operand order in existence domain determination
Signed-off-by:
Dmitry I. Lyakh
<
quant4me@gmail.com
>
parent
c5194504
Pipeline
#166389
failed with stage
in 5 minutes and 29 seconds
Changes
1
Pipelines
3
Hide whitespace changes
Inline
Side-by-side
src/exatn/num_server.cpp
View file @
fb7a168a
...
...
@@ -2222,7 +2222,7 @@ bool NumServer::decomposeTensorSVD(const std::string & contraction)
iter
=
tensors_
.
find
(
tensor_name
);
if
(
iter
!=
tensors_
.
end
()){
auto
tensor3
=
iter
->
second
;
const
auto
&
process_group
=
getTensorProcessGroup
(
tensor
0
->
getName
(),
tensor
1
->
getName
(),
tensor2
->
getName
(),
tensor
3
->
getName
());
const
auto
&
process_group
=
getTensorProcessGroup
(
tensor
1
->
getName
(),
tensor
3
->
getName
(),
tensor2
->
getName
(),
tensor
0
->
getName
());
auto
tensor_mapper
=
getTensorMapper
(
process_group
);
std
::
shared_ptr
<
TensorOperation
>
op
=
tensor_op_factory_
->
createTensorOp
(
TensorOpCode
::
DECOMPOSE_SVD3
);
op
->
setTensorOperand
(
tensor1
,
complex_conj1
);
//out: left tensor factor
...
...
@@ -2312,7 +2312,7 @@ bool NumServer::decomposeTensorSVDSync(const std::string & contraction)
iter
=
tensors_
.
find
(
tensor_name
);
if
(
iter
!=
tensors_
.
end
()){
auto
tensor3
=
iter
->
second
;
const
auto
&
process_group
=
getTensorProcessGroup
(
tensor
0
->
getName
(),
tensor
1
->
getName
(),
tensor2
->
getName
(),
tensor
3
->
getName
());
const
auto
&
process_group
=
getTensorProcessGroup
(
tensor
1
->
getName
(),
tensor
3
->
getName
(),
tensor2
->
getName
(),
tensor
0
->
getName
());
auto
tensor_mapper
=
getTensorMapper
(
process_group
);
std
::
shared_ptr
<
TensorOperation
>
op
=
tensor_op_factory_
->
createTensorOp
(
TensorOpCode
::
DECOMPOSE_SVD3
);
op
->
setTensorOperand
(
tensor1
,
complex_conj1
);
//out: left tensor factor
...
...
@@ -2428,7 +2428,7 @@ bool NumServer::decomposeTensorSVDLR(const std::string & contraction)
iter
=
tensors_
.
find
(
tensor_name
);
if
(
iter
!=
tensors_
.
end
()){
auto
tensor2
=
iter
->
second
;
const
auto
&
process_group
=
getTensorProcessGroup
(
tensor0
->
getName
(),
tensor1
->
getName
(),
tensor2
->
getName
());
const
auto
&
process_group
=
getTensorProcessGroup
(
tensor1
->
getName
(),
tensor2
->
getName
()
,
tensor0
->
getName
()
);
auto
tensor_mapper
=
getTensorMapper
(
process_group
);
std
::
shared_ptr
<
TensorOperation
>
op
=
tensor_op_factory_
->
createTensorOp
(
TensorOpCode
::
DECOMPOSE_SVD2
);
op
->
setTensorOperand
(
tensor1
,
complex_conj1
);
//out: left tensor factor
...
...
@@ -2502,7 +2502,7 @@ bool NumServer::decomposeTensorSVDLRSync(const std::string & contraction)
iter
=
tensors_
.
find
(
tensor_name
);
if
(
iter
!=
tensors_
.
end
()){
auto
tensor2
=
iter
->
second
;
const
auto
&
process_group
=
getTensorProcessGroup
(
tensor0
->
getName
(),
tensor1
->
getName
(),
tensor2
->
getName
());
const
auto
&
process_group
=
getTensorProcessGroup
(
tensor1
->
getName
(),
tensor2
->
getName
()
,
tensor0
->
getName
()
);
auto
tensor_mapper
=
getTensorMapper
(
process_group
);
std
::
shared_ptr
<
TensorOperation
>
op
=
tensor_op_factory_
->
createTensorOp
(
TensorOpCode
::
DECOMPOSE_SVD2
);
op
->
setTensorOperand
(
tensor1
,
complex_conj1
);
//out: left tensor factor
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment