Gaalop (Geometic Algebra Algorithms Optimizer) is a software to compile and optimize geometric algebra (GA) expressions into high-level programming language code. Geometric algebra expressions can be developed using the freely available CLUCalc software by Christian Perwass. Gaalop optimizes CLUCalc expressions and produces C++ (AMP), OpenCL, CU…
Switch branches/tags
gaalop_v2.1.9 gaalop_v2.1.1 gaalop_precompiler-v1.0.188 gaalop_precompiler-v1.0.181 gaalop_precompiler-v1.0.177 gaalop_precompiler-v1.0.173 gaalop_precompiler-v1.0.172 gaalop_precompiler-v1.0.171 gaalop_precompiler-v1.0.170 gaalop_precompiler-v1.0.169 gaalop_precompiler-v1.0.168 gaalop_precompiler-v1.0.167 gaalop_precompiler-v1.0.166 gaalop_precompiler-v1.0.165 gaalop_precompiler-v1.0.164 gaalop_precompiler-v1.0.163 gaalop_precompiler-v1.0.162 gaalop_precompiler-v1.0.161 gaalop_precompiler-v1.0.160 gaalop_precompiler-v1.0.159 gaalop_precompiler-v1.0.158 gaalop_precompiler-v1.0.157 gaalop_precompiler-v1.0.156 gaalop_precompiler-v1.0.155 gaalop_precompiler-v1.0.154 gaalop_precompiler-v1.0.153 gaalop_precompiler-v1.0.152 gaalop_precompiler-v1.0.151 gaalop_precompiler-v1.0.150 gaalop_precompiler-v1.0.149 gaalop_precompiler-v1.0.148 gaalop_precompiler-v1.0.147 gaalop_precompiler-v1.0.146 gaalop_precompiler-v1.0.145 gaalop_precompiler-v1.0.144 gaalop_precompiler-v1.0.143 gaalop_precompiler-v1.0.142 gaalop_precompiler-v1.0.141 gaalop_precompiler-v1.0.140 gaalop_precompiler-v1.0.139 gaalop_precompiler-v1.0.138 gaalop_precompiler-v1.0.137 gaalop_precompiler-v1.0.136 gaalop_precompiler-v1.0.135 gaalop_precompiler-v1.0.134 gaalop_precompiler-v1.0.133 gaalop_precompiler-v1.0.132 gaalop_precompiler-v1.0.131 gaalop_precompiler-v1.0.130 gaalop_precompiler-v1.0.129 gaalop_precompiler-v1.0.128 gaalop_precompiler-v1.0.127 gaalop_precompiler-v1.0.126 gaalop_precompiler-v1.0.125 gaalop_precompiler-v1.0.124 gaalop_precompiler-v1.0.123 gaalop_precompiler-v1.0.122 gaalop_precompiler-v1.0.121 gaalop_precompiler-v1.0.120 gaalop_precompiler-v1.0.119 gaalop_precompiler-v1.0.118 gaalop_precompiler-v1.0.117 gaalop_precompiler-v1.0.116 gaalop_precompiler-v1.0.115 gaalop_precompiler-v1.0.114
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.settings
additionalJars
algebra
api
cli
clucalc
codegen-compressed
codegen-cpp
codegen-dot
codegen-gapp
codegen-gappopencl
codegen-java
codegen-latex
codegen-verilog
codegen-vis2d
codegen-visualizer
gaalet
gapp
gappDebugger
globalSettings
gui
javaProductComputer
maple
setup
src/assemble
starter
startupscripts
tba
testbench
testbenchTbaGapp
visualCodeInserter
visualCodeInserter2d
.gitignore
.project
.travis.yml
Apache Commons License.txt
HowTo-Codegen.docx
HowTo-Codegen.pdf
LICENSE
README.md
README.txt
VERSIONING_SCHEME.txt
appveyor.yml
buildGaloop.bat
cliffordoptimization.mw
nb-configuration.xml
nbactions.xml
pom.xml
resumeBuildGaalop.bat

README.md

Linux Build Status Windows Build status

Gaalop

Gaalop (Geometic Algebra Algorithms Optimizer) is a software to compile and optimize geometric algebra (GA) expressions into high-level programming language code. Geometric algebra expressions can be developed using the freely available CLUCalc software by Christian Perwass. Gaalop optimizes CLUCalc expressions and produces C++ (AMP), OpenCL, CUDA, CLUCalc or LaTeX output. The optimized code is free of geometric algebra operations and runs very efficiently on various platforms.

What is Geometric Algebra?

This is probably best explained in this article: https://slehar.wordpress.com/2014/03/18/clifford-algebra-a-visual-introduction/ or this book: http://www.amazon.de/Foundations-Geometric-Algebra-Computing-Geometry/dp/3642317936

Gaalop Precompiler (GPC)

Note that this repository also contains Gaalop Precompiler (GPC) in the branch gaalop_precompiler. GPC integrates Gaalop directly into CMake-generated C/C++-toolchains. Gaalop Precompiler reuses most of the code of Gaalop which is why merges from Gaalop are required quite often.

#License The code of both projects is licensed under the Apache license.

Contributions

Contributions are welcome. Please fork or ask for direct commit access to the repo.

Used Sources and Licences

package de.gaalop.productComputer. BubbleSort Source: http://de.wikipedia.org/wiki/Bubblesort#Formaler%20Algorithmus

package de.gaalop.productComputer.GAMethods public static float canonicalReorderingSign(Blade a_p, Blade b, int bitCount) “This method is taken from the dissertation of Daniel Fontijne - Efficient Implementation of Geometric Algebra” package de.gaalop.visualizer.engines.lwjgl.recording. AnimatedGifEncoder No copyright asserted on the source code of this class. May be used for any

  • purpose, however, refer to the Unisys LZW patent for restrictions on use of
  • the associated LZWEncoder class. Please forward any corrections to
  • kweiner@fmsware.com.
  • @author Kevin Weiner, FM Software
  • @version 1.03 November 2003

de.gaalop.visualizer.ia_math.* /**

  • IAMath.java
  • -- classes implementing interval arithmetic versions
  •  of the arithmetic and elementary functions,
    
  •  as part of the "ia_math library" version 0.1beta1, 10/97
    
  • Copyright (C) 2000 Timothy J. Hickey
  • License: zlib/png
  • the class IAMath contains methods for performing basic
  • arithmetic operations on intervals. Currently the
  • elementary functions rely on the underlying implementation
  • which uses the netlib fdlibm library. The resulting code
  • is therefore probably unsound for the transcendental functions. */

Weitere Bibliotheken, die genutzt werden

Antlr, [BSD] antlr-runtime, [BSD] args4j, [MIT] commons-beanutils, [Apache] jdom, [Apache-style open source license] jna, [This library is licensed under the LGPL, version 2.1 or later, and (from version 4.0 onward) the Apache Software License, version 2.0. Commercial license arrangements are negotiable.] lwjgl, [BSD] lwjgl_util, [BSD] stringtemplate [BSD] Maven [Apache?]