-
Notifications
You must be signed in to change notification settings - Fork 3
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
Conjugate transpose #49
Comments
Calling p.s. In your formula above, don't you also need to invert |
Ok, I just checked, and indeed while |
Hi @maltezfaria , Regarding the notion of That was quick. I unfortunately still run into an error of the adjoint not having a julia> Fh.H'*pI
ERROR: type Adjoint has no field partition
Stacktrace:
[1] getproperty
@ ./Base.jl:37 [inlined]
[2] mul!(y::Vector{…}, A::Adjoint{…}, x::Vector{…}, a::Int64, b::Int64; global_index::Bool, threads::Bool)
@ HMatrices ~/.julia/packages/HMatrices/NfIiG/src/multiplication.jl:404
[3] mul! (repeats 2 times)
@ ~/.julia/packages/HMatrices/NfIiG/src/multiplication.jl:365 [inlined]
[4] *(A::Adjoint{ComplexF64, HMatrices.HMatrix{HMatrices.ClusterTree{3, Float64}, ComplexF64}}, x::Vector{ComplexF64})
@ LinearAlgebra ~/.julia/juliaup/julia-1.10.2+0.aarch64.apple.darwin14/share/julia/stdlib/v1.10/LinearAlgebra/src/matmul.jl:57
[5] top-level scope
@ REPL[21]:1 Cheers, |
AFAIU, purely based on the expected size of
My bad... I only tested the serial case, which does not run into that part of the code. I will fix it now. In the meantime, would you mind testing the serial version (run e.g. |
Hmm, are they not already swapped? I wrote it quite quickly so there might be a mistake. At least I think we understand each other 😄 The serial version does run! Comparing it to a dense calculation it seems like it also computes the correct thing 🥳 |
Oops, you are correct, they are already swapped! I got thrown off by their position as arguments not being swapped, but as you mentioned that does not matter since the function depends only on the distance. Sorry.
I just pushed some changes that should make the parallel version work. I don't necessarily like the implementation, but at least we can test it. FWIW, it may be cleaner to implement |
No worries. I guess the interchanging of
The parallel version does indeed seem to work 👍 Hmm, yeah, that might be cleaner. But no need to stress on getting it implemented from my end. I am just playing a little around 😄 |
Hi there,
I am currently using this nice package for various matrices in relation to the acoustical boundary element method. An example of such matrix is
where G is the Green's function for the scalar Helmholtz equation. Notice that the system is not square, meaning that i need to solve the resulting linear system using e.g.
lsqr
. Doing so requires products with the conjugate transpose, which fails for theHMatrix
format (due togetindex
not being defined). Was there another reason than time why the conjugate transpose was left out? Would it not be "easily" by implemented by conjugating each of the blocks?My workaround so far is to simply define another
HMatrix
asbut this of course doubles both assembly time and storage, so I would rather not have to do that 😄
Cheers,
Mikkel
The text was updated successfully, but these errors were encountered: