Skip to content
Snippets Groups Projects
Commit 83e86f7e authored by sr1g19's avatar sr1g19
Browse files

Upload New File

parent 9d73978f
No related branches found
No related tags found
No related merge requests found
#include "2x2matrix.h"
_2x2Matrix add_2x2(_2x2Matrix m1, _2x2Matrix m2){
_2x2Matrix ma = {
m1.a11 + m2.a11,m1.a12 + m2.a12,
m1.a21 + m2.a21,m1.a22 + m2.a22
};
return ma;
}
_2x2Matrix minus_2x2(_2x2Matrix m1, _2x2Matrix m2){
_2x2Matrix ma = {
m1.a11 - m2.a11,m1.a12 - m2.a12,
m1.a21 - m2.a21,m1.a22 - m2.a22
};
return ma;
}
_2x2Matrix multiply_2x2(_2x2Matrix m1, _2x2Matrix m2){
_2x2Matrix ma = {
(m1.a12 * m2.a21) + (m1.a11 * m2.a11),(m1.a11 * m2.a12) + (m1.a12 * m2.a22),
(m1.a22 * m2.a21) + (m1.a21 * m2.a11),(m1.a21 * m2.a12) + (m1.a22 * m2.a22)
};
return ma;
}
_2x2Matrix scale_2x2(_2x2Matrix m1, float scale) {
_2x2Matrix ma = {
m1.a11 * scale,m1.a12 * scale,
m1.a21 * scale,m1.a22 * scale
};
return ma;
}
float det_2x2(_2x2Matrix m){
return (m.a11 * m.a22) - (m.a12 * m.a21);
}
_2x2Matrix inverse_2x2(_2x2Matrix m){
float detM = det_2x2(m);
if(detM != 0){
_2x2Matrix specMat = {m.a22, -m.a12,
-m.a21, m.a11};
return scale_2x2(specMat, 1.0/detM);
}
_2x2Matrix badM = {1.0f,1.0f,1.0f,1.0f};
return badM;
}
_2x1Matrix transpose_2x2(_2x2Matrix m1, _2x1Matrix m2){
_2x1Matrix ma = {
(m1.a12*m2.a21) + (m1.a11*m2.a11),
(m1.a22*m2.a21) + (m1.a21*m2.a11)
};
return ma;
}
unsigned char equals_2x2(_2x2Matrix m1, _2x2Matrix m2) {
if(m1.a11 == m2.a11
&& m1.a12 == m2.a12
&& m1.a21 == m2.a21
&& m1.a22 == m2.a22)
return 42;
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment