Beispiel #1
0
//matrix_sub
static void matrix_sub_TwoMatrixesWithElementsSixTenTwoElevenAndOneTwoThreeFour_MatrixWithElementsFiveEightMinusOneSeven(void ** state)
{
    matrix_t * mat1 = matrix_test(6,10,2,11);
    matrix_t * mat2 = matrix_test(1,2,3,4);
    assert_int_equal(matrix_getElementOfMatrix(matrix_sub(mat1,mat2),0,0),5);
    assert_int_equal(matrix_getElementOfMatrix(matrix_sub(mat1,mat2),0,1),8);
    assert_int_equal(matrix_getElementOfMatrix(matrix_sub(mat1,mat2),1,0),-1);
    assert_int_equal(matrix_getElementOfMatrix(matrix_sub(mat1,mat2),1,1),7);

    matrix_free(mat1);
    matrix_free(mat2);
}
Beispiel #2
0
//matrix_add
static void matrix_add_TwoMatrixesWithElementsOneTwoThreeFour_MatrixWithElementsTwoFourSixEight(void ** state)
{
    matrix_t * mat1 =matrix_test(1,2,3,4);
    matrix_t * mat2 =matrix_test(1,2,3,4);
    assert_int_equal(matrix_getElementOfMatrix(matrix_add(mat1,mat2),0,0),2);
    assert_int_equal(matrix_getElementOfMatrix(matrix_add(mat1,mat2),0,1),4);
    assert_int_equal(matrix_getElementOfMatrix(matrix_add(mat1,mat2),1,0),6);
    assert_int_equal(matrix_getElementOfMatrix(matrix_add(mat1,mat2),1,1),8);

    matrix_free(mat1);
    matrix_free(mat2);
}
Beispiel #3
0
//multiplication of two matrixes
static void matrix_mult_TwoMatrixesWithElementsOneTwoThreeFour_TwoMatrixesWithElementsSevenTenFifteenTwentytwo(void ** state)
{
    matrix_t * mat1 = matrix_test(1,2,3,4);
    matrix_t * mat2 = matrix_test(1,2,3,4);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult(mat1,mat2),0,0),7);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult(mat1,mat2),0,1),10);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult(mat1,mat2),1,0),15);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult(mat1,mat2),1,1),22);

    matrix_free(mat1);
    matrix_free(mat2);

}
Beispiel #4
0
/* Function: core_bench_matrix
	Benchmark function

	Iterate <matrix_test> N times, 
	changing the matrix values slightly by a constant amount each time.
*/
ee_u16 core_bench_matrix(mat_params *p, ee_s16 seed, ee_u16 crc) {
	ee_u32 N=p->N;
	MATRES *C=p->C;
	MATDAT *A=p->A;
	MATDAT *B=p->B;
	MATDAT val=(MATDAT)seed;

	crc=crc16(matrix_test(N,C,A,B,val),crc);

	return crc;
}
Beispiel #5
0
//transposed matrix
static void matrix_transpos_MatrixWithElementsFiveTenFifteenTwenty_matrixWithElementsFiveFifteenTenTwenty(void ** state)
{
    matrix_t * mat1 =  matrix_test(5,10,15,20);

    assert_int_equal(matrix_getElementOfMatrix(matrix_transpos(mat1),0,0),5);
    assert_int_equal(matrix_getElementOfMatrix(matrix_transpos(mat1),1,0),10);
    assert_int_equal(matrix_getElementOfMatrix(matrix_transpos(mat1),0,1),15);
    assert_int_equal(matrix_getElementOfMatrix(matrix_transpos(mat1),1,1),20);

    matrix_free(mat1);
}
Beispiel #6
0
//multiplication matrix on vector
static void matrix_mult_vector_MatrixWithElementsSixTenTwoElevenVectorWithCoordinatesFiveSeven_MatrixWithElementsThirtyFiftyFourteenSeventyseven(void ** state)
{

    matrix_t * mat1 =  matrix_test(6,10,2,11);
    vector_t * vec1 = vector_test(5,7);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult_vector(mat1,vec1),0,0),30);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult_vector(mat1,vec1),0,1),50);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult_vector(mat1,vec1),1,0),14);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult_vector(mat1,vec1),1,1),77);
    matrix_free(mat1);
    vector_free(vec1);
}
Beispiel #7
0
//multiplication matrix on number
static void matrix_mult_byNumber_MatrixWithElementsFiveTenFifteenTwenty(void**state)
{


    matrix_t * mat1 = matrix_test(1,2,3,4);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult_byNumber(mat1,5),0,0),5);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult_byNumber(mat1,5),0,1),10);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult_byNumber(mat1,5),1,0),15);
    assert_int_equal(matrix_getElementOfMatrix(matrix_mult_byNumber(mat1,5),1,1),20);


    matrix_free(mat1);
}
Beispiel #8
0
int main(int argc,char **argv) {
#if (MATRIX_TEST)
	matrix_test();
#elif (MATRIX_UTIL_TEST)
	matrix_util_test();
#else
	//unsigned int layer_sizes[] = {400, 25, 10};
	unsigned int num_layers = 3;
	unsigned int num_labels = 10;
	double lambda = 0.8;
	
	/*
	if(argc < 2)
	{
		printf("need exactly 1 argument for vector length\n");
		return 0;
	}
    unsigned int iteration_number = atoi(argv[1]);
   	*/

	unsigned int iteration_number = 100;

	matrix_list_t* theta = matrix_list_constructor(2);
	//theta->matrix_list[0] = matrix_random(25, 401, .12);
	//theta->matrix_list[1] = matrix_random(10, 26, .12);
	theta->matrix_list[0] = load_from_file("theta1.csv", 25, 401);
	theta->matrix_list[1] = load_from_file("theta2.csv", 10, 26);
	
	assert(theta->num == 2);
	assert(theta->matrix_list[0]->rows == 25 && theta->matrix_list[0]->cols == 401);
	assert(theta->matrix_list[1]->rows == 10 && theta->matrix_list[1]->cols == 26);
	/*
	matrix_t* X = load_from_file("X.csv", 5000, 400);
	matrix_t* tmp = load_from_file("y.csv", 5000, 1);
	matrix_t* y = matrix_transpose(tmp);
	free_matrix(tmp);
	*/
	gradient_descent(&theta, num_layers, num_labels, lambda, iteration_number);

	//free_matrix(X);
	//free_matrix(y);
	free_matrix_list(theta);
#endif
	return 1;
}