Changeset 11972
- Timestamp:
- 04/12/12 21:14:19 (13 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 4 added
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/io/Matlab/matlabio.h
r11934 r11972 58 58 OptionStruct* OptionStructParse( char* name, const mxArray* prhs[]); 59 59 OptionCell* OptionCellParse( char* name, const mxArray* prhs[]); 60 61 mxArray* mxGetAssignedField(const mxArray* pmxa_array,int number, const char* field); 62 int CheckNumMatlabArguments(int nlhs,int NLHS, int nrhs,int NRHS, const char* THISFUNCTION, void (*function)( void )); 63 60 64 #endif 61 65 #endif /* _IO_H_ */ -
issm/trunk-jpl/src/c/io/Python/FetchPythonData.cpp
r11934 r11972 9 9 #endif 10 10 11 #define PY_ARRAY_UNIQUE_SYMBOL PythonIOSymbol 12 #define NO_IMPORT 13 14 #include "../../toolkits/toolkits.h" 15 #include "../../include/include.h" 11 16 #include "../../shared/shared.h" 12 #include "../../include/include.h"13 17 14 18 #if defined(_HAVE_PYTHON_) && defined(_SERIAL_) 15 /*FUNCTION FetchData(char** pstring, char* string){{{1*/16 void FetchData(char** pstring, char* string){19 /*FUNCTION FetchData(char** pstring,PyObject* py_unicode){{{1*/ 20 void FetchData(char** pstring,PyObject* py_unicode){ 17 21 18 /*Copy string into string: */19 char* outstring=NULL;22 PyObject* py_bytes; 23 char* string=NULL; 20 24 21 outstring=(char*)xmalloc((strlen(string)+1)*sizeof(char)); 22 strcpy(outstring,string); 25 26 /*convert to bytes format: */ 27 PyUnicode_FSConverter(py_unicode,&py_bytes); 23 28 24 *pstring=outstring; 29 /*convert from bytes to string: */ 30 string=PyBytes_AS_STRING(py_bytes); 31 32 *pstring=string; 25 33 } 26 /*FUNCTION FetchData(double* pscalar, double scale){{{1*/27 void FetchData(double* pscalar, double scalar){34 /*FUNCTION FetchData(double* pscalar,PyObject* py_float){{{1*/ 35 void FetchData(double* pscalar,PyObject* py_float){ 28 36 29 /*simple copy: */ 37 double scalar; 38 39 /*return internal value: */ 40 scalar=PyFloat_AsDouble(py_float); 41 42 /*output: */ 30 43 *pscalar=scalar; 31 44 } 32 45 /*}}}*/ 33 /*FUNCTION FetchData(int* pinteger, int integer){{{1*/34 void FetchData(int* pinteger, int integer){46 /*FUNCTION FetchData(int* pinteger,PyObject* py_long){{{1*/ 47 void FetchData(int* pinteger, PyObject* py_long){ 35 48 36 /*simple copy: */ 49 int integer; 50 51 /*return internal value: */ 52 integer=(int)PyLong_AsLong(py_long); 53 54 /*output: */ 37 55 *pinteger=integer; 38 56 } 39 57 /*}}}*/ 40 /*FUNCTION FetchData(bool* pboolean,bool boolean){{{1*/ 41 void FetchData(bool* pboolean,bool boolean){ 58 /*FUNCTION FetchData(bool* pboolean,PyObject* py_boolean){{{1*/ 59 void FetchData(bool* pboolean,PyObject* py_boolean){ 60 61 bool boolean; 62 63 /*check this is indeed a subtype of long type: */ 64 if(!PyBool_Check(py_boolean))_error_("expecting a boolean in input!"); 65 66 /*extract boolean: */ 67 boolean=(bool)PyLong_AsLong(py_boolean); 42 68 43 69 /*simple copy: */ -
issm/trunk-jpl/src/c/io/Python/WritePythonData.cpp
r11934 r11972 9 9 #endif 10 10 11 #if defined(_HAVE_PYTHON_) && defined(_SERIAL_) 12 13 #define PY_ARRAY_UNIQUE_SYMBOL PythonIOSymbol 14 #define NO_IMPORT 15 16 #include "../../toolkits/toolkits.h" 11 17 #include "../../include/include.h" 18 #include "../../modules/modules.h" 19 #include "../../Container/Container.h" 12 20 #include "../../shared/shared.h" 21 #include "../../io/io.h" 22 #include "../../EnumDefinitions/EnumDefinitions.h" 13 23 14 #if defined(_HAVE_MATLAB_) && defined(_SERIAL_) 15 #include <mex.h> 24 25 /*FUNCTION WriteData(PyObject* py_tuple,int index,char* string){{{1*/ 26 void WriteData(PyObject* py_tuple, int index, char* string){ 27 28 PyTuple_SetItem(py_tuple, index, PyUnicode_FromString(string)); 29 30 } 31 /*}}}*/ 32 /*FUNCTION WriteData(PyObject* tuple,int index,Matrix* matrix){{{1*/ 33 void WriteData(PyObject* tuple,int index,Matrix* matrix){ 34 35 int M,N; 36 double* buffer=NULL; 37 npy_intp dims[2]={0,0}; 38 PyObject* array=NULL; 39 40 buffer=matrix->ToSerial(); 41 matrix->GetSize(&M,&N); 42 dims[0]=(npy_intp)M; 43 dims[1]=(npy_intp)N; 44 array=PyArray_SimpleNewFromData(2,dims,NPY_DOUBLE,buffer); 45 46 PyTuple_SetItem(tuple, index, array); 47 48 49 } 50 /*FUNCTION WriteData(PyObject* py_tuple,int index,Vector* vector){{{1*/ 51 void WriteData(PyObject* tuple,int index,Vector* vector){ 52 53 int M; 54 double* buffer=NULL; 55 npy_intp dim=10; 56 PyObject* array=NULL; 57 58 buffer=vector->ToMPISerial(); 59 vector->GetSize(&M); 60 dim=(npy_intp)M; 61 array=PyArray_SimpleNewFromData(1,&dim,NPY_DOUBLE,buffer); 62 63 PyTuple_SetItem(tuple, index, array); 64 65 66 } 67 /*}}}*/ 16 68 17 69 #endif -
issm/trunk-jpl/src/c/io/Python/pythonio.h
r11934 r11972 23 23 24 24 //void WriteData(mxArray** pdataref,DataSet* dataset); 25 //void WriteData(mxArray** pdataref,Matrix* matrix);26 25 //void WriteData(mxArray** pdataref,double* matrix, int M,int N); 27 26 //void WriteData(mxArray** pdataref,int* matrix, int M,int N); 28 //void WriteData(mxArray** pdataref,Vector* vector);29 27 //void WriteData(mxArray** pdataref,double* vector, int M); 30 28 //void WriteData(mxArray** pdataref,int integer); 31 29 //void WriteData(mxArray** pdataref,bool boolean); 32 30 //void WriteData(mxArray** pdataref,double scalar); 33 //void WriteData(mxArray** pdataref,char* string);34 31 //void WriteData(DataHandle* pdataref,Parameters* parameters); 32 void WriteData(PyObject* py_tuple, int index, char* string); 33 void WriteData(PyObject* py_tuple, int index, Matrix* matrix); 34 void WriteData(PyObject* py_tuple, int index, Vector* vector); 35 35 36 36 37 //void FetchData(DataSet** pdataset,const mxArray* dataref); … … 48 49 //void FetchData(char** pmatrix,int* pnumel,int* pndims,int** psize,const mxArray* dataref); 49 50 //void FetchData(Parameters** pparameters, DataHandle dataref); 50 void FetchData(char** pstring,char* string); 51 void FetchData(double* pscalar,double scalar); 52 void FetchData(int* pinteger,int integer); 53 void FetchData(bool* pbool,bool boolean); 51 void FetchData(char** pstring,PyObject* py_unicode); 52 void FetchData(double* pscalar,PyObject* py_float); 53 void FetchData(int* pinteger,PyObject* py_long); 54 void FetchData(bool* pbool,PyObject* py_boolean); 55 56 int CheckNumPythonArguments(PyObject* inputs,int NRHS, void (*function)( void )); 57 54 58 #endif 55 59
Note:
See TracChangeset
for help on using the changeset viewer.