// Filename : matrix_mult.h
//
// This file was initially generated by SpaceStudio but is meant to be modified
// by the user.
#ifndef MATRIX_MULT_H
#define MATRIX_MULT_H

#include "spacecomp.h"
#include "abstract_module.h"
#include "application_definitions.h"

#include "matrix_def.h"

#include <stdint.h>

class matrix_mult: public abstract_module {
	SPACECOMP_START(matrix_mult, INDEX, matrix_mult);

public:
	matrix_mult(SPACECOMP_CTOR_PARAMS(matrix_mult, INDEX));

	void thread(SPACECOMP_THREAD_PARAMS(matrix_mult, INDEX, thread));

private:

	void multiply(uint32_t* in_1, uint32_t* in_2, uint32_t* out);
	void read_matrix(uint32_t* matrix);
	void send_result(uint32_t* matrix);

	SPACECOMP_END(matrix_mult, INDEX, matrix_mult);
};

#endif
