Polymetic  1.1
A c++ library for polynomial and matrix arithmetic, focused on applications in Kinematics.
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros Pages
Todo List
Member anonymous_namespace{MatrixAlgorithms_impl.ipp}::trace (const MatrixT &M, size_t n)
remove direct reference to iterator1. Make is general.
Member det (const MatrixT &M)

Implement Matrix_Traits class to capture the requirements/properties of Matrix types at compile time to provide better error messages.

exp() uses exponentiation by squaring. Give user the ability to specify algorithm using a template parameter.

Template Parameters
MatrixTA Matrix type which supports indexing using (m,n), the *, + ,the transpose and the trace operators.

Cache the matrix exponentiation results. This will eleminate a lot of redundant computation.

Make special arrangement when valueT is rational. This can be done using traits for the valueT

Member exp (const MatrixT &M, size_t n)

Implement Matrix_Traits class to capture the requirements/properties of Matrix types at compile time to provide better error messages.

exp() uses exponentiation by squaring. Give user the ability to specify algorithm using a template parameter.

Template Parameters
MatrixTA Matrix type which supports indexing using (m,n), the *, + and the transpose opeators.
File Matrix.hpp
Provide better way of creating a matrix than zero initialization and then assignment to each entry.
File Polynomial.ipp
This file needs to be included to use implicit template instantiation. Provide another file which just includes the .hppp files and hence used when explicit instantiation is on (using linked file Polynomial.o)
Class Polynomial< FieldT >
for uniqe_ptr, can this be done using forward declaration ?
Member Polynomial< FieldT >::m_coefs
Use a general container instead of std::list as the choice of container would depend on the algorithm class which is used for multiplication and addition.
Member Polynomial< FieldT >::operator+= (Polynomial const &p2)
Do away with the copying by using better approach.
Member Polynomial< FieldT >::operator- (Polynomial &&temp)
Find out why the move() is needed. RVO does not work on it own but has to be forced using move() here
Member Polynomial< FieldT >::operator-= (Polynomial const &p2)
Do away with the copying by using better approach.