Ejemplo n.º 1
0
int compareMatrices(int** a, int** b){
	int aWidth = xMatrix(a);
	int bWidth = xMatrix(b);

	if (aWidth > bWidth){
		return 1;
	} else if (aWidth < bWidth){
		return -1;
	}

	int w = aWidth;

	int aHeight = yMatrix(a);
	int bHeight = yMatrix(b);

	if (aHeight > bHeight){
		return 1;
	} else if (aHeight < bHeight){
		return -1;
	}

	int l = aWidth;

	for (int i = 0; i < w; i++){
		for (int j = 0; j < l; j++){
			if (a[i][j] > b[i][j]){
				return 1;
			} else if (a[i][j] < b[i][j]){
				return -1;
			}
		}
	}
	return 0;
}
Ejemplo n.º 2
0
void printMatrix(int** a){
	printf("[\n");
	int n = xMatrix(a);
	int m = yMatrix(a);
	for (int i = 0; i < n; i++){
		printMatrixRow(a[i], m);
	}
	printf("]\n");
}
Ejemplo n.º 3
0
/*
 * The client code for the stream.  Relies heavily on the functionality
 * created by getOrder and advance Graph in order to do the heavy lifting
 * for stream generation.
 */
long getNextValue(Graph* g){
	int index = getOrder(g->order, g->nextOrder);
	long result = g->running[index][index];
	g->nextOrder++;
	if (g->nextOrder >= xMatrix(g->graph)){
		g->nextOrder = 0;
		advanceGraph(g);
	}
	return result;
}
Ejemplo n.º 4
0
void sortMatrixRows(int** a){
	int madeSwap = 1;
	while (madeSwap) {
		madeSwap = 0;
		for(int i = 0; i < xMatrix(a)-1; i++){
			if (compareMatrixRow(a,i,a,i+1) == 1){
				swapMatrixRow(a, i, i+1);
				madeSwap = 1;
			}
		}
	}
}
Ejemplo n.º 5
0
   Matrix4 &Matrix4::FromEulerAngle(const EulerAngle &euler)
   {
      float fCos, fSin;

      fCos = Cos(euler.yaw);
      fSin = Sin(euler.yaw);
      Matrix3 yMatrix(fCos, 0.0, fSin, 0.0, 1.0, 0.0, -fSin, 0.0, fCos);

      fCos = Cos(euler.pitch);
      fSin = Sin(euler.pitch);
      Matrix3 xMatrix(1.0, 0.0, 0.0, 0.0, fCos, -fSin, 0.0, fSin, fCos);

      fCos = Cos(euler.roll);
      fSin = Sin(euler.roll);
      Matrix3 zMatrix(fCos, -fSin, 0.0, fSin, fCos, 0.0, 0.0, 0.0, 1.0);

      *this = yMatrix * (xMatrix * zMatrix);

      return *this;
   }
Ejemplo n.º 6
0
int size(Graph* g){
	return xMatrix(g->graph);
}