Fix various linting errors, both for cpplint and
then clang-format. For the latter, used
clang-format-19 to quickly fix it all.
Signed-off-by: Marcus Alagar <mvala079@gmail.com>
Implement 32-bit floating-point complex number vector generator
using a fixed phase increment on each element utilizing
RVV C intrinsics.
Signed-off-by: Marcus Alagar <mvala079@gmail.com>
Implement experimental 32-bit floating-point number generation
of complex numbers using sin and cos utilizing RVV C intrinsics.
To be fully honest, simply reverse-engineered the NEON implementation,
and not entirely sure how the final two big calculations ("extended
precision modular arithmetic" and calculating both polynomials)
were derived. As such, it is possible there is a method that better
utilizes the capabilities of RVV, and welcome any change that would
be able to take advantage of it.
Signed-off-by: Marcus Alagar <mvala079@gmail.com>
Now, actually implement 32fc x2 rotator dot product and its associated
puppet utilizing RVV C intrinsics.
Signed-off-by: Marcus Alagar <mvala079@gmail.com>
Implement 32-bit floating-point complex number rotator and dot product
with input scalar 32-bit floating-point complex vectors utilizing RVV
C intrinsics.
Signed-off-by: Marcus Alagar <mvala079@gmail.com>
In process, attempted experimental optimization.
Specifically, at point where would perform dot product, loaded the
accumulators in a vectorized way so that can simply rotate through
the accumulators instead of having to reload each one at a time.
However, ended up actually making the test slower. This
may, however, be a symptom of the relatively small test, so
it may be worth keeping an eye out in case use cases
turn out to mainly be for bigger vectors.
Signed-off-by: Marcus Alagar <mvala079@gmail.com>
Implement rotator of 16-bit integer values using
RVV intrinsics, along with its corresponding puppet
to enable testing.
Signed-off-by: Marcus Alagar <mvala079@gmail.com>
Replace the wordy pseudoinstrict of `vset` with the
more concise (at least in these use cases) one of
`vcreate`.
Signed-off-by: Marcus Alagar <mvala079@gmail.com>
Implement high dynamics resampler, which seems to include a second-order
term in calculating the index as well as using a simple for loop
after calculating the first resample that just `memcpy`s at
an offset for the adjacent correlators.
Signed-off-by: Marcus Alagar <mvala079@gmail.com>
Implement fast 16-bit integer complex number xn resampler along
with its corresponding puppet. Essentially just runs the
fast resampler code in a for loop for each desired output.
Signed-off-by: Marcus Alagar <mvala079@gmail.com>
Implement experiement fast resampler for 16-bit integer complex numbers,
which uses the extra prerequirement of phase never reaching more than
twice the length of `local_code` to sidestep all slow division steps
and instead use simple branching and addition/subtraction.
Signed-off-by: Marcus Alagar <mvala079@gmail.com>