# Programming Language Support for Geometric Computations

### Mark Gordon Segal

###
EECS Department

University of California, Berkeley

Technical Report No. UCB/CSD-90-557

January 1990

### http://www.eecs.berkeley.edu/Pubs/TechRpts/1990/CSD-90-557.pdf

Implementing an algorithm that computes the values of geometric quantities has required their translation into explicit coordinate arrays comprehensible in an appropriate computer language. The simplicity and intuition inherent in the mathematical expression of geometric objects is lost in a profusion of coordinates rendering programs difficult to implement, understand, and debug.

This problem is overcome by providing a set of programming language constructs based on geometric objects rather than their coordinate representations. These objects and operations on them are adapted from standard mathematical usage. The actual coordinate computations are hidden and carried out automatically, resulting in a concise program looking much like its mathematical counterpart.

These constructs are suitable for programming a range of geometric computations. Examples show their use in the calculations of linear geometry, computer graphics, finite element analysis, relativistic kinematics and robotics.

A compiler for the language constructs can check geometric expression syntax and semantics. It can also recognize special operators and operands (diagonal or sparse matrices, for instance) so that unnecessary and possibly inaccurate floating-point operations are automatically avoided. Calls to a runtime package actually carry out the operations on representations of geometric objects. The issues involved in writing such a compiler and its associated runtime package are discussed.

A preliminary implementation is presented and the prospects for its generalization assessed.

**Advisor:** Carlo H. Séquin

BibTeX citation:

@phdthesis{Segal:CSD-90-557, Author = {Segal, Mark Gordon}, Title = {Programming Language Support for Geometric Computations}, School = {EECS Department, University of California, Berkeley}, Year = {1990}, Month = {Jan}, URL = {http://www.eecs.berkeley.edu/Pubs/TechRpts/1990/6173.html}, Number = {UCB/CSD-90-557}, Abstract = {Implementing an algorithm that computes the values of geometric quantities has required their translation into explicit coordinate arrays comprehensible in an appropriate computer language. The simplicity and intuition inherent in the mathematical expression of geometric objects is lost in a profusion of coordinates rendering programs difficult to implement, understand, and debug. <p>This problem is overcome by providing a set of programming language constructs based on geometric objects rather than their coordinate representations. These objects and operations on them are adapted from standard mathematical usage. The actual coordinate computations are hidden and carried out automatically, resulting in a concise program looking much like its mathematical counterpart. <p>These constructs are suitable for programming a range of geometric computations. Examples show their use in the calculations of linear geometry, computer graphics, finite element analysis, relativistic kinematics and robotics. <p>A compiler for the language constructs can check geometric expression syntax and semantics. It can also recognize special operators and operands (diagonal or sparse matrices, for instance) so that unnecessary and possibly inaccurate floating-point operations are automatically avoided. Calls to a runtime package actually carry out the operations on representations of geometric objects. The issues involved in writing such a compiler and its associated runtime package are discussed. <p>A preliminary implementation is presented and the prospects for its generalization assessed.} }

EndNote citation:

%0 Thesis %A Segal, Mark Gordon %T Programming Language Support for Geometric Computations %I EECS Department, University of California, Berkeley %D 1990 %@ UCB/CSD-90-557 %U http://www.eecs.berkeley.edu/Pubs/TechRpts/1990/6173.html %F Segal:CSD-90-557