]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/ml_stc_src/common.h
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
d84e69e30da4230dcfea3b5dc7e62f9436bd3009
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / ml_stc_src / common.h
1 #ifndef COMMON_H\r
2 #define COMMON_H\r
3 \r
4 #include <string>\r
5 \r
6 typedef unsigned int u32;\r
7 typedef unsigned short u16;\r
8 typedef unsigned char u8;\r
9 \r
10 extern u32 mats[];\r
11 \r
12 /* Simple class for throwing exceptions */\r
13 class stc_exception : public std::exception {\r
14 public:\r
15     stc_exception(std::string message, u32 error_id) { this->message = message; this->error_id = error_id; }\r
16     virtual ~stc_exception() throw() {}\r
17     virtual const char* what() const throw() { return message.c_str(); }\r
18     u32 error_id;\r
19 private:\r
20     std::string message;\r
21 };\r
22 \r
23 /* \r
24    The following error_ids are in use:\r
25    1 = Submatrix height must not exceed 31.\r
26    2 = Not enough memory.\r
27    3 = The message cannot be longer than the cover object.\r
28    4 = No solution exists.                                 - This happen when there are too many Inf values in cost vector and thus the solution does not exist due to sparse parity-check matrix.\r
29    5 = Price vector limit exceeded.                        - There is a limit to cost elements when you use integer version of the algorithm. Try to use costs in double.\r
30    6 = Maximum number of trials in layered construction exceeded.\r
31  */\r
32 \r
33 u32 *getMatrix(int width, int height);\r
34 \r
35 #endif\r