summaryrefslogtreecommitdiff
path: root/geometry/formulars.cpp
diff options
context:
space:
mode:
authorGloria Mundi <gloria@gloria-mundi.eu>2024-04-15 02:41:45 +0200
committerGloria Mundi <gloria@gloria-mundi.eu>2024-04-15 02:41:45 +0200
commit2e0ba29cd0de1e88bed78a96f587613bcf3cc97c (patch)
tree58d9c66487fe3fd5ab1d4224f06917f8d5546141 /geometry/formulars.cpp
parent5f915f9035e0ff713b80a66be4f7e8407711acfe (diff)
typo fixes
Diffstat (limited to 'geometry/formulars.cpp')
-rw-r--r--geometry/formulars.cpp42
1 files changed, 0 insertions, 42 deletions
diff --git a/geometry/formulars.cpp b/geometry/formulars.cpp
deleted file mode 100644
index e34b3c6..0000000
--- a/geometry/formulars.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// Komplexe Zahlen als Punkte. Wenn immer möglich complex<ll>
-// verwenden. Funktionen wie abs() geben dann aber ll zurück.
-using pt = complex<double>;
-
-constexpr double PIU = acos(-1.0l); // PIL < PI < PIU
-constexpr double PIL = PIU-2e-19l;
-
-// Winkel zwischen Punkt und x-Achse in [-PI, PI].
-double angle(pt a) {return arg(a);}
-
-// rotiert Punkt im Uhrzeigersinn um den Ursprung.
-pt rotate(pt a, double theta) {return a * polar(1.0, theta);}
-
-// Skalarprodukt.
-double dot(pt a, pt b) {return real(conj(a) * b);}
-
-// abs()^2.(pre c++20)
-double norm(pt a) {return dot(a, a);}
-
-// Kreuzprodukt, 0, falls kollinear.
-double cross(pt a, pt b) {return imag(conj(a) * b);}
-double cross(pt p, pt a, pt b) {return cross(a - p, b - p);}
-
-// 1 => c links von a->b
-// 0 => a, b und c kolliniear
-// -1 => c rechts von a->b
-int orientation(pt a, pt b, pt c) {
- double orien = cross(b - a, c - a);
- return (orien > EPS) - (orien < -EPS);
-}
-
-// Liegt d in der gleichen Ebene wie a, b, und c?
-bool isCoplanar(pt a, pt b, pt c, pt d) {
- return abs((b - a) * (c - a) * (d - a)) < EPS;
-}
-
-// identifiziert winkel zwischen Vektoren u und v
-pt uniqueAngle(pt u, pt v) {
- pt tmp = v * conj(u);
- ll g = abs(gcd(real(tmp), imag(tmp)));
- return tmp / g;
-}