59     if (dim0 == 0 && dim1 == 0) {
 
   61       if (entity0 == 0 && entity1 == 0) {
 
   64       else if (entity0 == 0 && entity1 == 1) {
 
   67       else if (entity0 == 1 && entity1 == 0) {
 
   70       else if (entity0 == 1 && entity1 == 1) {
 
   74         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
   75                             "Intrepid::ProductTopology::lineProduct2D: illegal inputs" );
 
   78     else if (dim0 == 0 && dim1 == 1) {
 
   80       if (entity0 == 0 && entity1 == 0) {
 
   83       else if (entity0 == 1 && entity1 == 0) {
 
   87         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
   88                             "Intrepid::ProductTopology::lineProduct2D: illegal inputs" );
 
   91     else if (dim0 == 1 && dim1 == 0) {
 
   93       if (entity0 == 0 && entity1 == 0) {
 
   96       else if (entity0 == 0 && entity1 == 1) {
 
  100         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
  101                             "Intrepid::ProductTopology::lineProduct2D: illegal inputs" );
 
  104     else if (dim0 == 1 && dim1 == 1) {
 
  106       if (entity0 == 0 && entity1 == 0) {
 
  110         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
  111                             "Intrepid::ProductTopology::lineProduct2D: illegal inputs" );
 
  115       TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
  116                           "Intrepid::ProductTopology::lineProduct2D: illegal inputs" );
 
  131     if (dim0 == 0 && dim1 == 0 && dim2 == 0) {
 
  133       if (entity0 == 0 && entity1 == 0 && entity2 == 0 ) {
 
  136       else if (entity0 == 0 && entity1 == 0 && entity2 == 1 ) {
 
  139       else if (entity0 == 0 && entity1 == 1 && entity2 == 0 ) {
 
  142       else if (entity0 == 0 && entity1 == 1 && entity2 == 1 ) {
 
  145       else if (entity0 == 1 && entity1 == 0 && entity2 == 0) {
 
  148       else if (entity0 == 1 && entity1 == 0 && entity2 == 1) {
 
  151       else if (entity0 == 1 && entity1 == 1 && entity2 == 0) {
 
  154       else if (entity0 == 1 && entity1 == 1 && entity2 == 1) {
 
  158         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
  159                             "Intrepid::ProductTopology::lineProduct3D: illegal inputs" );
 
  164     else if (dim0 == 0 && dim1 == 0 && dim2 == 1) {
 
  166       if (entity0 == 0 && entity1 == 0 && entity2 == 0) {
 
  169       else if (entity0 == 0 && entity1 == 1 && entity2 == 0) {
 
  172       else if (entity0 == 1 && entity1 == 0 && entity2 == 0) {
 
  175       else if (entity0 == 1 && entity1 == 1 && entity2 == 0) {
 
  179         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
  180                             "Intrepid::ProductTopology::lineProduct3D: illegal inputs" );
 
  184     else if (dim0 == 0 && dim1 == 1 && dim2 == 0) {
 
  186       if (entity0 == 0 && entity1 == 0 && entity2 == 0) {
 
  189       else if (entity0 == 0 && entity1 == 0 && entity2 == 1) {
 
  192       else if (entity0 == 1 && entity1 == 0 && entity2 == 0) {
 
  195       else if (entity0 == 1 && entity1 == 0 && entity2 == 1) {
 
  199         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
  200                             "Intrepid::ProductTopology::lineProduct3D: illegal inputs" );
 
  204     else if (dim0 == 1 && dim1 == 0 && dim2 == 0) {
 
  206       if (entity0 == 0 && entity1 == 0 && entity2 == 0) {
 
  209       else if (entity0 == 0 && entity1 == 0 && entity2 == 1) {
 
  212       else if (entity0 == 0 && entity1 == 1 && entity2 == 0) {
 
  215       else if (entity0 == 0 && entity1 == 1 && entity2 == 1) {
 
  219         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
  220                             "Intrepid::ProductTopology::lineProduct3D: illegal inputs" );
 
  224     else if (dim0 == 0 && dim1 == 1 && dim2 == 1) {
 
  226       if (entity0 == 0 && entity1 == 0 && entity2 == 0) { 
 
  229       else if (entity0 == 1 && entity1 == 0 && entity2 == 0) { 
 
  233         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
  234                             "Intrepid::ProductTopology::lineProduct3D: illegal inputs" );
 
  237     else if (dim0 == 1 && dim1 == 0 && dim2 == 1) {
 
  239       if (entity0 == 0 && entity1 == 0 && entity2 == 0) { 
 
  242       else if (entity0 == 0 && entity1 == 1 && entity2 == 0) { 
 
  246         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
  247                             "Intrepid::ProductTopology::lineProduct3D: illegal inputs" );
 
  250     else if (dim0 == 1 && dim1 == 1 && dim2 == 0) {
 
  252       if (entity0 == 0 && entity1 == 0 && entity2 == 0) { 
 
  255       else if (entity0 == 0 && entity1 == 0 && entity2 == 1) { 
 
  259         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
  260                             "Intrepid::ProductTopology::lineProduct3D: illegal inputs" );
 
  264     else if (dim0 == 1 && dim1 == 1 && dim2 == 1) {
 
  266       if (entity0 == 0 && entity1 == 0 && entity2 == 0) {
 
  270         TEUCHOS_TEST_FOR_EXCEPTION( 
true , std::invalid_argument ,
 
  271                             "Intrepid::ProductTopology::lineProduct3D: illegal inputs" );
 
static void lineProduct2d(const int dim0, const int entity0, const int dim1, const int entity1, int &resultdim, int &resultentity)
static void lineProduct3d(const int dim0, const int entity0, const int dim1, const int entity1, const int dim2, const int entity2, int &resultdim, int &resultentity)