Program Listing for File spg_database.cpp

Return to documentation for file (src/spg_database.cpp)

/* This file is part of brille.

Copyright © 2019,2020 Greg Tucker <greg.tucker@stfc.ac.uk>

brille is free software: you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.

brille is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with brille. If not, see <https://www.gnu.org/licenses/>.            */

/* This file has evolved from spg_database.cpp distributed as part of spglib.
   Changes have been made to introduce C++ style classes as well as other
   modifications to suit the needs of brille.
   spglib was licensed under the following BSD 3-clause license:

 Copyright (C) 2010 Atsushi Togo
 All rights reserved.

 This file is part of spglib. https://github.com/atztogo/spglib

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:

 * Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.

 * Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in
   the documentation and/or other materials provided with the
   distribution.

 * Neither the name of the phonopy project nor the names of its
   contributors may be used to endorse or promote products derived
   from this software without specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE. */

#include <stdlib.h>
#include <cstring>
#include "spg_database.hpp"
#include "hall_symbol.hpp"
using namespace brille;

/* Modifications from spglib original:
' CENTERING_ERROR' --> 'Bravais::_'
'       PRIMITIVE' --> 'Bravais::P'
'          A_FACE' --> 'Bravais::A'
'          B_FACE' --> 'Bravais::B'  (not present)
'          C_FACE' --> 'Bravais::C'
'            BODY' --> 'Bravais::I'
'            FACE' --> 'Bravais::F'
'        R_CENTER' --> 'Bravais::R'
'            BASE' --> 'Bravais::X' (not present)
2019-05-28 G Tucker */
/* The ALL_SPACEGROUP Spacegroup array has been switched from fixed-length char
   arrays to variable length const std::strings (once initialized)            */

