Import Geant4 10.6.0 source tree
This commit is contained in:
@@ -817,15 +817,33 @@ inline bool value::subtract(value& aThis,const value& aV,std::string& aError){
|
||||
break;
|
||||
case value::FLOAT:
|
||||
switch(aV.m_type) {
|
||||
case value::DOUBLE:
|
||||
aThis.u.m_float -= (float)aV.u.m_double;
|
||||
return true;
|
||||
case value::DOUBLE:{
|
||||
double tmp = double(aThis.u.m_float) - aV.u.m_double;
|
||||
aThis.set(tmp);
|
||||
return true;}
|
||||
case value::UNSIGNED_SHORT :
|
||||
aThis.u.m_float -= aV.u.m_unsigned_short;
|
||||
return true;
|
||||
case value::UNSIGNED_INT:
|
||||
aThis.u.m_float -= aV.u.m_unsigned_int;
|
||||
return true;
|
||||
case value::INT:
|
||||
aThis.u.m_float -= aV.u.m_int;
|
||||
return true;
|
||||
case value::SHORT:
|
||||
aThis.u.m_float -= aV.u.m_short;
|
||||
return true;
|
||||
case value::FLOAT:
|
||||
aThis.u.m_float -= aV.u.m_float;
|
||||
return true;
|
||||
case value::INT64:{
|
||||
double tmp = double(aThis.u.m_float) - aV.u.m_int64;
|
||||
aThis.set(tmp);
|
||||
return true;}
|
||||
case value::UNSIGNED_INT64:{
|
||||
double tmp = double(aThis.u.m_float) - aV.u.m_unsigned_int64;
|
||||
aThis.set(tmp);
|
||||
return true;}
|
||||
case value::ARRAY_DOUBLE:{
|
||||
double tmp = aThis.u.m_float;
|
||||
//In the below, this becomes a value::ARRAY_DOUBLE.
|
||||
@@ -835,15 +853,10 @@ inline bool value::subtract(value& aThis,const value& aV,std::string& aError){
|
||||
aThis.u.m_array_double->add(tmp);
|
||||
return true;}
|
||||
case value::NONE:
|
||||
case value::INT:
|
||||
case value::VOID_STAR:
|
||||
case value::BOOL:
|
||||
case value::SHORT:
|
||||
case value::INT64:
|
||||
case value::FLOAT:
|
||||
//case value::UNSIGNED_CHAR:
|
||||
//case value::CHAR:
|
||||
case value::UNSIGNED_INT64 :
|
||||
case value::DOUBLE_STAR:
|
||||
case value::FLOAT_STAR:
|
||||
case value::INT_STAR:
|
||||
@@ -874,6 +887,21 @@ inline bool value::subtract(value& aThis,const value& aV,std::string& aError){
|
||||
case value::UNSIGNED_INT:
|
||||
aThis.u.m_double -= aV.u.m_unsigned_int;
|
||||
return true;
|
||||
case value::INT:
|
||||
aThis.u.m_double -= aV.u.m_int;
|
||||
return true;
|
||||
case value::SHORT:
|
||||
aThis.u.m_double -= aV.u.m_short;
|
||||
return true;
|
||||
case value::INT64:
|
||||
aThis.u.m_double -= aV.u.m_int64;
|
||||
return true;
|
||||
case value::FLOAT:
|
||||
aThis.u.m_double -= aV.u.m_float;
|
||||
return true;
|
||||
case value::UNSIGNED_INT64 :
|
||||
aThis.u.m_double -= aV.u.m_unsigned_int64;
|
||||
return true;
|
||||
case value::ARRAY_DOUBLE:{
|
||||
double tmp = aThis.u.m_double;
|
||||
//In the below, this becomes a value::ARRAY_DOUBLE.
|
||||
@@ -883,15 +911,10 @@ inline bool value::subtract(value& aThis,const value& aV,std::string& aError){
|
||||
aThis.u.m_array_double->add(tmp);
|
||||
return true;}
|
||||
case value::NONE:
|
||||
case value::INT:
|
||||
case value::VOID_STAR:
|
||||
case value::BOOL:
|
||||
case value::SHORT:
|
||||
case value::INT64:
|
||||
case value::FLOAT:
|
||||
//case value::UNSIGNED_CHAR:
|
||||
//case value::CHAR:
|
||||
case value::UNSIGNED_INT64 :
|
||||
case value::DOUBLE_STAR:
|
||||
case value::FLOAT_STAR:
|
||||
case value::INT_STAR:
|
||||
@@ -917,6 +940,18 @@ inline bool value::subtract(value& aThis,const value& aV,std::string& aError){
|
||||
//case value::UNSIGNED_INT:
|
||||
// aThis.u.m_unsigned_int -= aV.u.m_unsigned_int;
|
||||
// return true;
|
||||
case value::DOUBLE:{
|
||||
double d = double(aThis.u.m_unsigned_int) - aV.u.m_double;
|
||||
aThis.set(d);
|
||||
return true;}
|
||||
case value::FLOAT:{
|
||||
float d = float(aThis.u.m_unsigned_int) - aV.u.m_float;
|
||||
aThis.set(d);
|
||||
return true;}
|
||||
case value::INT:{
|
||||
int d = int(aThis.u.m_unsigned_int) - aV.u.m_int;
|
||||
aThis.set(d);
|
||||
return true;}
|
||||
case value::ARRAY_DOUBLE:{
|
||||
unsigned int tmp = aThis.u.m_unsigned_int;
|
||||
//In the below, this becomes a value::ARRAY_DOUBLE.
|
||||
@@ -925,17 +960,11 @@ inline bool value::subtract(value& aThis,const value& aV,std::string& aError){
|
||||
aThis.u.m_array_double->multiply(-1);
|
||||
aThis.u.m_array_double->add(double(tmp));
|
||||
return true;}
|
||||
case value::DOUBLE:{
|
||||
double d = double(aThis.u.m_unsigned_int) - aV.u.m_double;
|
||||
aThis.set(d); //this becomes a value::DOUBLE.
|
||||
return true;}
|
||||
case value::NONE:
|
||||
case value::INT:
|
||||
case value::VOID_STAR:
|
||||
case value::BOOL:
|
||||
case value::SHORT:
|
||||
case value::INT64:
|
||||
case value::FLOAT:
|
||||
//case value::UNSIGNED_CHAR:
|
||||
//case value::CHAR:
|
||||
case value::UNSIGNED_SHORT :
|
||||
@@ -1055,6 +1084,9 @@ inline bool value::multiply(value& aThis,const value& aV,std::string& aError){
|
||||
case value::INT:
|
||||
aThis.u.m_int *= aV.u.m_int;
|
||||
return true;
|
||||
case value::UNSIGNED_INT:
|
||||
aThis.u.m_int *= aV.u.m_unsigned_int;
|
||||
return true;
|
||||
case value::DOUBLE:
|
||||
aThis.u.m_int *= (int)aV.u.m_double;
|
||||
return true;
|
||||
@@ -1080,7 +1112,6 @@ inline bool value::multiply(value& aThis,const value& aV,std::string& aError){
|
||||
case value::DOUBLE_STAR:
|
||||
case value::FLOAT_STAR:
|
||||
case value::INT_STAR:
|
||||
case value::UNSIGNED_INT:
|
||||
case value::STRING:
|
||||
//case value::ARRAY_UNSIGNED_CHAR:
|
||||
//case value::ARRAY_CHAR:
|
||||
@@ -1352,6 +1383,16 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
switch(aThis.m_type) {
|
||||
case value::INT:
|
||||
switch(aV.m_type) {
|
||||
case value::INT:
|
||||
if(aV.u.m_int==0) {
|
||||
aError = value::error_div_zero();
|
||||
aThis.set_none();
|
||||
return false;
|
||||
} else {
|
||||
int tmp = aThis.u.m_int/aV.u.m_int;
|
||||
aThis.set(tmp);
|
||||
return true;
|
||||
}
|
||||
case value::FLOAT:
|
||||
if(aV.u.m_float==0.0F) {
|
||||
aError = value::error_div_zero();
|
||||
@@ -1385,7 +1426,6 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
aThis.u.m_array_double->multiply((double)tmp);
|
||||
return true;}
|
||||
case value::NONE:
|
||||
case value::INT:
|
||||
case value::VOID_STAR:
|
||||
case value::BOOL:
|
||||
case value::SHORT:
|
||||
@@ -1425,6 +1465,15 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
aThis.u.m_float /= aV.u.m_int;
|
||||
return true;
|
||||
}
|
||||
case value::SHORT:
|
||||
if(aV.u.m_short==0) {
|
||||
aError = value::error_div_zero();
|
||||
aThis.set_none();
|
||||
return false;
|
||||
} else {
|
||||
aThis.u.m_float /= aV.u.m_short;
|
||||
return true;
|
||||
}
|
||||
case value::FLOAT:
|
||||
if(aV.u.m_float==0.0F) {
|
||||
aError = value::error_div_zero();
|
||||
@@ -1435,12 +1484,13 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
return true;
|
||||
}
|
||||
case value::DOUBLE:
|
||||
if(aV.u.m_float==0.0F) {
|
||||
if(aV.u.m_double==0.0F) {
|
||||
aError = value::error_div_zero();
|
||||
aThis.set_none();
|
||||
return false;
|
||||
} else {
|
||||
aThis.u.m_float /= (float)aV.u.m_double;
|
||||
double tmp = double(aThis.u.m_float)/aV.u.m_double;
|
||||
aThis.set(tmp);
|
||||
return true;
|
||||
}
|
||||
case value::UNSIGNED_INT:
|
||||
@@ -1452,6 +1502,35 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
aThis.u.m_float /= aV.u.m_unsigned_int;
|
||||
return true;
|
||||
}
|
||||
case value::UNSIGNED_SHORT:
|
||||
if(aV.u.m_unsigned_short==0) {
|
||||
aError = value::error_div_zero();
|
||||
aThis.set_none();
|
||||
return false;
|
||||
} else {
|
||||
aThis.u.m_float /= aV.u.m_unsigned_short;
|
||||
return true;
|
||||
}
|
||||
case value::UNSIGNED_INT64:
|
||||
if(aV.u.m_unsigned_int64==0) {
|
||||
aError = value::error_div_zero();
|
||||
aThis.set_none();
|
||||
return false;
|
||||
} else {
|
||||
double tmp = double(aThis.u.m_float)/aV.u.m_unsigned_int64;
|
||||
aThis.set(tmp);
|
||||
return true;
|
||||
}
|
||||
case value::INT64:
|
||||
if(aV.u.m_int64==0) {
|
||||
aError = value::error_div_zero();
|
||||
aThis.set_none();
|
||||
return false;
|
||||
} else {
|
||||
double tmp = double(aThis.u.m_float)/aV.u.m_int64;
|
||||
aThis.set(tmp);
|
||||
return true;
|
||||
}
|
||||
case value::ARRAY_DOUBLE:{
|
||||
double tmp = aThis.u.m_float;
|
||||
//In the below, this becomes a value::ARRAY_DOUBLE.
|
||||
@@ -1468,12 +1547,8 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
case value::NONE:
|
||||
case value::VOID_STAR:
|
||||
case value::BOOL:
|
||||
case value::SHORT:
|
||||
case value::INT64:
|
||||
//case value::UNSIGNED_CHAR:
|
||||
//case value::CHAR:
|
||||
case value::UNSIGNED_SHORT :
|
||||
case value::UNSIGNED_INT64 :
|
||||
case value::DOUBLE_STAR:
|
||||
case value::FLOAT_STAR:
|
||||
case value::INT_STAR:
|
||||
@@ -1513,6 +1588,15 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
aThis.u.m_double /= aV.u.m_int;
|
||||
return true;
|
||||
}
|
||||
case value::INT64:
|
||||
if(aV.u.m_int64==0) {
|
||||
aError = value::error_div_zero();
|
||||
aThis.set_none();
|
||||
return false;
|
||||
} else {
|
||||
aThis.u.m_double /= aV.u.m_int64;
|
||||
return true;
|
||||
}
|
||||
case value::FLOAT:
|
||||
if(aV.u.m_float==0.0F) {
|
||||
aError = value::error_div_zero();
|
||||
@@ -1540,6 +1624,24 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
aThis.u.m_double /= aV.u.m_unsigned_int;
|
||||
return true;
|
||||
}
|
||||
case value::UNSIGNED_SHORT:
|
||||
if(aV.u.m_unsigned_short==0) {
|
||||
aError = value::error_div_zero();
|
||||
aThis.set_none();
|
||||
return false;
|
||||
} else {
|
||||
aThis.u.m_double /= aV.u.m_unsigned_short;
|
||||
return true;
|
||||
}
|
||||
case value::UNSIGNED_INT64:
|
||||
if(aV.u.m_unsigned_int64==0) {
|
||||
aError = value::error_div_zero();
|
||||
aThis.set_none();
|
||||
return false;
|
||||
} else {
|
||||
aThis.u.m_double /= aV.u.m_unsigned_int64;
|
||||
return true;
|
||||
}
|
||||
case value::ARRAY_DOUBLE:{
|
||||
double tmp = aThis.u.m_double;
|
||||
//In the below, this becomes a value::ARRAY_DOUBLE.
|
||||
@@ -1556,11 +1658,8 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
case value::NONE:
|
||||
case value::VOID_STAR:
|
||||
case value::BOOL:
|
||||
case value::INT64:
|
||||
//case value::UNSIGNED_CHAR:
|
||||
//case value::CHAR:
|
||||
case value::UNSIGNED_SHORT :
|
||||
case value::UNSIGNED_INT64 :
|
||||
case value::DOUBLE_STAR:
|
||||
case value::FLOAT_STAR:
|
||||
case value::INT_STAR:
|
||||
@@ -1582,29 +1681,16 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
break;
|
||||
case value::UNSIGNED_INT:
|
||||
switch(aV.m_type) {
|
||||
//case value::UNSIGNED_INT:
|
||||
// if(aV.u.m_unsigned_int==0) {
|
||||
// aError = value::error_div_zero();
|
||||
// aThis.set_none();
|
||||
// return false;
|
||||
// } else {
|
||||
// //FIXME : ???
|
||||
// aThis.set((double)(aThis.u.m_unsigned_int / aV.u.m_unsigned_int ));
|
||||
// return true;
|
||||
// }
|
||||
case value::ARRAY_DOUBLE:{
|
||||
unsigned int tmp = aThis.u.m_unsigned_int;
|
||||
//In the below, this becomes a value::ARRAY_DOUBLE.
|
||||
aThis.set(aV.u.m_array_double->orders(),
|
||||
aV.u.m_array_double->vector());
|
||||
if(!aThis.u.m_array_double->invert()) {
|
||||
case value::UNSIGNED_INT:
|
||||
if(aV.u.m_unsigned_int==0) {
|
||||
aError = value::error_div_zero();
|
||||
aThis.set_none();
|
||||
return false;
|
||||
} else {
|
||||
unsigned int tmp = aThis.u.m_unsigned_int/aV.u.m_unsigned_int;
|
||||
aThis.set(tmp);
|
||||
return true;
|
||||
}
|
||||
aThis.u.m_array_double->multiply(double(tmp));
|
||||
return true;}
|
||||
|
||||
case value::FLOAT:
|
||||
if(aV.u.m_float==0) {
|
||||
aError = value::error_div_zero();
|
||||
@@ -1625,6 +1711,19 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
aThis.set(d); //this becomes a value::DOUBLE.
|
||||
return true;
|
||||
}
|
||||
case value::ARRAY_DOUBLE:{
|
||||
unsigned int tmp = aThis.u.m_unsigned_int;
|
||||
//In the below, this becomes a value::ARRAY_DOUBLE.
|
||||
aThis.set(aV.u.m_array_double->orders(),
|
||||
aV.u.m_array_double->vector());
|
||||
if(!aThis.u.m_array_double->invert()) {
|
||||
aError = value::error_div_zero();
|
||||
aThis.set_none();
|
||||
return false;
|
||||
}
|
||||
aThis.u.m_array_double->multiply(double(tmp));
|
||||
return true;}
|
||||
|
||||
case value::NONE:
|
||||
case value::INT:
|
||||
case value::VOID_STAR:
|
||||
@@ -1634,7 +1733,6 @@ inline bool value::divide(value& aThis,const value& aV,std::string& aError){
|
||||
//case value::UNSIGNED_CHAR:
|
||||
//case value::CHAR:
|
||||
case value::UNSIGNED_SHORT :
|
||||
case value::UNSIGNED_INT:
|
||||
case value::UNSIGNED_INT64 :
|
||||
case value::DOUBLE_STAR:
|
||||
case value::FLOAT_STAR:
|
||||
@@ -1998,13 +2096,17 @@ inline bool value::if_gt(value& aThis,const value& aV,std::string& aError){
|
||||
case value::INT:
|
||||
aThis.set((bool)((int)aThis.u.m_unsigned_int >aV.u.m_int?true:false));
|
||||
return true;
|
||||
case value::DOUBLE:
|
||||
aThis.set((bool)(double(aThis.u.m_unsigned_int)>aV.u.m_double?true:false));
|
||||
return true;
|
||||
case value::FLOAT:
|
||||
aThis.set((bool)(float(aThis.u.m_unsigned_int)>aV.u.m_float?true:false));
|
||||
return true;
|
||||
case value::NONE:
|
||||
case value::VOID_STAR:
|
||||
case value::DOUBLE:
|
||||
case value::BOOL:
|
||||
case value::SHORT:
|
||||
case value::INT64:
|
||||
case value::FLOAT:
|
||||
//case value::UNSIGNED_CHAR:
|
||||
//case value::CHAR:
|
||||
case value::UNSIGNED_SHORT :
|
||||
|
||||
Reference in New Issue
Block a user