19 using namespace shogun;
29 EPrimitiveType ptype,
index_t* length)
36 EPrimitiveType ptype,
index_t* length_y,
61 SG_SDEBUG(
"leaving TSGDataType::equals_wihtout_length(): container types are "
68 SG_SDEBUG(
"leaving TSGDataType::equals_wihtout_length(): struct types are "
75 SG_SDEBUG(
"leaving TSGDataType::equals_wihtout_length(): primitive types are "
80 SG_SDEBUG(
"leaving TSGDataType::equals_wihtout_length(): data types "
81 "without lengths are equal\n");
87 SG_SDEBUG(
"entering TSGDataType::equals()\n");
91 SG_SDEBUG(
"leaving TSGDataType::equals(): Data types without lengths "
98 SG_SDEBUG(
"leaving TSGDataType::equals(): length_y is at %p while "
107 SG_SDEBUG(
"leaving TSGDataType::equals(): length_y=%d while "
115 SG_SDEBUG(
"leaving TSGDataType::equals(): m_length_x is at %p while "
124 SG_SDEBUG(
"leaving TSGDataType::equals(): m_length_x=%d while "
130 SG_SDEBUG(
"leaving TSGDataType::equals(): datatypes are equal\n");
140 case CT_SCALAR: strncpy(p,
"", n);
break;
141 case CT_VECTOR: strncpy(p,
"Vector<", n);
break;
142 case CT_SGVECTOR: strncpy(p,
"SGVector<", n);
break;
143 case CT_MATRIX: strncpy(p,
"Matrix<", n);
break;
144 case CT_SGMATRIX: strncpy(p,
"SGMatrix<", n);
break;
145 case CT_NDARRAY: strncpy(p,
"N-Dimensional Array<", n);
break;
146 case CT_UNDEFINED:
default: strncpy(p,
"Undefined", n);
break;
151 size_t np = strlen(p);
156 case CT_SCALAR:
break;
161 case CT_NDARRAY: strcat(p,
">");
break;
162 case CT_UNDEFINED:
default:
break;
199 SG_SWARNING(
"TGSDataType::sizeof_stype(): Strings are"
200 " not supported for complex128_t\n");
203 SG_SWARNING(
"TGSDataType::sizeof_stype(): Strings are"
204 " not supported for SGObject\n");
206 case PT_UNDEFINED:
default:
207 SG_SERROR(
"Implementation error: undefined primitive type\n");
227 case PT_SGOBJECT:
return -1;
228 case PT_UNDEFINED:
default:
229 SG_SERROR(
"Implementation error: undefined primitive type\n");
233 case ST_UNDEFINED:
default:
234 SG_SERROR(
"Implementation error: undefined structure type\n");
245 case PT_BOOL:
return sizeof (bool);
246 case PT_CHAR:
return sizeof (char);
247 case PT_INT8:
return sizeof (int8_t);
248 case PT_UINT8:
return sizeof (uint8_t);
249 case PT_INT16:
return sizeof (int16_t);
250 case PT_UINT16:
return sizeof (uint16_t);
251 case PT_INT32:
return sizeof (int32_t);
252 case PT_UINT32:
return sizeof (uint32_t);
253 case PT_INT64:
return sizeof (int64_t);
254 case PT_UINT64:
return sizeof (uint64_t);
255 case PT_FLOAT32:
return sizeof (
float32_t);
256 case PT_FLOAT64:
return sizeof (
float64_t);
259 case PT_SGOBJECT:
return sizeof (
CSGObject*);
260 case PT_UNDEFINED:
default:
261 SG_SERROR(
"Implementation error: undefined primitive type\n");
286 case PT_SGOBJECT:
return -1;
287 case PT_UNDEFINED:
default:
288 SG_SERROR(
"Implementation error: undefined primitive type\n");
295 #define ENTRY_OFFSET(k, type) \
296 ((char*) &((SGSparseVectorEntry<type>*) (k))->entry - (char*) (k))
300 size_t result = -1;
void* x = &result;
306 case PT_UINT8: result =
ENTRY_OFFSET(x, uint8_t);
break;
307 case PT_INT16: result =
ENTRY_OFFSET(x, int16_t);
break;
308 case PT_UINT16: result =
ENTRY_OFFSET(x, uint16_t);
break;
309 case PT_INT32: result =
ENTRY_OFFSET(x, int32_t);
break;
310 case PT_UINT32: result =
ENTRY_OFFSET(x, uint32_t);
break;
311 case PT_INT64: result =
ENTRY_OFFSET(x, int64_t);
break;
312 case PT_UINT64: result =
ENTRY_OFFSET(x, uint64_t);
break;
317 case PT_SGOBJECT:
return -1;
318 case PT_UNDEFINED:
default:
319 SG_SERROR(
"Implementation error: undefined primitive type\n");
328 EPrimitiveType ptype,
size_t n)
333 case ST_NONE: strncpy(p,
"", n);
break;
334 case ST_STRING: strncpy(p,
"String<", n);
break;
335 case ST_SPARSE: strncpy(p,
"Sparse<", n);
break;
336 case ST_UNDEFINED:
default:
337 SG_SERROR(
"Implementation error: undefined structure type\n");
341 size_t np = strlen(p);
346 case ST_STRING:
case ST_SPARSE:
347 strcat(p,
">");
break;
348 case ST_UNDEFINED:
default:
349 SG_SERROR(
"Implementation error: undefined structure type\n");
361 case PT_BOOL: strncpy(p,
"bool", n);
break;
362 case PT_CHAR: strncpy(p,
"char", n);
break;
363 case PT_INT8: strncpy(p,
"int8", n);
break;
364 case PT_UINT8: strncpy(p,
"uint8", n);
break;
365 case PT_INT16: strncpy(p,
"int16", n);
break;
366 case PT_UINT16: strncpy(p,
"uint16", n);
break;
367 case PT_INT32: strncpy(p,
"int32", n);
break;
368 case PT_UINT32: strncpy(p,
"uint32", n);
break;
369 case PT_INT64: strncpy(p,
"int64", n);
break;
370 case PT_UINT64: strncpy(p,
"uint64", n);
break;
371 case PT_FLOAT32: strncpy(p,
"float32", n);
break;
372 case PT_FLOAT64: strncpy(p,
"float64", n);
break;
373 case PT_FLOATMAX: strncpy(p,
"floatmax", n);
break;
374 case PT_COMPLEX128: strncpy(p,
"complex128", n);
break;
375 case PT_SGOBJECT: strncpy(p,
"SGSerializable*", n);
break;
376 case PT_UNDEFINED:
default:
377 SG_SERROR(
"Implementation error: undefined primitive type\n");
385 if (strcmp(str,
"bool") == 0) {
386 *ptype = PT_BOOL;
return true; }
387 if (strcmp(str,
"char") == 0) {
388 *ptype = PT_CHAR;
return true; }
389 if (strcmp(str,
"int8") == 0) {
390 *ptype = PT_INT8;
return true; }
391 if (strcmp(str,
"uint8") == 0) {
392 *ptype = PT_UINT8;
return true; }
393 if (strcmp(str,
"int16") == 0) {
394 *ptype = PT_INT16;
return true; }
395 if (strcmp(str,
"uint16") == 0) {
396 *ptype = PT_UINT16;
return true; }
397 if (strcmp(str,
"int32") == 0) {
398 *ptype = PT_INT32;
return true; }
399 if (strcmp(str,
"uint32") == 0) {
400 *ptype = PT_UINT32;
return true; }
401 if (strcmp(str,
"int64") == 0) {
402 *ptype = PT_INT64;
return true; }
403 if (strcmp(str,
"uint64") == 0) {
404 *ptype = PT_UINT64;
return true; }
405 if (strcmp(str,
"float32") == 0) {
406 *ptype = PT_FLOAT32;
return true; }
407 if (strcmp(str,
"float64") == 0) {
408 *ptype = PT_FLOAT64;
return true; }
409 if (strcmp(str,
"floatmax") == 0) {
410 *ptype = PT_FLOATMAX;
return true; }
411 if (strcmp(str,
"complex128") == 0) {
412 *ptype = PT_COMPLEX128;
return true; }
413 if (strcmp(str,
"SGSerializable*") == 0) {
414 *ptype = PT_SGOBJECT;
return true; }
418 case PT_BOOL:
case PT_CHAR:
case PT_INT8:
case PT_UINT8:
419 case PT_INT16:
case PT_UINT16:
case PT_INT32:
case PT_UINT32:
420 case PT_INT64:
case PT_UINT64:
case PT_FLOAT32:
case PT_FLOAT64:
421 case PT_FLOATMAX:
case PT_COMPLEX128:
case PT_SGOBJECT:
break;
422 case PT_UNDEFINED:
default:
423 SG_SERROR(
"Implementation error: undefined primitive type\n");
446 case ST_UNDEFINED:
default:
447 SG_SERROR(
"Implementation error: undefined structure type\n");
460 case CT_VECTOR:
case CT_SGVECTOR:
463 case CT_MATRIX:
case CT_SGMATRIX:
467 case CT_UNDEFINED:
default:
468 SG_SERROR(
"Implementation error: undefined container type\n");