- Timestamp:
- Oct 10, 2005, 9:00:37 PM (19 years ago)
- Location:
- trunk/src
- Files:
-
- 36 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/Makefile
r93 r97 28 28 29 29 # define which programs can be made 30 PROGS = librappture \ 31 libRpObjects \ 32 Rappture.Units 30 PROGS = librappture \ 31 libRpObjects \ 32 Rappture.Units 33 # RpMatlab 33 34 34 35 # define our compiling environment … … 39 40 DEBUG_PLUS = -g -DDEBUG 40 41 PY = python 42 MEX = mex 41 43 42 44 LN = ln … … 54 56 CEE_SRC = $(SRC_DIR)/cee 55 57 PY_SRC = $(SRC_DIR)/python 58 MATLAB_SRC = $(SRC_DIR)/python 56 59 57 60 LIB_INC_PREFIX = -Wl,-rpath,$(LIB_DIR) -L$(LIB_DIR) … … 110 113 111 114 115 #### Matlab ######################################################## 116 install_matlab: RpMatlab 117 cp -d $(MATLAB_SRC)/*.mex* $(RP_INSTALL_BASE)/lib 118 112 119 113 120 # include core source files … … 181 188 182 189 190 # matlab bindings 191 INCL_MATLAB = $(INCL_CORE) $(INCL_CEE) $(INCL_RP_DEPS) $(LIB_RAPPTURE) 192 MATLAB_COMP_ARGS = RpMatlabInterface.cc $(INCL_MATLAB) $(LIB_RAPPTURE) 193 194 RpMatlab: 195 $(MEX) $(MATLAB_SRC)/rpLib.cc $(MATLAB_COMP_ARGS) 196 $(MEX) $(MATLAB_SRC)/rpXml.cc $(MATLAB_COMP_ARGS) 197 $(MEX) $(MATLAB_SRC)/rpElement.cc $(MATLAB_COMP_ARGS) 198 $(MEX) $(MATLAB_SRC)/rpElementAsObject.cc $(MATLAB_COMP_ARGS) 199 $(MEX) $(MATLAB_SRC)/rpElementAsType.cc $(MATLAB_COMP_ARGS) 200 $(MEX) $(MATLAB_SRC)/rpElementAsComp.cc $(MATLAB_COMP_ARGS) 201 $(MEX) $(MATLAB_SRC)/rpElementAsId.cc $(MATLAB_COMP_ARGS) 202 $(MEX) $(MATLAB_SRC)/rpChildren.cc $(MATLAB_COMP_ARGS) 203 $(MEX) $(MATLAB_SRC)/rpChildrenByType.cc $(MATLAB_COMP_ARGS) 204 #$(MEX) $(MATLAB_SRC)/rpChildrenAsObject.cc $(MATLAB_COMP_ARGS) 205 #$(MEX) $(MATLAB_SRC)/rpChildrenAsType.cc $(MATLAB_COMP_ARGS) 206 #$(MEX) $(MATLAB_SRC)/rpChildrenAsComp.cc $(MATLAB_COMP_ARGS) 207 #$(MEX) $(MATLAB_SRC)/rpChildrenAsId.cc $(MATLAB_COMP_ARGS) 208 $(MEX) $(MATLAB_SRC)/rpGet.cc $(MATLAB_COMP_ARGS) 209 $(MEX) $(MATLAB_SRC)/rpGet.cc $(MATLAB_COMP_ARGS) 210 $(MEX) $(MATLAB_SRC)/rpGetString.cc $(MATLAB_COMP_ARGS) 211 $(MEX) $(MATLAB_SRC)/rpGetDouble.cc $(MATLAB_COMP_ARGS) 212 $(MEX) $(MATLAB_SRC)/rpPut.cc $(MATLAB_COMP_ARGS) 213 $(MEX) $(MATLAB_SRC)/rpPutString.cc $(MATLAB_COMP_ARGS) 214 $(MEX) $(MATLAB_SRC)/rpPutStringId.cc $(MATLAB_COMP_ARGS) 215 $(MEX) $(MATLAB_SRC)/rpPutDouble.cc $(MATLAB_COMP_ARGS) 216 $(MEX) $(MATLAB_SRC)/rpPutDoubleId.cc $(MATLAB_COMP_ARGS) 217 $(MEX) $(MATLAB_SRC)/rpNodeComp.cc $(MATLAB_COMP_ARGS) 218 $(MEX) $(MATLAB_SRC)/rpNodeType.cc $(MATLAB_COMP_ARGS) 219 $(MEX) $(MATLAB_SRC)/rpNodeId.cc $(MATLAB_COMP_ARGS) 220 $(MEX) $(MATLAB_SRC)/rpResult.cc $(MATLAB_COMP_ARGS) 221 $(MEX) $(MATLAB_SRC)/rpDefineUnit.cc $(MATLAB_COMP_ARGS) 222 #$(MEX) $(MATLAB_SRC)/rpDefineConv.cc $(MATLAB_COMP_ARGS) 223 $(MEX) $(MATLAB_SRC)/rpGetUnits.cc $(MATLAB_COMP_ARGS) 224 $(MEX) $(MATLAB_SRC)/rpGetUnitsName.cc $(MATLAB_COMP_ARGS) 225 $(MEX) $(MATLAB_SRC)/rpGetExponent.cc $(MATLAB_COMP_ARGS) 226 $(MEX) $(MATLAB_SRC)/rpGetBasis.cc $(MATLAB_COMP_ARGS) 227 $(MEX) $(MATLAB_SRC)/rpFind.cc $(MATLAB_COMP_ARGS) 228 $(MEX) $(MATLAB_SRC)/rpMakeMetric.cc $(MATLAB_COMP_ARGS) 229 $(MEX) $(MATLAB_SRC)/rpConvert.cc $(MATLAB_COMP_ARGS) 230 $(MEX) $(MATLAB_SRC)/rpConvertStr.cc $(MATLAB_COMP_ARGS) 231 $(MEX) $(MATLAB_SRC)/rpConvertObjStr.cc $(MATLAB_COMP_ARGS) 232 $(MEX) $(MATLAB_SRC)/rpConvertDbl.cc $(MATLAB_COMP_ARGS) 233 $(MEX) $(MATLAB_SRC)/rpConvertObjDbl.cc $(MATLAB_COMP_ARGS) 234 $(MEX) $(MATLAB_SRC)/rpAddPresets.cc $(MATLAB_COMP_ARGS) 235 183 236 184 237 185 238 #### CLEAN UP ############################################################ 186 239 clean: 187 - rm -f *.o librappture.so* libRp*.so* 240 - rm -f *.o librappture.so* libRp*.so* rp*.mex* 188 241 - rm -rf build -
trunk/src/core/RpBindingsDict.cc
r93 r97 46 46 } 47 47 48 void 49 cleanLibDict () { 50 // clean up the dictionary 51 52 RpDictEntry DICT_TEMPLATE_L *hPtr; 53 // RpDictIterator DICT_TEMPLATE iter(fortObjDict_Lib); 54 // should rp_quit clean up the dict or some function in RpBindingsCommon.h 55 RpDictIterator DICT_TEMPLATE_L iter(ObjDict_Lib); 56 57 hPtr = iter.first(); 58 59 while (hPtr) { 60 // Py_DECREF(*(hPtr->getValue())); 61 hPtr->erase(); 62 hPtr = iter.next(); 63 } 64 65 // if (fortObjDict_Lib.size()) { 66 if (ObjDict_Lib.size()) { 67 // probably want to change the warning sometime 68 // printf("\nWARNING: internal dictionary is not empty..deleting\n"); 69 } 70 71 } 72 48 73 int 49 74 storeObject_UnitsStr(std::string objectName) { … … 77 102 78 103 } 104 105 void 106 cleanUnitsDict () { 107 // clean up the dictionary 108 109 RpDictEntry DICT_TEMPLATE_U *hPtr; 110 // RpDictIterator DICT_TEMPLATE iter(fortObjDict_Lib); 111 // should rp_quit clean up the dict or some function in RpBindingsCommon.h 112 RpDictIterator DICT_TEMPLATE_U iter(ObjDictUnits); 113 114 hPtr = iter.first(); 115 116 while (hPtr) { 117 // Py_DECREF(*(hPtr->getValue())); 118 hPtr->erase(); 119 hPtr = iter.next(); 120 } 121 122 // if (fortObjDict_Lib.size()) { 123 if (ObjDictUnits.size()) { 124 // probably want to change the warning sometime 125 // printf("\nWARNING: internal dictionary is not empty..deleting\n"); 126 } 127 128 } -
trunk/src/fortran/RpLibraryFInterface.cc
r93 r97 812 812 // clean up the dictionary 813 813 814 /* 814 815 RpDictEntry DICT_TEMPLATE_L *hPtr; 815 816 // RpDictIterator DICT_TEMPLATE iter(fortObjDict_Lib); … … 830 831 // printf("\nWARNING: internal dictionary is not empty..deleting\n"); 831 832 } 832 833 */ 834 cleanLibDict(); 833 835 } 834 836 -
trunk/src/python/PyRpUnits.cc
r78 r97 38 38 PyObject* rv = NULL; 39 39 40 if (self->rp_unit){ 40 if (self->rp_unit){ 41 41 rv = PyString_FromString(self->rp_unit->getUnitsName().c_str()); 42 42 } … … 50 50 PyObject* rv = NULL; 51 51 52 if (self->rp_unit){ 52 if (self->rp_unit){ 53 53 rv = PyFloat_FromDouble(self->rp_unit->getExponent()); 54 54 } … … 102 102 {"makeBasis", (PyCFunction)RpUnitsObject_makeBasis, METH_VARARGS, 103 103 "return the basis value of the value provided" }, 104 104 105 105 {NULL} /* Sentinel */ 106 106 }; … … 183 183 /* 184 184 * need to make it so user can give any number of variables in arglist 185 * because the new argList is sent to the python conversion fxn where it 185 * because the new argList is sent to the python conversion fxn where it 186 186 * will be parsed in python when c++ calls the conv fxn. 187 187 PyArg_ParseTuple(args, "O!", &RpUnitsObjectType, &toUnits); … … 204 204 205 205 if (self->rp_unit){ 206 outVal = (PyObject*) self->rp_unit->convert(toUnits->rp_unit, 207 // (void*)&inVal, 208 (void*)argList, 206 outVal = (PyObject*) self->rp_unit->convert(toUnits->rp_unit, 207 // (void*)&inVal, 208 (void*)argList, 209 209 &result ); 210 210 if (result) { … … 266 266 { 267 267 PyObject* retVal = NULL; 268 268 269 269 if ((PyObject*)fxnPtr != NULL) { 270 270 retVal = PyObject_CallObject((PyObject*)fxnPtr,(PyObject*)args); … … 294 294 295 295 if (PyTuple_Size(args) > 0) { 296 PyArg_ParseTuple(args, "O!O!O!O!",&RpUnitsObjectType, &fromUnit, 297 &RpUnitsObjectType, &toUnit, 296 PyArg_ParseTuple(args, "O!O!O!O!",&RpUnitsObjectType, &fromUnit, 297 &RpUnitsObjectType, &toUnit, 298 298 &PyFunction_Type, &forwConvFxnStr, 299 299 &PyFunction_Type, &backConvFxnStr); … … 319 319 320 320 // make sure we get callable functions and non-null RpUnit Objects 321 if ( PyCallable_Check(forwConvFxnStr) && 321 if ( PyCallable_Check(forwConvFxnStr) && 322 322 PyCallable_Check(backConvFxnStr) && 323 323 fromUnit->rp_unit && … … 350 350 } 351 351 352 PyDoc_STRVAR(RpUnits_find_doc, 352 PyDoc_STRVAR(RpUnits_find_doc, 353 353 "find(name) -> RpUnitsObject \n\ 354 354 \n\ … … 370 370 return NULL; 371 371 } 372 372 373 373 foundUnits = RpUnits::find(searchUnits); 374 374 … … 378 378 if (returnUnits == NULL) 379 379 return NULL; 380 380 381 381 returnUnits->rp_unit = foundUnits; 382 382 } 383 383 384 384 return (PyObject*) returnUnits; 385 385 386 386 } 387 387 … … 404 404 return NULL; 405 405 } 406 406 407 407 if (units->rp_unit) { 408 408 result = RpUnits::makeMetric(units->rp_unit); … … 412 412 } 413 413 414 PyDoc_STRVAR(RpUnits_convert_doc, 414 PyDoc_STRVAR(RpUnits_convert_doc, 415 415 "convert (fromVal, to, units) -> PyString \n\ 416 416 \n\ … … 439 439 440 440 static char *kwlist[] = {"fromVal", "to", "units", NULL}; 441 441 442 442 if (PyTuple_Size(args) > 0) { 443 443 // PyArg_ParseTuple(args, "ss|s", &fromVal, &to, &units); … … 467 467 if ( (!retStr.empty()) && (result == 0) ) { 468 468 if (unitsVal) { 469 retVal = PyString_FromString(retStr.c_str()); 469 retVal = PyString_FromString(retStr.c_str()); 470 470 } 471 471 else { 472 // convert to a double and return that if 472 // convert to a double and return that if 473 473 // the units were turned off 474 475 476 Py_INCREF(tmpPyStr);477 retVal = PyFloat_FromString(tmpPyStr,NULL);478 Py_DECREF(tmpPyStr);479 474 tmpPyStr = PyString_FromString(retStr.c_str()); 475 if (tmpPyStr) { 476 Py_INCREF(tmpPyStr); 477 retVal = PyFloat_FromString(tmpPyStr,NULL); 478 Py_DECREF(tmpPyStr); 479 } 480 480 } 481 481 } … … 483 483 //keeping this around in case you want string returned instead of None 484 484 //if (fromVal) { 485 // retVal = PyString_FromString(fromVal); 485 // retVal = PyString_FromString(fromVal); 486 486 //} 487 487 //else { … … 490 490 //} 491 491 } 492 492 493 493 return retVal; 494 494 } … … 506 506 {"defineConv", RpUnits_defineConv, METH_VARARGS, 507 507 RpUnits_defineConv_doc}, 508 508 509 509 {"find", RpUnits_find, METH_VARARGS, 510 510 RpUnits_find_doc}, … … 512 512 {"makeMetric", RpUnits_makeMetric, METH_VARARGS, 513 513 RpUnits_makeMetric_doc}, 514 514 515 515 {"convert", (PyCFunction)RpUnits_convert, METH_VARARGS|METH_KEYWORDS, 516 516 RpUnits_convert_doc}, 517 517 518 518 {NULL, NULL} /* sentinel */ 519 519 }; … … 529 529 530 530 /* Finalize the type object including setting type of the new type 531 * object; doing it here is required for portability to Windows 531 * object; doing it here is required for portability to Windows 532 532 * without requiring C++. */ 533 533 if (PyType_Ready(&RpUnitsObjectType) < 0)
Note: See TracChangeset
for help on using the changeset viewer.