Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

import StraightLinePrograms package #125

Merged
merged 219 commits into from
Jul 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
219 commits
Select commit Hold shift + click to select a range
d001085
add Project.toml
rfourquet May 9, 2020
23637bc
add LazyPolyRing
rfourquet May 9, 2020
7a5cc24
add Const <: RecPoly
rfourquet May 9, 2020
8d2c68a
add Gen <: RecPoly
rfourquet May 9, 2020
f7a0aac
add PlusPoly <: RecPoly
rfourquet May 9, 2020
954a372
add MinusPoly <: RecPoly
rfourquet May 9, 2020
3f3bd0f
add UniMinusPoly <: RecPoly
rfourquet May 9, 2020
ae04e0b
add TimesPoly <: RecPoly
rfourquet May 9, 2020
451ba17
add ExpPoly <: RecPoly
rfourquet May 9, 2020
bfb41fc
add + for RecPoly
rfourquet May 9, 2020
7ca4aee
add - for RecPoly
rfourquet May 9, 2020
35c0eba
add * for RecPoly
rfourquet May 9, 2020
603dc7c
add ^ for RecPoly
rfourquet May 9, 2020
c70909e
add adhoc * for RecPoly
rfourquet May 9, 2020
901c6f3
add LazyPoly <: MPolyElem
rfourquet May 9, 2020
e5a10a8
LazyPolyRing: add gen and call syntax on symbols
rfourquet May 9, 2020
2f6e6be
LazyPolyRing: add call syntax on constants
rfourquet May 9, 2020
ad71caf
LazyPoly: add unary/binary ops
rfourquet May 9, 2020
76dbf85
re-indent to 4 spaces
rfourquet May 9, 2020
e2c2a63
add SLPolyRing
rfourquet May 9, 2020
87d3268
add SLPoly <: MPolyElem
rfourquet May 9, 2020
fd5ade6
add (::SLPolyRing)()
rfourquet May 9, 2020
6040601
SLPoly: add copy
rfourquet May 9, 2020
c170700
add SL constants
rfourquet May 9, 2020
e40499a
add pushconst!
rfourquet May 9, 2020
80a9b0b
add pack
rfourquet May 9, 2020
9efc1d1
add pushop!
rfourquet May 9, 2020
155b91d
add instructions constants
rfourquet May 9, 2020
5fdb366
add unpack
rfourquet May 9, 2020
76f3b43
add SL.input
rfourquet May 9, 2020
e710269
add pushfinalize!
rfourquet May 9, 2020
9d15917
add isinput
rfourquet May 9, 2020
ea2c505
add isunary & isquasiunary
rfourquet May 9, 2020
1a08f5b
add pushinit!
rfourquet May 9, 2020
71df4ce
add evaluate! for SLPoly
rfourquet May 9, 2020
1a186e4
add 3-arg show for SLPoly
rfourquet May 9, 2020
3778d8b
add conversion SLPoly -> MPoly
rfourquet May 9, 2020
da8fc0c
add conversion LazyPoly -> SLPoly
rfourquet May 9, 2020
f053055
SLPoly: add mutating ops (addeq! etc.)
rfourquet May 9, 2020
ba52a11
SLPoly: add unary/binary ops
rfourquet May 9, 2020
3ea2419
add conversion MPoly -> SLPoly
rfourquet May 9, 2020
f2c16c5
add native compilation of SLP
rfourquet May 9, 2020
bf49c8f
add evaluate(::SLPoly, v)
rfourquet May 9, 2020
66b1b5c
import evaluate from AbstractAlgebra
rfourquet May 9, 2020
d964c58
add README.md
rfourquet May 9, 2020
4a23809
fix creation of SLPoly from single Const or Gen
rfourquet May 10, 2020
60ea842
make (::SLPolyRing)() return a valid zero
rfourquet May 10, 2020
886a420
add 2-arg show for SLPoly
rfourquet May 10, 2020
9d1fb7a
add gen(::SLPolyRing, ::Integer)
rfourquet May 10, 2020
e621042
add gens(::SLPolyRing)
rfourquet May 10, 2020
b32003d
add (::SLPolyRing)(constant)
rfourquet May 10, 2020
b8a37a5
SLPoly: add adhoc ops
rfourquet May 10, 2020
aa96bb3
add an explicit uniplus (== return) to SLP with empty lines
rfourquet May 10, 2020
df81f32
fix display of constant SLPolys
rfourquet May 10, 2020
6cf74e9
add explicit return (uniplus) only for trivial programs
rfourquet May 10, 2020
10f7464
simple 3-arg show for trivial programs
rfourquet May 10, 2020
c39ca94
evaluate!(res, ::SLPoly, v): type-annotate results, way faster
rfourquet May 10, 2020
4776948
update README.md
rfourquet May 10, 2020
814fbf2
conversion MPoly -> SLPoly: add option to limit exponentiations
rfourquet May 11, 2020
9c8477c
fix bug in conversion MPoly -> SLPoly
rfourquet May 11, 2020
be147ff
use more types: Line, Op, Arg
rfourquet May 11, 2020
ac1346a
fix conversion MPoly -> SLPoly for 0
rfourquet May 11, 2020
e312f6a
fix SLPoly printing (remove spurious "Arg(0x...)")
rfourquet May 11, 2020
9fa4d5c
SLPoly printing: align fields
rfourquet May 11, 2020
d7d156d
update README.md
rfourquet May 11, 2020
9e198b7
split RecPoly into recpolys.jl and remove `RingElement` from it
rfourquet May 20, 2020
d9a2304
simplify SLP representation: constants get a bit flag
rfourquet May 22, 2020
d4f3bb6
add show for Line, Op, Arg
rfourquet May 22, 2020
5ac1543
introduce basic SLProgram type
rfourquet May 22, 2020
327fa2f
move building blocks from SLPoly -> SLProgram
rfourquet May 22, 2020
fafcd0f
move evalutate! (SLPoly) -> execute! (SLProgram)
rfourquet May 22, 2020
a2354d6
mv SLProgram, Line, Op, Arg into straightline.jl
rfourquet May 22, 2020
7e1a04a
move compile! from SLPoly -> SLProgram
rfourquet May 22, 2020
a59c9ff
move evaluate (SLPoly) -> execute (SLProgram)
rfourquet May 22, 2020
504ee88
allow evaluate of SLPoly{T} with input S != T
rfourquet May 22, 2020
519ab97
add SLProgram{T}() constructor
rfourquet May 23, 2020
4534659
rename RecPoly -> Lazy, PlusPoly -> Plus etc.
rfourquet May 23, 2020
564d8f9
Lazy: remove type parameter
rfourquet May 23, 2020
705a511
add basic show for SLProgram
rfourquet May 23, 2020
92d189f
add SLProgram{T}(i::Integer) for trivial SLP returning i-th input
rfourquet May 23, 2020
c473ddb
add SLProgram(Const(c)) for trivial SLP returning c
rfourquet May 23, 2020
7d87cea
print constants when showing SLProgram
rfourquet May 23, 2020
829190c
add mutating ops for SLProgram
rfourquet May 23, 2020
b512c2a
add gens(::Lazy)
rfourquet May 23, 2020
2eea16d
add conversion Lazy -> SLProgram
rfourquet May 23, 2020
d37318f
rename execute[!] -> evaluate[!]
rfourquet May 23, 2020
b968b00
add evaluates(::SLProgram, xs)
rfourquet May 23, 2020
d1e6dd3
add ninputs(::SLProgram)
rfourquet May 23, 2020
df34a18
Lazy: add adhoc - and +
rfourquet May 23, 2020
c34b3ab
SLProgram mutating ops: allow mixing different types (via conversions)
rfourquet May 24, 2020
a9a35a9
SLProgram: add copy / copy_oftype
rfourquet May 24, 2020
82ba3b4
SLProgram: add *, -, +, ^
rfourquet May 24, 2020
117c8ac
add ==(::Lazy, ::Lazy)
rfourquet May 24, 2020
0865cad
add convenience aslazy to convert SLProgram -> Lazy
rfourquet May 24, 2020
fb94437
add `SLProgram(i::Integer) = SLProgram{Union{}}(i)` constructor
rfourquet May 24, 2020
30e52df
copy SLPoly's show for SLProgram
rfourquet May 24, 2020
a61a784
allow passing input symbols via SLPgens IOContext attribute
rfourquet May 24, 2020
34da820
SLPoly's show uses SLProgram's show
rfourquet May 24, 2020
6cf21fd
add slpcst, slpgen, slpgens convenience functions
rfourquet May 24, 2020
9b12657
rename uniplus -> assign
rfourquet May 24, 2020
8f325dd
add copy! for SLProgram
rfourquet May 24, 2020
6b9d2d6
SLProgram: move return info out of lines, into .ret field
rfourquet May 24, 2020
ad9dd5f
better and simpler showsimple
rfourquet May 24, 2020
09ed57c
SLProgram: add a .ptr field, to keep track of next store location
rfourquet May 24, 2020
b6b3486
remove not-ideal use of assign
rfourquet May 25, 2020
c43b845
add full support for assign
rfourquet May 25, 2020
e4c6cd3
allocate upfront res vector with enough space
rfourquet May 25, 2020
98eb2b6
SLProgram: rename .ptr -> .len and decrease by one
rfourquet May 25, 2020
1180ed7
enable multiple return from evaluate (was only in evaluates)
rfourquet May 25, 2020
405d3c2
factorize code into updatelen!
rfourquet May 25, 2020
df959fc
add keep, to shrink the result array
rfourquet May 25, 2020
22c69dc
split runtest.jl file
rfourquet May 25, 2020
3dca323
add GAPSLProgram basics
rfourquet May 25, 2020
0803c8e
GAPSLProgram: check return list only at the end
rfourquet May 25, 2020
805373c
GAPSLProgram: try conform constructors to SLPs in GAP
rfourquet May 25, 2020
4fd8f4f
GAPSLProgram: fix bug in validation in constructor
rfourquet May 25, 2020
fb4d283
GAPSLProgram: check for undef slots when ngens is passed
rfourquet May 25, 2020
47df4a1
add `SLProgram() = SLProgram{Bottom}()` constructor
rfourquet May 25, 2020
d64909e
GAPSLProgram: add compile! for simple lines
rfourquet May 25, 2020
a078286
SLProgram: fix tiny bug in show
rfourquet May 25, 2020
c995937
GAPSLProgram: add compile! for assign lines
rfourquet May 25, 2020
f18d665
GAPSLProgram: add compile! for return lines
rfourquet May 25, 2020
e152555
GAPSLProgram: test also with Lazy
rfourquet May 25, 2020
d4eef7a
GAPSLProgram: add native evaluate[!]
rfourquet May 25, 2020
7b09e4d
GAPSLProgram: add show
rfourquet May 25, 2020
d5fc44f
add AtlasSLProgram for parsing Atlas SLPs
rfourquet May 29, 2020
543a57f
AtlasSLProgram: merge :cj and :cjr commands
rfourquet May 30, 2020
d1cca80
SLProgram: support negative exponents
rfourquet May 30, 2020
7731532
GAPSLProgram: fix show for "assign" lines
rfourquet May 30, 2020
47dc292
SLProgram: support assign doing a push!
rfourquet May 30, 2020
05b064b
AtlasSLProgram: add show
rfourquet May 30, 2020
7aeb1d8
GAPSLProgram: support negative exponents in compile!
rfourquet May 30, 2020
30347af
Lazy: define trivially literal_pow
rfourquet May 30, 2020
7f9b445
AtlasSLProgram creation: fix bug with "pwr" command
rfourquet May 30, 2020
98678e8
AtlasSLProgram: add evaluate
rfourquet May 30, 2020
f5faf18
AtlasSLProgram: add compilation -> GAPSLProgram
rfourquet May 30, 2020
ca63051
SLProgram: add support for storing integers
rfourquet May 31, 2020
5870ecc
SLProgram show: use Any instead of Lazy for res
rfourquet May 31, 2020
50d1747
SLProgram show: implement showarg in terms of retrieve
rfourquet May 31, 2020
8a4aae3
SLProgram evaluate! : conv defaults to identity and is always called
rfourquet May 31, 2020
f077c20
GAPSLDecision: add basic construction
rfourquet May 31, 2020
b1c6d26
GAPSLProgram/Decision: more tolerant constructors
rfourquet May 31, 2020
bb4b40a
GAPSLDecision: add evaluate!
rfourquet May 31, 2020
af792f7
add AtlasSLDecision
rfourquet Jun 5, 2020
a8f1cd3
support "decisions" in SLProgram
rfourquet Jun 6, 2020
b38624c
add compilation GAPSLDecision -> SLProgram
rfourquet Jun 7, 2020
ea9d968
add support for Lazy "decisions"
rfourquet Jun 7, 2020
cd082de
show SLProgram: delete vestigial condition
rfourquet Jun 7, 2020
a590b52
give SL decisions a dedicated SLProgram.ret code
rfourquet Jun 7, 2020
7723951
Arg: allow construction from Integer
rfourquet Jun 7, 2020
f5685bd
fix show for SLProgram with decisions
rfourquet Jun 7, 2020
5795a78
GAPSLProgram: fix return value in show
rfourquet Jun 7, 2020
872446f
implement SLProgram(l::Lazy) where l is a decision
rfourquet Jun 7, 2020
06eed51
add evaluate for Lazy
rfourquet Jun 8, 2020
a5bcb8a
rename a couple of files
rfourquet Jun 8, 2020
06b2aa5
add .travis.yml file
rfourquet Jun 8, 2020
40fbe80
README: add build status badge
rfourquet Jun 8, 2020
d432e67
showsimple: fix return value for decisions
rfourquet Jun 8, 2020
ecb04d7
SLProgram: fix bug related to .int in _combine
rfourquet Jun 8, 2020
9278149
SLProgram: implement test and &
rfourquet Jun 8, 2020
bc81ffc
add non-mutating compile methods, and allow giving destination type
rfourquet Jun 8, 2020
6960faf
make SLProgram(::Lazy) into a compile method
rfourquet Jun 8, 2020
3a33358
make AbstractSLProgram, and type ctor defaults to compile
rfourquet Jun 8, 2020
b19bb16
add Free SLPs (and demote Lazy as an SLP)
rfourquet Jun 9, 2020
c37ff7a
add freegens(::Vector{Symbol})
rfourquet Jun 9, 2020
476e2de
add compile(SLProgram, ::Free)
rfourquet Jun 9, 2020
b3cb326
SLProgram: add adhoc operations
rfourquet Jun 9, 2020
830aa9b
Free: support decisions
rfourquet Jun 9, 2020
24b28f0
add gens(::Type{SLProgram|Free}, ::Integer)
rfourquet Jun 9, 2020
93fb2ca
SLProgram: add literal_pow for negative exponents
rfourquet Jun 10, 2020
96bcebd
SLProgram: fix show for negative exponents
rfourquet Jun 10, 2020
69bc935
gens(::Type{Free}, n): return a Free array
rfourquet Jun 10, 2020
6c4eea7
export: gens, evaluate, Free
rfourquet Jun 10, 2020
1ccecca
update README
rfourquet Jun 10, 2020
e4d3de6
Atlas: support "echo" lines
rfourquet Jun 10, 2020
ad4d5a0
GAPSLProgram: fix bug with "unordered" outputs which were overwritten
rfourquet Jun 10, 2020
463bff0
add ngens(::SLPolyRing)
rfourquet Jun 15, 2020
0b3447d
add nvars(::SLPolyRing)
rfourquet Jun 16, 2020
237c8c6
SLPolyRing: add show
rfourquet Jun 16, 2020
6c1398e
add SLPolyRing(::Ring, ::Vector{<:AbstractString}) ctor
rfourquet Jun 16, 2020
84cc810
add SLPolyRing(::Ring, ::AbstractVector{<:AbstractChar}) ctor
rfourquet Jun 16, 2020
f6960e3
add PolynomialRing(::Ring, symbols) constructor
rfourquet Jun 16, 2020
82f31c2
SLPoly: don't show underlying SLP, just the (final) formula
rfourquet Jun 16, 2020
315ca62
SLProgram: add permute_inputs!
rfourquet Jun 16, 2020
47dda9e
SLPoly: add ==
rfourquet Jun 16, 2020
e097957
add SLPoly^perm to permute generators
rfourquet Jun 16, 2020
bc021d7
add nsteps for SLProgram and SLPoly
rfourquet Jun 16, 2020
fb5ebdd
add (::SLPolyRing)(x::RingElement) constructor
rfourquet Jun 16, 2020
345d84e
SLProgram: remove `conv` argument from evaluate[!]
rfourquet Jun 16, 2020
f091ee6
SLProgram evaluate: support `conv` as 3-rd arg to convert constants
rfourquet Jun 16, 2020
f6411dd
SLPoly: fix ambiguities with adhoc binary operators
rfourquet Jun 16, 2020
98a8b16
SLPoly: add 3rd arg to evaluate to convert constants
rfourquet Jun 16, 2020
f41de79
SLPoly: evaluate: don't convert result using inputs array
rfourquet Jun 16, 2020
f3400c9
SLPolyRing: add zero & one
rfourquet Jun 17, 2020
671e9ef
SLPoly: add zero & one
rfourquet Jun 17, 2020
ae4e1c2
SLProgram: allow 0 as exponent
rfourquet Jun 17, 2020
794894e
enable evaluating MPoly with SLPoly inputs
rfourquet Jun 17, 2020
db9b909
define (::SLPolyRing{T})(::SLPoly{T})
rfourquet Jun 17, 2020
1956de0
^(::SLPoly, perm) : support GAP's permutations available in Oscar
rfourquet Jun 17, 2020
88cdfdc
show: use explicit '*' for multiplication
rfourquet Jun 17, 2020
824a6e7
SLProgram: create "list": "integrate" multiple SLPs and return their …
rfourquet Jun 18, 2020
4f63bf7
Free: create "list": "integrate" multiple SLPs and return their list
rfourquet Jun 19, 2020
666fa46
Free: add tests for lists
rfourquet Jun 20, 2020
a22790a
Free: add compose
rfourquet Jun 22, 2020
29ccbeb
SLProgram: add compose
rfourquet Jun 22, 2020
6aafb3f
Free: compose: add "flatten-mode" to avoid getting a `Compose` object
rfourquet Jun 22, 2020
babeef7
Free: add getindex
rfourquet Jun 22, 2020
6d2a681
SLProgram: add getindex
rfourquet Jun 22, 2020
fb0c6ad
add Free(x) ctor to create a constant equal to x
rfourquet Jun 22, 2020
a5db8bc
Free: add adhoc getindex
rfourquet Jun 22, 2020
664ea8f
support getindex in Free->SLProgram compilation
rfourquet Jun 22, 2020
b80b8dc
Free: getindex: support multi-indices
rfourquet Jun 22, 2020
39b16e9
Free: support indexing by integer array
rfourquet Jun 22, 2020
2b3d6c6
Free: support integer-indexing for lists
rfourquet Jun 22, 2020
5e5289d
SLProgram: support getindex(::SLProgram, ::Integer)
rfourquet Jun 23, 2020
8222869
add SLPolyRing(ring, n) ≡ SLPolyRing(ring, ["x1", ..., "x$n"])
rfourquet Jun 24, 2020
b59c059
add SLPolyRing(r, :x => 1:3, :y => 2:4) etc.
rfourquet Jun 24, 2020
00a878f
Add 'StraightLinePrograms/' from commit 'b59c059300aa5ba070fff9232ad6…
rfourquet Jul 8, 2020
a5ef5ea
include `StraightLinePrograms` within Oscar
rfourquet Jul 8, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions StraightLinePrograms/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## Documentation: http://docs.travis-ci.com/user/languages/julia/
language: julia
os:
- linux
- osx
julia:
# - 1.0
- 1.1
- 1.2
- 1.3
- 1.4
- nightly
notifications:
email: false
git:
depth: 99999999
12 changes: 12 additions & 0 deletions StraightLinePrograms/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name = "StraightLinePrograms"
uuid = "42eed0b5-a112-4d56-a5b1-e566078f5bf3"
authors = ["Rafael Fourquet <fourquet.rafael@gmail.com>"]
version = "0.1.0"

[deps]
AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[compat]
julia = "1"
AbstractAlgebra = "^0.9.1"
Loading