From 03deea5dd666f3355be7d0ecba6b5290da6ffd2e Mon Sep 17 00:00:00 2001 From: Brandon Flores Date: Wed, 28 Aug 2024 15:42:27 -0500 Subject: [PATCH] Expanded on design goals --- docs/src/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/src/index.md b/docs/src/index.md index 18dc16e..46f9e9c 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -16,5 +16,6 @@ The goal of this package is to provide a multivector implementation that: - Provides data structures of fixed sizes that represent multivectors. This allows for instances to be allocated on the stack or stored inline in an `Array` rather than as pointers to individually allocated instances. - Provides dense representations of multivectors, as well as convenient sparse representations, which can be constructed from each other, converted in a way that guarantees representability, and allows for promotion between instances. - Subtypes `Number`: The term "Clifford number" emphasizes the perspective of multivectors as an extension of the real numbers, in the same way that complex numbers and quaternions extend them. (It should be noted that both complex numbers and quaternions are Clifford algebras themselves!) -- Aggressively optimizes all mathematical operations, utilizing `fma` operations and SIMD instructions whenever possible. +- Aggressively optimizes all mathematical operations, utilizing `fma` operations and SIMD instructions whenever possible, but without sacrificing numerical precision. - Interoperates with automatic differentiation tools and other packages which allow for the implementation of operations from geometric calculus. +- Allows Julia to be used as a calculator for geometric algebra.