/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by
+ * Copyright (c) 2014,2015, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
SIP_UNBLOCK_THREADS
%End
};
-
-template<T> class RealVector /NoDefaultCtors/ {
-%TypeHeaderCode
-#include "vec.h"
-%End
-
-public:
- T x;
- T y;
- T z;
- T operator[] (unsigned int i) throw (std::out_of_range);
- PyObject* __str__();
- %MethodCode
- size_t size = PyOS_snprintf(NULL, 0, "Vector [%f, %f, %f]", sipCpp->x, sipCpp->y, sipCpp->z);
- char str[size + 1];
- PyOS_snprintf(str, size + 1, "Vector [%f, %f, %f]", sipCpp->x, sipCpp->y, sipCpp->z);
-
- return PyUnicode_FromString(str);
- %End
-};
-
-template<T, Adaptor, Inner> class Array /NoDefaultCtors/ {
-%TypeHeaderCode
-#include "vec.h"
-%End
-
-public:
- Adaptor operator[] (unsigned int i) throw (std::out_of_range);
- SIP_SSIZE_T __len__();
- %MethodCode
- sipRes = sipCpp->len();
- %End
-};
-
-class Matrix /NoDefaultCtors/ {
-%TypeHeaderCode
-#include "vec.h"
-%End
-
-public:
- py_rvec __getitem__(int) throw (std::out_of_range);
- %MethodCode
- try {
- sipRes = new py_rvec(sipCpp->get(a0));
- } catch (const std::out_of_range &e) {
- sipIsErr = 1;
- SIP_BLOCK_THREADS
- PyErr_SetString(PyExc_IndexError, e.what());
- SIP_UNBLOCK_THREADS
- }
- %End
- double __getitem__(SIP_PYTUPLE) throw (std::out_of_range);
- %MethodCode
- size_t i, j;
- if (PyArg_ParseTuple(a0, "nn", &i, &j))
- try {
- sipRes = sipCpp->get(i, j);
- } catch (const std::out_of_range &e) {
- sipIsErr = 1;
- SIP_BLOCK_THREADS
- PyErr_SetString(PyExc_IndexError, e.what());
- SIP_UNBLOCK_THREADS
- }
- else
- sipIsErr = 1;
- %End
-};
-
-typedef double* rvec;
-typedef double* dvec;
-typedef double** matrix;
-typedef double** tensor;
-typedef int* ivec;
-typedef int** imatrix;
-
-typedef RealVector<double> py_rvec;
-typedef Array<double, py_rvec, rvec> rvecs;