# svn commit: r496085 - in head/science: . py-geometer

Sunpoet Po-Chuan Hsieh sunpoet at FreeBSD.org
Sun Mar 17 18:21:42 UTC 2019

```Author: sunpoet
Date: Sun Mar 17 18:21:39 2019
New Revision: 496085
URL: https://svnweb.freebsd.org/changeset/ports/496085

Log:

Geometer is a geometry library for Python 3 that uses projective geometry and
numpy for fast geometric computation. In projective geometry every point in 2D
is represented by a three-dimensional vector and every point in 3D is
represented by a four-dimensional vector. This has the following advantages:

There are points at infinity that can be treated just like normal points.
- Projective transformations are described by matrices but they can also
represent affine transformations i.e. also translations.
- Every two lines have a unique point of intersection if they lie in the same
plane. Parallel lines have a point of intersection at infinity.
- Points of intersection, planes or lines through given points can be calculated
using simple cross products or tensor diagrams.
- Special complex points at infinity and cross ratios can be used to calculate
angles and to construct perpendicular geometric structures.
- Most of the computation in the library done via tensor diagrams (using
numpy.einsum).

WWW: https://github.com/jan-mue/geometer

Modified:

==============================================================================
--- head/science/Makefile	Sun Mar 17 18:21:33 2019	(r496084)
+++ head/science/Makefile	Sun Mar 17 18:21:39 2019	(r496085)
@@ -226,6 +226,7 @@
SUBDIR += py-chempy
SUBDIR += py-coards
SUBDIR += py-dlib
+    SUBDIR += py-geometer
SUBDIR += py-gpaw
SUBDIR += py-gsd
SUBDIR += py-h5py

==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/science/py-geometer/Makefile	Sun Mar 17 18:21:39 2019	(r496085)
@@ -0,0 +1,24 @@
+# Created by: Po-Chuan Hsieh <sunpoet at FreeBSD.org>
+# \$FreeBSD\$
+
+PORTNAME=	geometer
+PORTVERSION=	0.1.2
+CATEGORIES=	science python
+MASTER_SITES=	CHEESESHOP
+PKGNAMEPREFIX=	\${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	sunpoet at FreeBSD.org
+COMMENT=	Python geometry package based on projective geometry and numpy
+
+
+RUN_DEPENDS=	\${PYTHON_PKGNAMEPREFIX}numpy>=1.15:math/py-numpy@\${PY_FLAVOR} \
+		\${PYTHON_PKGNAMEPREFIX}sympy>=1.3:math/py-sympy@\${PY_FLAVOR}
+
+USES=		python:3.5+
+USE_PYTHON=	autoplist distutils
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>

==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/science/py-geometer/distinfo	Sun Mar 17 18:21:39 2019	(r496085)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1552844109
+SHA256 (geometer-0.1.2.tar.gz) = 03c3db58809e512da38f5d3c225642b2ab595a795329a9647e38d8cf4d4f2621
+SIZE (geometer-0.1.2.tar.gz) = 19422

==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/science/py-geometer/pkg-descr	Sun Mar 17 18:21:39 2019	(r496085)
@@ -0,0 +1,18 @@
+Geometer is a geometry library for Python 3 that uses projective geometry and
+numpy for fast geometric computation. In projective geometry every point in 2D
+is represented by a three-dimensional vector and every point in 3D is
+represented by a four-dimensional vector. This has the following advantages:
+
+There are points at infinity that can be treated just like normal points.
+- Projective transformations are described by matrices but they can also
+  represent affine transformations i.e. also translations.
+- Every two lines have a unique point of intersection if they lie in the same
+  plane. Parallel lines have a point of intersection at infinity.
+- Points of intersection, planes or lines through given points can be calculated
+  using simple cross products or tensor diagrams.
+- Special complex points at infinity and cross ratios can be used to calculate
+  angles and to construct perpendicular geometric structures.
+- Most of the computation in the library done via tensor diagrams (using
+  numpy.einsum).
+
+WWW: https://github.com/jan-mue/geometer
```