/* Copyright (c) 1997-2004 Ewgenij Gawrilow, Michael Joswig (Technische Universitaet Berlin, Germany) http://www.math.tu-berlin.de/polymake, mailto:polymake@math.tu-berlin.de This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version: http://www.gnu.org/licenses/gpl.txt. This program 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 General Public License for more details. */ #ifndef _POLYMAKE_BISECTOR_H #define _POLYMAKE_BISECTOR_H "$Project: polymake $$Id: bisector.h 4714 2004-06-22 16:23:15Z gawrilow $" #include #include #include #include namespace polymake { namespace polytope { /** Compute approximately the bisector hyperplane * * @param F1, F2 side hyperplanes of the angle * @param V point on the ridge */ template Vector bisector(const GenericVector& F1, const GenericVector& F2, const GenericVector& V) { Vector f1(F1), f2(F2); f1[0]=0.; f2[0]=0.; Vector F_bisector(f1/(2.0*sqrt(sqr(f1))) + f2/(2.0*sqrt(sqr(f2)))); F_bisector[0]=-F_bisector*V; return F_bisector; } } } #endif // _POLYMAKE_BISECTOR_H // Local Variables: // mode:C++ // c-basic-offset:3 // End: