Ferrite-FEM / Ferrite-FEM/Tensors.jl

adjoint implementation inconsistent with `Matrix` for complex numbers

Aperta
#234 0 commenti 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Julia
Stelle
182
Fork
40
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

TLDR: `transpose(c) != adjoint(c)` if `eltype(c) isa Complex`

We don't apply `adjoint` on the elements, should we? E.g. `adjoint(::Vec}` was removed, but in that case `adjoint(::Vec{dim, ComplexF64})` would make sense...

```julia
julia> tc = rand(Tensor{2,2,Complex{Float64}})
2×2 Tensor{2, 2, ComplexF64, 4}:
0.0479967+0.733511im 0.76812+0.222008im
0.977339+0.873173im 0.0240781+0.100997im

julia> tc' ⋅ tc
2×2 Tensor{2, 2, ComplexF64, 4}:
-0.342975+1.77718im -0.190633+0.693812im
-0.190633+0.693812im 0.5311+0.34592im

julia> mc = collect(tc);

julia> mc' * mc
2×2 Matrix{ComplexF64}:
2.25796+0.0im 0.311432-0.475085im
0.311432+0.475085im 0.650076+0.0im

julia> transpose(mc) * mc
2×2 Matrix{ComplexF64}:
-0.342975+1.77718im -0.190633+0.693812im
-0.190633+0.693812im 0.5311+0.34592im
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.