Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(complex) conjugation #7

Open
Jutho opened this issue Jul 19, 2017 · 2 comments
Open

(complex) conjugation #7

Jutho opened this issue Jul 19, 2017 · 2 comments

Comments

@Jutho
Copy link

Jutho commented Jul 19, 2017

Hi Devin,

thanks for this nice package. As I am not fluent in C/C++, I wrote a light Julia wrapper and I am now testing this, especially the use of tensor contraction (tblis_tensor_mult).
However, my tests only seem to result in the correct answer if I don't try to complex conjugate A or B. Is this not implemented yet, or am I incorrectly specifying the conjugation flag. Why is this an int and not a bool?

Thanks,

Jutho

@devinamatthews
Copy link
Owner

Yes, unfortunately complex conjugation does not work at the moment. I should get time to fix this in a month or so.

As for the conjugation flag, it is an int because that is easier than supporting both C99 bool and C++ bool simultaneously. It uses the usual 0 = false, not 0 = true.

@ZehDeckel
Copy link

ZehDeckel commented May 5, 2023

Hi,

thank you for this useful library.
Has there been any news on this issue? As far as I can see, conjugation still does not work in tblis_tensor_mult and so I have been explicitly conjugating (and back-conjugating) before (and after) using the routine.
But after a quick look at the code, I can see that conj is used at some points in the code, e.g. in src/internal/3t/dense/mult.cxx at line 869

                    *C = alpha*(conj_A ? conj(*A) : *A)*
                               (conj_B ? conj(*B) : *B) +
                          beta*(conj_C ? conj(*C) : *C);

but I wasn't able to get a clear enough picture on which overloaded mult function is called where and why and when conjugating would work and where not so far.

Edit: After having another look, I see the "TODO"s in internal/3t/dpd/mult.cxx before

TBLIS_ASSERT(!conj_A && !conj_B && !conj_C);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants