trick/trick_source/trick_swig/swig_double.cpp
Alex Lin 4f3ef64002 Use udunits package for units conversions
Changed the handling of how we handle doubles and ints allowing
more mathematical operations like multiplication, division, and
some limited exponentiation.

refs #231
2016-05-09 08:36:43 -05:00

883 lines
29 KiB
C++

#include <iostream>
#include "trick/swig/swig_macros.hh"
#include "trick/swig/swig_double.hh"
#include "trick/swig/swig_int.hh"
#include "trick/swig/swig_convert_units.hh"
#include "trick/Unit.hh"
char swig_double::str_output[32] ;
swig_double::swig_double() {
value = 0 ;
units = "1" ;
}
char * swig_double::__str__() {
if ( ! units.empty() && units.compare("1") ) {
sprintf(str_output , "%g %s", value , units.c_str()) ;
} else {
sprintf(str_output , "%g", value ) ;
}
return(str_output) ;
}
char * swig_double::__repr__() {
return(__str__()) ;
}
//**********************************************************************************************
PyObject * swig_double::__add__( PyObject * obj1 ) {
swig_double * result ;
PyObject * ret = NULL ;
void * argp2 ;
int conv_ret ;
double new_value ;
result = new swig_double() ;
if ( PyFloat_Check(obj1) ) {
result->value = value + PyFloat_AsDouble(obj1) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
new_value = (double)temp_m->value ;
conv_ret = scale_united_value( units , temp_m->units , &new_value ) ;
if ( conv_ret == 0 ) {
result->value = value + new_value ;
} else {
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
new_value = temp_m->value ;
conv_ret = scale_united_value( units , temp_m->units , &new_value ) ;
if ( conv_ret == 0 ) {
result->value = value + new_value ;
} else {
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
result->value = value + PyInt_AsLong(obj1) ;
}
result->units = units ;
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__sub__( PyObject * obj1 ) {
swig_double * result ;
PyObject * ret = NULL ;
void * argp2 ;
int conv_ret ;
double new_value ;
result = new swig_double() ;
if ( PyFloat_Check(obj1) ) {
result->value = value - PyFloat_AsDouble(obj1) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
new_value = (double)temp_m->value ;
conv_ret = scale_united_value( units , temp_m->units , &new_value ) ;
if ( conv_ret == 0 ) {
result->value = value - new_value ;
} else {
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
new_value = temp_m->value ;
conv_ret = scale_united_value( units , temp_m->units , &new_value ) ;
if ( conv_ret == 0 ) {
result->value = value - new_value ;
} else {
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
result->value = value - PyInt_AsLong(obj1) ;
}
result->units = units ;
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__mul__( PyObject * obj1 ) {
swig_double * result ;
PyObject * ret = NULL ;
void * argp2 ;
result = new swig_double() ;
if ( PyFloat_Check(obj1) ) {
result->value = value * PyFloat_AsDouble(obj1) ;
result->units = units ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
result->value = value * temp_m->value ;
result->units = units + "*(" + temp_m->units + ")";
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
result->value = value * temp_m->value ;
result->units = units + "*(" + temp_m->units + ")";
} else if ( PyInt_Check(obj1) ) {
result->value = value * PyInt_AsLong(obj1) ;
result->units = units ;
}
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__div__( PyObject * obj1 ) {
swig_double * result ;
PyObject * ret = NULL ;
void * argp2 ;
result = new swig_double() ;
if ( PyFloat_Check(obj1) ) {
result->value = value / PyFloat_AsDouble(obj1) ;
result->units = units ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
result->value = value / temp_m->value ;
result->units = units + "/(" + temp_m->units + ")";
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
result->value = value / temp_m->value ;
result->units = units + "/(" + temp_m->units + ")";
} else if ( PyInt_Check(obj1) ) {
result->value = value / PyInt_AsLong(obj1) ;
result->units = units ;
}
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__truediv__( PyObject * obj1 ) {
return __div__(obj1) ;
}
PyObject * swig_double::__floordiv__( PyObject * obj1 ) {
swig_int * result ;
PyObject * ret = NULL ;
void * argp2 ;
result = new swig_int() ;
if ( PyFloat_Check(obj1) ) {
result->value = (long long)(value / PyFloat_AsDouble(obj1)) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
result->value = (long long)(value / temp_m->value) ;
result->units = units + "/(" + temp_m->units + ")";
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
result->value = (long long)(value / temp_m->value) ;
result->units = units + "/(" + temp_m->units + ")";
} else if ( PyInt_Check(obj1) ) {
result->value = (long long)(value / PyInt_AsLong(obj1)) ;
}
result->units = units ;
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_int *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__mod__( PyObject * obj1 ) {
swig_double * result ;
PyObject * ret = NULL ;
void * argp2 ;
result = new swig_double() ;
if ( PyFloat_Check(obj1) ) {
result->value = fmod(value , PyFloat_AsDouble(obj1)) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
if ( !temp_m->units.compare("1")) {
result->value = fmod( value , temp_m->value ) ;
} else {
PyErr_SetString(PyExc_TypeError,"Modulus must be unitless. Cannot create new unit-ed type.");
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
if ( !temp_m->units.compare("1")) {
result->value = fmod( value , temp_m->value) ;
} else {
PyErr_SetString(PyExc_TypeError,"Modulus must be unitless. Cannot create new unit-ed type.");
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
result->value = fmod( value , PyInt_AsLong(obj1)) ;
}
result->units = units ;
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__pow__( PyObject * obj1 ) {
swig_double * result ;
PyObject * ret = NULL ;
void * argp2 ;
result = new swig_double() ;
if ( PyFloat_Check(obj1) ) {
result->value = pow(value , PyFloat_AsDouble(obj1)) ;
result->units = units ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
if ( !temp_m->units.compare("1")) {
result->value = pow(value , temp_m->value) ;
} else {
PyErr_SetString(PyExc_TypeError,"Both arguments must be unitless. Cannot create new unit-ed type.");
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
if ( !temp_m->units.compare("1")) {
result->value = pow(value , temp_m->value) ;
} else {
PyErr_SetString(PyExc_TypeError,"Both arguments must be unitless. Cannot create new unit-ed type.");
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
int power = PyInt_AsLong(obj1) ;
result->value = pow(value , power) ;
result->units = units ;
for ( int ii = 1 ; ii < power ; ii++ ) {
result->units = result->units + "*(" + units + ")";
}
}
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
//**********************************************************************************************
PyObject * swig_double::__radd__( PyObject * obj1 ) {
return __add__(obj1) ;
}
PyObject * swig_double::__rsub__( PyObject * obj1 ) {
swig_double * result ;
PyObject * ret = NULL ;
result = new swig_double() ;
if ( PyFloat_Check(obj1) ) {
result->value = PyFloat_AsDouble(obj1) - value ;
} else if ( PyInt_Check(obj1) ) {
result->value = PyInt_AsLong(obj1) - value ;
}
result->units = units ;
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__rmul__( PyObject * obj1 ) {
return __mul__(obj1) ;
}
PyObject * swig_double::__rdiv__( PyObject * obj1 ) {
swig_double * result ;
PyObject * ret = NULL ;
result = new swig_double() ;
if ( PyFloat_Check(obj1) ) {
result->value = PyFloat_AsDouble(obj1) / value ;
} else if ( PyInt_Check(obj1) ) {
result->value = PyInt_AsLong(obj1) / value ;
}
result->units = "1/(" + units + ")" ;
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__rtruediv__( PyObject * obj1 ) {
return __rdiv__(obj1) ;
}
PyObject * swig_double::__rfloordiv__( PyObject * obj1 ) {
swig_double * result ;
PyObject * ret = NULL ;
result = new swig_double() ;
if ( PyFloat_Check(obj1) ) {
result->value = floor(PyFloat_AsDouble(obj1) / value) ;
} else if ( PyInt_Check(obj1) ) {
result->value = floor(PyInt_AsLong(obj1) / value) ;
}
result->units = "1/(" + units + ")" ;
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__rmod__( PyObject * obj1 ) {
swig_double * result ;
PyObject * ret = NULL ;
result = new swig_double() ;
if ( PyFloat_Check(obj1) ) {
if ( !units.compare("1")) {
result->value = fmod(PyFloat_AsDouble(obj1) , value) ;
} else {
PyErr_SetString(PyExc_TypeError,"Modulus must be unitless. Cannot create new unit-ed type.");
}
} else if ( PyInt_Check(obj1) ) {
if ( !units.compare("1")) {
result->value = fmod(PyInt_AsLong(obj1) , value) ;
} else {
PyErr_SetString(PyExc_TypeError,"Modulus must be unitless. Cannot create new unit-ed type.");
}
}
result->units = units ;
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__rpow__( PyObject * obj1 ) {
PyObject * ret = NULL ;
if ( PyFloat_Check(obj1) ) {
if ( !units.compare("1")) {
return(PyFloat_FromDouble(pow(PyFloat_AsDouble(obj1) , value))) ;
} else {
PyErr_SetString(PyExc_TypeError,"Power argument must be unitless. Cannot create new unit-ed type.");
}
} else if ( PyInt_Check(obj1) ) {
if ( !units.compare("1")) {
return(PyFloat_FromDouble(pow(PyInt_AsLong(obj1) , value))) ;
} else {
PyErr_SetString(PyExc_TypeError,"Power argument must be unitless. Cannot create new unit-ed type.");
}
}
return ret ;
}
//**********************************************************************************************
PyObject * swig_double::__iadd__( PyObject * obj1 ) {
PyObject * ret = NULL ;
void * argp2 ;
int conv_ret ;
double new_val ;
if ( PyFloat_Check(obj1) ) {
value += PyFloat_AsDouble(obj1) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
new_val = (double)temp_m->value ;
conv_ret = scale_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
value += new_val ;
} else {
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
new_val = temp_m->value ;
conv_ret = scale_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
value += new_val ;
} else {
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
value += PyInt_AsLong(obj1) ;
}
ret = SWIG_NewPointerObj(SWIG_as_voidptr(new swig_double(*this)), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__isub__( PyObject * obj1 ) {
PyObject * ret = NULL ;
void * argp2 ;
int conv_ret ;
double new_val ;
if ( PyFloat_Check(obj1) ) {
value -= PyFloat_AsDouble(obj1) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
new_val = temp_m->value ;
conv_ret = scale_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
value -= new_val ;
} else {
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
new_val = temp_m->value ;
conv_ret = scale_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
value -= new_val ;
} else {
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
value -= PyInt_AsLong(obj1) ;
}
ret = SWIG_NewPointerObj(SWIG_as_voidptr(new swig_double(*this)), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__imul__( PyObject * obj1 ) {
PyObject * ret = NULL ;
void * argp2 ;
if ( PyFloat_Check(obj1) ) {
value *= PyFloat_AsDouble(obj1) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
value *= temp_m->value ;
units += "*(" + temp_m->units + ")";
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
value *= temp_m->value ;
units += "*(" + temp_m->units + ")";
} else if ( PyInt_Check(obj1) ) {
value *= PyInt_AsLong(obj1) ;
}
ret = SWIG_NewPointerObj(SWIG_as_voidptr(new swig_double(*this)), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__idiv__( PyObject * obj1 ) {
PyObject * ret = NULL ;
void * argp2 ;
if ( PyFloat_Check(obj1) ) {
value /= PyFloat_AsDouble(obj1) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
value /= temp_m->value ;
units += "/(" + temp_m->units + ")";
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
value /= temp_m->value ;
units += "/(" + temp_m->units + ")";
} else if ( PyInt_Check(obj1) ) {
value /= PyInt_AsLong(obj1) ;
}
ret = SWIG_NewPointerObj(SWIG_as_voidptr(new swig_double(*this)), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__itruediv__( PyObject * obj1 ) {
return __idiv__(obj1) ;
}
PyObject * swig_double::__ifloordiv__( PyObject * obj1 ) {
PyObject * ret = NULL ;
void * argp2 ;
if ( PyFloat_Check(obj1) ) {
value = floor(value / PyFloat_AsDouble(obj1)) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
value = floor(value / temp_m->value) ;
units += "/(" + temp_m->units + ")";
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
value = floor(value / temp_m->value) ;
units += "/(" + temp_m->units + ")";
} else if ( PyInt_Check(obj1) ) {
value = floor( value / PyInt_AsLong(obj1)) ;
}
ret = SWIG_NewPointerObj(SWIG_as_voidptr(new swig_double(*this)), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__imod__( PyObject * obj1 ) {
PyObject * ret = NULL ;
void * argp2 ;
if ( PyFloat_Check(obj1) ) {
value = fmod( value , PyFloat_AsDouble(obj1)) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
if ( !temp_m->units.compare("1")) {
value = fmod(value , temp_m->value );
} else {
PyErr_SetString(PyExc_TypeError,"Operation must contain at least one unit-less value. Cannot create new unit-ed type.");
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
if ( !temp_m->units.compare("1")) {
value = fmod( value , temp_m->value );
} else {
PyErr_SetString(PyExc_TypeError,"Operation must contain at least one unit-less value. Cannot create new unit-ed type.");
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
value = fmod( value , PyInt_AsLong(obj1)) ;
}
ret = SWIG_NewPointerObj(SWIG_as_voidptr(new swig_double(*this)), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__ipow__( PyObject * obj1 ) {
PyObject * ret = NULL ;
void * argp2 ;
if ( units.compare("1")) {
PyErr_SetString(PyExc_TypeError,"Both arguments must be unitless. Cannot create new unit-ed type.");
return NULL ;
}
if ( PyFloat_Check(obj1) ) {
value = pow(value , PyFloat_AsDouble(obj1)) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
if ( !temp_m->units.compare("1")) {
value = pow(value , temp_m->value) ;
} else {
PyErr_SetString(PyExc_TypeError,"Both arguments must be unitless. Cannot create new unit-ed type.");
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
if ( !temp_m->units.compare("1")) {
value = pow(value , temp_m->value) ;
} else {
PyErr_SetString(PyExc_TypeError,"Both arguments must be unitless. Cannot create new unit-ed type.");
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
value = pow(value , PyInt_AsLong(obj1)) ;
}
ret = SWIG_NewPointerObj(SWIG_as_voidptr(new swig_double(*this)), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
//**********************************************************************************************
PyObject * swig_double::__lt__( PyObject * obj1 ) {
void * argp2 ;
bool eq = 0 ;
int conv_ret ;
if ( PyFloat_Check(obj1) ) {
eq = (value < PyFloat_AsDouble(obj1)) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value < new_val) ;
} else {
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value < new_val) ;
} else {
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
eq = (value < PyInt_AsLong(obj1)) ;
}
if ( eq ) {
Py_RETURN_TRUE ;
}
Py_RETURN_FALSE ;
}
PyObject * swig_double::__le__( PyObject * obj1 ) {
void * argp2 ;
bool eq = 0 ;
int conv_ret ;
if ( PyFloat_Check(obj1) ) {
eq = (value <= PyFloat_AsDouble(obj1)) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value <= new_val) ;
} else {
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value <= new_val) ;
} else {
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
eq = (value <= PyInt_AsLong(obj1)) ;
}
if ( eq ) {
Py_RETURN_TRUE ;
}
Py_RETURN_FALSE ;
}
PyObject * swig_double::__eq__( PyObject * obj1 ) {
void * argp2 ;
bool eq = 0 ;
int conv_ret ;
if ( PyFloat_Check(obj1) ) {
eq = (value == PyFloat_AsDouble(obj1)) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value == new_val) ;
} else {
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value == new_val) ;
} else {
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
eq = (value == PyInt_AsLong(obj1)) ;
}
if ( eq ) {
Py_RETURN_TRUE ;
}
Py_RETURN_FALSE ;
}
PyObject * swig_double::__ne__( PyObject * obj1 ) {
void * argp2 ;
bool eq = 0 ;
int conv_ret ;
if ( PyFloat_Check(obj1) ) {
eq = (value != PyFloat_AsDouble(obj1)) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value != new_val) ;
} else {
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value != new_val) ;
} else {
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
eq = (value != PyInt_AsLong(obj1)) ;
}
if ( eq ) {
Py_RETURN_TRUE ;
}
Py_RETURN_FALSE ;
}
PyObject * swig_double::__gt__( PyObject * obj1 ) {
void * argp2 ;
bool eq = 0 ;
int conv_ret ;
if ( PyFloat_Check(obj1) ) {
eq = (value > PyFloat_AsDouble(obj1)) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value > new_val) ;
} else {
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value > new_val) ;
} else {
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
eq = (value > PyInt_AsLong(obj1)) ;
}
if ( eq ) {
Py_RETURN_TRUE ;
}
Py_RETURN_FALSE ;
}
PyObject * swig_double::__ge__( PyObject * obj1 ) {
void * argp2 ;
bool eq = 0 ;
int conv_ret ;
if ( PyFloat_Check(obj1) ) {
eq = (value >= PyFloat_AsDouble(obj1)) ;
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_int *"), 0 ))) {
swig_int * temp_m = reinterpret_cast< swig_int * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value >= new_val) ;
} else {
return NULL ;
}
} else if (SWIG_IsOK(SWIG_ConvertPtr(obj1, &argp2,SWIG_TypeQuery("swig_double *"), 0 ))) {
swig_double * temp_m = reinterpret_cast< swig_double * >(argp2) ;
double new_val = temp_m->value ;
conv_ret = convert_united_value( units , temp_m->units , &new_val ) ;
if ( conv_ret == 0 ) {
eq = (value >= new_val) ;
} else {
return NULL ;
}
} else if ( PyInt_Check(obj1) ) {
eq = (value >= PyInt_AsLong(obj1)) ;
}
if ( eq ) {
Py_RETURN_TRUE ;
}
Py_RETURN_FALSE ;
}
//**********************************************************************************************
PyObject * swig_double::__neg__() {
swig_double * result ;
PyObject * ret = NULL ;
result = new swig_double() ;
result->value = -value ;
result->units = units ;
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__pos__() {
swig_double * result ;
PyObject * ret = NULL ;
result = new swig_double() ;
result->value = value ;
result->units = units ;
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
PyObject * swig_double::__abs__() {
swig_double * result ;
PyObject * ret = NULL ;
result = new swig_double() ;
result->value = fabs(value) ;
result->units = units ;
ret = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIG_TypeQuery("swig_double *"), SWIG_POINTER_OWN);
return ret ;
}
//**********************************************************************************************
PyObject * swig_double::__int__() {
return PyInt_FromLong((long long)value) ;
}
PyObject * swig_double::__long__() {
return PyLong_FromLongLong((long long)value) ;
}
PyObject * swig_double::__float__() {
return PyFloat_FromDouble(value) ;
}
//**********************************************************************************************
PyObject * swig_double::__len__() {
return PyInt_FromLong(1) ;
}