c++ angle axis (rigid body) framework

this is a partial c++ rigid body framework, just enough so that potential calls are entirely in c++.

The only difference from a python users's perspective is you use a different implementation of RBPotentialWrapper.

I implemented a hacky version of a matrix class.  We should think about ways to do this better, or use an existing external implementation.
ok settled then, but why would that be? surely it's visual studio that
can't optimize or something like that


On Mon, Jul 14, 2014 at 12:26 PM, ruehle <notifications@github.com> wrote:

> In source/pele/aatopology.h:
>
> > +          _dim1(dim1)
> > +    {}
> > +
> > +    /**
> > +     * wrap a pele::Array
> > +     */
> > +    HackyMatrix(pele::Array<double> v, size_t dim1)
> > +        : pele::Array<dtype>(v),
> > +          _dim1(dim1)
> > +    {
> > +        if (v.size() % dim1 != 0) {
> > +            throw std::invalid_argument("v.size() is not divisible by dim1");
> > +        }
> > +    }
> > +
> > +    inline dtype const operator()(size_t i, size_t j) const
>
> yes, just tested it again, wasn't certain about any side effects before
> this
> inline const double &operator <http://size_t%20i> const { return
> m_data[i]; }
> is significantly faster than this
> inline const double operator <http://size_t%20i> const { return
> m_data[i]; }
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/pele-python/pele/pull/53/files#r14873543>.
>