This package implements a single function realdot(x, y) that computes real(dot(x, y)) without computing the imaginary part of dot(x, y) if possible (currently specializations are defined for realdot(::Complex, ::Complex), realdot(::Complex, ::Real), and realdot(::Real, ::Complex)). realdot shows up when defining pullbacks of non-holomorphic functions on complex numbers e.g. in SpecialFunctions and ChainRules but has a more general non-AD related interpretation for complex arrays (realdot of two complex arrays is just the dot product of the two arrays reinterpreted as real arrays, see the README for more details) and more general use e.g. in StatsBase (https://github.com/JuliaStats/StatsBase.jl/blob/0a179531f14d0140356fcf1f1d55bd0240030cf2/src/scalarstats.jl#L259-L261).
It would be good to move the repo to an official Julia organization, I guess, before registering it and making PRs to central packages such as SpecialFunctions, ChainRules, or StatsBase. The main motivation would be that the package lives at a more official location and does not seem to be just a personal project. Additionally, it might be easier to find and more easily attract other contributors (even though I don't expect many changes).
This package implements a single function
realdot(x, y)
that computesreal(dot(x, y))
without computing the imaginary part ofdot(x, y)
if possible (currently specializations are defined forrealdot(::Complex, ::Complex)
,realdot(::Complex, ::Real)
, andrealdot(::Real, ::Complex)
).realdot
shows up when defining pullbacks of non-holomorphic functions on complex numbers e.g. in SpecialFunctions and ChainRules but has a more general non-AD related interpretation for complex arrays (realdot
of two complex arrays is just thedot
product of the two arrays reinterpreted as real arrays, see the README for more details) and more general use e.g. in StatsBase (https://github.com/JuliaStats/StatsBase.jl/blob/0a179531f14d0140356fcf1f1d55bd0240030cf2/src/scalarstats.jl#L259-L261).It would be good to move the repo to an official Julia organization, I guess, before registering it and making PRs to central packages such as SpecialFunctions, ChainRules, or StatsBase. The main motivation would be that the package lives at a more official location and does not seem to be just a personal project. Additionally, it might be easier to find and more easily attract other contributors (even though I don't expect many changes).
I think JuliaMath would be a good fit.