TODO List

The following lists a few points to be finished and tested before releasing a beta version.
TODOCommentImplementation statusTesting status
Port all numeric/rational code to mpl At the moment 64-bit 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
LATEX 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 Hermann-Mauguin all but superseded Schoenflies in crystallography. But not so for example in vibrational spectroscopy. implemented not tested
Pointgroup type Notably, whether pointgroup is chiral, non-centrosymmetric 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 c0 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 C-centred 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 arcus-functions At the moment the comparison of arcus-functions is broken, therefore mixing of arcus-functions leads to erroneous results! not implemented not tested
Implement 7-placed symbols for layer groups In OD-Theory, hexagonal OD-groupoid families are indicated using seven-placed 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 3-dimensional linear algebra Using a template parameter for the dimensionality will save many SLOC! implemented not tested
Unify code for 2- and 3-dimensional lattices   implemented not tested
Implement C++11-style move-constructors 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
OD-family 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 C-centred and C-centred 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
OD-family generation: Remember generated σ-POs. At the moment from all operations of a holohedry OD-families are generated and then compared. This provides a nice testing of the OD-family 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=(a2,b2,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 33+ and 33-, output only 33, 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