It works with arrays (both fixed size, and dynamically sized) and arrays; between arrays and elements; but not between two scalar types that don't overload opBinary!"~", so no it won't work between two `ushorts` to produce a `uint`
This was essentially how DMD (the reference D compiler) was translated to D.
However this was mostly a restricted subset of C++ common to both of them, e.g. no diamond inheritance, no operator overloading whackiness.
`private` is only private to the module, not the struct/class, (In other words, all functions in the same module are all C++ style `friend`s) and so free function in same module work.
Hmmm, I wonder if you could turn this into a sport and have like one paper per year per group of total BS, and shame on the reviewers/conference/journal if they don't catch it, and kudos to the submitters the more blatant it is.
Come to think of it, is there a "Journal of Academic Fraud"?
Ok you're right! I originally wrote down 90 degrees but then I had a conflicting view about being the inverse and then reasoned it must be 180 degrees
So the fourier transform of the fourier transform isn't the same as the inverse fourier transform? (ignoring the scaling bits that can be normalized I think), so I've been lied to?
It is, because wavenumber and position are distinct variables and are orthogonal to each other. FT turn position into wavenumber (positional frequency) and wavenumber into negative position: