C++Now 2014 has ended
Please visit the C++Now website.
Tuesday, May 13 • 2:30pm - 4:00pm
Generic Programming of Generic Spaces: Compile-Time Geometric Algebra with C++11

Log in to save this to your schedule and see who's attending!

This hands-on graphics session will explore compile-time synthesis of n-dimensional geometries and spaces using a lightweight C++11 library called Versor, a case study in the strength of template meta-programming for generating combinatoric complexity.  Templates for constructing geometries (affine, projective, conformal, or experimental) are delineated at compile time through nimble use of variadic template programming and constant expressions.  In particular, we propose novel techniques for listing, sorting, and evaluating geometric algebras during compilation as part of a unique optimization strategy and a potentially new Boost library for n-dimensional computing.  

Discussion will be encouraged to help develop these techniques as we explore basic C++11 features to illustrate the logic of geometric algebra.   Both interactive and visual, we will examine the marriage of generic programming techniques with generic spatial computing, allowing for a dimensional fluidity of expression.  From 2D through to 4D and above, efficient implementations of concepts from group theory, vector, matrix, tensor and lie algebras can be tied to specific idioms of C++11. These function spaces have a wide range of applications in a diverse set of fields, from material science to quantum computation.  An example of videos created with this approach can be seen at vimeo.com/wolftype.  More information about Versor is available at versor.mat.ucsb.edu.

avatar for Pablo Colapinto

Pablo Colapinto

UCSB, AlloSphere Research Group
Pablo Colapinto is a video artist and computer scientist specializing in geometric algebra.  He is pursuing a PhD from the Media Art and Technology Program at UC Santa Barbara, having received a bachelor's degree in Visual and Environmental Studies from Harvard University in 2000... Read More →

Tuesday May 13, 2014 2:30pm - 4:00pm

Attendees (0)