bool checkSubStandardDSLQ0( const DSL & D,
                            const typename DSL::Point & A, 
                            const typename DSL::Point & B ) 
{
  
  
  DSL S = D.smartDSS( A, B );
  // std::cout << D.a() << " " << D.b() << " " << D.mu() << " "
  //           << S.a() << " " << S.b() << " " << S.mu() << " "
  //           << A[0] << " " << A[1] << " " << B[0] << " " << B[1]
  //           << std::endl;
  return true;
}
bool checkSubStandardDSLQ0( const DSL & D,
                            const typename DSL::Point & A, 
                            const typename DSL::Point & B ) 
{
  typedef typename DSL::Fraction Fraction;
  typedef typename DSL::Integer Integer;
  typedef typename DSL::Quotient Quotient;
  typedef typename DSL::Point Point;
  typedef typename DSL::ConstIterator ConstIterator;
  typedef typename DSL::Point2I Point2I;
  typedef typename DSL::Vector2I Vector2I;

  DSL S = D.smartDSS( A, B );
  std::cout << D.a() << " " << D.b() << " " << D.mu() << " "
            << S.a() << " " << S.b() << " " << S.mu() << " "
            << A[0] << " " << A[1] << " " << B[0] << " " << B[1]
            << std::endl;
  return true;
}