diff --git a/.travis.yml b/.travis.yml index 235f52f..ac2c800 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,3 +14,12 @@ notifications: email: false after_success: - julia -e 'using Pkg; Pkg.add("Coverage"); using Coverage; Codecov.submit(process_folder()); Coveralls.submit(process_folder())' +jobs: + include: + - stage: "Documentation" + julia: 1.3 + os: linux + script: + - julia --project=docs/ -e 'using Pkg; Pkg.add("Documenter"); Pkg.develop(PackageSpec(path=pwd()))' + - julia --project=docs/ docs/make.jl + after_success: skip diff --git a/docs/make.jl b/docs/make.jl new file mode 100644 index 0000000..8ee7255 --- /dev/null +++ b/docs/make.jl @@ -0,0 +1,24 @@ +# This file is part of Grassmann.jl. It is licensed under the GPL license +# Grassmann Copyright (C) 2019 Michael Reed + +using Documenter, Grassmann + +makedocs( + # options + modules = [Grassmann], + doctest = false, + format = Documenter.HTML(prettyurls = get(ENV, "CI", nothing) == "true"), + sitename = "Grassmann.jl", + authors = "Michael Reed", + pages = Any[ + "Home" => "index.md", + "Library" => "library.md" + ] +) + +deploydocs( + repo = "github.com/chakravala/Reduce.jl.git", + target = "build", + deps = nothing, + make = nothing +) diff --git a/docs/src/index.md b/docs/src/index.md new file mode 100644 index 0000000..9bcef29 --- /dev/null +++ b/docs/src/index.md @@ -0,0 +1,27 @@ +# Grassmann.jl + +*⟨Leibniz-Grassmann-Clifford-Hestenes⟩ differential geometric algebra / multivector simplicial complex* + +[![Build Status](https://travis-ci.org/chakravala/Grassmann.jl.svg?branch=master)](https://travis-ci.org/chakravala/Grassmann.jl) +[![Build status](https://ci.appveyor.com/api/projects/status/c36u0rgtm2rjcquk?svg=true)](https://ci.appveyor.com/project/chakravala/grassmann-jl) +[![Coverage Status](https://coveralls.io/repos/chakravala/Grassmann.jl/badge.svg?branch=master&service=github)](https://coveralls.io/github/chakravala/Grassmann.jl?branch=master) +[![codecov.io](http://codecov.io/github/chakravala/Grassmann.jl/coverage.svg?branch=master)](http://codecov.io/github/chakravala/Grassmann.jl?branch=master) +[![Gitter](https://badges.gitter.im/Grassmann-jl/community.svg)](https://gitter.im/Grassmann-jl/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![Liberapay patrons](https://img.shields.io/liberapay/patrons/chakravala.svg)](https://liberapay.com/chakravala) + +The [Grassmann.jl](https://github.com/chakravala/Grassmann.jl) package provides tools for doing computations based on multi-linear algebra, differential geometry, and spin groups using the extended tensor algebra known as Leibniz-Grassmann-Clifford-Hestenes geometric algebra. +Combinatorial products include `∧, ∨, ⋅, *, ⋆, ', ~, ∂` (which are the exterior, regressive, inner, and geometric products; along with the Hodge star, adjoint, reversal, and boundary operators). +The kernelized operations are built up from composite sparse tensor products and Hodge duality, with high dimensional support for up to 62 indices using staged caching and precompilation. Code generation enables concise yet highly extensible definitions. +The [DirectSum.jl](https://github.com/chakravala/DirectSum.jl) multivector parametric type polymorphism is based on tangent bundle vector spaces and conformal projective geometry to make the dispatch highly extensible for many applications. +Additionally, the universal interoperability between different sub-algebras is enabled by [AbstractTensors.jl](https://github.com/chakravala/AbstractTensors.jl), on which the type system is built. + +[![YouTube](https://img.shields.io/badge/JuliaCon%202019-YouTube-red)](https://www.youtube.com/watch?v=eQjDN0JQ6-s) +[![DropBox](https://img.shields.io/badge/download_PDF-DropBox-blue.svg)](https://www.dropbox.com/sh/tphh6anw0qwija4/AAACiaXig5djrLVAKLPFmGV-a/Geometric-Algebra?preview=grassmann-juliacon-2019.pdf) +[![DOI](https://zenodo.org/badge/101519786.svg)](https://zenodo.org/badge/latestdoi/101519786) +[![BiVector](https://img.shields.io/badge/bivector.net-Discourse-blueviolet)](https://bivector.net) + +```@contents +Pages = ["index.md","library.md","docs.md"] +``` + + diff --git a/docs/src/library.md b/docs/src/library.md new file mode 100644 index 0000000..7ac3ef0 --- /dev/null +++ b/docs/src/library.md @@ -0,0 +1,39 @@ +# Grassmann.jl Library + +```@contents +Pages = ["index.md","library.md"] +``` + +## Index + +```@index +Pages = ["library.md"] +``` + +## Grassmann Interface + +```@docs +Grassmann.complementrighthodge +``` + +```@docs +Grassmann.complementlefthodge +``` + +```@docs +Grassmann.reverse +``` + +```@docs +Grassmann.involute +``` + +```@docs +Grassmann.:∧ +``` + +```@docs +Grassmann.:∨ +``` + +etc, ... diff --git a/src/algebra.jl b/src/algebra.jl index b9245b8..c458645 100644 --- a/src/algebra.jl +++ b/src/algebra.jl @@ -327,13 +327,13 @@ for side ∈ (:left,:right) end @doc """ - complementright(ω::TensorAlgebra) + complementrighthodge(ω::TensorAlgebra) Grassmann-Poincare-Hodge complement: ⋆ω = ω∗I """ complementrighthodge @doc """ - complementleft(ω::TensorAlgebra) + complementlefthodge(ω::TensorAlgebra) Grassmann-Poincare left complement: ⋆'ω = I∗'ω """ complementlefthodge