2011-12-09 21:50:25 +01:00
|
|
|
in knotkit/
|
2011-12-27 19:40:59 +01:00
|
|
|
- my (or Kh) tangle algebra over Z
|
|
|
|
- enumerate 2-connect sum knots to test mutation invariance over Z
|
2011-12-09 21:50:25 +01:00
|
|
|
- add homology orientations for odd Khovanov homology and spectral
|
|
|
|
sequence over Z
|
|
|
|
- unify smoothing, resolution_diagram wiring (and knot_diagram?)
|
|
|
|
- speed up construction of chain maps in chain_complex_simplifer
|
|
|
|
- move chain_complex_simplifier to algebra/
|
|
|
|
- unify chain_complex_simplifer and build_sseq
|
|
|
|
- remove hardcoded limits (max_...)
|
|
|
|
- revive testlib
|
2011-12-30 01:38:02 +01:00
|
|
|
- figure out proper copy interface and consistently support copy and
|
|
|
|
deepcopy
|
2011-12-09 21:50:25 +01:00
|
|
|
|
|
|
|
in lib/
|
|
|
|
- between interoperation between sets that require bounds (bitset,
|
|
|
|
ullmanset) and those that don't (set, hashset)
|
|
|
|
|
|
|
|
in algebra/
|
|
|
|
- linear_combnation can be more efficient (eg no searching when
|
|
|
|
coefficients die)
|
|
|
|
- monomial ideals and maybe groebner bases
|
|
|
|
- cleaner interface for gcd, etc. in fraction_field
|
|
|
|
- support kernel, cokernel of torsion modules
|
2011-12-14 19:07:53 +01:00
|
|
|
- change gcd et al so gcd is always positive
|
2012-07-27 21:37:47 +02:00
|
|
|
- split linear_combination into internal and external versions
|
|
|
|
|
|
|
|
git:
|
|
|
|
- fix bug in Josh's version
|
|
|
|
- make this master, merge into Josh's version
|
|
|
|
- merge in square to master => then write paper!
|
|
|
|
- merge in other improvements (sped up linear algebra? multivariate (laurent) polynomial?)
|
|
|
|
- should exponents on polynomials be Z or unsigned?
|
|
|
|
|
|
|
|
general:
|
|
|
|
- unify simplify_chain_complex, sseq, kernel/image/homology (as much as possible)
|
|
|
|
- sseq over Z
|
|
|
|
- quadratic linear solver (enumerator?)
|
|
|
|
- classes should either COPY or fully SHARE, but not some of each
|
|
|
|
(e.g. knot_diagram, resolution_diagram, etc.) -- this is the right
|
|
|
|
semantics.
|
|
|
|
- clean up/delete setcommon, mapcommon
|
2012-07-28 19:48:17 +02:00
|
|
|
- incorporate sage dump into standard classes
|
2012-07-27 21:37:47 +02:00
|
|
|
|
|
|
|
c++11:
|
|
|
|
- make vector wrap std::vector (probably faster)
|
|
|
|
|
|
|
|
- use tuple instead of pair, triple; and use tie, a great idiom
|
|
|
|
- standardize ring, field interface so test_ring works for everything
|
|
|
|
- get clear on default semantics: prefer default when possible
|
|
|
|
|
|
|
|
- standardize use of {} for initializers
|
|
|
|
- initializer_list for container types
|
|
|
|
- support for iterator
|
|
|
|
|
|
|
|
notes:
|
|
|
|
|
|
|
|
all rings (R): multivariate_laurentpoly<R>
|
|
|
|
|
|
|
|
fields (F): Z2 Zp Q fraction_field<E> (for just pids?)
|
|
|
|
|
|
|
|
euclidean domains (E): Z polynomial<F>
|
|
|
|
|
|
|
|
euclidean domain interface:
|
|
|
|
|
|
|
|
num/demon : denom must be a unit
|
|
|
|
= num.operator / (denom)
|
|
|
|
|
|
|
|
denom.divides (num)
|
|
|
|
denom | num
|
|
|
|
|
|
|
|
num.divide_exact (denom)
|
|
|
|
|
|
|
|
(q, r) = num.divide_with_remainder (denom)
|
|
|
|
(q, r) = num / denom
|
|
|
|
(q, r) = num.operator / (denom)
|
|
|
|
satisfies r = 0 or f(r) < f(denom) and num = q*denom + r
|
|
|
|
|
|
|
|
gcd (a, b)
|
|
|
|
lcm (a, b)
|
|
|
|
r = num.mod (denom)
|
|
|
|
satisfies r = 0 or f(r) < f(denom)
|
|
|
|
|
|
|
|
|
|
|
|
(d, s, t) = a.extended_gcd (b)
|
|
|
|
satifies d is the gcd and d = a*s + b*t
|