CapAndHomalg.jl
Introduction
The Julia package CapAndHomalg
provides simplified access to the repositories of the GAP packages hosted on the GitHub organization homalg-project, most of which are based on the
These are open source GAP multi-package projects for constructive category theory and homological algebra with applications to module theory of commutative and non-commutative algebras and algebraic geometry.
Installation
Install Julia
To install Julia follow the first Steps 0 and 1 on our installation page.
Install CapAndHomalg.jl
Then start julia
in a terminal and add the package CapAndHomalg
:
julia> using Pkg; Pkg.add("CapAndHomalg")
julia> using CapAndHomalg
Testing
The correctness of the installation and the availability of the functionality can at any time be tested using
julia> using Pkg; Pkg.test("CapAndHomalg")
Updating
After each update of the Julia package GAP
a rebuild is (probably) necessary:
julia> using Pkg; Pkg.update("CapAndHomalg")
julia> Pkg.build("CapAndHomalg")
This will also clone the repositories listed in CapAndHomalg.PACKAGES_TO_DOWNLOAD
using DownloadAllPackagesFromHomalgProject
and compile the packages listed in CapAndHomalg.PACKAGES_TO_COMPILE
using GAP.Packages.install
(pkgname
).
Software dependency
CapAndHomalg
relies on the
computer algebra systems | through the Julia packages |
---|---|
GAP | Gap.jl |
Singular | Singular_jll.jl |
all of which are components of the computer algebra system OSCAR.
Some of the bundled packages use the GAP packages
and the
third party software | through the GAP packages | and the Julia packages |
---|---|---|
Graphviz | dot-format generating code like in [Digraphs][Digraphs] | [Graphvizjll.jl][Graphvizjll.jl] |
4ti2 | [4ti2Interface][4ti2Interface] | [lib4ti2jll.jl][lib4ti2jll.jl] |
<!– | cddlib | [CddInterface][CddInterface] | [cddlibjll.jl][cddlibjll.jl] | | Normaliz | [NormalizInterface][NormalizInterface] | [normalizjll.jl][normalizjll.jl] | –>
General Disclaimer
The software comes with absolutely no warranty and will most likely have errors. If you use it for computations, please check the correctness of the result very carefully.
This software is licensed under the LGPL, version 3, or any later version.
Funding
The development of this package and many of the GAP packages hosted on the GitHub organization homalg-project was partially funded by the DFG (German Research Foundation) through the
[Digraphs]: https://github.com/gap-packages/digraphs/#readme [4ti2Interface]: https://github.com/homalg-project/homalgproject/tree/master/4ti2Interface/#readme [CddInterface]: https://github.com/homalg-project/CddInterface/#readme [NormalizInterface]: https://github.com/gap-packages/NormalizInterface/#readme [Graphvizjll.jl]: https://github.com/JuliaBinaryWrappers/Graphvizjll.jl/ [lib4ti2jll.jl]: https://github.com/JuliaBinaryWrappers/lib4ti2jll.jl/ [cddlibjll.jl]: https://github.com/JuliaBinaryWrappers/cddlibjll.jl/ [normalizjll.jl]: https://github.com/JuliaBinaryWrappers/normaliz_jll.jl/
Index
CapAndHomalg.CapAndHomalg
CapAndHomalg.PACKAGES_DEPRECATED
CapAndHomalg.PACKAGES_TO_COMPILE
CapAndHomalg.PACKAGES_TO_DOWNLOAD
CapAndHomalg.PKG_DIR
CapAndHomalg.version
CapAndHomalg.CompilePackagesForHomalgProject
CapAndHomalg.DownloadAllPackagesFromHomalgProject
CapAndHomalg.DownloadPackageFromHomalgProject
CapAndHomalg.RemoveAllPackagesFromHomalgProject
CapAndHomalg.RemoveDeprecatedPackagesFromHomalgProject
CapAndHomalg.RemovePackageFromHomalgProject
CapAndHomalg.UpdateAllPackagesFromHomalgProject
CapAndHomalg.UpdateAllPackagesFromHomalgProjectInParallel
CapAndHomalg.UpdatePackageFromHomalgProject
CapAndHomalg.UseSystemSingular
CapAndHomalg.CapAndHomalg
— ModuleThe Julia package CapAndHomalg
provides simplified access to the repositories of the GAP packages hosted on the GitHub organization https://homalg-project.github.io/, most of which are based on the
- CAP project,
- homalg project.
These are open source GAP multi-package projects for constructive category theory and homological algebra with applications to module theory of commutative and non-commutative algebras and algebraic geometry.
Software dependency
CapAndHomalg
relies on the
computer algebra systems | through the Julia packages |
---|---|
GAP | Gap.jl |
Singular | Singular_jll.jl |
all of which are components of the computer algebra system OSCAR.
Some of the bundled packages use the GAP packages
- IO
- ferret
- json
- QPA2
and the
third party software | through the GAP packages |
---|---|
Graphviz_jll | dot-format generating code like in Digraphs |
4ti2_jll | 4ti2Interface |
General Disclaimer
The software comes with absolutely no warranty and will most likely have errors. If you use it for computations, please check the correctness of the result very carefully.
This software is licensed under the LGPL, version 3, or any later version.
Funding
The development of this package and many of the GAP packages hosted on the GitHub organization homalg-project was partially funded by the DFG (German Research Foundation) through the
More information and the online documentation can be found at the source code repository
https://github.com/homalg-project/CapAndHomalg.jl
CapAndHomalg.PACKAGES_DEPRECATED
— ConstantCapAndHomalg.PACKAGES_DEPRECATED
List of deprecated packages.
CapAndHomalg.PACKAGES_TO_COMPILE
— ConstantCapAndHomalg.PACKAGES_TO_COMPILE
The list of all GAP packages that will downloaded (once) and installed by GAP.Packages.install
when using Pkg; Pkg.build("HomalgProject")
or when CompilePackagesForHomalgProject
is invoked. The latter should be called once GAP.jl
gets updated.
CapAndHomalg.PACKAGES_TO_DOWNLOAD
— ConstantCapAndHomalg.PACKAGES_TO_DOWNLOAD
List of packages which will be considered by
CapAndHomalg.PKG_DIR
— ConstantCapAndHomalg.PKG_DIR
The directory in which to install GAP packages from the GitHub organization https://github.com/homalg-project/. It is equal to joinpath(pathof(CapAndHomalg), "pkg")
.
CapAndHomalg.version
— ConstantCapAndHomalg.version
The version number of the loaded CapAndHomalg
. Please mention this number in any bug report.
CapAndHomalg.CompilePackagesForHomalgProject
— MethodCompilePackagesForHomalgProject()
Apply [GAP.Packages.install
] to all packages listed in CapAndHomalg.PACKAGES_TO_COMPILE
.
CapAndHomalg.DownloadAllPackagesFromHomalgProject
— MethodDownloadAllPackagesFromHomalgProject()
Apply DownloadPackageFromHomalgProject
to all packages listed in CapAndHomalg.PACKAGES_TO_DOWNLOAD
.
CapAndHomalg.DownloadPackageFromHomalgProject
— MethodDownloadPackageFromHomalgProject(pkgname)
Clone the repository named pkgname
from the GitHub organization https://github.com/homalg-project/ to the subdirectory CapAndHomalg.PKG_DIR
. On success return true
and on failure false
.
CapAndHomalg.RemoveAllPackagesFromHomalgProject
— MethodRemoveAllPackagesFromHomalgProject()
Apply RemovePackageFromHomalgProject
to all packages listed in CapAndHomalg.PACKAGES_TO_DOWNLOAD
.
CapAndHomalg.RemoveDeprecatedPackagesFromHomalgProject
— MethodRemoveDeprecatedPackagesFromHomalgProject()
Apply RemovePackageFromHomalgProject
to all packages listed in CapAndHomalg.PACKAGES_DEPRECATED
.
CapAndHomalg.RemovePackageFromHomalgProject
— MethodRemovePackageFromHomalgProject(pkgname)
Delete the repository named pkgname
from the subdirectory CapAndHomalg.PKG_DIR
. On success return true
and on failure false
. Removing a repository and re-downloading it might be useful if updating it fails.
CapAndHomalg.UpdateAllPackagesFromHomalgProject
— MethodUpdateAllPackagesFromHomalgProject()
Apply UpdatePackageFromHomalgProject
to all packages listed in CapAndHomalg.PACKAGES_TO_DOWNLOAD
.
CapAndHomalg.UpdateAllPackagesFromHomalgProjectInParallel
— MethodUpdateAllPackagesFromHomalgProjectInParallel()
Apply UpdatePackageFromHomalgProject
to all packages listed in CapAndHomalg.PACKAGES_TO_DOWNLOAD
in parallel. The output of the git commands might get intertwined.
CapAndHomalg.UpdatePackageFromHomalgProject
— MethodUpdatePackageFromHomalgProject(pkgname)
Update the repository named pkgname
located in the subdirectory CapAndHomalg.PKG_DIR
from the GitHub organization https://github.com/homalg-project/. If the package directory does not exist locally then invoke DownloadPackageFromHomalgProject
(pkgname
). On success return true
and on failure false
.
CapAndHomalg.UseSystemSingular
— MethodUseSystemSingular(bool::Bool)
- if bool == true use the Singular installed on the system
- if bool == false use the Singular bundled with Singular_jll