/* In Hall symbols (3rd column), the double-prime is an escaped double quote*/
static const Spacegroup ALL_SPACEGROUPS[] = {
  {  0, ""      , ""                , ""                               , ""                   , ""          , ""     , Bravais::_,  0,   0},
  {  1, "C1^1"  , "P 1"             , "P 1"                            , "P 1"                , "P1"        , ""     , Bravais::P,  1,   1},
  {  2, "Ci^1"  , "-P 1"            , "P -1"                           , "P -1"               , "P-1"       , ""     , Bravais::P,  2,   2},
  {  3, "C2^1"  , "P 2y"            , "P 2 = P 1 2 1"                  , "P 1 2 1"            , "P2"        , "b"    , Bravais::P,  3,   3},
  {  3, "C2^1"  , "P 2"             , "P 2 = P 1 1 2"                  , "P 1 1 2"            , "P2"        , "c"    , Bravais::P,  3,   4},
  {  3, "C2^1"  , "P 2x"            , "P 2 = P 2 1 1"                  , "P 2 1 1"            , "P2"        , "a"    , Bravais::P,  3,   5},
  {  4, "C2^2"  , "P 2yb"           , "P 2_1 = P 1 2_1 1"              , "P 1 2_1 1"          , "P2_1"      , "b"    , Bravais::P,  3,   6},
  {  4, "C2^2"  , "P 2c"            , "P 2_1 = P 1 1 2_1"              , "P 1 1 2_1"          , "P2_1"      , "c"    , Bravais::P,  3,   7},
  {  4, "C2^2"  , "P 2xa"           , "P 2_1 = P 2_1 1 1"              , "P 2_1 1 1"          , "P2_1"      , "a"    , Bravais::P,  3,   8},
  {  5, "C2^3"  , "C 2y"            , "C 2 = C 1 2 1"                  , "C 1 2 1"            , "C2"        , "b1"   , Bravais::C,  3,   9},
  {  5, "C2^3"  , "A 2y"            , "C 2 = A 1 2 1"                  , "A 1 2 1"            , "C2"        , "b2"   , Bravais::A,  3,  10},
  {  5, "C2^3"  , "I 2y"            , "C 2 = I 1 2 1"                  , "I 1 2 1"            , "C2"        , "b3"   , Bravais::I,  3,  11},
  {  5, "C2^3"  , "A 2"             , "C 2 = A 1 1 2"                  , "A 1 1 2"            , "C2"        , "c1"   , Bravais::A,  3,  12},
  {  5, "C2^3"  , "B 2"             , "C 2 = B 1 1 2 = B 2"            , "B 1 1 2"            , "C2"        , "c2"   , Bravais::P,  3,  13},
  {  5, "C2^3"  , "I 2"             , "C 2 = I 1 1 2"                  , "I 1 1 2"            , "C2"        , "c3"   , Bravais::I,  3,  14},
  {  5, "C2^3"  , "B 2x"            , "C 2 = B 2 1 1"                  , "B 2 1 1"            , "C2"        , "a1"   , Bravais::P,  3,  15},
  {  5, "C2^3"  , "C 2x"            , "C 2 = C 2 1 1"                  , "C 2 1 1"            , "C2"        , "a2"   , Bravais::C,  3,  16},
  {  5, "C2^3"  , "I 2x"            , "C 2 = I 2 1 1"                  , "I 2 1 1"            , "C2"        , "a3"   , Bravais::I,  3,  17},
  {  6, "Cs^1"  , "P -2y"           , "P m = P 1 m 1"                  , "P 1 m 1"            , "Pm"        , "b"    , Bravais::P,  4,  18},
  {  6, "Cs^1"  , "P -2"            , "P m = P 1 1 m"                  , "P 1 1 m"            , "Pm"        , "c"    , Bravais::P,  4,  19},
  {  6, "Cs^1"  , "P -2x"           , "P m = P m 1 1"                  , "P m 1 1"            , "Pm"        , "a"    , Bravais::P,  4,  20},
  {  7, "Cs^2"  , "P -2yc"          , "P c = P 1 c 1"                  , "P 1 c 1"            , "Pc"        , "b1"   , Bravais::P,  4,  21},
  {  7, "Cs^2"  , "P -2yac"         , "P c = P 1 n 1"                  , "P 1 n 1"            , "Pc"        , "b2"   , Bravais::P,  4,  22},
  {  7, "Cs^2"  , "P -2ya"          , "P c = P 1 a 1"                  , "P 1 a 1"            , "Pc"        , "b3"   , Bravais::P,  4,  23},
  {  7, "Cs^2"  , "P -2a"           , "P c = P 1 1 a"                  , "P 1 1 a"            , "Pc"        , "c1"   , Bravais::P,  4,  24},
  {  7, "Cs^2"  , "P -2ab"          , "P c = P 1 1 n"                  , "P 1 1 n"            , "Pc"        , "c2"   , Bravais::P,  4,  25},
  {  7, "Cs^2"  , "P -2b"           , "P c = P 1 1 b = P b"            , "P 1 1 b"            , "Pc"        , "c3"   , Bravais::P,  4,  26},
  {  7, "Cs^2"  , "P -2xb"          , "P c = P b 1 1"                  , "P b 1 1"            , "Pc"        , "a1"   , Bravais::P,  4,  27},
  {  7, "Cs^2"  , "P -2xbc"         , "P c = P n 1 1"                  , "P n 1 1"            , "Pc"        , "a2"   , Bravais::P,  4,  28},
  {  7, "Cs^2"  , "P -2xc"          , "P c = P c 1 1"                  , "P c 1 1"            , "Pc"        , "a3"   , Bravais::P,  4,  29},
  {  8, "Cs^3"  , "C -2y"           , "C m = C 1 m 1"                  , "C 1 m 1"            , "Cm"        , "b1"   , Bravais::C,  4,  30},
  {  8, "Cs^3"  , "A -2y"           , "C m = A 1 m 1"                  , "A 1 m 1"            , "Cm"        , "b2"   , Bravais::A,  4,  31},
  {  8, "Cs^3"  , "I -2y"           , "C m = I 1 m 1"                  , "I 1 m 1"            , "Cm"        , "b3"   , Bravais::I,  4,  32},
  {  8, "Cs^3"  , "A -2"            , "C m = A 1 1 m"                  , "A 1 1 m"            , "Cm"        , "c1"   , Bravais::A,  4,  33},
  {  8, "Cs^3"  , "B -2"            , "C m = B 1 1 m = B m"            , "B 1 1 m"            , "Cm"        , "c2"   , Bravais::P,  4,  34},
  {  8, "Cs^3"  , "I -2"            , "C m = I 1 1 m"                  , "I 1 1 m"            , "Cm"        , "c3"   , Bravais::I,  4,  35},
  {  8, "Cs^3"  , "B -2x"           , "C m = B m 1 1"                  , "B m 1 1"            , "Cm"        , "a1"   , Bravais::P,  4,  36},
  {  8, "Cs^3"  , "C -2x"           , "C m = C m 1 1"                  , "C m 1 1"            , "Cm"        , "a2"   , Bravais::C,  4,  37},
  {  8, "Cs^3"  , "I -2x"           , "C m = I m 1 1"                  , "I m 1 1"            , "Cm"        , "a3"   , Bravais::I,  4,  38},
  {  9, "Cs^4"  , "C -2yc"          , "C c = C 1 c 1"                  , "C 1 c 1"            , "Cc"        , "b1"   , Bravais::C,  4,  39},
  {  9, "Cs^4"  , "A -2yac"         , "C c = A 1 n 1"                  , "A 1 n 1"            , "Cc"        , "b2"   , Bravais::A,  4,  40},
  {  9, "Cs^4"  , "I -2ya"          , "C c = I 1 a 1"                  , "I 1 a 1"            , "Cc"        , "b3"   , Bravais::I,  4,  41},
  {  9, "Cs^4"  , "A -2ya"          , "C c = A 1 a 1"                  , "A 1 a 1"            , "Cc"        , "-b1"  , Bravais::A,  4,  42},
  {  9, "Cs^4"  , "C -2ybc"         , "C c = C 1 n 1"                  , "C 1 n 1"            , "Cc"        , "-b2"  , Bravais::C,  4,  43},
  {  9, "Cs^4"  , "I -2yc"          , "C c = I 1 c 1"                  , "I 1 c 1"            , "Cc"        , "-b3"  , Bravais::I,  4,  44},
  {  9, "Cs^4"  , "A -2a"           , "C c = A 1 1 a"                  , "A 1 1 a"            , "Cc"        , "c1"   , Bravais::A,  4,  45},
  {  9, "Cs^4"  , "B -2bc"          , "C c = B 1 1 n"                  , "B 1 1 n"            , "Cc"        , "c2"   , Bravais::P,  4,  46},
  {  9, "Cs^4"  , "I -2b"           , "C c = I 1 1 b"                  , "I 1 1 b"            , "Cc"        , "c3"   , Bravais::I,  4,  47},
  {  9, "Cs^4"  , "B -2b"           , "C c = B 1 1 b = B b"            , "B 1 1 b"            , "Cc"        , "-c1"  , Bravais::P,  4,  48},
  {  9, "Cs^4"  , "A -2ac"          , "C c = A 1 1 n"                  , "A 1 1 n"            , "Cc"        , "-c2"  , Bravais::A,  4,  49},
  {  9, "Cs^4"  , "I -2a"           , "C c = I 1 1 a"                  , "I 1 1 a"            , "Cc"        , "-c3"  , Bravais::I,  4,  50},
  {  9, "Cs^4"  , "B -2xb"          , "C c = B b 1 1"                  , "B b 1 1"            , "Cc"        , "a1"   , Bravais::P,  4,  51},
  {  9, "Cs^4"  , "C -2xbc"         , "C c = C n 1 1"                  , "C n 1 1"            , "Cc"        , "a2"   , Bravais::C,  4,  52},
  {  9, "Cs^4"  , "I -2xc"          , "C c = I c 1 1"                  , "I c 1 1"            , "Cc"        , "a3"   , Bravais::I,  4,  53},
  {  9, "Cs^4"  , "C -2xc"          , "C c = C c 1 1"                  , "C c 1 1"            , "Cc"        , "-a1"  , Bravais::C,  4,  54},
  {  9, "Cs^4"  , "B -2xbc"         , "C c = B n 1 1"                  , "B n 1 1"            , "Cc"        , "-a2"  , Bravais::P,  4,  55},
  {  9, "Cs^4"  , "I -2xb"          , "C c = I b 1 1"                  , "I b 1 1"            , "Cc"        , "-a3"  , Bravais::I,  4,  56},
  { 10, "C2h^1" , "-P 2y"           , "P 2/m = P 1 2/m 1"              , "P 1 2/m 1"          , "P2/m"      , "b"    , Bravais::P,  5,  57},
  { 10, "C2h^1" , "-P 2"            , "P 2/m = P 1 1 2/m"              , "P 1 1 2/m"          , "P2/m"      , "c"    , Bravais::P,  5,  58},
  { 10, "C2h^1" , "-P 2x"           , "P 2/m = P 2/m 1 1"              , "P 2/m 1 1"          , "P2/m"      , "a"    , Bravais::P,  5,  59},
  { 11, "C2h^2" , "-P 2yb"          , "P 2_1/m = P 1 2_1/m 1"          , "P 1 2_1/m 1"        , "P2_1/m"    , "b"    , Bravais::P,  5,  60},
  { 11, "C2h^2" , "-P 2c"           , "P 2_1/m = P 1 1 2_1/m"          , "P 1 1 2_1/m"        , "P2_1/m"    , "c"    , Bravais::P,  5,  61},
  { 11, "C2h^2" , "-P 2xa"          , "P 2_1/m = P 2_1/m 1 1"          , "P 2_1/m 1 1"        , "P2_1/m"    , "a"    , Bravais::P,  5,  62},
  { 12, "C2h^3" , "-C 2y"           , "C 2/m = C 1 2/m 1"              , "C 1 2/m 1"          , "C2/m"      , "b1"   , Bravais::C,  5,  63},
  { 12, "C2h^3" , "-A 2y"           , "C 2/m = A 1 2/m 1"              , "A 1 2/m 1"          , "C2/m"      , "b2"   , Bravais::A,  5,  64},
  { 12, "C2h^3" , "-I 2y"           , "C 2/m = I 1 2/m 1"              , "I 1 2/m 1"          , "C2/m"      , "b3"   , Bravais::I,  5,  65},
  { 12, "C2h^3" , "-A 2"            , "C 2/m = A 1 1 2/m"              , "A 1 1 2/m"          , "C2/m"      , "c1"   , Bravais::A,  5,  66},
  { 12, "C2h^3" , "-B 2"            , "C 2/m = B 1 1 2/m = B 2/m"      , "B 1 1 2/m"          , "C2/m"      , "c2"   , Bravais::P,  5,  67},
  { 12, "C2h^3" , "-I 2"            , "C 2/m = I 1 1 2/m"              , "I 1 1 2/m"          , "C2/m"      , "c3"   , Bravais::I,  5,  68},
  { 12, "C2h^3" , "-B 2x"           , "C 2/m = B 2/m 1 1"              , "B 2/m 1 1"          , "C2/m"      , "a1"   , Bravais::P,  5,  69},
  { 12, "C2h^3" , "-C 2x"           , "C 2/m = C 2/m 1 1"              , "C 2/m 1 1"          , "C2/m"      , "a2"   , Bravais::C,  5,  70},
  { 12, "C2h^3" , "-I 2x"           , "C 2/m = I 2/m 1 1"              , "I 2/m 1 1"          , "C2/m"      , "a3"   , Bravais::I,  5,  71},
  { 13, "C2h^4" , "-P 2yc"          , "P 2/c = P 1 2/c 1"              , "P 1 2/c 1"          , "P2/c"      , "b1"   , Bravais::P,  5,  72},
  { 13, "C2h^4" , "-P 2yac"         , "P 2/c = P 1 2/n 1"              , "P 1 2/n 1"          , "P2/c"      , "b2"   , Bravais::P,  5,  73},
  { 13, "C2h^4" , "-P 2ya"          , "P 2/c = P 1 2/a 1"              , "P 1 2/a 1"          , "P2/c"      , "b3"   , Bravais::P,  5,  74},
  { 13, "C2h^4" , "-P 2a"           , "P 2/c = P 1 1 2/a"              , "P 1 1 2/a"          , "P2/c"      , "c1"   , Bravais::P,  5,  75},
  { 13, "C2h^4" , "-P 2ab"          , "P 2/c = P 1 1 2/n"              , "P 1 1 2/n"          , "P2/c"      , "c2"   , Bravais::P,  5,  76},
  { 13, "C2h^4" , "-P 2b"           , "P 2/c = P 1 1 2/b = P 2/b"      , "P 1 1 2/b"          , "P2/c"      , "c3"   , Bravais::P,  5,  77},
  { 13, "C2h^4" , "-P 2xb"          , "P 2/c = P 2/b 1 1"              , "P 2/b 1 1"          , "P2/c"      , "a1"   , Bravais::P,  5,  78},
  { 13, "C2h^4" , "-P 2xbc"         , "P 2/c = P 2/n 1 1"              , "P 2/n 1 1"          , "P2/c"      , "a2"   , Bravais::P,  5,  79},
  { 13, "C2h^4" , "-P 2xc"          , "P 2/c = P 2/c 1 1"              , "P 2/c 1 1"          , "P2/c"      , "a3"   , Bravais::P,  5,  80},
  { 14, "C2h^5" , "-P 2ybc"         , "P 2_1/c = P 1 2_1/c 1"          , "P 1 2_1/c 1"        , "P2_1/c"    , "b1"   , Bravais::P,  5,  81},
  { 14, "C2h^5" , "-P 2yn"          , "P 2_1/c = P 1 2_1/n 1"          , "P 1 2_1/n 1"        , "P2_1/c"    , "b2"   , Bravais::P,  5,  82},
  { 14, "C2h^5" , "-P 2yab"         , "P 2_1/c = P 1 2_1/a 1"          , "P 1 2_1/a 1"        , "P2_1/c"    , "b3"   , Bravais::P,  5,  83},
  { 14, "C2h^5" , "-P 2ac"          , "P 2_1/c = P 1 1 2_1/a"          , "P 1 1 2_1/a"        , "P2_1/c"    , "c1"   , Bravais::P,  5,  84},
  { 14, "C2h^5" , "-P 2n"           , "P 2_1/c = P 1 1 2_1/n"          , "P 1 1 2_1/n"        , "P2_1/c"    , "c2"   , Bravais::P,  5,  85},
  { 14, "C2h^5" , "-P 2bc"          , "P 2_1/c = P 1 1 2_1/b = P 2_1/b", "P 1 1 2_1/b"        , "P2_1/c"    , "c3"   , Bravais::P,  5,  86},
  { 14, "C2h^5" , "-P 2xab"         , "P 2_1/c = P 2_1/b 1 1"          , "P 2_1/b 1 1"        , "P2_1/c"    , "a1"   , Bravais::P,  5,  87},
  { 14, "C2h^5" , "-P 2xn"          , "P 2_1/c = P 2_1/n 1 1"          , "P 2_1/n 1 1"        , "P2_1/c"    , "a2"   , Bravais::P,  5,  88},
  { 14, "C2h^5" , "-P 2xac"         , "P 2_1/c = P 2_1/c 1 1"          , "P 2_1/c 1 1"        , "P2_1/c"    , "a3"   , Bravais::P,  5,  89},
  { 15, "C2h^6" , "-C 2yc"          , "C 2/c = C 1 2/c 1"              , "C 1 2/c 1"          , "C2/c"      , "b1"   , Bravais::C,  5,  90},
  { 15, "C2h^6" , "-A 2yac"         , "C 2/c = A 1 2/n 1"              , "A 1 2/n 1"          , "C2/c"      , "b2"   , Bravais::A,  5,  91},
  { 15, "C2h^6" , "-I 2ya"          , "C 2/c = I 1 2/a 1"              , "I 1 2/a 1"          , "C2/c"      , "b3"   , Bravais::I,  5,  92},
  { 15, "C2h^6" , "-A 2ya"          , "C 2/c = A 1 2/a 1"              , "A 1 2/a 1"          , "C2/c"      , "-b1"  , Bravais::A,  5,  93},
  { 15, "C2h^6" , "-C 2ybc"         , "C 2/c = C 1 2/n 1"              , "C 1 2/n 1"          , "C2/c"      , "-b2"  , Bravais::C,  5,  94},
  { 15, "C2h^6" , "-I 2yc"          , "C 2/c = I 1 2/c 1"              , "I 1 2/c 1"          , "C2/c"      , "-b3"  , Bravais::I,  5,  95},
  { 15, "C2h^6" , "-A 2a"           , "C 2/c = A 1 1 2/a"              , "A 1 1 2/a"          , "C2/c"      , "c1"   , Bravais::A,  5,  96},
  { 15, "C2h^6" , "-B 2bc"          , "C 2/c = B 1 1 2/n"              , "B 1 1 2/n"          , "C2/c"      , "c2"   , Bravais::P,  5,  97},
  { 15, "C2h^6" , "-I 2b"           , "C 2/c = I 1 1 2/b"              , "I 1 1 2/b"          , "C2/c"      , "c3"   , Bravais::I,  5,  98},
  { 15, "C2h^6" , "-B 2b"           , "C 2/c = B 1 1 2/b = B 2/b"      , "B 1 1 2/b"          , "C2/c"      , "-c1"  , Bravais::P,  5,  99},
  { 15, "C2h^6" , "-A 2ac"          , "C 2/c = A 1 1 2/n"              , "A 1 1 2/n"          , "C2/c"      , "-c2"  , Bravais::A,  5, 100},
  { 15, "C2h^6" , "-I 2a"           , "C 2/c = I 1 1 2/a"              , "I 1 1 2/a"          , "C2/c"      , "-c3"  , Bravais::I,  5, 101},
  { 15, "C2h^6" , "-B 2xb"          , "C 2/c = B 2/b 1 1"              , "B 2/b 1 1"          , "C2/c"      , "a1"   , Bravais::P,  5, 102},
  { 15, "C2h^6" , "-C 2xbc"         , "C 2/c = C 2/n 1 1"              , "C 2/n 1 1"          , "C2/c"      , "a2"   , Bravais::C,  5, 103},
  { 15, "C2h^6" , "-I 2xc"          , "C 2/c = I 2/c 1 1"              , "I 2/c 1 1"          , "C2/c"      , "a3"   , Bravais::I,  5, 104},
  { 15, "C2h^6" , "-C 2xc"          , "C 2/c = C 2/c 1 1"              , "C 2/c 1 1"          , "C2/c"      , "-a1"  , Bravais::C,  5, 105},
  { 15, "C2h^6" , "-B 2xbc"         , "C 2/c = B 2/n 1 1"              , "B 2/n 1 1"          , "C2/c"      , "-a2"  , Bravais::P,  5, 106},
  { 15, "C2h^6" , "-I 2xb"          , "C 2/c = I 2/b 1 1"              , "I 2/b 1 1"          , "C2/c"      , "-a3"  , Bravais::I,  5, 107},
  { 16, "D2^1"  , "P 2 2"           , "P 2 2 2"                        , "P 2 2 2"            , "P222"      , ""     , Bravais::P,  6, 108},
  { 17, "D2^2"  , "P 2c 2"          , "P 2 2 2_1"                      , "P 2 2 2_1"          , "P222_1"    , ""     , Bravais::P,  6, 109},
  { 17, "D2^2"  , "P 2a 2a"         , "P 2_1 2 2"                      , "P 2_1 2 2"          , "P2_122"    , "cab"  , Bravais::P,  6, 110},
  { 17, "D2^2"  , "P 2 2b"          , "P 2 2_1 2"                      , "P 2 2_1 2"          , "P22_12"    , "bca"  , Bravais::P,  6, 111},
  { 18, "D2^3"  , "P 2 2ab"         , "P 2_1 2_1 2"                    , "P 2_1 2_1 2"        , "P2_12_12"  , ""     , Bravais::P,  6, 112},
  { 18, "D2^3"  , "P 2bc 2"         , "P 2 2_1 2_1"                    , "P 2 2_1 2_1"        , "P22_12_1"  , "cab"  , Bravais::P,  6, 113},
  { 18, "D2^3"  , "P 2ac 2ac"       , "P 2_1 2 2_1"                    , "P 2_1 2 2_1"        , "P2_122_1"  , "bca"  , Bravais::P,  6, 114},
  { 19, "D2^4"  , "P 2ac 2ab"       , "P 2_1 2_1 2_1"                  , "P 2_1 2_1 2_1"      , "P2_12_12_1", ""     , Bravais::P,  6, 115},
  { 20, "D2^5"  , "C 2c 2"          , "C 2 2 2_1"                      , "C 2 2 2_1"          , "C222_1"    , ""     , Bravais::C,  6, 116},
  { 20, "D2^5"  , "A 2a 2a"         , "A 2_1 2 2"                      , "A 2_1 2 2"          , "A2_122"    , "cab"  , Bravais::A,  6, 117},
  { 20, "D2^5"  , "B 2 2b"          , "B 2 2_1 2"                      , "B 2 2_1 2"          , "B22_12"    , "bca"  , Bravais::P,  6, 118},
  { 21, "D2^6"  , "C 2 2"           , "C 2 2 2"                        , "C 2 2 2"            , "C222"      , ""     , Bravais::C,  6, 119},
  { 21, "D2^6"  , "A 2 2"           , "A 2 2 2"                        , "A 2 2 2"            , "A222"      , "cab"  , Bravais::A,  6, 120},
  { 21, "D2^6"  , "B 2 2"           , "B 2 2 2"                        , "B 2 2 2"            , "B222"      , "bca"  , Bravais::P,  6, 121},
  { 22, "D2^7"  , "F 2 2"           , "F 2 2 2"                        , "F 2 2 2"            , "F222"      , ""     , Bravais::F,  6, 122},
  { 23, "D2^8"  , "I 2 2"           , "I 2 2 2"                        , "I 2 2 2"            , "I222"      , ""     , Bravais::I,  6, 123},
  { 24, "D2^9"  , "I 2b 2c"         , "I 2_1 2_1 2_1"                  , "I 2_1 2_1 2_1"      , "I2_12_12_1", ""     , Bravais::I,  6, 124},
  { 25, "C2v^1" , "P 2 -2"          , "P m m 2"                        , "P m m 2"            , "Pmm2"      , ""     , Bravais::P,  7, 125},
  { 25, "C2v^1" , "P -2 2"          , "P 2 m m"                        , "P 2 m m"            , "P2mm"      , "cab"  , Bravais::P,  7, 126},
  { 25, "C2v^1" , "P -2 -2"         , "P m 2 m"                        , "P m 2 m"            , "Pm2m"      , "bca"  , Bravais::P,  7, 127},
  { 26, "C2v^2" , "P 2c -2"         , "P m c 2_1"                      , "P m c 2_1"          , "Pmc2_1"    , ""     , Bravais::P,  7, 128},
  { 26, "C2v^2" , "P 2c -2c"        , "P c m 2_1"                      , "P c m 2_1"          , "Pcm2_1"    , "ba-c" , Bravais::P,  7, 129},
  { 26, "C2v^2" , "P -2a 2a"        , "P 2_1 m a"                      , "P 2_1 m a"          , "P2_1ma"    , "cab"  , Bravais::P,  7, 130},
  { 26, "C2v^2" , "P -2 2a"         , "P 2_1 a m"                      , "P 2_1 a m"          , "P2_1am"    , "-cba" , Bravais::P,  7, 131},
  { 26, "C2v^2" , "P -2 -2b"        , "P b 2_1 m"                      , "P b 2_1 m"          , "Pb2_1m"    , "bca"  , Bravais::P,  7, 132},
  { 26, "C2v^2" , "P -2b -2"        , "P m 2_1 b"                      , "P m 2_1 b"          , "Pm2_1b"    , "a-cb" , Bravais::P,  7, 133},
  { 27, "C2v^3" , "P 2 -2c"         , "P c c 2"                        , "P c c 2"            , "Pcc2"      , ""     , Bravais::P,  7, 134},
  { 27, "C2v^3" , "P -2a 2"         , "P 2 a a"                        , "P 2 a a"            , "P2aa"      , "cab"  , Bravais::P,  7, 135},
  { 27, "C2v^3" , "P -2b -2b"       , "P b 2 b"                        , "P b 2 b"            , "Pb2b"      , "bca"  , Bravais::P,  7, 136},
  { 28, "C2v^4" , "P 2 -2a"         , "P m a 2"                        , "P m a 2"            , "Pma2"      , ""     , Bravais::P,  7, 137},
  { 28, "C2v^4" , "P 2 -2b"         , "P b m 2"                        , "P b m 2"            , "Pbm2"      , "ba-c" , Bravais::P,  7, 138},
  { 28, "C2v^4" , "P -2b 2"         , "P 2 m b"                        , "P 2 m b"            , "P2mb"      , "cab"  , Bravais::P,  7, 139},
  { 28, "C2v^4" , "P -2c 2"         , "P 2 c m"                        , "P 2 c m"            , "P2cm"      , "-cba" , Bravais::P,  7, 140},
  { 28, "C2v^4" , "P -2c -2c"       , "P c 2 m"                        , "P c 2 m"            , "Pc2m"      , "bca"  , Bravais::P,  7, 141},
  { 28, "C2v^4" , "P -2a -2a"       , "P m 2 a"                        , "P m 2 a"            , "Pm2a"      , "a-cb" , Bravais::P,  7, 142},
  { 29, "C2v^5" , "P 2c -2ac"       , "P c a 2_1"                      , "P c a 2_1"          , "Pca2_1"    , ""     , Bravais::P,  7, 143},
  { 29, "C2v^5" , "P 2c -2b"        , "P b c 2_1"                      , "P b c 2_1"          , "Pbc2_1"    , "ba-c" , Bravais::P,  7, 144},
  { 29, "C2v^5" , "P -2b 2a"        , "P 2_1 a b"                      , "P 2_1 a b"          , "P2_1ab"    , "cab"  , Bravais::P,  7, 145},
  { 29, "C2v^5" , "P -2ac 2a"       , "P 2_1 c a"                      , "P 2_1 c a"          , "P2_1ca"    , "-cba" , Bravais::P,  7, 146},
  { 29, "C2v^5" , "P -2bc -2c"      , "P c 2_1 b"                      , "P c 2_1 b"          , "Pc2_1b"    , "bca"  , Bravais::P,  7, 147},
  { 29, "C2v^5" , "P -2a -2ab"      , "P b 2_1 a"                      , "P b 2_1 a"          , "Pb2_1a"    , "a-cb" , Bravais::P,  7, 148},
  { 30, "C2v^6" , "P 2 -2bc"        , "P n c 2"                        , "P n c 2"            , "Pnc2"      , ""     , Bravais::P,  7, 149},
  { 30, "C2v^6" , "P 2 -2ac"        , "P c n 2"                        , "P c n 2"            , "Pcn2"      , "ba-c" , Bravais::P,  7, 150},
  { 30, "C2v^6" , "P -2ac 2"        , "P 2 n a"                        , "P 2 n a"            , "P2na"      , "cab"  , Bravais::P,  7, 151},
  { 30, "C2v^6" , "P -2ab 2"        , "P 2 a n"                        , "P 2 a n"            , "P2an"      , "-cba" , Bravais::P,  7, 152},
  { 30, "C2v^6" , "P -2ab -2ab"     , "P b 2 n"                        , "P b 2 n"            , "Pb2n"      , "bca"  , Bravais::P,  7, 153},
  { 30, "C2v^6" , "P -2bc -2bc"     , "P n 2 b"                        , "P n 2 b"            , "Pn2b"      , "a-cb" , Bravais::P,  7, 154},
  { 31, "C2v^7" , "P 2ac -2"        , "P m n 2_1"                      , "P m n 2_1"          , "Pmn2_1"    , ""     , Bravais::P,  7, 155},
  { 31, "C2v^7" , "P 2bc -2bc"      , "P n m 2_1"                      , "P n m 2_1"          , "Pnm2_1"    , "ba-c" , Bravais::P,  7, 156},
  { 31, "C2v^7" , "P -2ab 2ab"      , "P 2_1 m n"                      , "P 2_1 m n"          , "P2_1mn"    , "cab"  , Bravais::P,  7, 157},
  { 31, "C2v^7" , "P -2 2ac"        , "P 2_1 n m"                      , "P 2_1 n m"          , "P2_1nm"    , "-cba" , Bravais::P,  7, 158},
  { 31, "C2v^7" , "P -2 -2bc"       , "P n 2_1 m"                      , "P n 2_1 m"          , "Pn2_1m"    , "bca"  , Bravais::P,  7, 159},
  { 31, "C2v^7" , "P -2ab -2"       , "P m 2_1 n"                      , "P m 2_1 n"          , "Pm2_1n"    , "a-cb" , Bravais::P,  7, 160},
  { 32, "C2v^8" , "P 2 -2ab"        , "P b a 2"                        , "P b a 2"            , "Pba2"      , ""     , Bravais::P,  7, 161},
  { 32, "C2v^8" , "P -2bc 2"        , "P 2 c b"                        , "P 2 c b"            , "P2cb"      , "cab"  , Bravais::P,  7, 162},
  { 32, "C2v^8" , "P -2ac -2ac"     , "P c 2 a"                        , "P c 2 a"            , "Pc2a"      , "bca"  , Bravais::P,  7, 163},
  { 33, "C2v^9" , "P 2c -2n"        , "P n a 2_1"                      , "P n a 2_1"          , "Pna2_1"    , ""     , Bravais::P,  7, 164},
  { 33, "C2v^9" , "P 2c -2ab"       , "P b n 2_1"                      , "P b n 2_1"          , "Pbn2_1"    , "ba-c" , Bravais::P,  7, 165},
  { 33, "C2v^9" , "P -2bc 2a"       , "P 2_1 n b"                      , "P 2_1 n b"          , "P2_1nb"    , "cab"  , Bravais::P,  7, 166},
  { 33, "C2v^9" , "P -2n 2a"        , "P 2_1 c n"                      , "P 2_1 c n"          , "P2_1cn"    , "-cba" , Bravais::P,  7, 167},
  { 33, "C2v^9" , "P -2n -2ac"      , "P c 2_1 n"                      , "P c 2_1 n"          , "Pc2_1n"    , "bca"  , Bravais::P,  7, 168},
  { 33, "C2v^9" , "P -2ac -2n"      , "P n 2_1 a"                      , "P n 2_1 a"          , "Pn2_1a"    , "a-cb" , Bravais::P,  7, 169},
  { 34, "C2v^10", "P 2 -2n"         , "P n n 2"                        , "P n n 2"            , "Pnn2"      , ""     , Bravais::P,  7, 170},
  { 34, "C2v^10", "P -2n 2"         , "P 2 n n"                        , "P 2 n n"            , "P2nn"      , "cab"  , Bravais::P,  7, 171},
  { 34, "C2v^10", "P -2n -2n"       , "P n 2 n"                        , "P n 2 n"            , "Pn2n"      , "bca"  , Bravais::P,  7, 172},
  { 35, "C2v^11", "C 2 -2"          , "C m m 2"                        , "C m m 2"            , "Cmm2"      , ""     , Bravais::C,  7, 173},
  { 35, "C2v^11", "A -2 2"          , "A 2 m m"                        , "A 2 m m"            , "A2mm"      , "cab"  , Bravais::A,  7, 174},
  { 35, "C2v^11", "B -2 -2"         , "B m 2 m"                        , "B m 2 m"            , "Bm2m"      , "bca"  , Bravais::P,  7, 175},
  { 36, "C2v^12", "C 2c -2"         , "C m c 2_1"                      , "C m c 2_1"          , "Cmc2_1"    , ""     , Bravais::C,  7, 176},
  { 36, "C2v^12", "C 2c -2c"        , "C c m 2_1"                      , "C c m 2_1"          , "Ccm2_1"    , "ba-c" , Bravais::C,  7, 177},
  { 36, "C2v^12", "A -2a 2a"        , "A 2_1 m a"                      , "A 2_1 m a"          , "A2_1ma"    , "cab"  , Bravais::A,  7, 178},
  { 36, "C2v^12", "A -2 2a"         , "A 2_1 a m"                      , "A 2_1 a m"          , "A2_1am"    , "-cba" , Bravais::A,  7, 179},
  { 36, "C2v^12", "B -2 -2b"        , "B b 2_1 m"                      , "B b 2_1 m"          , "Bb2_1m"    , "bca"  , Bravais::P,  7, 180},
  { 36, "C2v^12", "B -2b -2"        , "B m 2_1 b"                      , "B m 2_1 b"          , "Bm2_1b"    , "a-cb" , Bravais::P,  7, 181},
  { 37, "C2v^13", "C 2 -2c"         , "C c c 2"                        , "C c c 2"            , "Ccc2"      , ""     , Bravais::C,  7, 182},
  { 37, "C2v^13", "A -2a 2"         , "A 2 a a"                        , "A 2 a a"            , "A2aa"      , "cab"  , Bravais::A,  7, 183},
  { 37, "C2v^13", "B -2b -2b"       , "B b 2 b"                        , "B b 2 b"            , "Bb2b"      , "bca"  , Bravais::P,  7, 184},
  { 38, "C2v^14", "A 2 -2"          , "A m m 2"                        , "A m m 2"            , "Amm2"      , ""     , Bravais::A,  7, 185},
  { 38, "C2v^14", "B 2 -2"          , "B m m 2"                        , "B m m 2"            , "Bmm2"      , "ba-c" , Bravais::P,  7, 186},
  { 38, "C2v^14", "B -2 2"          , "B 2 m m"                        , "B 2 m m"            , "B2mm"      , "cab"  , Bravais::P,  7, 187},
  { 38, "C2v^14", "C -2 2"          , "C 2 m m"                        , "C 2 m m"            , "C2mm"      , "-cba" , Bravais::C,  7, 188},
  { 38, "C2v^14", "C -2 -2"         , "C m 2 m"                        , "C m 2 m"            , "Cm2m"      , "bca"  , Bravais::C,  7, 189},
  { 38, "C2v^14", "A -2 -2"         , "A m 2 m"                        , "A m 2 m"            , "Am2m"      , "a-cb" , Bravais::A,  7, 190},
  { 39, "C2v^15", "A 2 -2c"         , "A e m 2"                        , "A e m 2"            , "Aem2"      , ""     , Bravais::A,  7, 191},
  { 39, "C2v^15", "B 2 -2c"         , "B m e 2"                        , "B m e 2"            , "Bme2"      , "ba-c" , Bravais::P,  7, 192},
  { 39, "C2v^15", "B -2c 2"         , "B 2 e m"                        , "B 2 e m"            , "B2em"      , "cab"  , Bravais::P,  7, 193},
  { 39, "C2v^15", "C -2b 2"         , "C 2 m e"                        , "C 2 m e"            , "C2me"      , "-cba" , Bravais::C,  7, 194},
  { 39, "C2v^15", "C -2b -2b"       , "C m 2 e"                        , "C m 2 e"            , "Cm2e"      , "bca"  , Bravais::C,  7, 195},
  { 39, "C2v^15", "A -2c -2c"       , "A e 2 m"                        , "A e 2 m"            , "Ae2m"      , "a-cb" , Bravais::A,  7, 196},
  { 40, "C2v^16", "A 2 -2a"         , "A m a 2"                        , "A m a 2"            , "Ama2"      , ""     , Bravais::A,  7, 197},
  { 40, "C2v^16", "B 2 -2b"         , "B b m 2"                        , "B b m 2"            , "Bbm2"      , "ba-c" , Bravais::P,  7, 198},
  { 40, "C2v^16", "B -2b 2"         , "B 2 m b"                        , "B 2 m b"            , "B2mb"      , "cab"  , Bravais::P,  7, 199},
  { 40, "C2v^16", "C -2c 2"         , "C 2 c m"                        , "C 2 c m"            , "C2cm"      , "-cba" , Bravais::C,  7, 200},
  { 40, "C2v^16", "C -2c -2c"       , "C c 2 m"                        , "C c 2 m"            , "Cc2m"      , "bca"  , Bravais::C,  7, 201},
  { 40, "C2v^16", "A -2a -2a"       , "A m 2 a"                        , "A m 2 a"            , "Am2a"      , "a-cb" , Bravais::A,  7, 202},
  { 41, "C2v^17", "A 2 -2ac"        , "A e a 2"                        , "A e a 2"            , "Aea2"      , ""     , Bravais::A,  7, 203},
  { 41, "C2v^17", "B 2 -2bc"        , "B b e 2"                        , "B b e 2"            , "Bbe2"      , "ba-c" , Bravais::P,  7, 204},
  { 41, "C2v^17", "B -2bc 2"        , "B 2 e b"                        , "B 2 e b"            , "B2eb"      , "cab"  , Bravais::P,  7, 205},
  { 41, "C2v^17", "C -2bc 2"        , "C 2 c e"                        , "C 2 c e"            , "C2ce"      , "-cba" , Bravais::C,  7, 206},
  { 41, "C2v^17", "C -2bc -2bc"     , "C c 2 e"                        , "C c 2 e"            , "Cc2e"      , "bca"  , Bravais::C,  7, 207},
  { 41, "C2v^17", "A -2ac -2ac"     , "A e 2 a"                        , "A e 2 a"            , "Ae2a"      , "a-cb" , Bravais::A,  7, 208},
  { 42, "C2v^18", "F 2 -2"          , "F m m 2"                        , "F m m 2"            , "Fmm2"      , ""     , Bravais::F,  7, 209},
  { 42, "C2v^18", "F -2 2"          , "F 2 m m"                        , "F 2 m m"            , "F2mm"      , "cab"  , Bravais::F,  7, 210},
  { 42, "C2v^18", "F -2 -2"         , "F m 2 m"                        , "F m 2 m"            , "Fm2m"      , "bca"  , Bravais::F,  7, 211},
  { 43, "C2v^19", "F 2 -2d"         , "F d d 2"                        , "F d d 2"            , "Fdd2"      , ""     , Bravais::F,  7, 212},
  { 43, "C2v^19", "F -2d 2"         , "F 2 d d"                        , "F 2 d d"            , "F2dd"      , "cab"  , Bravais::F,  7, 213},
  { 43, "C2v^19", "F -2d -2d"       , "F d 2 d"                        , "F d 2 d"            , "Fd2d"      , "bca"  , Bravais::F,  7, 214},
  { 44, "C2v^20", "I 2 -2"          , "I m m 2"                        , "I m m 2"            , "Imm2"      , ""     , Bravais::I,  7, 215},
  { 44, "C2v^20", "I -2 2"          , "I 2 m m"                        , "I 2 m m"            , "I2mm"      , "cab"  , Bravais::I,  7, 216},
  { 44, "C2v^20", "I -2 -2"         , "I m 2 m"                        , "I m 2 m"            , "Im2m"      , "bca"  , Bravais::I,  7, 217},
  { 45, "C2v^21", "I 2 -2c"         , "I b a 2"                        , "I b a 2"            , "Iba2"      , ""     , Bravais::I,  7, 218},
  { 45, "C2v^21", "I -2a 2"         , "I 2 c b"                        , "I 2 c b"            , "I2cb"      , "cab"  , Bravais::I,  7, 219},
  { 45, "C2v^21", "I -2b -2b"       , "I c 2 a"                        , "I c 2 a"            , "Ic2a"      , "bca"  , Bravais::I,  7, 220},
  { 46, "C2v^22", "I 2 -2a"         , "I m a 2"                        , "I m a 2"            , "Ima2"      , ""     , Bravais::I,  7, 221},
  { 46, "C2v^22", "I 2 -2b"         , "I b m 2"                        , "I b m 2"            , "Ibm2"      , "ba-c" , Bravais::I,  7, 222},
  { 46, "C2v^22", "I -2b 2"         , "I 2 m b"                        , "I 2 m b"            , "I2mb"      , "cab"  , Bravais::I,  7, 223},
  { 46, "C2v^22", "I -2c 2"         , "I 2 c m"                        , "I 2 c m"            , "I2cm"      , "-cba" , Bravais::I,  7, 224},
  { 46, "C2v^22", "I -2c -2c"       , "I c 2 m"                        , "I c 2 m"            , "Ic2m"      , "bca"  , Bravais::I,  7, 225},
  { 46, "C2v^22", "I -2a -2a"       , "I m 2 a"                        , "I m 2 a"            , "Im2a"      , "a-cb" , Bravais::I,  7, 226},
  { 47, "D2h^1" , "-P 2 2"          , "P m m m"                        , "P 2/m 2/m 2/m"      , "Pmmm"      , ""     , Bravais::P,  8, 227},
  { 48, "D2h^2" , "P 2 2 -1n"       , "P n n n"                        , "P 2/n 2/n 2/n"      , "Pnnn"      , "1"    , Bravais::P,  8, 228},
  { 48, "D2h^2" , "-P 2ab 2bc"      , "P n n n"                        , "P 2/n 2/n 2/n"      , "Pnnn"      , "2"    , Bravais::P,  8, 229},
  { 49, "D2h^3" , "-P 2 2c"         , "P c c m"                        , "P 2/c 2/c 2/m"      , "Pccm"      , ""     , Bravais::P,  8, 230},
  { 49, "D2h^3" , "-P 2a 2"         , "P m a a"                        , "P 2/m 2/a 2/a"      , "Pmaa"      , "cab"  , Bravais::P,  8, 231},
  { 49, "D2h^3" , "-P 2b 2b"        , "P b m b"                        , "P 2/b 2/m 2/b"      , "Pbmb"      , "bca"  , Bravais::P,  8, 232},
  { 50, "D2h^4" , "P 2 2 -1ab"      , "P b a n"                        , "P 2/b 2/a 2/n"      , "Pban"      , "1"    , Bravais::P,  8, 233},
  { 50, "D2h^4" , "-P 2ab 2b"       , "P b a n"                        , "P 2/b 2/a 2/n"      , "Pban"      , "2"    , Bravais::P,  8, 234},
  { 50, "D2h^4" , "P 2 2 -1bc"      , "P n c b"                        , "P 2/n 2/c 2/b"      , "Pncb"      , "1cab" , Bravais::P,  8, 235},
  { 50, "D2h^4" , "-P 2b 2bc"       , "P n c b"                        , "P 2/n 2/c 2/b"      , "Pncb"      , "2cab" , Bravais::P,  8, 236},
  { 50, "D2h^4" , "P 2 2 -1ac"      , "P c n a"                        , "P 2/c 2/n 2/a"      , "Pcna"      , "1bca" , Bravais::P,  8, 237},
  { 50, "D2h^4" , "-P 2a 2c"        , "P c n a"                        , "P 2/c 2/n 2/a"      , "Pcna"      , "2bca" , Bravais::P,  8, 238},
  { 51, "D2h^5" , "-P 2a 2a"        , "P m m a"                        , "P 2_1/m 2/m 2/a"    , "Pmma"      , ""     , Bravais::P,  8, 239},
  { 51, "D2h^5" , "-P 2b 2"         , "P m m b"                        , "P 2/m 2_1/m 2/b"    , "Pmmb"      , "ba-c" , Bravais::P,  8, 240},
  { 51, "D2h^5" , "-P 2 2b"         , "P b m m"                        , "P 2/b 2_1/m 2/m"    , "Pbmm"      , "cab"  , Bravais::P,  8, 241},
  { 51, "D2h^5" , "-P 2c 2c"        , "P c m m"                        , "P 2/c 2/m 2_1/m"    , "Pcmm"      , "-cba" , Bravais::P,  8, 242},
  { 51, "D2h^5" , "-P 2c 2"         , "P m c m"                        , "P 2/m 2/c 2_1/m"    , "Pmcm"      , "bca"  , Bravais::P,  8, 243},
  { 51, "D2h^5" , "-P 2 2a"         , "P m a m"                        , "P 2_1/m 2/a 2/m"    , "Pmam"      , "a-cb" , Bravais::P,  8, 244},
  { 52, "D2h^6" , "-P 2a 2bc"       , "P n n a"                        , "P 2/n 2_1/n 2/a"    , "Pnna"      , ""     , Bravais::P,  8, 245},
  { 52, "D2h^6" , "-P 2b 2n"        , "P n n b"                        , "P 2_1/n 2/n 2/b"    , "Pnnb"      , "ba-c" , Bravais::P,  8, 246},
  { 52, "D2h^6" , "-P 2n 2b"        , "P b n n"                        , "P 2/b 2/n 2_1/n"    , "Pbnn"      , "cab"  , Bravais::P,  8, 247},
  { 52, "D2h^6" , "-P 2ab 2c"       , "P c n n"                        , "P 2/c 2_1/n 2/n"    , "Pcnn"      , "-cba" , Bravais::P,  8, 248},
  { 52, "D2h^6" , "-P 2ab 2n"       , "P n c n"                        , "P 2_1/n 2/c 2/n"    , "Pncn"      , "bca"  , Bravais::P,  8, 249},
  { 52, "D2h^6" , "-P 2n 2bc"       , "P n a n"                        , "P 2/n 2/a 2_1/n"    , "Pnan"      , "a-cb" , Bravais::P,  8, 250},
  { 53, "D2h^7" , "-P 2ac 2"        , "P m n a"                        , "P 2/m 2/n 2_1/a"    , "Pmna"      , ""     , Bravais::P,  8, 251},
  { 53, "D2h^7" , "-P 2bc 2bc"      , "P n m b"                        , "P 2/n 2/m 2_1/b"    , "Pnmb"      , "ba-c" , Bravais::P,  8, 252},
  { 53, "D2h^7" , "-P 2ab 2ab"      , "P b m n"                        , "P 2_1/b 2/m 2/n"    , "Pbmn"      , "cab"  , Bravais::P,  8, 253},
  { 53, "D2h^7" , "-P 2 2ac"        , "P c n m"                        , "P 2_1/c 2/n 2/m"    , "Pcnm"      , "-cba" , Bravais::P,  8, 254},
  { 53, "D2h^7" , "-P 2 2bc"        , "P n c m"                        , "P 2/n 2_1/c 2/m"    , "Pncm"      , "bca"  , Bravais::P,  8, 255},
  { 53, "D2h^7" , "-P 2ab 2"        , "P m a n"                        , "P 2/m 2_1/a 2/n"    , "Pman"      , "a-cb" , Bravais::P,  8, 256},
  { 54, "D2h^8" , "-P 2a 2ac"       , "P c c a"                        , "P 2_1/c 2/c 2/a"    , "Pcca"      , ""     , Bravais::P,  8, 257},
  { 54, "D2h^8" , "-P 2b 2c"        , "P c c b"                        , "P 2/c 2_1/c 2/b"    , "Pccb"      , "ba-c" , Bravais::P,  8, 258},
  { 54, "D2h^8" , "-P 2a 2b"        , "P b a a"                        , "P 2/b 2_1/a 2/a"    , "Pbaa"      , "cab"  , Bravais::P,  8, 259},
  { 54, "D2h^8" , "-P 2ac 2c"       , "P c a a"                        , "P 2/c 2/a 2_1/a"    , "Pcaa"      , "-cba" , Bravais::P,  8, 260},
  { 54, "D2h^8" , "-P 2bc 2b"       , "P b c b"                        , "P 2/b 2/c 2_1/b"    , "Pbcb"      , "bca"  , Bravais::P,  8, 261},
  { 54, "D2h^8" , "-P 2b 2ab"       , "P b a b"                        , "P 2_1/b 2/a 2/b"    , "Pbab"      , "a-cb" , Bravais::P,  8, 262},
  { 55, "D2h^9" , "-P 2 2ab"        , "P b a m"                        , "P 2_1/b 2_1/a 2/m"  , "Pbam"      , ""     , Bravais::P,  8, 263},
  { 55, "D2h^9" , "-P 2bc 2"        , "P m c b"                        , "P 2/m 2_1/c 2_1/b"  , "Pmcb"      , "cab"  , Bravais::P,  8, 264},
  { 55, "D2h^9" , "-P 2ac 2ac"      , "P c m a"                        , "P 2_1/c 2/m 2_1/a"  , "Pcma"      , "bca"  , Bravais::P,  8, 265},
  { 56, "D2h^10", "-P 2ab 2ac"      , "P c c n"                        , "P 2_1/c 2_1/c 2/n"  , "Pccn"      , ""     , Bravais::P,  8, 266},
  { 56, "D2h^10", "-P 2ac 2bc"      , "P n a a"                        , "P 2/n 2_1/a 2_1/a"  , "Pnaa"      , "cab"  , Bravais::P,  8, 267},
  { 56, "D2h^10", "-P 2bc 2ab"      , "P b n b"                        , "P 2_1/b 2/n 2_1/b"  , "Pbnb"      , "bca"  , Bravais::P,  8, 268},
  { 57, "D2h^11", "-P 2c 2b"        , "P b c m"                        , "P 2/b 2_1/c 2_1/m"  , "Pbcm"      , ""     , Bravais::P,  8, 269},
  { 57, "D2h^11", "-P 2c 2ac"       , "P c a m"                        , "P 2_1/c 2/a 2_1/m"  , "Pcam"      , "ba-c" , Bravais::P,  8, 270},
  { 57, "D2h^11", "-P 2ac 2a"       , "P m c a"                        , "P 2_1/m 2/c 2_1/a"  , "Pmca"      , "cab"  , Bravais::P,  8, 271},
  { 57, "D2h^11", "-P 2b 2a"        , "P m a b"                        , "P 2_1/m 2_1/a 2/b"  , "Pmab"      , "-cba" , Bravais::P,  8, 272},
  { 57, "D2h^11", "-P 2a 2ab"       , "P b m a"                        , "P 2_1/b 2_1/m 2/a"  , "Pbma"      , "bca"  , Bravais::P,  8, 273},
  { 57, "D2h^11", "-P 2bc 2c"       , "P c m b"                        , "P 2/c 2_1/m 2_1/b"  , "Pcmb"      , "a-cb" , Bravais::P,  8, 274},
  { 58, "D2h^12", "-P 2 2n"         , "P n n m"                        , "P 2_1/n 2_1/n 2/m"  , "Pnnm"      , ""     , Bravais::P,  8, 275},
  { 58, "D2h^12", "-P 2n 2"         , "P m n n"                        , "P 2/m 2_1/n 2_1/n"  , "Pmnn"      , "cab"  , Bravais::P,  8, 276},
  { 58, "D2h^12", "-P 2n 2n"        , "P n m n"                        , "P 2_1/n 2/m 2_1/n"  , "Pnmn"      , "bca"  , Bravais::P,  8, 277},
  { 59, "D2h^13", "P 2 2ab -1ab"    , "P m m n"                        , "P 2_1/m 2_1/m 2/n"  , "Pmmn"      , "1"    , Bravais::P,  8, 278},
  { 59, "D2h^13", "-P 2ab 2a"       , "P m m n"                        , "P 2_1/m 2_1/m 2/n"  , "Pmmn"      , "2"    , Bravais::P,  8, 279},
  { 59, "D2h^13", "P 2bc 2 -1bc"    , "P n m m"                        , "P 2/n 2_1/m 2_1/m"  , "Pnmm"      , "1cab" , Bravais::P,  8, 280},
  { 59, "D2h^13", "-P 2c 2bc"       , "P n m m"                        , "P 2/n 2_1/m 2_1/m"  , "Pnmm"      , "2cab" , Bravais::P,  8, 281},
  { 59, "D2h^13", "P 2ac 2ac -1ac"  , "P m n m"                        , "P 2_1/m 2/n 2_1/m"  , "Pmnm"      , "1bca" , Bravais::P,  8, 282},
  { 59, "D2h^13", "-P 2c 2a"        , "P m n m"                        , "P 2_1/m 2/n 2_1/m"  , "Pmnm"      , "2bca" , Bravais::P,  8, 283},
  { 60, "D2h^14", "-P 2n 2ab"       , "P b c n"                        , "P 2_1/b 2/c 2_1/n"  , "Pbcn"      , ""     , Bravais::P,  8, 284},
  { 60, "D2h^14", "-P 2n 2c"        , "P c a n"                        , "P 2/c 2_1/a 2_1/n"  , "Pcan"      , "ba-c" , Bravais::P,  8, 285},
  { 60, "D2h^14", "-P 2a 2n"        , "P n c a"                        , "P 2_1/n 2_1/c 2/a"  , "Pnca"      , "cab"  , Bravais::P,  8, 286},
  { 60, "D2h^14", "-P 2bc 2n"       , "P n a b"                        , "P 2_1/n 2/a 2_1/b"  , "Pnab"      , "-cba" , Bravais::P,  8, 287},
  { 60, "D2h^14", "-P 2ac 2b"       , "P b n a"                        , "P 2/b 2_1/n 2_1/a"  , "Pbna"      , "bca"  , Bravais::P,  8, 288},
  { 60, "D2h^14", "-P 2b 2ac"       , "P c n b"                        , "P 2_1/c 2_1/n 2/b"  , "Pcnb"      , "a-cb" , Bravais::P,  8, 289},
  { 61, "D2h^15", "-P 2ac 2ab"      , "P b c a"                        , "P 2_1/b 2_1/c 2_1/a", "Pbca"      , ""     , Bravais::P,  8, 290},
  { 61, "D2h^15", "-P 2bc 2ac"      , "P c a b"                        , "P 2_1/c 2_1/a 2_1/b", "Pcab"      , "ba-c" , Bravais::P,  8, 291},
  { 62, "D2h^16", "-P 2ac 2n"       , "P n m a"                        , "P 2_1/n 2_1/m 2_1/a", "Pnma"      , ""     , Bravais::P,  8, 292},
  { 62, "D2h^16", "-P 2bc 2a"       , "P m n b"                        , "P 2_1/m 2_1/n 2_1/b", "Pmnb"      , "ba-c" , Bravais::P,  8, 293},
  { 62, "D2h^16", "-P 2c 2ab"       , "P b n m"                        , "P 2_1/b 2_1/n 2_1/m", "Pbnm"      , "cab"  , Bravais::P,  8, 294},
  { 62, "D2h^16", "-P 2n 2ac"       , "P c m n"                        , "P 2_1/c 2_1/m 2_1/n", "Pcmn"      , "-cba" , Bravais::P,  8, 295},
  { 62, "D2h^16", "-P 2n 2a"        , "P m c n"                        , "P 2_1/m 2_1/c 2_1/n", "Pmcn"      , "bca"  , Bravais::P,  8, 296},
  { 62, "D2h^16", "-P 2c 2n"        , "P n a m"                        , "P 2_1/n 2_1/a 2_1/m", "Pnam"      , "a-cb" , Bravais::P,  8, 297},
  { 63, "D2h^17", "-C 2c 2"         , "C m c m"                        , "C 2/m 2/c 2_1/m"    , "Cmcm"      , ""     , Bravais::C,  8, 298},
  { 63, "D2h^17", "-C 2c 2c"        , "C c m m"                        , "C 2/c 2/m 2_1/m"    , "Ccmm"      , "ba-c" , Bravais::C,  8, 299},
  { 63, "D2h^17", "-A 2a 2a"        , "A m m a"                        , "A 2_1/m 2/m 2/a"    , "Amma"      , "cab"  , Bravais::A,  8, 300},
  { 63, "D2h^17", "-A 2 2a"         , "A m a m"                        , "A 2_1/m 2/a 2/m"    , "Amam"      , "-cba" , Bravais::A,  8, 301},
  { 63, "D2h^17", "-B 2 2b"         , "B b m m"                        , "B 2/b 2_1/m 2/m"    , "Bbmm"      , "bca"  , Bravais::P,  8, 302},
  { 63, "D2h^17", "-B 2b 2"         , "B m m b"                        , "B 2/m 2_1/m 2/b"    , "Bmmb"      , "a-cb" , Bravais::P,  8, 303},
  { 64, "D2h^18", "-C 2bc 2"        , "C m c e"                        , "C 2/m 2/c 2_1/e"    , "Cmce"      , ""     , Bravais::C,  8, 304},
  { 64, "D2h^18", "-C 2bc 2bc"      , "C c m e"                        , "C 2/c 2/m 2_1/e"    , "Ccme"      , "ba-c" , Bravais::C,  8, 305},
  { 64, "D2h^18", "-A 2ac 2ac"      , "A e m a"                        , "A 2_1/e 2/m 2/a"    , "Aema"      , "cab"  , Bravais::A,  8, 306},
  { 64, "D2h^18", "-A 2 2ac"        , "A e a m"                        , "A 2_1/e 2/a 2/m"    , "Aeam"      , "-cba" , Bravais::A,  8, 307},
  { 64, "D2h^18", "-B 2 2bc"        , "B b e m"                        , "B 2/b 2_1/e 2/m"    , "Bbem"      , "bca"  , Bravais::P,  8, 308},
  { 64, "D2h^18", "-B 2bc 2"        , "B m e b"                        , "B 2/m 2_1/e 2/b"    , "Bmeb"      , "a-cb" , Bravais::P,  8, 309},
  { 65, "D2h^19", "-C 2 2"          , "C m m m"                        , "C 2/m 2/m 2/m"      , "Cmmm"      , ""     , Bravais::C,  8, 310},
  { 65, "D2h^19", "-A 2 2"          , "A m m m"                        , "A 2/m 2/m 2/m"      , "Ammm"      , "cab"  , Bravais::A,  8, 311},
  { 65, "D2h^19", "-B 2 2"          , "B m m m"                        , "B 2/m 2/m 2/m"      , "Bmmm"      , "bca"  , Bravais::P,  8, 312},
  { 66, "D2h^20", "-C 2 2c"         , "C c c m"                        , "C 2/c 2/c 2/m"      , "Cccm"      , ""     , Bravais::C,  8, 313},
  { 66, "D2h^20", "-A 2a 2"         , "A m a a"                        , "A 2/m 2/a 2/a"      , "Amaa"      , "cab"  , Bravais::A,  8, 314},
  { 66, "D2h^20", "-B 2b 2b"        , "B b m b"                        , "B 2/b 2/m 2/b"      , "Bbmb"      , "bca"  , Bravais::P,  8, 315},
  { 67, "D2h^21", "-C 2b 2"         , "C m m e"                        , "C 2/m 2/m 2/e"      , "Cmme"      , ""     , Bravais::C,  8, 316},
  { 67, "D2h^21", "-C 2b 2b"        , "C m m e"                        , "C 2/m 2/m 2/e"      , "Cmme"      , "ba-c" , Bravais::C,  8, 317},
  { 67, "D2h^21", "-A 2c 2c"        , "A e m m"                        , "A 2/e 2/m 2/m"      , "Aemm"      , "cab"  , Bravais::A,  8, 318},
  { 67, "D2h^21", "-A 2 2c"         , "A e m m"                        , "A 2/e 2/m 2/m"      , "Aemm"      , "-cba" , Bravais::A,  8, 319},
  { 67, "D2h^21", "-B 2 2c"         , "B m e m"                        , "B 2/m 2/e 2/m"      , "Bmem"      , "bca"  , Bravais::P,  8, 320},
  { 67, "D2h^21", "-B 2c 2"         , "B m e m"                        , "B 2/m 2/e 2/m"      , "Bmem"      , "a-cb" , Bravais::P,  8, 321},
  { 68, "D2h^22", "C 2 2 -1bc"      , "C c c e"                        , "C 2/c 2/c 2/e"      , "Ccce"      , "1"    , Bravais::C,  8, 322},
  { 68, "D2h^22", "-C 2b 2bc"       , "C c c e"                        , "C 2/c 2/c 2/e"      , "Ccce"      , "2"    , Bravais::C,  8, 323},
  { 68, "D2h^22", "C 2 2 -1bc"      , "C c c e"                        , "C 2/c 2/c 2/e"      , "Ccce"      , "1ba-c", Bravais::C,  8, 324},
  { 68, "D2h^22", "-C 2b 2c"        , "C c c e"                        , "C 2/c 2/c 2/e"      , "Ccce"      , "2ba-c", Bravais::C,  8, 325},
  { 68, "D2h^22", "A 2 2 -1ac"      , "A e a a"                        , "A 2/e 2/a 2/a"      , "Aeaa"      , "1cab" , Bravais::A,  8, 326},
  { 68, "D2h^22", "-A 2a 2c"        , "A e a a"                        , "A 2/e 2/a 2/a"      , "Aeaa"      , "2cab" , Bravais::A,  8, 327},
  { 68, "D2h^22", "A 2 2 -1ac"      , "A e a a"                        , "A 2/e 2/a 2/a"      , "Aeaa"      , "1-cba", Bravais::A,  8, 328},
  { 68, "D2h^22", "-A 2ac 2c"       , "A e a a"                        , "A 2/e 2/a 2/a"      , "Aeaa"      , "2-cba", Bravais::A,  8, 329},
  { 68, "D2h^22", "B 2 2 -1bc"      , "B b e b"                        , "B 2/b 2/e 2/b"      , "Bbeb"      , "1bca" , Bravais::P,  8, 330},
  { 68, "D2h^22", "-B 2bc 2b"       , "B b c b"                        , "B 2/b 2/e 2/b"      , "Bbcb"      , "2bca" , Bravais::P,  8, 331},
  { 68, "D2h^22", "B 2 2 -1bc"      , "B b e b"                        , "B 2/b 2/e 2/b"      , "Bbeb"      , "1a-cb", Bravais::P,  8, 332},
  { 68, "D2h^22", "-B 2b 2bc"       , "B b e b"                        , "B 2/b 2/e 2/b"      , "Bbeb"      , "2a-cb", Bravais::P,  8, 333},
  { 69, "D2h^23", "-F 2 2"          , "F m m m"                        , "F 2/m 2/m 2/m"      , "Fmmm"      , ""     , Bravais::F,  8, 334},
  { 70, "D2h^24", "F 2 2 -1d"       , "F d d d"                        , "F 2/d 2/d 2/d"      , "Fddd"      , "1"    , Bravais::F,  8, 335},
  { 70, "D2h^24", "-F 2uv 2vw"      , "F d d d"                        , "F 2/d 2/d 2/d"      , "Fddd"      , "2"    , Bravais::F,  8, 336},
  { 71, "D2h^25", "-I 2 2"          , "I m m m"                        , "I 2/m 2/m 2/m"      , "Immm"      , ""     , Bravais::I,  8, 337},
  { 72, "D2h^26", "-I 2 2c"         , "I b a m"                        , "I 2/b 2/a 2/m"      , "Ibam"      , ""     , Bravais::I,  8, 338},
  { 72, "D2h^26", "-I 2a 2"         , "I m c b"                        , "I 2/m 2/c 2/b"      , "Imcb"      , "cab"  , Bravais::I,  8, 339},
  { 72, "D2h^26", "-I 2b 2b"        , "I c m a"                        , "I 2/c 2/m 2/a"      , "Icma"      , "bca"  , Bravais::I,  8, 340},
  { 73, "D2h^27", "-I 2b 2c"        , "I b c a"                        , "I 2/b 2/c 2/a"      , "Ibca"      , ""     , Bravais::I,  8, 341},
  { 73, "D2h^27", "-I 2a 2b"        , "I c a b"                        , "I 2/c 2/a 2/b"      , "Icab"      , "ba-c" , Bravais::I,  8, 342},
  { 74, "D2h^28", "-I 2b 2"         , "I m m a"                        , "I 2/m 2/m 2/a"      , "Imma"      , ""     , Bravais::I,  8, 343},
  { 74, "D2h^28", "-I 2a 2a"        , "I m m b"                        , "I 2/m 2/m 2/b"      , "Immb"      , "ba-c" , Bravais::I,  8, 344},
  { 74, "D2h^28", "-I 2c 2c"        , "I b m m"                        , "I 2/b 2/m 2/m"      , "Ibmm"      , "cab"  , Bravais::I,  8, 345},
  { 74, "D2h^28", "-I 2 2b"         , "I c m m"                        , "I 2/c 2/m 2/m"      , "Icmm"      , "-cba" , Bravais::I,  8, 346},
  { 74, "D2h^28", "-I 2 2a"         , "I m c m"                        , "I 2/m 2/c 2/m"      , "Imcm"      , "bca"  , Bravais::I,  8, 347},
  { 74, "D2h^28", "-I 2c 2"         , "I m a m"                        , "I 2/m 2/a 2/m"      , "Imam"      , "a-cb" , Bravais::I,  8, 348},
  { 75, "C4^1"  , "P 4"             , "P 4"                            , "P 4"                , "P4"        , ""     , Bravais::P,  9, 349},
  { 76, "C4^2"  , "P 4w"            , "P 4_1"                          , "P 4_1"              , "P4_1"      , ""     , Bravais::P,  9, 350},
  { 77, "C4^3"  , "P 4c"            , "P 4_2"                          , "P 4_2"              , "P4_2"      , ""     , Bravais::P,  9, 351},
  { 78, "C4^4"  , "P 4cw"           , "P 4_3"                          , "P 4_3"              , "P4_3"      , ""     , Bravais::P,  9, 352},
  { 79, "C4^5"  , "I 4"             , "I 4"                            , "I 4"                , "I4"        , ""     , Bravais::I,  9, 353},
  { 80, "C4^6"  , "I 4bw"           , "I 4_1"                          , "I 4_1"              , "I4_1"      , ""     , Bravais::I,  9, 354},
  { 81, "S4^1"  , "P -4"            , "P -4"                           , "P -4"               , "P-4"       , ""     , Bravais::P, 10, 355},
  { 82, "S4^2"  , "I -4"            , "I -4"                           , "I -4"               , "I-4"       , ""     , Bravais::I, 10, 356},
  { 83, "C4h^1" , "-P 4"            , "P 4/m"                          , "P 4/m"              , "P4/m"      , ""     , Bravais::P, 11, 357},
  { 84, "C4h^2" , "-P 4c"           , "P 4_2/m"                        , "P 4_2/m"            , "P4_2/m"    , ""     , Bravais::P, 11, 358},
  { 85, "C4h^3" , "P 4ab -1ab"      , "P 4/n"                          , "P 4/n"              , "P4/n"      , "1"    , Bravais::P, 11, 359},
  { 85, "C4h^3" , "-P 4a"           , "P 4/n"                          , "P 4/n"              , "P4/n"      , "2"    , Bravais::P, 11, 360},
  { 86, "C4h^4" , "P 4n -1n"        , "P 4_2/n"                        , "P 4_2/n"            , "P4_2/n"    , "1"    , Bravais::P, 11, 361},
  { 86, "C4h^4" , "-P 4bc"          , "P 4_2/n"                        , "P 4_2/n"            , "P4_2/n"    , "2"    , Bravais::P, 11, 362},
  { 87, "C4h^5" , "-I 4"            , "I 4/m"                          , "I 4/m"              , "I4/m"      , ""     , Bravais::I, 11, 363},
  { 88, "C4h^6" , "I 4bw -1bw"      , "I 4_1/a"                        , "I 4_1/a"            , "I4_1/a"    , "1"    , Bravais::I, 11, 364},
  { 88, "C4h^6" , "-I 4ad"          , "I 4_1/a"                        , "I 4_1/a"            , "I4_1/a"    , "2"    , Bravais::I, 11, 365},
  { 89, "D4^1"  , "P 4 2"           , "P 4 2 2"                        , "P 4 2 2"            , "P422"      , ""     , Bravais::P, 12, 366},
  { 90, "D4^2"  , "P 4ab 2ab"       , "P 4 2_1 2"                      , "P 4 2_1 2"          , "P42_12"    , ""     , Bravais::P, 12, 367},
  { 91, "D4^3"  , "P 4w 2c"         , "P 4_1 2 2"                      , "P 4_1 2 2"          , "P4_122"    , ""     , Bravais::P, 12, 368},
  { 92, "D4^4"  , "P 4abw 2nw"      , "P 4_1 2_1 2"                    , "P 4_1 2_1 2"        , "P4_12_12"  , ""     , Bravais::P, 12, 369},
  { 93, "D4^5"  , "P 4c 2"          , "P 4_2 2 2"                      , "P 4_2 2 2"          , "P4_222"    , ""     , Bravais::P, 12, 370},
  { 94, "D4^6"  , "P 4n 2n"         , "P 4_2 2_1 2"                    , "P 4_2 2_1 2"        , "P4_22_12"  , ""     , Bravais::P, 12, 371},
  { 95, "D4^7"  , "P 4cw 2c"        , "P 4_3 2 2"                      , "P 4_3 2 2"          , "P4_322"    , ""     , Bravais::P, 12, 372},
  { 96, "D4^8"  , "P 4nw 2abw"      , "P 4_3 2_1 2"                    , "P 4_3 2_1 2"        , "P4_32_12"  , ""     , Bravais::P, 12, 373},
  { 97, "D4^9"  , "I 4 2"           , "I 4 2 2"                        , "I 4 2 2"            , "I422"      , ""     , Bravais::I, 12, 374},
  { 98, "D4^10" , "I 4bw 2bw"       , "I 4_1 2 2"                      , "I 4_1 2 2"          , "I4_122"    , ""     , Bravais::I, 12, 375},
  { 99, "C4v^1" , "P 4 -2"          , "P 4 m m"                        , "P 4 m m"            , "P4mm"      , ""     , Bravais::P, 13, 376},
  {100, "C4v^2" , "P 4 -2ab"        , "P 4 b m"                        , "P 4 b m"            , "P4bm"      , ""     , Bravais::P, 13, 377},
  {101, "C4v^3" , "P 4c -2c"        , "P 4_2 c m"                      , "P 4_2 c m"          , "P4_2cm"    , ""     , Bravais::P, 13, 378},
  {102, "C4v^4" , "P 4n -2n"        , "P 4_2 n m"                      , "P 4_2 n m"          , "P4_2nm"    , ""     , Bravais::P, 13, 379},
  {103, "C4v^5" , "P 4 -2c"         , "P 4 c c"                        , "P 4 c c"            , "P4cc"      , ""     , Bravais::P, 13, 380},
  {104, "C4v^6" , "P 4 -2n"         , "P 4 n c"                        , "P 4 n c"            , "P4nc"      , ""     , Bravais::P, 13, 381},
  {105, "C4v^7" , "P 4c -2"         , "P 4_2 m c"                      , "P 4_2 m c"          , "P4_2mc"    , ""     , Bravais::P, 13, 382},
  {106, "C4v^8" , "P 4c -2ab"       , "P 4_2 b c"                      , "P 4_2 b c"          , "P4_2bc"    , ""     , Bravais::P, 13, 383},
  {107, "C4v^9" , "I 4 -2"          , "I 4 m m"                        , "I 4 m m"            , "I4mm"      , ""     , Bravais::I, 13, 384},
  {108, "C4v^10", "I 4 -2c"         , "I 4 c m"                        , "I 4 c m"            , "I4cm"      , ""     , Bravais::I, 13, 385},
  {109, "C4v^11", "I 4bw -2"        , "I 4_1 m d"                      , "I 4_1 m d"          , "I4_1md"    , ""     , Bravais::I, 13, 386},
  {110, "C4v^12", "I 4bw -2c"       , "I 4_1 c d"                      , "I 4_1 c d"          , "I4_1cd"    , ""     , Bravais::I, 13, 387},
  {111, "D2d^1" , "P -4 2"          , "P -4 2 m"                       , "P -4 2 m"           , "P-42m"     , ""     , Bravais::P, 14, 388},
  {112, "D2d^2" , "P -4 2c"         , "P -4 2 c"                       , "P -4 2 c"           , "P-42c"     , ""     , Bravais::P, 14, 389},
  {113, "D2d^3" , "P -4 2ab"        , "P -4 2_1 m"                     , "P -4 2_1 m"         , "P-42_1m"   , ""     , Bravais::P, 14, 390},
  {114, "D2d^4" , "P -4 2n"         , "P -4 2_1 c"                     , "P -4 2_1 c"         , "P-42_1c"   , ""     , Bravais::P, 14, 391},
  {115, "D2d^5" , "P -4 -2"         , "P -4 m 2"                       , "P -4 m 2"           , "P-4m2"     , ""     , Bravais::P, 14, 392},
  {116, "D2d^6" , "P -4 -2c"        , "P -4 c 2"                       , "P -4 c 2"           , "P-4c2"     , ""     , Bravais::P, 14, 393},
  {117, "D2d^7" , "P -4 -2ab"       , "P -4 b 2"                       , "P -4 b 2"           , "P-4b2"     , ""     , Bravais::P, 14, 394},
  {118, "D2d^8" , "P -4 -2n"        , "P -4 n 2"                       , "P -4 n 2"           , "P-4n2"     , ""     , Bravais::P, 14, 395},
  {119, "D2d^9" , "I -4 -2"         , "I -4 m 2"                       , "I -4 m 2"           , "I-4m2"     , ""     , Bravais::I, 14, 396},
  {120, "D2d^10", "I -4 -2c"        , "I -4 c 2"                       , "I -4 c 2"           , "I-4c2"     , ""     , Bravais::I, 14, 397},
  {121, "D2d^11", "I -4 2"          , "I -4 2 m"                       , "I -4 2 m"           , "I-42m"     , ""     , Bravais::I, 14, 398},
  {122, "D2d^12", "I -4 2bw"        , "I -4 2 d"                       , "I -4 2 d"           , "I-42d"     , ""     , Bravais::I, 14, 399},
  {123, "D4h^1" , "-P 4 2"          , "P 4/m m m"                      , "P 4/m 2/m 2/m"      , "P4/mmm"    , ""     , Bravais::P, 15, 400},
  {124, "D4h^2" , "-P 4 2c"         , "P 4/m c c"                      , "P 4/m 2/c 2/c"      , "P4/mcc"    , ""     , Bravais::P, 15, 401},
  {125, "D4h^3" , "P 4 2 -1ab"      , "P 4/n b m"                      , "P 4/n 2/b 2/m"      , "P4/nbm"    , "1"    , Bravais::P, 15, 402},
  {125, "D4h^3" , "-P 4a 2b"        , "P 4/n b m"                      , "P 4/n 2/b 2/m"      , "P4/nbm"    , "2"    , Bravais::P, 15, 403},
  {126, "D4h^4" , "P 4 2 -1n"       , "P 4/n n c"                      , "P 4/n 2/n 2/c"      , "P4/nnc"    , "1"    , Bravais::P, 15, 404},
  {126, "D4h^4" , "-P 4a 2bc"       , "P 4/n n c"                      , "P 4/n 2/n 2/c"      , "P4/nnc"    , "2"    , Bravais::P, 15, 405},
  {127, "D4h^5" , "-P 4 2ab"        , "P 4/m b m"                      , "P 4/m 2_1/b m"      , "P4/mbm"    , ""     , Bravais::P, 15, 406},
  {128, "D4h^6" , "-P 4 2n"         , "P 4/m n c"                      , "P 4/m 2_1/n c"      , "P4/mnc"    , ""     , Bravais::P, 15, 407},
  {129, "D4h^7" , "P 4ab 2ab -1ab"  , "P 4/n m m"                      , "P 4/n 2_1/m m"      , "P4/nmm"    , "1"    , Bravais::P, 15, 408},
  {129, "D4h^7" , "-P 4a 2a"        , "P 4/n m m"                      , "P 4/n 2_1/m m"      , "P4/nmm"    , "2"    , Bravais::P, 15, 409},
  {130, "D4h^8" , "P 4ab 2n -1ab"   , "P 4/n c c"                      , "P 4/n 2_1/c c"      , "P4/ncc"    , "1"    , Bravais::P, 15, 410},
  {130, "D4h^8" , "-P 4a 2ac"       , "P 4/n c c"                      , "P 4/n 2_1/c c"      , "P4/ncc"    , "2"    , Bravais::P, 15, 411},
  {131, "D4h^9" , "-P 4c 2"         , "P 4_2/m m c"                    , "P 4_2/m 2/m 2/c"    , "P4_2/mmc"  , ""     , Bravais::P, 15, 412},
  {132, "D4h^10", "-P 4c 2c"        , "P 4_2/m c m"                    , "P 4_2/m 2/c 2/m"    , "P4_2/mcm"  , ""     , Bravais::P, 15, 413},
  {133, "D4h^11", "P 4n 2c -1n"     , "P 4_2/n b c"                    , "P 4_2/n 2/b 2/c"    , "P4_2/nbc"  , "1"    , Bravais::P, 15, 414},
  {133, "D4h^11", "-P 4ac 2b"       , "P 4_2/n b c"                    , "P 4_2/n 2/b 2/c"    , "P4_2/nbc"  , "2"    , Bravais::P, 15, 415},
  {134, "D4h^12", "P 4n 2 -1n"      , "P 4_2/n n m"                    , "P 4_2/n 2/n 2/m"    , "P4_2/nnm"  , "1"    , Bravais::P, 15, 416},
  {134, "D4h^12", "-P 4ac 2bc"      , "P 4_2/n n m"                    , "P 4_2/n 2/n 2/m"    , "P4_2/nnm"  , "2"    , Bravais::P, 15, 417},
  {135, "D4h^13", "-P 4c 2ab"       , "P 4_2/m b c"                    , "P 4_2/m 2_1/b 2/c"  , "P4_2/mbc"  , ""     , Bravais::P, 15, 418},
  {136, "D4h^14", "-P 4n 2n"        , "P 4_2/m n m"                    , "P 4_2/m 2_1/n 2/m"  , "P4_2/mnm"  , ""     , Bravais::P, 15, 419},
  {137, "D4h^15", "P 4n 2n -1n"     , "P 4_2/n m c"                    , "P 4_2/n 2_1/m 2/c"  , "P4_2/nmc"  , "1"    , Bravais::P, 15, 420},
  {137, "D4h^15", "-P 4ac 2a"       , "P 4_2/n m c"                    , "P 4_2/n 2_1/m 2/c"  , "P4_2/nmc"  , "2"    , Bravais::P, 15, 421},
  {138, "D4h^16", "P 4n 2ab -1n"    , "P 4_2/n c m"                    , "P 4_2/n 2_1/c 2/m"  , "P4_2/ncm"  , "1"    , Bravais::P, 15, 422},
  {138, "D4h^16", "-P 4ac 2ac"      , "P 4_2/n c m"                    , "P 4_2/n 2_1/c 2/m"  , "P4_2/ncm"  , "2"    , Bravais::P, 15, 423},
  {139, "D4h^17", "-I 4 2"          , "I 4/m m m"                      , "I 4/m 2/m 2/m"      , "I4/mmm"    , ""     , Bravais::I, 15, 424},
  {140, "D4h^18", "-I 4 2c"         , "I 4/m c m"                      , "I 4/m 2/c 2/m"      , "I4/mcm"    , ""     , Bravais::I, 15, 425},
  {141, "D4h^19", "I 4bw 2bw -1bw"  , "I 4_1/a m d"                    , "I 4_1/a 2/m 2/d"    , "I4_1/amd"  , "1"    , Bravais::I, 15, 426},
  {141, "D4h^19", "-I 4bd 2"        , "I 4_1/a m d"                    , "I 4_1/a 2/m 2/d"    , "I4_1/amd"  , "2"    , Bravais::I, 15, 427},
  {142, "D4h^20", "I 4bw 2aw -1bw"  , "I 4_1/a c d"                    , "I 4_1/a 2/c 2/d"    , "I4_1/acd"  , "1"    , Bravais::I, 15, 428},
  {142, "D4h^20", "-I 4bd 2c"       , "I 4_1/a c d"                    , "I 4_1/a 2/c 2/d"    , "I4_1/acd"  , "2"    , Bravais::I, 15, 429},
  {143, "C3^1"  , "P 3"             , "P 3"                            , "P 3"                , "P3"        , ""     , Bravais::P, 16, 430},
  {144, "C3^2"  , "P 31"            , "P 3_1"                          , "P 3_1"              , "P3_1"      , ""     , Bravais::P, 16, 431},
  {145, "C3^3"  , "P 32"            , "P 3_2"                          , "P 3_2"              , "P3_2"      , ""     , Bravais::P, 16, 432},
  {146, "C3^4"  , "R 3"             , "R 3"                            , "R 3"                , "R3"        , "H"    , Bravais::R, 16, 433},
  {146, "C3^4"  , "P 3*"            , "R 3"                            , "R 3"                , "R3"        , "R"    , Bravais::P, 16, 434},
  {147, "C3i^1" , "-P 3"            , "P -3"                           , "P -3"               , "P-3"       , ""     , Bravais::P, 17, 435},
  {148, "C3i^2" , "-R 3"            , "R -3"                           , "R -3"               , "R-3"       , "H"    , Bravais::R, 17, 436},
  {148, "C3i^2" , "-P 3*"           , "R -3"                           , "R -3"               , "R-3"       , "R"    , Bravais::P, 17, 437},
  {149, "D3^1"  , "P 3 2"           , "P 3 1 2"                        , "P 3 1 2"            , "P312"      , ""     , Bravais::P, 18, 438},
  {150, "D3^2"  , "P 3 2\""         , "P 3 2 1"                        , "P 3 2 1"            , "P321"      , ""     , Bravais::P, 18, 439},
  {151, "D3^3"  , "P 31 2c (0 0 1)" , "P 3_1 1 2"                      , "P 3_1 1 2"          , "P3_112"    , ""     , Bravais::P, 18, 440},
  {152, "D3^4"  , "P 31 2\""        , "P 3_1 2 1"                      , "P 3_1 2 1"          , "P3_121"    , ""     , Bravais::P, 18, 441},
  {153, "D3^5"  , "P 32 2c (0 0 -1)", "P 3_2 1 2"                      , "P 3_2 1 2"          , "P3_212"    , ""     , Bravais::P, 18, 442},
  {154, "D3^6"  , "P 32 2\""        , "P 3_2 2 1"                      , "P 3_2 2 1"          , "P3_221"    , ""     , Bravais::P, 18, 443},
  {155, "D3^7"  , "R 3 2\""         , "R 3 2"                          , "R 3 2"              , "R32"       , "H"    , Bravais::R, 18, 444},
  {155, "D3^7"  , "P 3* 2"          , "R 3 2"                          , "R 3 2"              , "R32"       , "R"    , Bravais::P, 18, 445},
  {156, "C3v^1" , "P 3 -2\""        , "P 3 m 1"                        , "P 3 m 1"            , "P3m1"      , ""     , Bravais::P, 19, 446},
  {157, "C3v^2" , "P 3 -2"          , "P 3 1 m"                        , "P 3 1 m"            , "P31m"      , ""     , Bravais::P, 19, 447},
  {158, "C3v^3" , "P 3 -2\"c"       , "P 3 c 1"                        , "P 3 c 1"            , "P3c1"      , ""     , Bravais::P, 19, 448},
  {159, "C3v^4" , "P 3 -2c"         , "P 3 1 c"                        , "P 3 1 c"            , "P31c"      , ""     , Bravais::P, 19, 449},
  {160, "C3v^5" , "R 3 -2\""        , "R 3 m"                          , "R 3 m"              , "R3m"       , "H"    , Bravais::R, 19, 450},
  {160, "C3v^5" , "P 3* -2"         , "R 3 m"                          , "R 3 m"              , "R3m"       , "R"    , Bravais::P, 19, 451},
  {161, "C3v^6" , "R 3 -2\"c"       , "R 3 c"                          , "R 3 c"              , "R3c"       , "H"    , Bravais::R, 19, 452},
  {161, "C3v^6" , "P 3* -2n"        , "R 3 c"                          , "R 3 c"              , "R3c"       , "R"    , Bravais::P, 19, 453},
  {162, "D3d^1" , "-P 3 2"          , "P -3 1 m"                       , "P -3 1 2/m"         , "P-31m"     , ""     , Bravais::P, 20, 454},
  {163, "D3d^2" , "-P 3 2c"         , "P -3 1 c"                       , "P -3 1 2/c"         , "P-31c"     , ""     , Bravais::P, 20, 455},
  {164, "D3d^3" , "-P 3 2\""        , "P -3 m 1"                       , "P -3 2/m 1"         , "P-3m1"     , ""     , Bravais::P, 20, 456},
  {165, "D3d^4" , "-P 3 2\"c"       , "P -3 c 1"                       , "P -3 2/c 1"         , "P-3c1"     , ""     , Bravais::P, 20, 457},
  {166, "D3d^5" , "-R 3 2\""        , "R -3 m"                         , "R -3 2/m"           , "R-3m"      , "H"    , Bravais::R, 20, 458},
  {166, "D3d^5" , "-P 3* 2"         , "R -3 m"                         , "R -3 2/m"           , "R-3m"      , "R"    , Bravais::P, 20, 459},
  {167, "D3d^6" , "-R 3 2\"c"       , "R -3 c"                         , "R -3 2/c"           , "R-3c"      , "H"    , Bravais::R, 20, 460},
  {167, "D3d^6" , "-P 3* 2n"        , "R -3 c"                         , "R -3 2/c"           , "R-3c"      , "R"    , Bravais::P, 20, 461},
  {168, "C6^1"  , "P 6"             , "P 6"                            , "P 6"                , "P6"        , ""     , Bravais::P, 21, 462},
  {169, "C6^2"  , "P 61"            , "P 6_1"                          , "P 6_1"              , "P6_1"      , ""     , Bravais::P, 21, 463},
  {170, "C6^3"  , "P 65"            , "P 6_5"                          , "P 6_5"              , "P6_5"      , ""     , Bravais::P, 21, 464},
  {171, "C6^4"  , "P 62"            , "P 6_2"                          , "P 6_2"              , "P6_2"      , ""     , Bravais::P, 21, 465},
  {172, "C6^5"  , "P 64"            , "P 6_4"                          , "P 6_4"              , "P6_4"      , ""     , Bravais::P, 21, 466},
  {173, "C6^6"  , "P 6c"            , "P 6_3"                          , "P 6_3"              , "P6_3"      , ""     , Bravais::P, 21, 467},
  {174, "C3h^1" , "P -6"            , "P -6"                           , "P -6"               , "P-6"       , ""     , Bravais::P, 22, 468},
  {175, "C6h^1" , "-P 6"            , "P 6/m"                          , "P 6/m"              , "P6/m"      , ""     , Bravais::P, 23, 469},
  {176, "C6h^2" , "-P 6c"           , "P 6_3/m"                        , "P 6_3/m"            , "P6_3/m"    , ""     , Bravais::P, 23, 470},
  {177, "D6^1"  , "P 6 2"           , "P 6 2 2"                        , "P 6 2 2"            , "P622"      , ""     , Bravais::P, 24, 471},
  {178, "D6^2"  , "P 61 2 (0 0 -1)" , "P 6_1 2 2"                      , "P 6_1 2 2"          , "P6_122"    , ""     , Bravais::P, 24, 472},
  {179, "D6^3"  , "P 65 2 (0 0 1)"  , "P 6_5 2 2"                      , "P 6_5 2 2"          , "P6_522"    , ""     , Bravais::P, 24, 473},
  {180, "D6^4"  , "P 62 2c (0 0 1)" , "P 6_2 2 2"                      , "P 6_2 2 2"          , "P6_222"    , ""     , Bravais::P, 24, 474},
  {181, "D6^5"  , "P 64 2c (0 0 -1)", "P 6_4 2 2"                      , "P 6_4 2 2"          , "P6_422"    , ""     , Bravais::P, 24, 475},
  {182, "D6^6"  , "P 6c 2c"         , "P 6_3 2 2"                      , "P 6_3 2 2"          , "P6_322"    , ""     , Bravais::P, 24, 476},
  {183, "C6v^1" , "P 6 -2"          , "P 6 m m"                        , "P 6 m m"            , "P6mm"      , ""     , Bravais::P, 25, 477},
  {184, "C6v^2" , "P 6 -2c"         , "P 6 c c"                        , "P 6 c c"            , "P6cc"      , ""     , Bravais::P, 25, 478},
  {185, "C6v^3" , "P 6c -2"         , "P 6_3 c m"                      , "P 6_3 c m"          , "P6_3cm"    , ""     , Bravais::P, 25, 479},
  {186, "C6v^4" , "P 6c -2c"        , "P 6_3 m c"                      , "P 6_3 m c"          , "P6_3mc"    , ""     , Bravais::P, 25, 480},
  {187, "D3h^1" , "P -6 2"          , "P -6 m 2"                       , "P -6 m 2"           , "P-6m2"     , ""     , Bravais::P, 26, 481},
  {188, "D3h^2" , "P -6c 2"         , "P -6 c 2"                       , "P -6 c 2"           , "P-6c2"     , ""     , Bravais::P, 26, 482},
  {189, "D3h^3" , "P -6 -2"         , "P -6 2 m"                       , "P -6 2 m"           , "P-62m"     , ""     , Bravais::P, 26, 483},
  {190, "D3h^4" , "P -6c -2c"       , "P -6 2 c"                       , "P -6 2 c"           , "P-62c"     , ""     , Bravais::P, 26, 484},
  {191, "D6h^1" , "-P 6 2"          , "P 6/m m m"                      , "P 6/m 2/m 2/m"      , "P6/mmm"    , ""     , Bravais::P, 27, 485},
  {192, "D6h^2" , "-P 6 2c"         , "P 6/m c c"                      , "P 6/m 2/c 2/c"      , "P6/mcc"    , ""     , Bravais::P, 27, 486},
  {193, "D6h^3" , "-P 6c 2"         , "P 6_3/m c m"                    , "P 6_3/m 2/c 2/m"    , "P6_3/mcm"  , ""     , Bravais::P, 27, 487},
  {194, "D6h^4" , "-P 6c 2c"        , "P 6_3/m m c"                    , "P 6_3/m 2/m 2/c"    , "P6_3/mmc"  , ""     , Bravais::P, 27, 488},
  {195, "T^1"   , "P 2 2 3"         , "P 2 3"                          , "P 2 3"              , "P23"       , ""     , Bravais::P, 28, 489},
  {196, "T^2"   , "F 2 2 3"         , "F 2 3"                          , "F 2 3"              , "F23"       , ""     , Bravais::F, 28, 490},
  {197, "T^3"   , "I 2 2 3"         , "I 2 3"                          , "I 2 3"              , "I23"       , ""     , Bravais::I, 28, 491},
  {198, "T^4"   , "P 2ac 2ab 3"     , "P 2_1 3"                        , "P 2_1 3"            , "P2_13"     , ""     , Bravais::P, 28, 492},
  {199, "T^5"   , "I 2b 2c 3"       , "I 2_1 3"                        , "I 2_1 3"            , "I2_13"     , ""     , Bravais::I, 28, 493},
  {200, "Th^1"  , "-P 2 2 3"        , "P m -3"                         , "P 2/m -3"           , "Pm-3"      , ""     , Bravais::P, 29, 494},
  {201, "Th^2"  , "P 2 2 3 -1n"     , "P n -3"                         , "P 2/n -3"           , "Pn-3"      , "1"    , Bravais::P, 29, 495},
  {201, "Th^2"  , "-P 2ab 2bc 3"    , "P n -3"                         , "P 2/n -3"           , "Pn-3"      , "2"    , Bravais::P, 29, 496},
  {202, "Th^3"  , "-F 2 2 3"        , "F m -3"                         , "F 2/m -3"           , "Fm-3"      , ""     , Bravais::F, 29, 497},
  {203, "Th^4"  , "F 2 2 3 -1d"     , "F d -3"                         , "F 2/d -3"           , "Fd-3"      , "1"    , Bravais::F, 29, 498},
  {203, "Th^4"  , "-F 2uv 2vw 3"    , "F d -3"                         , "F 2/d -3"           , "Fd-3"      , "2"    , Bravais::F, 29, 499},
  {204, "Th^5"  , "-I 2 2 3"        , "I m -3"                         , "I 2/m -3"           , "Im-3"      , ""     , Bravais::I, 29, 500},
  {205, "Th^6"  , "-P 2ac 2ab 3"    , "P a -3"                         , "P 2_1/a -3"         , "Pa-3"      , ""     , Bravais::P, 29, 501},
  {206, "Th^7"  , "-I 2b 2c 3"      , "I a -3"                         , "I 2_1/a -3"         , "Ia-3"      , ""     , Bravais::I, 29, 502},
  {207, "O^1"   , "P 4 2 3"         , "P 4 3 2"                        , "P 4 3 2"            , "P432"      , ""     , Bravais::P, 30, 503},
  {208, "O^2"   , "P 4n 2 3"        , "P 4_2 3 2"                      , "P 4_2 3 2"          , "P4_232"    , ""     , Bravais::P, 30, 504},
  {209, "O^3"   , "F 4 2 3"         , "F 4 3 2"                        , "F 4 3 2"            , "F432"      , ""     , Bravais::F, 30, 505},
  {210, "O^4"   , "F 4d 2 3"        , "F 4_1 3 2"                      , "F 4_1 3 2"          , "F4_132"    , ""     , Bravais::F, 30, 506},
  {211, "O^5"   , "I 4 2 3"         , "I 4 3 2"                        , "I 4 3 2"            , "I432"      , ""     , Bravais::I, 30, 507},
  {212, "O^6"   , "P 4acd 2ab 3"    , "P 4_3 3 2"                      , "P 4_3 3 2"          , "P4_332"    , ""     , Bravais::P, 30, 508},
  {213, "O^7"   , "P 4bd 2ab 3"     , "P 4_1 3 2"                      , "P 4_1 3 2"          , "P4_132"    , ""     , Bravais::P, 30, 509},
  {214, "O^8"   , "I 4bd 2c 3"      , "I 4_1 3 2"                      , "I 4_1 3 2"          , "I4_132"    , ""     , Bravais::I, 30, 510},
  {215, "Td^1"  , "P -4 2 3"        , "P -4 3 m"                       , "P -4 3 m"           , "P-43m"     , ""     , Bravais::P, 31, 511},
  {216, "Td^2"  , "F -4 2 3"        , "F -4 3 m"                       , "F -4 3 m"           , "F-43m"     , ""     , Bravais::F, 31, 512},
  {217, "Td^3"  , "I -4 2 3"        , "I -4 3 m"                       , "I -4 3 m"           , "I-43m"     , ""     , Bravais::I, 31, 513},
  {218, "Td^4"  , "P -4n 2 3"       , "P -4 3 n"                       , "P -4 3 n"           , "P-43n"     , ""     , Bravais::P, 31, 514},
  {219, "Td^5"  , "F -4c 2 3"       , "F -4 3 c"                       , "F -4 3 c"           , "F-43c"     , ""     , Bravais::F, 31, 515},
  {220, "Td^6"  , "I -4bd 2c 3"     , "I -4 3 d"                       , "I -4 3 d"           , "I-43d"     , ""     , Bravais::I, 31, 516},
  {221, "Oh^1"  , "-P 4 2 3"        , "P m -3 m"                       , "P 4/m -3 2/m"       , "Pm-3m"     , ""     , Bravais::P, 32, 517},
  {222, "Oh^2"  , "P 4 2 3 -1n"     , "P n -3 n"                       , "P 4/n -3 2/n"       , "Pn-3n"     , "1"    , Bravais::P, 32, 518},
  {222, "Oh^2"  , "-P 4a 2bc 3"     , "P n -3 n"                       , "P 4/n -3 2/n"       , "Pn-3n"     , "2"    , Bravais::P, 32, 519},
  {223, "Oh^3"  , "-P 4n 2 3"       , "P m -3 n"                       , "P 4_2/m -3 2/n"     , "Pm-3n"     , ""     , Bravais::P, 32, 520},
  {224, "Oh^4"  , "P 4n 2 3 -1n"    , "P n -3 m"                       , "P 4_2/n -3 2/m"     , "Pn-3m"     , "1"    , Bravais::P, 32, 521},
  {224, "Oh^4"  , "-P 4bc 2bc 3"    , "P n -3 m"                       , "P 4_2/n -3 2/m"     , "Pn-3m"     , "2"    , Bravais::P, 32, 522},
  {225, "Oh^5"  , "-F 4 2 3"        , "F m -3 m"                       , "F 4/m -3 2/m"       , "Fm-3m"     , ""     , Bravais::F, 32, 523},
  {226, "Oh^6"  , "-F 4c 2 3"       , "F m -3 c"                       , "F 4/m -3 2/c"       , "Fm-3c"     , ""     , Bravais::F, 32, 524},
  {227, "Oh^7"  , "F 4d 2 3 -1d"    , "F d -3 m"                       , "F 4_1/d -3 2/m"     , "Fd-3m"     , "1"    , Bravais::F, 32, 525},
  {227, "Oh^7"  , "-F 4vw 2vw 3"    , "F d -3 m"                       , "F 4_1/d -3 2/m"     , "Fd-3m"     , "2"    , Bravais::F, 32, 526},
  {228, "Oh^8"  , "F 4d 2 3 -1cd"   , "F d -3 c"                       , "F 4_1/d -3 2/c"     , "Fd-3c"     , "1"    , Bravais::F, 32, 527},
  {228, "Oh^8"  , "-F 4cvw 2vw 3"   , "F d -3 c"                       , "F 4_1/d -3 2/c"     , "Fd-3c"     , "2"    , Bravais::F, 32, 528},
  {229, "Oh^9"  , "-I 4 2 3"        , "I m -3 m"                       , "I 4/m -3 2/m"       , "Im-3m"     , ""     , Bravais::I, 32, 529},
  {230, "Oh^10" , "-I 4bd 2c 3"     , "I a -3 d"                       , "I 4_1/a -3 2/d"     , "Ia-3d"     , ""     , Bravais::I, 32, 530},
};

