{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "This notebook is part of the `clifford` documentation: https://clifford.readthedocs.io/." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Quick Start (G2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook gives a terse introduction to using the `clifford` module, using a two-dimensional geometric algebra as the context." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setup" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, import clifford and instantiate a two-dimensional algebra (G2)," ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import clifford as cf\n", "\n", "layout, blades = cf.Cl(2) # creates a 2-dimensional clifford algebra" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Inspect blades." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "blades " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assign blades to variables" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "e1 = blades['e1']\n", "e2 = blades['e2']\n", "e12 = blades['e12']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basics" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "e1*e2 # geometric product" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "e1|e2 # inner product " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "e1^e2 # outer product" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reflection " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = e1+e2 # the vector\n", "n = e1 # the reflector\n", "-n*a*n.inv() # reflect `a` in hyperplane normal to `n`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Rotation" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from math import e, pi\n", "\n", "R = e**(pi/4*e12) # enacts rotation by pi/2 \n", "R" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "R*e1*~R # rotate e1 by pi/2 in the e12-plane" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.0" } }, "nbformat": 4, "nbformat_minor": 1 }