TODO  Comment  Implementation status  Testing status 
Port all numeric/rational code to mpl 
At the moment 64bit integers are used, which can be easily overflowed with well crafted input 
implemented 
not tested 
HTML formating 
At the moment all formatting is done in Unicode plaintext. HTML would allow nice features like foldable tabs 
implemented 
not tested 
L^{A}T_{E}X formating 
It would be very nice to output operations and OD family symbols directly in Latex to use it in publications! 
implemented 
not tested 
MathML formating 
Nice, but at the moment only supported in Firefox, which I don't use. An alternative is MathJax. 
not implemented 
not tested 
Computation of MERs 

not implemented 
not tested 
Computation of MDO polytype 

not implemented 
not tested 
Computation of point group 

implemented 
not tested 
Output Schoenflies symbols for point groups 
Low priority, since HermannMauguin all but superseded Schoenflies in crystallography. But not so for example in vibrational spectroscopy. 
implemented 
not tested 
Pointgroup type 
Notably, whether pointgroup is chiral, noncentrosymmetric or centrosymmetric 
not implemented 
not tested 
Computation of layer system 

implemented 
not tested 
Consideration of floating origins of layer groups 

implemented 
not tested 
Computation of family structure 

not implemented 
not tested 
General origin shifts if not implicitly stated in OD family symbol 

implemented 
not tested 
Support for monoclinic OD families with rectangular layers 
In such a case the c_{0} vector can be chosen so that one parameter vanishes. 
implemented 
not tested 
Choice of sensible global lattice 
At the moment the global lattice supplied by the user is taken for output. At least for crystallographic layer systems it seems
like a good idea to canonicalize it. For example in square OD families use the smallest possible square lattice. 
implemented 
not tested 
Conventional primitive lattices 
At the moment the primitive lattice of a Ccentred lattice is computed as b'=(a+b)/2.
The International Tables A on the other hand define it as a'=(a+b)/2, b'=(a+b)/2
which is much more sensible. 
not implemented 
not tested 
Output of OD (sub)family symbol 

implemented 
not tested 
Output of five and seven placed OD family symbol 
In certain cases (layer lattice restriction is square or hexagonal and λ and σPOs
only appear in the corresponding directions) output five and seven placed symbols. 
implemented 
not tested 
Allow mixing of arcusfunctions 
At the moment the comparison of arcusfunctions is broken, therefore mixing of arcusfunctions
leads to erroneous results! 
not implemented 
not tested 
Implement 7placed symbols for layer groups 
In ODTheory, hexagonal ODgroupoid families are indicated using sevenplaced symbols.
At the moment only 1, 3 and 5 placed symbols for layer groups are implemented.
Check monoclinic symbols with main direction b1, b2 or b3!
Same for five placed symbols!

implemented 
not tested 
Unify code for 2 and 3dimensional linear algebra 
Using a template parameter for the dimensionality will save many SLOC! 
implemented 
not tested 
Unify code for 2 and 3dimensional lattices 

implemented 
not tested 
Implement C++11style moveconstructors 
Not really necessary, but good style since it allows "perfect forwarding" 
not implemented 
not tested 
Check that different σPOs and layer shifts do not use the same variables 

implemented 
not tested 
Make λPOs in NFZ::CoSet class standard rational transformations. They can never contain variables, or can they? 

implemented 
not tested 
Implement support for category II OD families with layers of M>1 kinds 
If equivalent layers are not translational equivalent, there is an additional set of σPOs! 
implemented 
not tested 
Input of σPOs: Allow entry of directions as reciprocal (hkl) instead of direct [hkl] values 
Not really necessary, but easy to implement and a cute thing to have. 
not implemented 
not tested 
Validate UTF8 input 
At the moment the user can input control characters like changed direction of text flow
which will be output unchecked. This might have embarrassing effects on the web page. 
not implemented 
not tested 
Multithread potentially slow requests 
By design fastcgi++ serializes all requests. Slow requests should be manually run in a separate thread. 
not implemented 
not tested 
Split into development and online instance 
At the moment development is perfomed on the life system. Thus during times of intense development,
the server process is restarted frequently, leading to a loss of all user sessions. 
not implemented 
not tested 
Smarter indication of error location by parser 
At the moment the error is always given at the first or last character. This is not very useful.
Idea: Put location information into the exception thrown by the parser. 
not implemented 
not tested 
ODfamily generation: Generate layers from holohedry. 
At the moment the 80 layer groups are tested for compatibility with the five holohedries.
This needs a few special cases: P11(a) vs. P11(n), tetragonal Ccentred and Ccentred orthorhombic in hexagonal.
This is a bit of a downer and should be made more elegant by generating the layer groups from the operations
of the holohedry. 
not implemented 
not tested 
ODfamily generation: Remember generated σPOs. 
At the moment from all operations of a holohedry ODfamilies are generated and then compared.
This provides a nice testing of the ODfamily comparison code, but is extremely slow.
Remembering the used σPOs should avoid the generation of unnecessary OD families
and significantly speed up the process. 
not implemented 
not tested 
Rewrite layer lattice restriction code. 
By using general restrictions of the form V·R and V×R
with R=(a^{2},b^{2},ab), the layer lattice restriction
code will be made significantly more consistent and use less special cases! 
implemented 
not tested 
Shorten σPO lists. 
If a σPO list contains 3_{3}^{+} and 3_{3}^{}, output only 3_{3}, etc. 
not implemented 
not tested 
Split into SymmGroup and Layer class. 
At the moment, the SymmGroup class contains a position item which describes the position in space.
Break out this functionality, since it is confusing and inefficient: generating a layer at a different
position in space means copying the whole operation lists, etc. 
not implemented 
not tested 
Optimize LaTeX output. 
At the moment, arrays are output even for tables containing only one cell. 
not implemented 
not tested 