Neon Accelerated QR Algorithm
An implementation of the QR Algorithm with Double Wilkinson's Shift utilizing Neon intrinsics, written in C23.
Clone the repository from here:
git clone git@github.com:diantonioandrea/NAQRA.gitCompile the tests located under src/:
makeThe executables are then located under executables/.
Tests require the size of the test matrix, along with the range of random values used to initialize it, specified as two real numbers. An optional argument can be provided to enable the output.
Every method developed in NAQRA follows a structured naming convention with three parts, separated by underscores:
- Function: Describes the primary operation or behavior of the method.
- Input(s): Specifies the type or nature of the inputs.
- Output: Indicates the type or nature of the resulting output.
All methods are documented directly within the code for clarity and ease of use.
Interface1
Moreover, the repository provides an interface that includes the Vector and Matrix structures, some output methods, and the Eigenvalues function for higher-level usage. Vectors can be created, accessed, edited and deleted using the NewVector, GetVectorAt, SetVectorAt, and FreeVector methods. Similarly, matrices can be manipulated with methods whose name follows the same conventions.
Footnotes
-
All tests are implemented with low level functions. ↩