18 using namespace shogun;
28 EPrimitiveType ptype,
index_t* length)
35 EPrimitiveType ptype,
index_t* length_y,
62 case CT_SCALAR: strncpy(p,
"", n);
break;
63 case CT_VECTOR: strncpy(p,
"Vector<", n);
break;
64 case CT_SGVECTOR: strncpy(p,
"SGVector<", n);
break;
65 case CT_MATRIX: strncpy(p,
"Matrix<", n);
break;
66 case CT_SGMATRIX: strncpy(p,
"SGMatrix<", n);
break;
67 case CT_NDARRAY: strncpy(p,
"N-Dimensional Array<", n);
break;
70 size_t np = strlen(p);
74 case CT_SCALAR:
break;
80 strcat(p,
">");
break;
104 case PT_SGOBJECT:
return -1;
122 case PT_SGOBJECT:
return -1;
134 case PT_BOOL:
return sizeof (bool);
135 case PT_CHAR:
return sizeof (char);
136 case PT_INT8:
return sizeof (int8_t);
137 case PT_UINT8:
return sizeof (uint8_t);
138 case PT_INT16:
return sizeof (int16_t);
139 case PT_UINT16:
return sizeof (uint16_t);
140 case PT_INT32:
return sizeof (int32_t);
141 case PT_UINT32:
return sizeof (uint32_t);
142 case PT_INT64:
return sizeof (int64_t);
143 case PT_UINT64:
return sizeof (uint64_t);
144 case PT_FLOAT32:
return sizeof (
float32_t);
145 case PT_FLOAT64:
return sizeof (
float64_t);
147 case PT_SGOBJECT:
return sizeof (
CSGObject*);
170 case PT_SGOBJECT:
return -1;
176 #define ENTRY_OFFSET(k, type) \
177 ((char*) &((SGSparseVectorEntry<type>*) (k))->entry - (char*) (k))
181 size_t result = -1;
void* x = &result;
187 case PT_UINT8: result =
ENTRY_OFFSET(x, uint8_t);
break;
188 case PT_INT16: result =
ENTRY_OFFSET(x, int16_t);
break;
189 case PT_UINT16: result =
ENTRY_OFFSET(x, uint16_t);
break;
190 case PT_INT32: result =
ENTRY_OFFSET(x, int32_t);
break;
191 case PT_UINT32: result =
ENTRY_OFFSET(x, uint32_t);
break;
192 case PT_INT64: result =
ENTRY_OFFSET(x, int64_t);
break;
193 case PT_UINT64: result =
ENTRY_OFFSET(x, uint64_t);
break;
197 case PT_SGOBJECT:
return -1;
205 EPrimitiveType ptype,
size_t n)
210 case ST_NONE: strncpy(p,
"", n);
break;
211 case ST_STRING: strncpy(p,
"String<", n);
break;
212 case ST_SPARSE: strncpy(p,
"Sparse<", n);
break;
215 size_t np = strlen(p);
220 case ST_STRING:
case ST_SPARSE:
221 strcat(p,
">");
break;
232 case PT_BOOL: strncpy(p,
"bool", n);
break;
233 case PT_CHAR: strncpy(p,
"char", n);
break;
234 case PT_INT8: strncpy(p,
"int8", n);
break;
235 case PT_UINT8: strncpy(p,
"uint8", n);
break;
236 case PT_INT16: strncpy(p,
"int16", n);
break;
237 case PT_UINT16: strncpy(p,
"uint16", n);
break;
238 case PT_INT32: strncpy(p,
"int32", n);
break;
239 case PT_UINT32: strncpy(p,
"uint32", n);
break;
240 case PT_INT64: strncpy(p,
"int64", n);
break;
241 case PT_UINT64: strncpy(p,
"uint64", n);
break;
242 case PT_FLOAT32: strncpy(p,
"float32", n);
break;
243 case PT_FLOAT64: strncpy(p,
"float64", n);
break;
244 case PT_FLOATMAX: strncpy(p,
"floatmax", n);
break;
245 case PT_SGOBJECT: strncpy(p,
"SGSerializable*", n);
break;
252 if (strcmp(str,
"bool") == 0) {
253 *ptype = PT_BOOL;
return true; }
254 if (strcmp(str,
"char") == 0) {
255 *ptype = PT_CHAR;
return true; }
256 if (strcmp(str,
"int8") == 0) {
257 *ptype = PT_INT8;
return true; }
258 if (strcmp(str,
"uint8") == 0) {
259 *ptype = PT_UINT8;
return true; }
260 if (strcmp(str,
"int16") == 0) {
261 *ptype = PT_INT16;
return true; }
262 if (strcmp(str,
"uint16") == 0) {
263 *ptype = PT_UINT16;
return true; }
264 if (strcmp(str,
"int32") == 0) {
265 *ptype = PT_INT32;
return true; }
266 if (strcmp(str,
"uint32") == 0) {
267 *ptype = PT_UINT32;
return true; }
268 if (strcmp(str,
"int64") == 0) {
269 *ptype = PT_INT64;
return true; }
270 if (strcmp(str,
"uint64") == 0) {
271 *ptype = PT_UINT64;
return true; }
272 if (strcmp(str,
"float32") == 0) {
273 *ptype = PT_FLOAT32;
return true; }
274 if (strcmp(str,
"float64") == 0) {
275 *ptype = PT_FLOAT64;
return true; }
276 if (strcmp(str,
"floatmax") == 0) {
277 *ptype = PT_FLOATMAX;
return true; }
278 if (strcmp(str,
"SGSerializable*") == 0) {
279 *ptype = PT_SGOBJECT;
return true; }
283 case PT_BOOL:
case PT_CHAR:
case PT_INT8:
case PT_UINT8:
284 case PT_INT16:
case PT_UINT16:
case PT_INT32:
case PT_UINT32:
285 case PT_INT64:
case PT_UINT64:
case PT_FLOAT32:
case PT_FLOAT64:
286 case PT_FLOATMAX:
case PT_SGOBJECT:
break;
319 case CT_VECTOR:
case CT_SGVECTOR:
322 case CT_MATRIX:
case CT_SGMATRIX: