Hi,
Why these matrices are not equal?

Code :
////////////////////////////////
// Matrix1 
///////////////////////////////
 
glMatrixMode(GL_TEXTURE);
glActiveTexture(GL_TEXTURE4);
 
const GLdouble bias[16] = {	
	0.5, 0.0, 0.0, 0.0, 
	0.0, 0.5, 0.0, 0.0,
	0.0, 0.0, 0.5, 0.0,
        0.5, 0.5, 0.5, 1.0};
 
	glLoadIdentity();	
	glLoadMatrixd(bias);
	glMultMatrixd (projection);
	glMultMatrixd (modelView);
 
        glGetDoublev(GL_TEXTURE_MATRIX, Matrix1);
 
 
////////////////////////////////
// Matrix2 
///////////////////////////////
 
//Functions
 
void multMatrix(double *resMat, double *aMatrix)
{
	double *a, *b, res[16];
	a = resMat;
	b = aMatrix;
 
	for (int i = 0; i < 4; ++i) {
		for (int j = 0; j < 4; ++j) {
			res[j*4 + i] = 0.0f;
			for (int k = 0; k < 4; ++k) {
				res[j*4 + i] += a[k*4 + i] * b[j*4 + k]; 
			}
		}
	}
	memcpy(a, res, 16 * sizeof(float));
}
 
...
 
const GLdouble bias[16] = {	
	0.5, 0.0, 0.0, 0.0, 
	0.0, 0.5, 0.0, 0.0,
	0.0, 0.0, 0.5, 0.0,
        0.5, 0.5, 0.5, 1.0};
 
 
	for(int ts=0;ts<16;ts++)
		Matrix2[ts] = bias[ts];
 
	multMatrix(Matrix2,projection);
	multMatrix(Matrix2,modelView);
 
Then -> Matrix2 != Matrix1
 
 
Why is my question?
 
Because if I use the texture Matrix, my shader is perfect! 
 
ShadowCoord = gl_TextureMatrix[4] * gl_Vertex; // This is OK.
 
But if I use the Uniform variable not working.
 
ShadowCoord = Matrix2 * gl_Vertex; // Bad shadown.


Any suggestions?


Thank you, best regards.