in src/main/java/org/apache/sysds/common/Types.java [288:432]
private static ValueType getHighestCommonTypeSwitch(ValueType a, ValueType b){
switch(a) {
case CHARACTER:
switch(b){
case UNKNOWN:
return a;
default:
return STRING;
}
case HASH32:
switch(b) {
case UNKNOWN:
return a;
case CHARACTER:
return STRING;
case HASH64:
case STRING:
return b;
default:
return a;
}
case HASH64:
switch(b) {
case UNKNOWN:
return a;
case CHARACTER:
return STRING;
case STRING:
return b;
default:
return a;
}
case STRING:
switch(b){
case UNKNOWN:
return a;
default:
return STRING;
}
case FP64:
switch(b) {
case HASH64:
case HASH32:
case CHARACTER:
return STRING;
case UNKNOWN:
return a;
case STRING:
return b;
default:
return a;
}
case FP32:
switch(b) {
case HASH64:
case HASH32:
case CHARACTER:
return STRING;
case STRING:
case FP64:
return b;
case UNKNOWN:
default:
return a;
}
case INT64:
switch(b) {
case HASH64:
case HASH32:
return b;
case CHARACTER:
return STRING;
case STRING:
case FP64:
case FP32:
return b;
case UNKNOWN:
default:
return a;
}
case INT32:
switch(b) {
case HASH64:
case HASH32:
return b;
case CHARACTER:
return STRING;
case STRING:
case FP64:
case FP32:
case INT64:
return b;
case UNKNOWN:
default:
return a;
}
case UINT4:
switch(b) {
case HASH64:
case HASH32:
return b;
case CHARACTER:
return STRING;
case STRING:
case FP64:
case FP32:
case INT64:
case INT32:
case UINT8:
return b;
case UNKNOWN:
default:
return a;
}
case UINT8:
switch(b) {
case HASH64:
case HASH32:
return b;
case CHARACTER:
return STRING;
case STRING:
case FP64:
case FP32:
case INT64:
case INT32:
return b;
case UNKNOWN:
default:
return a;
}
case BOOLEAN:
switch(b){
case UNKNOWN:
return a;
case CHARACTER:
return STRING;
default:
return b;// always higher type in b;
}
case UNKNOWN:
default:
return b;
}
}