bool brille::hall_number_ok(const int h) {return h>0 && h<531;}

int brille::international_number_to_hall_number(const int n, const std::string& c){
    if (n>=0 && n<230) for (int i=1; i<531; i++){
        Spacegroup spg(ALL_SPACEGROUPS[i]);
    if (n==spg.number && (0==c.size() || 0==c.compare(spg.choice))) return i;
    }
    return -1;
}

int brille::international_string_to_hall_number(const std::string& n, const std::string& c){
  for (int i=1; i<531; i++) {
      Spacegroup spg(ALL_SPACEGROUPS[i]);
      // now check for matching international table names
    if( (0==c.size() || 0==c.compare(spg.choice)) &&
        (  0==n.compare(spg.international)
        || 0==n.compare(spg.international_full)
        || 0==n.compare(spg.international_short))
      ) return i;
  }
  return 0; // no matching strings
}

int brille::hall_symbol_to_hall_number(const std::string& hsymbol){
  for (int i=1; i<531; i++){
    Spacegroup spg(ALL_SPACEGROUPS[i]);
    // only accept exact matches
    if (0==hsymbol.compare(spg.hall_symbol)) return i;
  }
  return 0; // no exact matches
}

// When we don't know if we're searching for a Hall Symbol or
// International Table Name/Symbol search for either, starting with Hall symbols
int brille::string_to_hall_number(const std::string& str, const std::string& ch){
  int tmp = brille::hall_symbol_to_hall_number(str);
  if (!tmp) tmp = brille::international_string_to_hall_number(str, ch);
  return tmp;
}

void Spacegroup::set_from_hall_number(const int hn){
  Spacegroup spg(ALL_SPACEGROUPS[brille::hall_number_ok(hn) ? hn : 0]);
  this->number              = spg.number;
  this->schoenflies         = spg.schoenflies;
  this->hall_symbol         = spg.hall_symbol;
  this->international       = spg.international;
  this->international_full  = spg.international_full;
  this->international_short = spg.international_short;
  this->choice              = spg.choice;
  this->bravais             = spg.bravais;
  this->pointgroup_number   = spg.pointgroup_number;
  this->hall_number         = spg.hall_number;
}
Symmetry Spacegroup::get_spacegroup_symmetry() const {
  HallSymbol hs(this->hall_symbol);
  Symmetry generators = hs.get_generators();
  Symmetry fullsym = generators.generate();
  return fullsym;
}
PointSymmetry Spacegroup::get_pointgroup_symmetry(const int time_reversal) const{
  Symmetry sym = this->get_spacegroup_symmetry();
  std::vector<std::array<int,9>> uniqrots = get_unique_rotations(sym.getallr(), time_reversal);
  return PointSymmetry(uniqrots);
}