This repository has been archived by the owner on Feb 20, 2023. It is now read-only.
/
JuLie.jl
139 lines (92 loc) · 3.41 KB
/
JuLie.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
################################################################################
# JuLie.jl
#
# A combinatorics package for Julia.
#
# Copyright (C) 2020-2021 Ulrich Thiel, ulthiel.com/math
################################################################################
module JuLie
################################################################################
# Import
################################################################################
# AbstractAlgebra
import AbstractAlgebra:
# General stuff
base_ring, gen, gens, parent_type,
# Groups
Group, SymmetricGroup, Perm,
# Group element operations
order,
# Ring element operations
RingElem,
addeq!, mul!, divexact,
# Polynomial rings
MPolyBuildCtx, PolynomialRing, nvars,
# Laurent polynomial ring
LaurentPolynomialRing,
# Constructing polynomials
finish, push_term!,
# Matrices
MatElem, MatrixAlgebra,
diagonal_matrix, identity_matrix, matrix, ncols, nrows, zero_matrix,
# Vector spaces
VectorSpace, FreeModule
# Nemo
import Nemo:
# Basic rings
fmpz, ZZ, fmpq, QQ, FiniteField, CyclotomicField, nf_elem,
# Univariate polynomials
fmpz_poly, FmpzPolyRing, fmpq_poly, FmpqPolyRing,
# Multivariate polynomials
fmpz_mpoly, FmpzMPolyRing, fmpq_mpoly, FmpqMPolyRing,
# Matrices
fmpz_mat, FmpzMatSpace, fmpq_mat, FmpqMatSpace,
# Libs
libflint,
# Combinatorial functions
bell, bernoulli, binomial, factorial, fibonacci, harmonic, rising_factorial
# LightGraphs
import LightGraphs:
SimpleGraph, add_edge!, connected_components, vertices, edges
################################################################################
# Internal types
################################################################################
IntegerUnion = Union{Integer, fmpz}
################################################################################
# Export (more exports are in the various source files)
################################################################################
export
# Rings from Nemo
QQ, ZZ, FiniteField, CyclotomicField,
# General stuff from AbstractAlgebra
base_ring, gen, gens, parent_type,
# Groups from AbstractAlgebra
SymmetricGroup, Perm,
# Rings from AbstractAlgebra
LaurentPolynomialRing, PolynomialRing,
nvars,
# Matrices from AbstractAlgebra
matrix, identity_matrix, ncols, nrows, zero_matrix,
# Combinatorial functions from Nemo
bell, bernoulli, binomial, factorial, fibonacci, harmonic, rising_factorial,
# Vector spaces from AbstractAlgebra
VectorSpace, FreeModule,
# LightGraphs
SimpleGraph, add_edge!, connected_components, vertices, edges
################################################################################
# JuLie source files
################################################################################
# Combinatorics
include("combinatorics/combinatorial_functions.jl")
include("combinatorics/permutations.jl")
include("combinatorics/partitions.jl")
include("combinatorics/compositions.jl")
include("combinatorics/multipartitions.jl")
include("combinatorics/multiset_partitions.jl")
include("combinatorics/quantum_analogs.jl")
include("combinatorics/tableaux.jl")
include("combinatorics/kostka_polynomials.jl")
include("combinatorics/schur_polynomials.jl")
#include("block_matrices.jl")
#include("cartan_matrices.jl")
end # module