https://www.wolframalpha.com/calculators/matrix-inverse-calculator




void DblAdd(int l, double* a, double* b, double* c)
{
_asm
{
mov eax, a; load a matrix address
mov ebx, b; load a matrix address
mov edi, c; load result address
mov edx, l; load matrix length
finit;
ll: fld qword ptr[eax];
fld qword ptr[ebx];
fadd;
fstp qword ptr[edi];
fwait;
add edi, 8;
add eax, 8;
add ebx, 8;
dec edx;
jnz ll;
}
}
void DblSub(int l, double* a, double* b, double* c)
{
_asm
{
mov eax, a; load a matrix address
mov ebx, b; load a matrix address
mov edi, c; load result address
mov edx, l; load matrix length
finit;
ll: fld qword ptr[eax];
fld qword ptr[ebx];
fsub;
fstp qword ptr[edi];
fwait;
add edi, 8;
add eax, 8;
add ebx, 8;
dec edx;
jnz ll;
}
}




I am in the progress of translating (porting) my J. M. Pollard’s algorithm “Factoring with Cubic Integers” C# application to a Free LIP based vanilla C Windows 32-bit console application. The first phase of the method is to generate two factor bases namely a rational prime factor base and an algebraic integer prime factor base. I have included some preliminary results from this fast-moving computer programming task. I generated 2012 algebraic integer primes in about a minute and thirty seconds.



We designed and implemented a simple and utilitarian C# matrix class for double precision numbers. The class has the binary matrix operators +, -, *, / which are addition, subtraction, multiplication, and division of two matrices. We also include an operator for multiplication of matrix by a scalar and an operator for dividing a matrix by a scalar. We have included functions to compute the p-norm, p, q-norm, and max norm of a matrix. We also can calculate using truncated infinite series the exponential, cosine, and sine function of a matrix. The exponential and trigonometric functions use a powering function that raises a matrix to a non-negative integral power.
Below is a screenshot of the test Windows Forms application. We execute the four binary matrix operators in the order +, -, *, / e.g. A+B, A-B, A*B, A/B. In order to divide by B, the matrix B must be square and non-singular, that is square and invertible.

The B matrix has the form of the matrix in the online discussion:
http://www.purplemath.com/modules/mtrxinvr2.htm
We create a project named MatrixExample. In this project we add a Matrix class whose code is given below:
I leave it as an exercise for the reader to test the various norms and other functions.