Our Own Math, from the First Line
Dense linear algebra and GPU integral kernels written from scratch in C++ and CUDA, with no third-party math library inside.

What Is Inside
Engine 1.10.12. Partial CPU routines Unverified GPU J and K
Matrix Multiplication
Packed, cache-blocked GEMM with register-tiled SIMD micro-kernels. The instruction set is picked at run time: Apple SME, ARM NEON or a scalar path. A single-thread variant runs the blocked matrix products inside the meta-GGA grid code (engine 1.9.8).
Factorisations
Blocked right-looking Cholesky, blocked LU with partial pivoting and blocked triangular solves (TRSM) for every side and triangle.
Symmetric Eigensolver
Blocked Householder tridiagonalisation with threaded updates, then the QL algorithm with implicit shifts. Same bits on every rerun in deterministic mode.
Own Thread Pool
Threads managed by the engine, with an optional deterministic order for bitwise reruns.
GPU J and K
Direct, screened Coulomb and exchange builds on the GPU up to d functions, and GPU RI-J three-centre integrals, in CUDA builds.
No Third-Party Math Libraries
The heavy algebra of the VYROX Chemistry Engine is our own code, end to end.
- No MKL, OpenBLAS, BLIS, Eigen, Accelerate or cuBLAS, and no FFTW for plane waves
- Algorithms from the published literature, each cited in the code
- The same source builds on macOS and Windows, CPU and CUDA
- The engine reports in its capability list that no external library is used
Three Modes, One Answer
- Auto routes GEMM and the eigensolver to the kernel
- Fast uses the kernel for every supported routine
- Reference keeps the plain code path, used to check the fast one
- Each result records the mode, the instruction set and the thread count in its provenance
How It Is Checked
- Every micro-kernel against a plain triple-loop GEMM
- One thread against four threads, bit for bit, in deterministic mode
- Cholesky, LU and TRSM residuals and agreement with the reference path
- GPU integrals against the CPU route; GPU J and K stay off by default until measured faster than the CPU
Primary Sources
- Householder 1958, unitary triangularisation
- Bowdler, Martin, Reinsch, Wilkinson 1968, QL algorithm
- Ufimtsev, Martinez 2008 and 2009, integrals and SCF on GPUs
- Haser, Ahlrichs 1989, integral screening in direct SCF
- Obara, Saika 1986, cross-check route
Full citations on the References page.
VYROX Math Kernel Questions
What is the VYROX Math Kernel?
Does it use MKL, OpenBLAS or cuBLAS?
Why write our own?
Is it faster?
Will my results change?
Run Your Next Molecule Through AiMolSim
Start with one molecule and one energy. Every number comes with its method, its basis, its engine version and the server it ran on.