= Discussion: Sage, Macaulay 2, and other Mathematical Software for Algebraic Geometry = == What are the absolutely critical features that you '''must''' have in the mathematical software you use for '''your''' research? (E.g., fast linear algebra, Groebner basis, sheaves?) == * modular forms * fast R[x_1,...,x_n], also with fractional exponents * GB's, flexible gradings, term orders * rings (not necessarily commutative) * modules (not just ideals, not just free) * sheaves * homological algebra (free resolutions) * linear algebra with basis an arbitrary index set I * fast sparse and dense linear algebra over finite fields == What are the '''killer features''' that your dream mathematical software would have? (e.g., good mailing list, free, super fast algorithm for XXX, latex output?) == * (huge) polyhedral geometry (not just polymake, see more below) * representation theory for finite groups (char 0 and modular, not just GAP, compare to what MAGMA can do -- and how fast it can do it) * rings of representations (Grothendieck rings, etc.) * local rings and global rings: localization, really working (not just M2) * GB over all rings (e.g. field extensions), even noncommutative when possible * full functoriality (e.g. preservation of GL_n-actions, functors, operations on functors, Yoneda product, tensor products) * full homological algebra (spectral sequences, derived categories, etc.) * parallelize everything * deformation theory * a "good clean" programming language (not just M2, e.g. Maple -- having to put things into rings before being able to use them is annoying; work easily with general expressions) * super fast GB's and syzygies (speed and low memory usage) * super fast and low memoryprimary decomposition (e.g. numerical) and integral closure * sheaves, Chern classes, intersection theory on singular spaces * algebraic topology on complex and real points on a variety * etale cohomology * usable resolution of singularities ==== Polytopes ==== * packages: lrs, cddlib, porta, 4ti2, polymake, coin/or * optimal performance: important algorithms are reverse search (as in lrs, uses less memory), double description (track the duals, as in cdd and 4ti2) * optimization: linear and integer programming (coin/or), semidefinite programming (any good software for this?) * combinatorial aspects * polymake puts a lot of these things together, but it does not build! ==== Linear algebra ==== * for a lot of the above issues, we need very very fast linear algebra over a huge range of fields/rings == What are some things that disturb you about the direction in which Sage is going? (E.g., too big/ambitious? not open enough or too open? too many bugs? changing too quickly? referee process for code inclusion too onerous?) == * developer \neq user => lameness (e.g. gfan, polyhedral code) * language, "relations", US-ification, Sage taking over the universe of free math software is dangerous, respect for other math software * bugginess in core algebraic geometry code: not up to snuff, cannot trust the answers now, need to first fix the basics before implementing new stuff * third party code currently not refereed: how do we know it's reliable? * credit: young people, publication record * longterm survivability * keeping large scale vision, consistency among various development efforts/packages: categories, generic algorithms and info, learn from Axiom and MuPAD-combinat * more documentation: to improve consistency, explain options to user (there can be 25 different algorithms for doing one thing) * track usage == What are some things that disturb you about the direction in which Macaulay2 is going? (similar e.g. as above) == * all of the above * very few developers (solution: M2 days, packages, journal) * documentation and tutorial issues (improving) * community building lacking * uncertainty of long-term funding (only NSF, fickle) * todo list needs to be upgraded (just text files in svn repository now) * webpage needs to be upgraded * narrow scope restricts number of developers (only commutative algebraists and algebraic geometers can contribute, and the intersection between this set and the set of software engineers/programmers is too small) * narrow scope restricts users (e.g. lack of group theory functionality makes some algebraic geometers have to use a different system for their research)