summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTravis Scrimshaw <tscrimsh at umn.edu>2016-04-30 11:25:04 -0500
committerTravis Scrimshaw <tscrimsh at umn.edu>2016-04-30 11:25:04 -0500
commite44f7d9f72da64e3b6516f060cade722368bef4f (patch)
tree8bdcf700b18c729a237ce49a9ba5ff6f15d9f095
parentSome formatting and small reviewer changes. (diff)
parentUpdated SageMath version to 7.2.beta6 (diff)
Merge branch 'develop' into public/manifolds/top_manif_scalar_fields
-rw-r--r--Makefile21
-rw-r--r--VERSION.txt2
-rw-r--r--build/pkgs/alabaster/SPKG.txt13
-rw-r--r--build/pkgs/alabaster/checksums.ini4
-rw-r--r--build/pkgs/alabaster/dependencies5
-rw-r--r--build/pkgs/alabaster/package-version.txt1
-rwxr-xr-xbuild/pkgs/alabaster/spkg-install3
-rw-r--r--build/pkgs/alabaster/type1
-rw-r--r--build/pkgs/brial/patches/build/cygwin-gnucpp.patch10
-rw-r--r--build/pkgs/brial/patches/cygwin-gnucpp.patch51
-rw-r--r--build/pkgs/configure/checksums.ini6
-rw-r--r--build/pkgs/configure/package-version.txt2
-rw-r--r--build/pkgs/imagesize/SPKG.txt5
-rw-r--r--build/pkgs/imagesize/checksums.ini4
-rw-r--r--build/pkgs/imagesize/dependencies5
-rw-r--r--build/pkgs/imagesize/package-version.txt1
-rwxr-xr-xbuild/pkgs/imagesize/spkg-install3
-rw-r--r--build/pkgs/imagesize/type1
-rw-r--r--build/pkgs/sagetex/SPKG.txt111
-rw-r--r--build/pkgs/sagetex/checksums.ini8
-rw-r--r--build/pkgs/sagetex/package-version.txt2
-rwxr-xr-xbuild/pkgs/sagetex/spkg-install2
-rw-r--r--build/pkgs/snowballstemmer/SPKG.txt25
-rw-r--r--build/pkgs/snowballstemmer/checksums.ini4
-rw-r--r--build/pkgs/snowballstemmer/dependencies5
-rw-r--r--build/pkgs/snowballstemmer/package-version.txt1
-rwxr-xr-xbuild/pkgs/snowballstemmer/spkg-install3
-rw-r--r--build/pkgs/snowballstemmer/type1
-rw-r--r--build/pkgs/sphinx/SPKG.txt45
-rw-r--r--build/pkgs/sphinx/checksums.ini6
-rw-r--r--build/pkgs/sphinx/dependencies2
-rw-r--r--build/pkgs/sphinx/package-version.txt2
-rw-r--r--build/pkgs/sphinx/patches/Makefile.patch59
-rw-r--r--build/pkgs/sphinx/patches/autodoc.patch44
-rw-r--r--build/pkgs/sphinx/patches/environment.patch6
-rw-r--r--build/pkgs/sphinx/patches/highlighting.patch30
-rw-r--r--build/pkgs/sphinx/patches/inline-latex.patch40
-rw-r--r--build/pkgs/sphinx/patches/latex_list.patch23
-rw-r--r--build/pkgs/sphinx/patches/latex_utf8.patch (renamed from build/pkgs/sphinx/patches/pngmath.patch)5
-rw-r--r--build/pkgs/sphinx/patches/nested.patch20
-rw-r--r--src/bin/sage-banner2
-rwxr-xr-xsrc/bin/sage-runtests7
-rw-r--r--src/bin/sage-version.sh4
-rw-r--r--src/doc/common/conf.py22
-rw-r--r--src/doc/common/themes/sage/theme.conf2
-rw-r--r--src/doc/common/themes/sageref/theme.conf2
-rw-r--r--src/doc/de/thematische_anleitungen/sage_gymnasium.rst2
-rw-r--r--src/doc/de/tutorial/bibliography.rst2
-rw-r--r--src/doc/en/constructions/calculus.rst28
-rw-r--r--src/doc/en/constructions/plotting.rst14
-rw-r--r--src/doc/en/developer/coding_basics.rst9
-rw-r--r--src/doc/en/developer/doctesting.rst19
-rw-r--r--src/doc/en/reference/categories/index.rst4
-rw-r--r--src/doc/en/reference/combinat/module_list.rst2
-rw-r--r--src/doc/en/reference/conf.py4
-rw-r--r--src/doc/en/reference/conf_sub.py2
-rw-r--r--src/doc/en/reference/doctest/index.rst1
-rw-r--r--src/doc/en/reference/numerical/index.rst6
-rw-r--r--src/doc/en/reference/rings_standard/index.rst2
-rw-r--r--src/doc/en/thematic_tutorials/lie/bibliography.rst74
-rw-r--r--src/doc/en/thematic_tutorials/numtheory_rsa.rst8
-rw-r--r--src/doc/en/thematic_tutorials/sandpile.rst4
-rw-r--r--src/doc/en/tutorial/bibliography.rst2
-rw-r--r--src/doc/fr/tutorial/bibliography.rst2
-rw-r--r--src/doc/ja/tutorial/bibliography.rst2
-rw-r--r--src/doc/pt/tutorial/bibliography.rst2
-rw-r--r--src/doc/ru/tutorial/bibliography.rst2
-rw-r--r--src/module_list.py5
-rw-r--r--src/sage/algebras/affine_nil_temperley_lieb.py2
-rw-r--r--src/sage/algebras/hall_algebra.py9
-rw-r--r--src/sage/algebras/iwahori_hecke_algebra.py6
-rw-r--r--src/sage/algebras/jordan_algebra.py6
-rw-r--r--src/sage/algebras/nil_coxeter_algebra.py2
-rw-r--r--src/sage/algebras/quatalg/quaternion_algebra.py4
-rw-r--r--src/sage/algebras/schur_algebra.py2
-rw-r--r--src/sage/algebras/shuffle_algebra.py2
-rw-r--r--src/sage/algebras/yokonuma_hecke_algebra.py2
-rw-r--r--src/sage/arith/misc.py2
-rw-r--r--src/sage/arith/multi_modular.pxd (renamed from src/sage/ext/multi_modular.pxd)8
-rw-r--r--src/sage/arith/multi_modular.pyx (renamed from src/sage/ext/multi_modular.pyx)343
-rw-r--r--src/sage/calculus/calculus.py2
-rw-r--r--src/sage/calculus/riemann.pyx8
-rw-r--r--src/sage/calculus/wester.py2
-rw-r--r--src/sage/categories/all.py6
-rw-r--r--src/sage/categories/category.py19
-rw-r--r--src/sage/categories/category_with_axiom.py3
-rw-r--r--src/sage/categories/classical_crystals.py2
-rw-r--r--src/sage/categories/complex_reflection_groups.py149
-rw-r--r--src/sage/categories/complex_reflection_or_generalized_coxeter_groups.py1216
-rw-r--r--src/sage/categories/coxeter_groups.py584
-rw-r--r--src/sage/categories/examples/finite_coxeter_groups.py37
-rw-r--r--src/sage/categories/examples/finite_weyl_groups.py14
-rw-r--r--src/sage/categories/filtered_modules_with_basis.py67
-rw-r--r--src/sage/categories/finite_complex_reflection_groups.py936
-rw-r--r--src/sage/categories/finite_coxeter_groups.py105
-rw-r--r--src/sage/categories/finite_lattice_posets.py50
-rw-r--r--src/sage/categories/finite_permutation_groups.py2
-rw-r--r--src/sage/categories/finite_weyl_groups.py30
-rw-r--r--src/sage/categories/generalized_coxeter_groups.py94
-rw-r--r--src/sage/categories/shephard_groups.py42
-rw-r--r--src/sage/categories/weyl_groups.py8
-rw-r--r--src/sage/coding/code_constructions.py4
-rw-r--r--src/sage/coding/codecan/autgroup_can_label.pyx2
-rw-r--r--src/sage/coding/delsarte_bounds.py2
-rw-r--r--src/sage/coding/guava.py2
-rw-r--r--src/sage/coding/linear_code.py44
-rw-r--r--src/sage/coding/two_weight_db.py6
-rw-r--r--src/sage/combinat/abstract_tree.py2
-rw-r--r--src/sage/combinat/affine_permutation.py2
-rw-r--r--src/sage/combinat/alternating_sign_matrix.py14
-rw-r--r--src/sage/combinat/baxter_permutations.py2
-rw-r--r--src/sage/combinat/binary_tree.py5
-rw-r--r--src/sage/combinat/cluster_complex.py2
-rw-r--r--src/sage/combinat/colored_permutations.py220
-rw-r--r--src/sage/combinat/crystals/alcove_path.py2
-rw-r--r--src/sage/combinat/crystals/crystals.py2
-rw-r--r--src/sage/combinat/crystals/elementary_crystals.py4
-rw-r--r--src/sage/combinat/crystals/generalized_young_walls.py4
-rw-r--r--src/sage/combinat/crystals/infinity_crystals.py8
-rw-r--r--src/sage/combinat/crystals/kirillov_reshetikhin.py14
-rw-r--r--src/sage/combinat/crystals/letters.pyx2
-rw-r--r--src/sage/combinat/crystals/littelmann_path.py4
-rw-r--r--src/sage/combinat/crystals/monomial_crystals.py4
-rw-r--r--src/sage/combinat/crystals/polyhedral_realization.py2
-rw-r--r--src/sage/combinat/crystals/star_crystal.py2
-rw-r--r--src/sage/combinat/crystals/tensor_product.py2
-rw-r--r--src/sage/combinat/descent_algebra.py6
-rw-r--r--src/sage/combinat/designs/bibd.py2
-rw-r--r--src/sage/combinat/designs/block_design.py2
-rw-r--r--src/sage/combinat/designs/database.py6
-rw-r--r--src/sage/combinat/designs/difference_family.py10
-rw-r--r--src/sage/combinat/designs/ext_rep.py2
-rw-r--r--src/sage/combinat/designs/incidence_structures.py2
-rw-r--r--src/sage/combinat/designs/orthogonal_arrays.py2
-rw-r--r--src/sage/combinat/designs/resolvable_bibd.py6
-rw-r--r--src/sage/combinat/diagram_algebras.py11
-rw-r--r--src/sage/combinat/dyck_word.py16
-rw-r--r--src/sage/combinat/e_one_star.py4
-rw-r--r--src/sage/combinat/free_prelie_algebra.py4
-rw-r--r--src/sage/combinat/fully_packed_loop.py20
-rw-r--r--src/sage/combinat/gelfand_tsetlin_patterns.py6
-rw-r--r--src/sage/combinat/gray_codes.py4
-rw-r--r--src/sage/combinat/integer_vector.py4
-rw-r--r--src/sage/combinat/integer_vector_weighted.py7
-rw-r--r--src/sage/combinat/k_tableau.py4
-rw-r--r--src/sage/combinat/kazhdan_lusztig.py6
-rw-r--r--src/sage/combinat/knutson_tao_puzzles.py8
-rw-r--r--src/sage/combinat/matrices/hadamard_matrix.py18
-rw-r--r--src/sage/combinat/ncsf_qsym/qsym.py6
-rw-r--r--src/sage/combinat/ncsym/dual.py2
-rw-r--r--src/sage/combinat/ncsym/ncsym.py10
-rw-r--r--src/sage/combinat/parking_functions.py6
-rw-r--r--src/sage/combinat/partition.py11
-rw-r--r--src/sage/combinat/partition_tuple.py6
-rw-r--r--src/sage/combinat/perfect_matching.py6
-rw-r--r--src/sage/combinat/permutation.py51
-rw-r--r--src/sage/combinat/posets/lattices.py101
-rw-r--r--src/sage/combinat/posets/poset_examples.py48
-rw-r--r--src/sage/combinat/posets/posets.py9
-rw-r--r--src/sage/combinat/q_analogues.py17
-rw-r--r--src/sage/combinat/ribbon_tableau.py11
-rw-r--r--src/sage/combinat/rigged_configurations/rigged_configurations.py2
-rw-r--r--src/sage/combinat/root_system/__init__.py10
-rw-r--r--src/sage/combinat/root_system/all.py1
-rw-r--r--src/sage/combinat/root_system/cartan_type.py4
-rw-r--r--src/sage/combinat/root_system/coxeter_group.py60
-rw-r--r--src/sage/combinat/root_system/hecke_algebra_representation.py2
-rw-r--r--src/sage/combinat/root_system/non_symmetric_macdonald_polynomials.py6
-rw-r--r--src/sage/combinat/root_system/pieri_factors.py12
-rw-r--r--src/sage/combinat/root_system/reflection_group_c.pyx410
-rw-r--r--src/sage/combinat/root_system/reflection_group_complex.py2604
-rw-r--r--src/sage/combinat/root_system/reflection_group_real.py947
-rw-r--r--src/sage/combinat/root_system/root_lattice_realization_algebras.py8
-rw-r--r--src/sage/combinat/root_system/type_folded.py2
-rw-r--r--src/sage/combinat/rsk.py2
-rw-r--r--src/sage/combinat/set_partition.py2
-rw-r--r--src/sage/combinat/sf/character.py2
-rw-r--r--src/sage/combinat/sf/hall_littlewood.py2
-rw-r--r--src/sage/combinat/sf/jack.py6
-rw-r--r--src/sage/combinat/sf/k_dual.py4
-rw-r--r--src/sage/combinat/sf/macdonald.py10
-rw-r--r--src/sage/combinat/sf/new_kschur.py10
-rw-r--r--src/sage/combinat/sf/sfa.py2
-rw-r--r--src/sage/combinat/sf/symplectic.py2
-rw-r--r--src/sage/combinat/shard_order.py6
-rw-r--r--src/sage/combinat/sine_gordon.py2
-rw-r--r--src/sage/combinat/species/generating_series.py6
-rw-r--r--src/sage/combinat/subword_complex.py6
-rw-r--r--src/sage/combinat/tableau.py14
-rw-r--r--src/sage/combinat/tableau_tuple.py4
-rw-r--r--src/sage/combinat/tamari_lattices.py2
-rw-r--r--src/sage/combinat/tiling.py8
-rw-r--r--src/sage/combinat/words/finite_word.py18
-rw-r--r--src/sage/combinat/words/word_generators.py14
-rw-r--r--src/sage/crypto/block_cipher/miniaes.py2
-rw-r--r--src/sage/crypto/block_cipher/sdes.py4
-rw-r--r--src/sage/crypto/mq/sbox.py6
-rw-r--r--src/sage/crypto/mq/sr.py11
-rw-r--r--src/sage/crypto/public_key/blum_goldwasser.py4
-rw-r--r--src/sage/crypto/stream.py4
-rw-r--r--src/sage/dev/test/data/trac_8703-trees-fh.patch2
-rw-r--r--src/sage/doctest/control.py12
-rw-r--r--src/sage/doctest/external.py349
-rw-r--r--src/sage/doctest/parsing.py10
-rw-r--r--src/sage/dynamics/flat_surfaces/strata.py6
-rw-r--r--src/sage/ext/mod_int.h10
-rw-r--r--src/sage/ext/mod_int.pxd6
-rw-r--r--src/sage/finance/stock.py9
-rw-r--r--src/sage/functions/all.py5
-rw-r--r--src/sage/functions/bessel.py8
-rw-r--r--src/sage/functions/jacobi.py2
-rw-r--r--src/sage/functions/other.py2
-rw-r--r--src/sage/functions/piecewise.py2708
-rw-r--r--src/sage/functions/piecewise_old.py1853
-rw-r--r--src/sage/functions/prime_pi.pyx2
-rw-r--r--src/sage/functions/wigner.py2
-rw-r--r--src/sage/game_theory/normal_form_game.py4
-rw-r--r--src/sage/games/hexad.py8
-rw-r--r--src/sage/geometry/cone.py8
-rw-r--r--src/sage/geometry/hyperplane_arrangement/library.py4
-rw-r--r--src/sage/graphs/asteroidal_triples.pyx4
-rw-r--r--src/sage/graphs/convexity_properties.pyx2
-rw-r--r--src/sage/graphs/digraph_generators.py12
-rw-r--r--src/sage/graphs/distances_all_pairs.pyx12
-rw-r--r--src/sage/graphs/generators/classical_geometries.py12
-rw-r--r--src/sage/graphs/generators/families.py22
-rw-r--r--src/sage/graphs/generators/random.py8
-rw-r--r--src/sage/graphs/generators/smallgraphs.py4
-rw-r--r--src/sage/graphs/generic_graph.py37
-rw-r--r--src/sage/graphs/generic_graph_pyx.pyx2
-rw-r--r--src/sage/graphs/graph.py33
-rw-r--r--src/sage/graphs/graph_decompositions/tdlib.pyx6
-rw-r--r--src/sage/graphs/graph_generators.py6
-rw-r--r--src/sage/graphs/graph_generators_pyx.pyx4
-rw-r--r--src/sage/graphs/hyperbolicity.pyx10
-rw-r--r--src/sage/graphs/modular_decomposition.pyx2
-rw-r--r--src/sage/graphs/pq_trees.py2
-rw-r--r--src/sage/graphs/schnyder.py4
-rw-r--r--src/sage/graphs/spanning_tree.pyx4
-rw-r--r--src/sage/graphs/strongly_regular_db.pyx34
-rw-r--r--src/sage/groups/braid.py4
-rw-r--r--src/sage/groups/finitely_presented.py2
-rw-r--r--src/sage/groups/groups_catalog.py22
-rw-r--r--src/sage/groups/misc_gps/misc_groups_catalog.py2
-rw-r--r--src/sage/groups/perm_gps/permgroup.py2
-rw-r--r--src/sage/groups/perm_gps/permgroup_named.py2
-rw-r--r--src/sage/homology/chain_homotopy.py6
-rw-r--r--src/sage/homology/delta_complex.py2
-rw-r--r--src/sage/homology/examples.py12
-rw-r--r--src/sage/homology/homology_vector_space_with_basis.py12
-rw-r--r--src/sage/homology/simplicial_complex.py4
-rw-r--r--src/sage/interfaces/ecm.py65
-rw-r--r--src/sage/interfaces/tides.py2
-rw-r--r--src/sage/lfunctions/zero_sums.pyx2
-rw-r--r--src/sage/libs/coxeter3/coxeter_group.py4
-rw-r--r--src/sage/manifolds/manifold.py8
-rw-r--r--src/sage/matrix/matrix0.pyx2
-rw-r--r--src/sage/matrix/matrix2.pyx263
-rw-r--r--src/sage/matrix/matrix_cyclo_dense.pyx2
-rw-r--r--src/sage/matrix/matrix_integer_dense.pyx12
-rw-r--r--src/sage/matrix/matrix_misc.py2
-rw-r--r--src/sage/matrix/matrix_mod2_dense.pyx8
-rw-r--r--src/sage/matrix/matrix_space.py14
-rw-r--r--src/sage/matroids/matroid.pyx22
-rw-r--r--src/sage/misc/c3_controlled.pyx7
-rw-r--r--src/sage/misc/sagedoc.py2
-rw-r--r--src/sage/modular/arithgroup/arithgroup_perm.py2
-rw-r--r--src/sage/modular/dirichlet.py4
-rw-r--r--src/sage/modular/modform/element.py4
-rw-r--r--src/sage/modules/free_module_integer.py4
-rw-r--r--src/sage/modules/vector_double_dense.pyx8
-rw-r--r--src/sage/monoids/string_monoid.py2
-rw-r--r--src/sage/numerical/backends/coin_backend.pyx2
-rw-r--r--src/sage/numerical/backends/cplex_backend.pyx2
-rw-r--r--src/sage/numerical/backends/cvxopt_backend.pyx2
-rw-r--r--src/sage/numerical/backends/generic_backend.pyx23
-rw-r--r--src/sage/numerical/backends/glpk_backend.pyx2
-rw-r--r--src/sage/numerical/backends/glpk_exact_backend.pxd17
-rw-r--r--src/sage/numerical/backends/glpk_exact_backend.pyx194
-rw-r--r--src/sage/numerical/backends/gurobi_backend.pyx2
-rw-r--r--src/sage/numerical/backends/interactivelp_backend.pyx20
-rw-r--r--src/sage/numerical/backends/ppl_backend.pyx12
-rw-r--r--src/sage/numerical/knapsack.py2
-rw-r--r--src/sage/numerical/linear_functions.pxd17
-rw-r--r--src/sage/numerical/linear_functions.pyx591
-rw-r--r--src/sage/numerical/linear_tensor_constraints.py6
-rw-r--r--src/sage/numerical/mip.pyx3
-rw-r--r--src/sage/numerical/optimize.py2
-rw-r--r--src/sage/plot/matrix_plot.py27
-rw-r--r--src/sage/plot/plot3d/base.pyx18
-rw-r--r--src/sage/plot/plot3d/parametric_surface.pyx15
-rw-r--r--src/sage/plot/plot3d/platonic.py130
-rw-r--r--src/sage/plot/plot3d/plot3d.py250
-rw-r--r--src/sage/plot/plot3d/shapes.pyx218
-rw-r--r--src/sage/quadratic_forms/quadratic_form.py57
-rw-r--r--src/sage/quadratic_forms/quadratic_form__mass__Siegel_densities.py36
-rw-r--r--src/sage/quadratic_forms/special_values.py36
-rw-r--r--src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py2
-rw-r--r--src/sage/rings/complex_interval.pyx2
-rw-r--r--src/sage/rings/continued_fraction.py5
-rw-r--r--src/sage/rings/finite_rings/conway_polynomials.py2
-rw-r--r--src/sage/rings/finite_rings/finite_field_base.pyx2
-rw-r--r--src/sage/rings/finite_rings/integer_mod.pyx2
-rw-r--r--src/sage/rings/fraction_field_element.pyx2
-rw-r--r--src/sage/rings/infinity.py8
-rw-r--r--src/sage/rings/number_field/small_primes_of_degree_one.py2
-rw-r--r--src/sage/rings/number_field/totallyreal_data.pyx2
-rw-r--r--src/sage/rings/polynomial/laurent_polynomial.pyx12
-rw-r--r--src/sage/rings/polynomial/multi_polynomial_ring_generic.pyx6
-rw-r--r--src/sage/rings/polynomial/multi_polynomial_sequence.py2
-rw-r--r--src/sage/rings/polynomial/polynomial_element.pyx2
-rw-r--r--src/sage/rings/polynomial/polynomial_ring.py4
-rw-r--r--src/sage/rings/polynomial/symmetric_ideal.py6
-rw-r--r--src/sage/rings/real_mpfr.pyx11
-rw-r--r--src/sage/rings/ring.pyx2
-rw-r--r--src/sage/rings/universal_cyclotomic_field.py2
-rw-r--r--src/sage/schemes/elliptic_curves/BSD.py20
-rw-r--r--src/sage/schemes/elliptic_curves/ell_rational_field.py6
-rw-r--r--src/sage/schemes/elliptic_curves/height.py6
-rw-r--r--src/sage/schemes/elliptic_curves/isogeny_class.py2
-rw-r--r--src/sage/schemes/elliptic_curves/isogeny_small_degree.py4
-rw-r--r--src/sage/schemes/elliptic_curves/period_lattice.py2
-rw-r--r--src/sage/schemes/elliptic_curves/period_lattice_region.pyx2
-rw-r--r--src/sage/schemes/elliptic_curves/sha_tate.py6
-rw-r--r--src/sage/schemes/hyperelliptic_curves/mestre.py6
-rw-r--r--src/sage/schemes/product_projective/wehlerK3.py8
-rw-r--r--src/sage/schemes/projective/endPN_minimal_model.py4
-rw-r--r--src/sage/schemes/projective/projective_morphism.py6
-rw-r--r--src/sage/structure/coerce.pyx14
-rw-r--r--src/sage/structure/parent.pxd25
-rw-r--r--src/sage/structure/parent.pyx1
-rw-r--r--src/sage/symbolic/expression.pyx4
-rw-r--r--src/sage/symbolic/expression_conversions.py3
-rw-r--r--src/sage/symbolic/function.pxd1
-rw-r--r--src/sage/symbolic/function.pyx33
-rw-r--r--src/sage/version.py4
-rw-r--r--src/sage_setup/docbuild/__init__.py2
-rw-r--r--src/sage_setup/docbuild/ext/multidocs.py17
-rw-r--r--src/sage_setup/docbuild/ext/sage_autodoc.py73
-rw-r--r--src/sage_setup/docbuild/sphinxbuild.py8
340 files changed, 13271 insertions, 4078 deletions
diff --git a/Makefile b/Makefile
index 37bf501..1e92b85 100644
--- a/Makefile
+++ b/Makefile
@@ -91,34 +91,37 @@ test: all
check: test
testall: all
- $(TESTALL) --optional=all --logfile=logs/testall.log
+ $(TESTALL) --optional=sage,optional,external --logfile=logs/testall.log
testlong: all
$(TESTALL) --long --logfile=logs/testlong.log
testalllong: all
- $(TESTALL) --long --optional=all --logfile=logs/testalllong.log
+ $(TESTALL) --long --optional=sage,optional,external --logfile=logs/testalllong.log
ptest: all
$(PTESTALL) --logfile=logs/ptest.log
ptestall: all
- $(PTESTALL) --optional=all --logfile=logs/ptestall.log
+ $(PTESTALL) --optional=sage,optional,external --logfile=logs/ptestall.log
ptestlong: all
$(PTESTALL) --long --logfile=logs/ptestlong.log
ptestalllong: all
- $(PTESTALL) --long --optional=all --logfile=logs/ptestalllong.log
+ $(PTESTALL) --long --optional=sage,optional,external --logfile=logs/ptestalllong.log
+testoptional: all
+ $(TESTALL) --optional=sage,optional --logfile=logs/testoptional.log
-testoptional: testall # just an alias
+testoptionallong: all
+ $(TESTALL) --long --optional=sage,optional --logfile=logs/testoptionallong.log
-testoptionallong: testalllong # just an alias
+ptestoptional: all
+ $(PTESTALL) --optional=sage,optional --logfile=logs/ptestoptional.log
-ptestoptional: ptestall # just an alias
-
-ptestoptionallong: ptestalllong # just an alias
+ptestoptionallong: all
+ $(PTESTALL) --long --optional=sage,optional --logfile=logs/ptestoptionallong.log
configure: configure.ac src/bin/sage-version.sh m4/*.m4
./bootstrap -d
diff --git a/VERSION.txt b/VERSION.txt
index 25a6e6c..e37de58 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1 +1 @@
-SageMath version 7.2.beta5, Release Date: 2016-04-21
+SageMath version 7.2.beta6, Release Date: 2016-04-28
diff --git a/build/pkgs/alabaster/SPKG.txt b/build/pkgs/alabaster/SPKG.txt
new file mode 100644
index 0000000..b6f8231
--- /dev/null
+++ b/build/pkgs/alabaster/SPKG.txt
@@ -0,0 +1,13 @@
+= alabaster =
+
+== Description ==
+
+Alabaster is a visually (c)lean, responsive, configurable theme for the Sphinx
+documentation system. It is Python 2+3 compatible.
+
+It began as a third-party theme, and is still maintained separately, but as of
+Sphinx 1.3, Alabaster is an install-time dependency of Sphinx and is selected
+as the default theme.
+
+Live examples of this theme can be seen on paramiko.org, fabfile.org and
+pyinvoke.org.
diff --git a/build/pkgs/alabaster/checksums.ini b/build/pkgs/alabaster/checksums.ini
new file mode 100644
index 0000000..85eadfd
--- /dev/null
+++ b/build/pkgs/alabaster/checksums.ini
@@ -0,0 +1,4 @@
+tarball=alabaster-VERSION.tar.gz
+sha1=ff3e575ee7eb4ba1721f17d91ec5a54b16283603
+md5=957c665d7126dea8121f98038debcba7
+cksum=738605178
diff --git a/build/pkgs/alabaster/dependencies b/build/pkgs/alabaster/dependencies
new file mode 100644
index 0000000..d5dab72
--- /dev/null
+++ b/build/pkgs/alabaster/dependencies
@@ -0,0 +1,5 @@
+$(PYTHON) | pip
+
+----------
+All lines of this file are ignored except the first.
+It is copied by SAGE_ROOT/build/make/install into SAGE_ROOT/build/make/Makefile.
diff --git a/build/pkgs/alabaster/package-version.txt b/build/pkgs/alabaster/package-version.txt
new file mode 100644
index 0000000..879be8a
--- /dev/null
+++ b/build/pkgs/alabaster/package-version.txt
@@ -0,0 +1 @@
+0.7.7
diff --git a/build/pkgs/alabaster/spkg-install b/build/pkgs/alabaster/spkg-install
new file mode 100755
index 0000000..afb3f30
--- /dev/null
+++ b/build/pkgs/alabaster/spkg-install
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+cd src && python setup.py install
diff --git a/build/pkgs/alabaster/type b/build/pkgs/alabaster/type
new file mode 100644
index 0000000..a6a7b9c
--- /dev/null
+++ b/build/pkgs/alabaster/type
@@ -0,0 +1 @@
+standard
diff --git a/build/pkgs/brial/patches/build/cygwin-gnucpp.patch b/build/pkgs/brial/patches/build/cygwin-gnucpp.patch
new file mode 100644
index 0000000..6fe26c1
--- /dev/null
+++ b/build/pkgs/brial/patches/build/cygwin-gnucpp.patch
@@ -0,0 +1,10 @@
+--- a/common.mk 2016-04-07 15:53:44.907758600 +0200
++++ b/common.mk 2016-04-07 15:54:02.599770500 +0200
+@@ -3,6 +3,6 @@
+ -I$(top_srcdir)/libpolybori/include
+
+ AM_CFLAGS = -std=c99
+-AM_CXXFLAGS = -std=c++98 -ftemplate-depth-100
++AM_CXXFLAGS = -std=gnu++98 -ftemplate-depth-100
+
+ AM_DEFAULT_SOURCE_EXT = .cc
diff --git a/build/pkgs/brial/patches/cygwin-gnucpp.patch b/build/pkgs/brial/patches/cygwin-gnucpp.patch
new file mode 100644
index 0000000..13593a5
--- /dev/null
+++ b/build/pkgs/brial/patches/cygwin-gnucpp.patch
@@ -0,0 +1,51 @@
+diff --git a/Cudd/cudd/Makefile.in b/Cudd/cudd/Makefile.in
+index 645eb7d..760278b
+--- a/Cudd/cudd/Makefile.in
++++ b/Cudd/cudd/Makefile.in
+@@ -350,7 +350,7 @@ AM_CPPFLAGS = \
+ -I$(top_srcdir)/libpolybori/include
+
+ AM_CFLAGS = -std=c99
+-AM_CXXFLAGS = -std=c++98 -ftemplate-depth-100
++AM_CXXFLAGS = -std=gnu++98 -ftemplate-depth-100
+ AM_DEFAULT_SOURCE_EXT = .cc
+ noinst_LTLIBRARIES = libcudd.la
+ libcudd_la_SOURCES = \
+diff --git a/common.mk b/common.mk
+index 7915587..0afda02 100755
+--- a/common.mk
++++ b/common.mk
+@@ -3,6 +3,6 @@ AM_CPPFLAGS = \
+ -I$(top_srcdir)/libpolybori/include
+
+ AM_CFLAGS = -std=c99
+-AM_CXXFLAGS = -std=c++98 -ftemplate-depth-100
++AM_CXXFLAGS = -std=gnu++98 -ftemplate-depth-100
+
+ AM_DEFAULT_SOURCE_EXT = .cc
+diff --git a/groebner/src/Makefile.in b/groebner/src/Makefile.in
+index ef7882c..cb3b04f
+--- a/groebner/src/Makefile.in
++++ b/groebner/src/Makefile.in
+@@ -372,7 +372,7 @@ AM_CPPFLAGS = \
+ -I$(top_srcdir)/libpolybori/include
+
+ AM_CFLAGS = -std=c99
+-AM_CXXFLAGS = -std=c++98 -ftemplate-depth-100
++AM_CXXFLAGS = -std=gnu++98 -ftemplate-depth-100
+ AM_DEFAULT_SOURCE_EXT = .cc
+ lib_LTLIBRARIES = libpolybori_groebner.la
+ libpolybori_groebner_la_CXXFLAGS = $(AM_CXXFLAGS) $(SIMMD_CFLAGS)
+diff --git a/libpolybori/src/Makefile.in b/libpolybori/src/Makefile.in
+index 4e4e60a..4d110c2
+--- a/libpolybori/src/Makefile.in
++++ b/libpolybori/src/Makefile.in
+@@ -323,7 +323,7 @@ AM_CPPFLAGS = \
+ -I$(top_srcdir)/libpolybori/include
+
+ AM_CFLAGS = -std=c99
+-AM_CXXFLAGS = -std=c++98 -ftemplate-depth-100
++AM_CXXFLAGS = -std=gnu++98 -ftemplate-depth-100
+ AM_DEFAULT_SOURCE_EXT = .cc
+ noinst_LTLIBRARIES = libpolybori_base.la
+ libpolybori_base_la_SOURCES = \
diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini
index a4c5bec..8631429 100644
--- a/build/pkgs/configure/checksums.ini
+++ b/build/pkgs/configure/checksums.ini
@@ -1,4 +1,4 @@
tarball=configure-VERSION.tar.gz
-sha1=443f6e49b23bbc1e9004f32c802b83e35abe3a77
-md5=bb7132154839ae45a55ca1c46331289d
-cksum=2428928852
+sha1=dedd72dbd12d4b2d3101616a7946cacd7704046d
+md5=fc0e4afaf65bd5f241380893d5f72d30
+cksum=3500657664
diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt
index 3f7d191..a762560 100644
--- a/build/pkgs/configure/package-version.txt
+++ b/build/pkgs/configure/package-version.txt
@@ -1 +1 @@
-159
+160
diff --git a/build/pkgs/imagesize/SPKG.txt b/build/pkgs/imagesize/SPKG.txt
new file mode 100644
index 0000000..2ec0272
--- /dev/null
+++ b/build/pkgs/imagesize/SPKG.txt
@@ -0,0 +1,5 @@
+= imagesize =
+
+== Description ==
+
+It parses image files' header and return image size.
diff --git a/build/pkgs/imagesize/checksums.ini b/build/pkgs/imagesize/checksums.ini
new file mode 100644
index 0000000..c4b13a9
--- /dev/null
+++ b/build/pkgs/imagesize/checksums.ini
@@ -0,0 +1,4 @@
+tarball=imagesize-VERSION.tar.gz
+sha1=cf95cf234c88d5400acfa922cdc3c1f5b6a7e713
+md5=23cb4b0b5ec76fb26942d6cc0b1cf31c
+cksum=40173098
diff --git a/build/pkgs/imagesize/dependencies b/build/pkgs/imagesize/dependencies
new file mode 100644
index 0000000..d5dab72
--- /dev/null
+++ b/build/pkgs/imagesize/dependencies
@@ -0,0 +1,5 @@
+$(PYTHON) | pip
+
+----------
+All lines of this file are ignored except the first.
+It is copied by SAGE_ROOT/build/make/install into SAGE_ROOT/build/make/Makefile.
diff --git a/build/pkgs/imagesize/package-version.txt b/build/pkgs/imagesize/package-version.txt
new file mode 100644
index 0000000..faef31a
--- /dev/null
+++ b/build/pkgs/imagesize/package-version.txt
@@ -0,0 +1 @@
+0.7.0
diff --git a/build/pkgs/imagesize/spkg-install b/build/pkgs/imagesize/spkg-install
new file mode 100755
index 0000000..afb3f30
--- /dev/null
+++ b/build/pkgs/imagesize/spkg-install
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+cd src && python setup.py install
diff --git a/build/pkgs/imagesize/type b/build/pkgs/imagesize/type
new file mode 100644
index 0000000..a6a7b9c
--- /dev/null
+++ b/build/pkgs/imagesize/type
@@ -0,0 +1 @@
+standard
diff --git a/build/pkgs/sagetex/SPKG.txt b/build/pkgs/sagetex/SPKG.txt
index 1d45452..43f0ba5 100644
--- a/build/pkgs/sagetex/SPKG.txt
+++ b/build/pkgs/sagetex/SPKG.txt
@@ -21,16 +21,13 @@ this license, visit [[http://creativecommons.org/licenses/by-sa/3.0/]]
or send a letter to Creative Commons, 171 Second Street, Suite 300, San
Francisco, California, 94105, USA.
-The included files `tkz-berge.sty` and `tkz-graph.sty` are from
-[[http://altermundus.com/pages/tkz/]] and are licensed under the "LaTeX
-Project Public License Distributed from CTAN archives in directory
-macros/latex/base/lppl.txt"; see
-[[http://mirror.ctan.org/macros/latex/base/lppl.txt]].
+== SPKG Maintainers ==
+
+Dan Drake (dr.dan.drake at gmail)
== Upstream Contact ==
-Author: Dan Drake. Web: [[http://www.bitbucket.org/ddrake/sagetex]] and
-[[http://mathsci.kaist.ac.kr/~drake]].
+Author: Dan Drake. Web: [[https://github.com/dandrake/sagetex]]
== Dependencies ==
@@ -43,97 +40,15 @@ it cannot find "latex" in your path.
To use SageTeX, both Sage and LaTeX need to know about it. SageTeX comes
standard with Sage, so you only need to make sure LaTeX can find what it
needs. Full details are in the Sage installation guide at
-http://sagemath.org/doc/installation/ .
+http://sagemath.org/doc/installation/ and
+http://doc.sagemath.org/html/en/tutorial/sagetex.html .
-The directory `$SAGE_ROOT/local/share/texmf/tex/generic/sagetex`
-contains documentation and an example file. If you have problems or
-suggestions see [[http://groups.google.com/group/sage-support|the
-sage-support group]].
+The directory `$SAGE_ROOT/local/share/doc/sagetex` contains
+documentation and an example file. See
+`$SAGE_ROOT/local/share/texmf/tex/latex/sagetex` for the source code and
+some possibly useful scripts. If you have problems or suggestions see
+[[http://groups.google.com/group/sage-support|the sage-support group]].
-If you want to help develop SageTeX, please clone the bitbucket
-Mercurial repository (see the "Upstream Contact" above) and send me
+If you want to help develop SageTeX, please clone the github
+repository (see the "Upstream Contact" above) and send me
patches based on that.
-
-Finally, note that you can actually use SageTeX without Sage! The
-`remote-sagetex.py` script uses any remote Sage server to do the
-computations for you. If you can't or don't want to install Sage on your
-computer, you can use the `remote-sagetex` script to use SageTeX,
-although if you are in such a situation, you probably want to get
-SageTeX [[http://tug.ctan.org/pkg/sagetex|from CTAN]] instead of
-downloading this spkg.
-
-== Changelog ==
-
-=== sagetex-2.3.4 (Dan Drake, 20 Mar 2013) ===
- * Copy example.tex into the doc directory too. (Ticket #14246)
-
-=== sagetex-2.3.3.p2 (John Palmieri, 11 Feb 2012) ===
- * Use "#!/usr/bin/env bash" at the top of spkg-check so it works on
- OpenSolaris (ticket #12500).
-
-=== sagetex-2.3.3.p1 (Dan Drake, 16 Jan 2012) ===
-
- * Improve mechanism for preventing multiply-defined labels (ticket
- 12267), and also keep track of label names when recording maximum
- counter seen. Also improve version mismatch checking to be backwards
- compatible (fixes ticket 8035).
-
-=== sagetex-2.3.1.p1 (Dan Drake, 18 Nov 2011) ===
-
- * Comment out tkz-berge and other TikZ stuff from example file; don't
- distribute tkz-* with SageTeX; fix spkg-check so that we can actually
- run and pass checks on this spkg. See #11583.
-
-=== sagetex-2.3.1 (Dan Drake, 27 May 2011) ===
-
- * Include various fixes; see #10146. This now installs the PDFs of the
- documentation to SAGE_ROOT/local/share/doc/sagetex as a sort of
- halfway-not-really implementation of the SAGE_SPKG_INSTALL_DOCS
- stuff. (See #10908 and #11197.)
-
-=== sagetex-2.3 (Dan Drake, 20 Oct 2010) ===
-
- * Now includes the sagecommandline environment by Volker Braun.
-
-=== sagetex-2.2.5 (Dan Drake, 25 Mar 2010) ===
-
- * Better implementation of the sageexample environment; 3D plots now
- automatically fall back to using PNG.
-
-=== sagetex-2.2.4 (Dan Drake, 14 Mar 2010) ===
-
- * Special spkg for Nicolas Thiery; this includes the sageexample
- environment and some basic documentation. This spkg won't get
- distributed with Sage.
-
-=== sagetex-2.2.3.p0 (Dan Drake, 2 Mar 2010) ===
-
- * Couple documentation fixes; spkg-check now bails if it can't find
- tkz-berge.sty (since the example file needs that)
-
-=== sagetex-2.2.3 (Dan Drake, 30 Dec 2009) ===
-
- * New spkg, with instructions that reflect SageTeX's inclusion as a
- standard spkg.
-
-=== sagetex-2.2.1 (Dan Drake, 20 June 2009) ===
-
- * Update to version 2.2.1, which includes the remote-sagetex script and
- synchronizes with the current version available on CTAN.
-
-=== sagetex-2.1.1 (Dan Drake, 28 May 2009) ===
-
- * Update to version 2.1.1, which adds pause/unpause support.
-
-=== sagetex-2.0.2 (Dan Drake, 21 Apr 2008) ===
-
- * Update source, improve spkg-check.
-
-=== sagetex-2.0.p0 (Dan Drake, 9 Jan 2008) ===
-
- * Proper SPKG.txt, spkg-check, md5sums
- * Split repos, get directory structure right
-
-=== sagetex-2.0 (Dan Drake, 18 Dec 2008) ===
-
- * Initial release
diff --git a/build/pkgs/sagetex/checksums.ini b/build/pkgs/sagetex/checksums.ini
index ae971e6..15d70cc 100644
--- a/build/pkgs/sagetex/checksums.ini
+++ b/build/pkgs/sagetex/checksums.ini
@@ -1,4 +1,4 @@
-tarball=sagetex-VERSION.tar.bz2
-sha1=0d4ff45b97e591a22b225f0d7d1469ff903d4846
-md5=55d2293116a391631daaf7847e618646
-cksum=1506200788
+tarball=sagetex-VERSION.tar.gz
+sha1=b14a1be391d7697b83179d451ea9405a9186c3b6
+md5=89f539ac31dd35555eb4f7959280ff89
+cksum=43653548
diff --git a/build/pkgs/sagetex/package-version.txt b/build/pkgs/sagetex/package-version.txt
index 3f684d2..9f55b2c 100644
--- a/build/pkgs/sagetex/package-version.txt
+++ b/build/pkgs/sagetex/package-version.txt
@@ -1 +1 @@
-2.3.4
+3.0
diff --git a/build/pkgs/sagetex/spkg-install b/build/pkgs/sagetex/spkg-install
index 8712950..c280e11 100755
--- a/build/pkgs/sagetex/spkg-install
+++ b/build/pkgs/sagetex/spkg-install
@@ -15,3 +15,5 @@ if [ $? -ne 0 ]; then
exit 1
fi
+echo "Removing old SageTex version(s)"
+rm -rf $SAGE_LOCAL/share/texmf/tex/generic/sagetex
diff --git a/build/pkgs/snowballstemmer/SPKG.txt b/build/pkgs/snowballstemmer/SPKG.txt
new file mode 100644
index 0000000..8a649d2
--- /dev/null
+++ b/build/pkgs/snowballstemmer/SPKG.txt
@@ -0,0 +1,25 @@
+= snowballstemmer =
+
+== Description ==
+
+This package provides 16 stemmer algorithms (15 + Poerter English stemmer) generated from Snowball algorithms.
+
+It includes following language algorithms:
+
+ Danish
+ Dutch
+ English (Standard, Porter)
+ Finnish
+ French
+ German
+ Hungarian
+ Italian
+ Norwegian
+ Portuguese
+ Romanian
+ Russian
+ Spanish
+ Swedish
+ Turkish
+
+This is a pure Python stemming library. If PyStemmer is available, this module uses it to accelerate.
diff --git a/build/pkgs/snowballstemmer/checksums.ini b/build/pkgs/snowballstemmer/checksums.ini
new file mode 100644
index 0000000..6068faf
--- /dev/null
+++ b/build/pkgs/snowballstemmer/checksums.ini
@@ -0,0 +1,4 @@
+tarball=snowballstemmer-VERSION.tar.gz
+sha1=377be08ed935d401a53cba79319d1812cfe46b81
+md5=643b019667a708a922172e33a99bf2fa
+cksum=4243688392
diff --git a/build/pkgs/snowballstemmer/dependencies b/build/pkgs/snowballstemmer/dependencies
new file mode 100644
index 0000000..d5dab72
--- /dev/null
+++ b/build/pkgs/snowballstemmer/dependencies
@@ -0,0 +1,5 @@
+$(PYTHON) | pip
+
+----------
+All lines of this file are ignored except the first.
+It is copied by SAGE_ROOT/build/make/install into SAGE_ROOT/build/make/Makefile.
diff --git a/build/pkgs/snowballstemmer/package-version.txt b/build/pkgs/snowballstemmer/package-version.txt
new file mode 100644
index 0000000..6085e94
--- /dev/null
+++ b/build/pkgs/snowballstemmer/package-version.txt
@@ -0,0 +1 @@
+1.2.1
diff --git a/build/pkgs/snowballstemmer/spkg-install b/build/pkgs/snowballstemmer/spkg-install
new file mode 100755
index 0000000..afb3f30
--- /dev/null
+++ b/build/pkgs/snowballstemmer/spkg-install
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+cd src && python setup.py install
diff --git a/build/pkgs/snowballstemmer/type b/build/pkgs/snowballstemmer/type
new file mode 100644
index 0000000..a6a7b9c
--- /dev/null
+++ b/build/pkgs/snowballstemmer/type
@@ -0,0 +1 @@
+standard
diff --git a/build/pkgs/sphinx/SPKG.txt b/build/pkgs/sphinx/SPKG.txt
index 0fa724f..fce17ba 100644
--- a/build/pkgs/sphinx/SPKG.txt
+++ b/build/pkgs/sphinx/SPKG.txt
@@ -20,51 +20,18 @@ Home Page: http://sphinx.pocoo.org,
see also http://pypi.python.org/pypi/Sphinx
== Dependencies ==
- * Jinja2 >= 2.2
- * Pygments >= 0.8
- * docutils >= 0.5
+ * six >= 1.4
+ * Jinja2 >= 2.3
+ * Pygments >= 2.0
+ * docutils >= 0.11
+ * snowballstemmer >= 1.1
+ * babel >= 1.3
* setuptools / distribute
* Python
* GNU patch (shipped with Sage)
== Special Update/Build Instructions ==
- * Here is a description of patches on top of upstream Sphinx:
-
- - patches/autodoc.patch: This patches
- src/sphinx/ext/autodoc.py. This adds an option to Sphinx to
- provide a function to get the argspecs of built-in functions.
-
- - patches/environment.patch: This patches the file
- src/sphinx/environment.py. Patching it should prevent Sphinx
- from rebuilding documentation that is already built.
-
- - patches/highlighting.patch: This patches the file
- src/sphinx/highlighting.py. The patch should allow Sphinx to
- recognize the Sage prompt "sage:" the same way it recognizes the
- ">>>" from Python.
-
- - patches/inline-latex.patch: see Trac #16396 and
- https://bitbucket.org/birkenfeld/sphinx/issue/1480/latex-math-output-is-broken-for-inline
-
- - patches/pngmath.patch: This replaces \usepackage[utf8x]{inputenc}
- by \usepackage[utf8]{inputenc} in the LaTeX preamble for building
- images in the HTML documentation. This change is done because
- some LaTeX installations have only utf8, not utf8x (utf8x adds
- support for much more Unicode characters, but these are not
- needed to typeset the mathematics in the Sage documentation).
-
- - patches/Makefile.patch: This patches the file
- src/sphinx/texinputs/Makefile to increase the memory sizes for
- LaTeX. These increased stack sizes should be sufficient for LaTeX
- to handle the huge index of the Sage reference manual when
- building the PDF version of that manual.
-
- - patches/nested.patch (submitted upstream: pull request #250, issue #777):
- This changes the sphinx's customized Verbatim environment to use
- \trivlist instead of \list. This fixes the pdf docbuild for
- deeply nested classes/methods revealed in #9107.
-
* The script create_grammar_pickle.py creates the file
Grammar2.7.pickle in site-packages/Sphinx-.../sphinx/pycode/. This
helps to avoid race conditions when building the documentation in
diff --git a/build/pkgs/sphinx/checksums.ini b/build/pkgs/sphinx/checksums.ini
index 7eb5be5..70b234a 100644
--- a/build/pkgs/sphinx/checksums.ini
+++ b/build/pkgs/sphinx/checksums.ini
@@ -1,4 +1,4 @@
tarball=Sphinx-VERSION.tar.gz
-sha1=9e424b03fe1f68e0326f3905738adcf27782f677
-md5=3dc73ccaa8d0bfb2d62fb671b1f7e8a4
-cksum=3972992129
+sha1=d18b856710b22ae9740147e21754ca5b851af9b2
+md5=4c4988e0306a04cef8dccc384281e585
+cksum=282370994
diff --git a/build/pkgs/sphinx/dependencies b/build/pkgs/sphinx/dependencies
index c7304ef..cc22818 100644
--- a/build/pkgs/sphinx/dependencies
+++ b/build/pkgs/sphinx/dependencies
@@ -1,4 +1,4 @@
-$(PYTHON) setuptools docutils jinja2 pygments
+$(PYTHON) | setuptools docutils jinja2 pygments six snowballstemmer imagesize babel alabaster
----------
All lines of this file are ignored except the first.
diff --git a/build/pkgs/sphinx/package-version.txt b/build/pkgs/sphinx/package-version.txt
index aae5f78..cc6f993 100644
--- a/build/pkgs/sphinx/package-version.txt
+++ b/build/pkgs/sphinx/package-version.txt
@@ -1 +1 @@
-1.2.2.p0
+1.4.1.p0
diff --git a/build/pkgs/sphinx/patches/Makefile.patch b/build/pkgs/sphinx/patches/Makefile.patch
index 8dfd02f..8b695e3 100644
--- a/build/pkgs/sphinx/patches/Makefile.patch
+++ b/build/pkgs/sphinx/patches/Makefile.patch
@@ -1,42 +1,21 @@
-diff -ur src/sphinx/texinputs/Makefile src.patched/sphinx/texinputs/Makefile
---- src/sphinx/texinputs/Makefile 2011-11-01 08:38:44.000000000 +0100
-+++ src.patched/sphinx/texinputs/Makefile 2012-02-28 22:04:56.438373064 +0100
-@@ -8,6 +8,7 @@
- ARCHIVEPRREFIX =
- # Additional LaTeX options
- LATEXOPTS =
-+LATEXENV = pool_size=4000000 save_size=50000 extra_mem_top=2000000
+Increase the memory sizes for LaTeX
+
+These increased stack sizes should be sufficient for LaTeX to handle the
+huge index of the Sage PDF reference manual.
+
+diff -ru a/sphinx/texinputs/Makefile b/sphinx/texinputs/Makefile
+--- a/sphinx/texinputs/Makefile 2016-03-06 06:25:30.000000000 +0100
++++ b/sphinx/texinputs/Makefile 2016-04-06 19:33:07.248103397 +0200
+@@ -11,8 +11,10 @@
+ # format: pdf or dvi
+ FMT = pdf
- all: $(ALLPDF)
- all-pdf: $(ALLPDF)
-@@ -43,20 +44,20 @@
- # The number of LaTeX runs is quite conservative, but I don't expect it
- # to get run often, so the little extra time won't hurt.
- %.dvi: %.tex
-- latex $(LATEXOPTS) '$<'
-- latex $(LATEXOPTS) '$<'
-- latex $(LATEXOPTS) '$<'
-+ env </dev/null $(LATEXENV) latex $(LATEXOPTS) '$<'
-+ env </dev/null $(LATEXENV) latex $(LATEXOPTS) '$<'
-+ env </dev/null $(LATEXENV) latex $(LATEXOPTS) '$<'
- -makeindex -s python.ist '$(basename $<).idx'
-- latex $(LATEXOPTS) '$<'
-- latex $(LATEXOPTS) '$<'
-+ env </dev/null $(LATEXENV) latex $(LATEXOPTS) '$<'
-+ env </dev/null $(LATEXENV) latex $(LATEXOPTS) '$<'
-
- %.pdf: %.tex
-- pdflatex $(LATEXOPTS) '$<'
-- pdflatex $(LATEXOPTS) '$<'
-- pdflatex $(LATEXOPTS) '$<'
-+ env </dev/null $(LATEXENV) pdflatex $(LATEXOPTS) '$<'
-+ env </dev/null $(LATEXENV) pdflatex $(LATEXOPTS) '$<'
-+ env </dev/null $(LATEXENV) pdflatex $(LATEXOPTS) '$<'
- -makeindex -s python.ist '$(basename $<).idx'
-- pdflatex $(LATEXOPTS) '$<'
-- pdflatex $(LATEXOPTS) '$<'
-+ env </dev/null $(LATEXENV) pdflatex $(LATEXOPTS) '$<'
-+ env </dev/null $(LATEXENV) pdflatex $(LATEXOPTS) '$<'
+-LATEX = latex
+-PDFLATEX = pdflatex
++LATEXENV = env pool_size=4000000 save_size=50000 extra_mem_top=2000000
++
++LATEX = $(LATEXENV) latex
++PDFLATEX = $(LATEXENV) pdflatex
+ MAKEINDEX = makeindex
- clean:
- rm -f *.dvi *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla
+ all: $(ALLPDF)
diff --git a/build/pkgs/sphinx/patches/autodoc.patch b/build/pkgs/sphinx/patches/autodoc.patch
deleted file mode 100644
index 7f0d846..0000000
--- a/build/pkgs/sphinx/patches/autodoc.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- Sphinx-1.2.2/sphinx/ext/autodoc.py.orig 2014-03-02 20:38:09.000000000 +1300
-+++ Sphinx-1.2.2/sphinx/ext/autodoc.py 2014-10-19 23:02:09.000000000 +1300
-@@ -953,8 +953,13 @@
- def format_args(self):
- if inspect.isbuiltin(self.object) or \
- inspect.ismethoddescriptor(self.object):
-- # cannot introspect arguments of a C function or method
-- return None
-+ # can never get arguments of a C function or method unless
-+ # a function to do so is supplied
-+ if self.env.config.autodoc_builtin_argspec:
-+ argspec = self.env.config.autodoc_builtin_argspec(self.object)
-+ return inspect.formatargspec(*argspec)
-+ else:
-+ return None
- try:
- argspec = getargspec(self.object)
- except TypeError:
-@@ -1216,9 +1221,14 @@
- def format_args(self):
- if inspect.isbuiltin(self.object) or \
- inspect.ismethoddescriptor(self.object):
-- # can never get arguments of a C function or method
-- return None
-- argspec = getargspec(self.object)
-+ # can never get arguments of a C function or method unless
-+ # a function to do so is supplied
-+ if self.env.config.autodoc_builtin_argspec:
-+ argspec = self.env.config.autodoc_builtin_argspec(self.object)
-+ else:
-+ return None
-+ else:
-+ argspec = getargspec(self.object)
- if argspec[0] and argspec[0][0] in ('cls', 'self'):
- del argspec[0][0]
- return inspect.formatargspec(*argspec)
-@@ -1452,6 +1462,7 @@
-
- app.add_config_value('autoclass_content', 'class', True)
- app.add_config_value('autodoc_member_order', 'alphabetic', True)
-+ app.add_config_value('autodoc_builtin_argspec', None, True)
- app.add_config_value('autodoc_default_flags', [], True)
- app.add_config_value('autodoc_docstring_signature', True, True)
- app.add_event('autodoc-process-docstring')
diff --git a/build/pkgs/sphinx/patches/environment.patch b/build/pkgs/sphinx/patches/environment.patch
index d74ba35..d14ae5d 100644
--- a/build/pkgs/sphinx/patches/environment.patch
+++ b/build/pkgs/sphinx/patches/environment.patch
@@ -1,11 +1,13 @@
+Prevent Sphinx from rebuilding documentation that is already built
+
--- Sphinx-1.2.2/sphinx/environment.py.orig 2014-03-02 20:38:09.000000000 +1300
+++ Sphinx-1.2.2/sphinx/environment.py 2014-10-19 23:31:15.000000000 +1300
-@@ -424,10 +424,13 @@
+@@ -540,10 +540,13 @@
else:
# check if a config value was changed that affects how
# doctrees are read
+ import inspect
- for key, descr in config.values.iteritems():
+ for key, descr in iteritems(config.values):
if descr[1] != 'env':
continue
if self.config[key] != config[key]:
diff --git a/build/pkgs/sphinx/patches/highlighting.patch b/build/pkgs/sphinx/patches/highlighting.patch
index 1b4db44..5f0bad3 100644
--- a/build/pkgs/sphinx/patches/highlighting.patch
+++ b/build/pkgs/sphinx/patches/highlighting.patch
@@ -1,11 +1,27 @@
---- Sphinx-1.2.2/sphinx/highlighting.py.orig 2014-03-02 20:38:09.000000000 +1300
-+++ Sphinx-1.2.2/sphinx/highlighting.py 2014-10-19 23:32:23.000000000 +1300
-@@ -167,7 +167,7 @@
+Allow Sphinx to recognize the Sage prompt "sage:"
+the same way it recognizes the ">>>" from Python
+
+diff -ru a/sphinx/highlighting.py b/sphinx/highlighting.py
+--- a/sphinx/highlighting.py 2016-03-28 15:16:34.000000000 +0200
++++ b/sphinx/highlighting.py 2016-04-22 22:34:29.642929758 +0200
+@@ -96,15 +96,19 @@
+ source = source.decode()
# find out which lexer to use
- if lang in ('py', 'python'):
-- if source.startswith('>>>'):
-+ if source.startswith('>>>') or source.startswith('sage: '):
+- if lang in ('py', 'python'):
++ elif lang in ('py', 'python'):
+ if source.startswith('>>>'):
# interactive session
lexer = lexers['pycon']
- elif not force:
++ elif source.startswith('sage: '):
++ lexer = lexers['pycon']
+ else:
+ lexer = lexers['python']
+ elif lang in ('py3', 'python3', 'default'):
+ if source.startswith('>>>'):
+ lexer = lexers['pycon3']
++ elif source.startswith('sage: '):
++ lexer = lexers['pycon']
+ else:
+ lexer = lexers['python3']
+ elif lang == 'guess':
diff --git a/build/pkgs/sphinx/patches/inline-latex.patch b/build/pkgs/sphinx/patches/inline-latex.patch
deleted file mode 100644
index fb29285..0000000
--- a/build/pkgs/sphinx/patches/inline-latex.patch
+++ /dev/null
@@ -1,40 +0,0 @@
---- src/sphinx/writers/latex.py.orig 2014-06-05 23:38:03.808669401 -0500
-+++ src/sphinx/writers/latex.py 2014-06-05 23:27:22.752376713 -0500
-@@ -264,6 +264,7 @@
- self.next_figure_ids = set()
- self.next_table_ids = set()
- # flags
-+ self.verbatim = False
- self.in_title = 0
- self.in_production_list = 0
- self.in_footnote = 0
-@@ -1319,6 +1320,7 @@
- (self.curfilestack[-1], node.line))
- if node.rawsource != node.astext():
- # most probably a parsed-literal block -- don't highlight
-+ self.verbatim = True
- self.body.append('\\begin{alltt}\n')
- else:
- code = node.astext().rstrip('\n')
-@@ -1351,6 +1353,7 @@
- raise nodes.SkipNode
- def depart_literal_block(self, node):
- self.body.append('\n\\end{alltt}\n')
-+ self.verbatim = False
- visit_doctest_block = visit_literal_block
- depart_doctest_block = depart_literal_block
-
---- src/sphinx/ext/mathbase.py.orig 2014-06-05 23:39:36.773293241 -0500
-+++ src/sphinx/ext/mathbase.py 2014-06-05 23:18:53.949020605 -0500
-@@ -88,7 +88,10 @@
-
-
- def latex_visit_math(self, node):
-- self.body.append('\\(' + node['latex'] + '\\)')
-+ if self.verbatim:
-+ self.body.append('\\(' + node['latex'] + '\\)')
-+ else:
-+ self.body.append('$' + node['latex'] + '$')
- raise nodes.SkipNode
-
- def latex_visit_displaymath(self, node):
diff --git a/build/pkgs/sphinx/patches/latex_list.patch b/build/pkgs/sphinx/patches/latex_list.patch
new file mode 100644
index 0000000..b5b7e87
--- /dev/null
+++ b/build/pkgs/sphinx/patches/latex_list.patch
@@ -0,0 +1,23 @@
+Fix https://github.com/sphinx-doc/sphinx/issues/777
+
+diff -ru a/sphinx/texinputs/sphinx.sty b/sphinx/texinputs/sphinx.sty
+--- a/sphinx/texinputs/sphinx.sty 2016-04-12 15:07:10.000000000 +0200
++++ b/sphinx/texinputs/sphinx.sty 2016-04-22 22:24:13.671897443 +0200
+@@ -264,7 +264,7 @@
+ \global\Sphinx@myfirstframedpasstrue
+ % The list environement is needed to control perfectly the vertical
+ % space.
+- \list{}{%
++ \trivlist{}{%
+ \setlength\parskip{0pt}%
+ \setlength\itemsep{0ex}%
+ \setlength\topsep{0ex}%
+@@ -278,7 +278,7 @@
+ \renewcommand{\endVerbatim}{%
+ \endOriginalVerbatim
+ \endMakeFramed
+- \endlist
++ \endtrivlist
+ % LaTeX environments always revert local changes on exit, here e.g. \parskip
+ }
+
diff --git a/build/pkgs/sphinx/patches/pngmath.patch b/build/pkgs/sphinx/patches/latex_utf8.patch
index 1356e67..63d2661 100644
--- a/build/pkgs/sphinx/patches/pngmath.patch
+++ b/build/pkgs/sphinx/patches/latex_utf8.patch
@@ -1,3 +1,8 @@
+Some LaTeX installations have only utf8, not utf8x
+
+utf8x adds support for much more Unicode characters, but these are not
+needed to typeset the mathematics in the Sage documentation
+
--- Sphinx-1.2.2/sphinx/ext/pngmath.py.orig 2014-03-02 20:38:09.000000000 +1300
+++ Sphinx-1.2.2/sphinx/ext/pngmath.py 2014-10-19 23:35:17.000000000 +1300
@@ -42,7 +42,7 @@
diff --git a/build/pkgs/sphinx/patches/nested.patch b/build/pkgs/sphinx/patches/nested.patch
deleted file mode 100644
index 1866110..0000000
--- a/build/pkgs/sphinx/patches/nested.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- Sphinx-1.2.2/sphinx/texinputs/sphinx.sty.orig 2014-01-12 02:52:54.000000000 +1300
-+++ Sphinx-1.2.2/sphinx/texinputs/sphinx.sty 2014-10-19 23:34:18.000000000 +1300
-@@ -167,7 +167,7 @@
- \smallskip%
- % The list environement is needed to control perfectly the vertical
- % space.
-- \list{}{%
-+ \trivlist{}{% using trivlist rather than list fixes #777 (too deeply nested error)
- \setlength\parskip{0pt}%
- \setlength\itemsep{0ex}%
- \setlength\topsep{0ex}%
-@@ -181,7 +181,7 @@
- \renewcommand{\endVerbatim}{%
- \endOriginalVerbatim%
- \endMakeFramed%
-- \endlist%
-+ \endtrivlist%
- % close group to restore \parskip
- \egroup%
- }
diff --git a/src/bin/sage-banner b/src/bin/sage-banner
index 1778fbe..87d5716 100644
--- a/src/bin/sage-banner
+++ b/src/bin/sage-banner
@@ -1,5 +1,5 @@
┌────────────────────────────────────────────────────────────────────┐
-│ SageMath version 7.2.beta5, Release Date: 2016-04-21 │
+│ SageMath version 7.2.beta6, Release Date: 2016-04-28 │
│ Type "notebook()" for the browser-based notebook interface. │
│ Type "help()" for help. │
└────────────────────────────────────────────────────────────────────┘
diff --git a/src/bin/sage-runtests b/src/bin/sage-runtests
index ddb8656..5a0fda6 100755
--- a/src/bin/sage-runtests
+++ b/src/bin/sage-runtests
@@ -29,9 +29,10 @@ if __name__ == "__main__":
metavar="SECONDS", help="warn if tests take more time than SECONDS")
parser.add_option("--optional", metavar="PKGS", default="sage,optional",
help='only run tests including one of the "# optional" tags listed in PKGS; '
- 'if "sage" is listed will also test the standard doctests; '
- 'if "optional" is listed will also test all available optional (new-style) packages; '
- 'if set to "all", then all tests will be run; ')
+ 'if "sage" is listed, will also run the standard doctests; '
+ 'if "optional" is listed, will also run tests for installed optional (new-style) packages; '
+ 'if "external" is listed, will also run tests for available external software; '
+ 'if set to "all", then all tests will be run')
parser.add_option("--randorder", type=int, metavar="SEED", help="randomize order of tests")
parser.add_option("--global-iterations", "--global_iterations", type=int, default=0, help="repeat the whole testing process this many times")
parser.add_option("--file-iterations", "--file_iterations", type=int, default=0, help="repeat each file this many times, stopping on the first failure")
diff --git a/src/bin/sage-version.sh b/src/bin/sage-version.sh
index dd74a5a..83b9efe 100644
--- a/src/bin/sage-version.sh
+++ b/src/bin/sage-version.sh
@@ -1,4 +1,4 @@
# Sage version information for shell scripts
# This file is auto-generated by the sage-update-version script, do not edit!
-SAGE_VERSION='7.2.beta5'
-SAGE_RELEASE_DATE='2016-04-21'
+SAGE_VERSION='7.2.beta6'
+SAGE_RELEASE_DATE='2016-04-28'
diff --git a/src/doc/common/conf.py b/src/doc/common/conf.py
index 540cf81..ee3f23a 100644
--- a/src/doc/common/conf.py
+++ b/src/doc/common/conf.py
@@ -75,12 +75,11 @@ release = version
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
-# List of documents that shouldn't be included in the build.
-#unused_docs = []
-
-# List of directories, relative to source directory, that shouldn't be searched
-# for source files.
-exclude_trees = ['.build']
+# List of glob-style patterns that should be excluded when looking for
+# source files. [1] They are matched against the source file names
+# relative to the source directory, using slashes as directory
+# separators on all platforms.
+exclude_patterns = ['.build']
# The reST default role (used for this markup: `text`) to use for all documents.
default_role = 'math'
@@ -227,8 +226,9 @@ if (os.environ.get('SAGE_DOC_MATHJAX', 'no') != 'no'
mathjax_static = os.path.join(sagenb_path, mathjax_relative)
html_static_path.append(mathjax_static)
- exclude_patterns=['**/'+os.path.join(mathjax_relative, i) for i in ('docs', 'README*', 'test',
- 'unpacked', 'LICENSE')]
+ exclude_patterns += ['**/'+os.path.join(mathjax_relative, i)
+ for i in ('docs', 'README*', 'test',
+ 'unpacked', 'LICENSE')]
else:
extensions.append('sphinx.ext.pngmath')
@@ -615,7 +615,7 @@ def call_intersphinx(app, env, node, contnode):
sage: for line in open(thematic_index).readlines():
....: if "padics" in line:
....: sys.stdout.write(line)
- <li><a class="reference external" href="../reference/padics/sage/rings/padics/tutorial.html#sage-rings-padics-tutorial" title="(in Sage Reference Manual: p-Adics ...)"><em>Introduction to the -adics</em></a></li>
+ <li><a class="reference external" href="../reference/padics/sage/rings/padics/tutorial.html#sage-rings-padics-tutorial" title="(in Sage Reference Manual: p-Adics ...)"><span>Introduction to the -adics</span></a></li>
"""
debug_inf(app, "???? Trying intersphinx for %s"%node['reftarget'])
builder = app.builder
@@ -724,9 +724,9 @@ base_class_as_func = [
# link to the Python documentation several links where broken because there
# where class listed as functions. Expand the list 'base_class_as_func'
# above instead of marking the link as broken.
-nitpick_ignore = (
+nitpick_ignore = [
('py:class', 'twisted.web2.resource.Resource'),
- ('py:class', 'twisted.web2.resource.PostableResource'))
+ ('py:class', 'twisted.web2.resource.PostableResource')]
def nitpick_patch_config(app):
"""
diff --git a/src/doc/common/themes/sage/theme.conf b/src/doc/common/themes/sage/theme.conf
index 4fbb8e4..3d84627 100644
--- a/src/doc/common/themes/sage/theme.conf
+++ b/src/doc/common/themes/sage/theme.conf
@@ -1,5 +1,5 @@
[theme]
-inherit = default
+inherit = classic
stylesheet = sage.css
pygments_style = sphinx
diff --git a/src/doc/common/themes/sageref/theme.conf b/src/doc/common/themes/sageref/theme.conf
index 4fbb8e4..3d84627 100644
--- a/src/doc/common/themes/sageref/theme.conf
+++ b/src/doc/common/themes/sageref/theme.conf
@@ -1,5 +1,5 @@
[theme]
-inherit = default
+inherit = classic
stylesheet = sage.css
pygments_style = sphinx
diff --git a/src/doc/de/thematische_anleitungen/sage_gymnasium.rst b/src/doc/de/thematische_anleitungen/sage_gymnasium.rst
index 9b7da4c..7d2d175 100644
--- a/src/doc/de/thematische_anleitungen/sage_gymnasium.rst
+++ b/src/doc/de/thematische_anleitungen/sage_gymnasium.rst
@@ -572,7 +572,7 @@ Tupel besteht, welches das Interval des Definitionsbereichs angibt, also z.B. ``
`[-\infty, 0]` und einer für das Interval geltende Funktionsgleichung. Als letztes Argument muss angegeben werden,
welche Variable durch die Funktion gebunden werden soll::
- sage: f = Piecewise([[(-oo,0), -x^2],[(0,oo), x^2]], x)
+ sage: f = piecewise([[(-oo,0), -x^2],[(0,oo), x^2]], var=x)
sage: f(3)
9
sage: f(-3)
diff --git a/src/doc/de/tutorial/bibliography.rst b/src/doc/de/tutorial/bibliography.rst
index c760e5c..7ce77e2 100644
--- a/src/doc/de/tutorial/bibliography.rst
+++ b/src/doc/de/tutorial/bibliography.rst
@@ -41,7 +41,7 @@ Literaturverzeichnis
.. [SA] Sage web site, http://www.sagemath.org/.
-.. [Si] W. Decker, G.-M. Greuel, G. Pfister, and
+.. [Si] \W. Decker, G.-M. Greuel, G. Pfister, and
H. Schönemann. Singular 3.3.1. A Computer Algebra System for
Polynomial Computations. University of Kaiserslautern (2010),
http://www.singular.uni-kl.de/.
diff --git a/src/doc/en/constructions/calculus.rst b/src/doc/en/constructions/calculus.rst
index 5db1230..039dbd6 100644
--- a/src/doc/en/constructions/calculus.rst
+++ b/src/doc/en/constructions/calculus.rst
@@ -81,7 +81,7 @@ You can find critical points of a piecewise defined function:
sage: f2 = 1-x
sage: f3 = 2*x
sage: f4 = 10*x-x^2
- sage: f = Piecewise([[(0,1),f1],[(1,2),f2],[(2,3),f3],[(3,10),f4]])
+ sage: f = piecewise([((0,1),f1), ((1,2),f2), ((2,3),f3), ((3,10),f4)])
sage: f.critical_points()
[5.0]
@@ -177,9 +177,10 @@ where :math:`f(x)=1`, :math:`0<x<1`:
::
sage: x = PolynomialRing(QQ, 'x').gen()
- sage: f = Piecewise([[(0,1),1*x^0]])
+ sage: f = piecewise([((0,1),1*x^0)])
sage: g = f.convolution(f)
sage: h = f.convolution(g)
+ sage: set_verbose(-1)
sage: P = f.plot(); Q = g.plot(rgbcolor=(1,1,0)); R = h.plot(rgbcolor=(0,1,1))
To view this, type ``show(P+Q+R)``.
@@ -212,18 +213,13 @@ where :math:`f` is a piecewise defined function, can
sage: f1(x) = x^2
sage: f2(x) = 5-x^2
- sage: f = Piecewise([[(0,1),f1],[(1,2),f2]])
- sage: f.trapezoid(4)
- Piecewise defined function with 4 parts, [[(0, 1/2), 1/2*x],
- [(1/2, 1), 9/2*x - 2], [(1, 3/2), 1/2*x + 2],
- [(3/2, 2), -7/2*x + 8]]
- sage: f.riemann_sum_integral_approximation(6,mode="right")
- 19/6
- sage: f.integral()
- Piecewise defined function with 2 parts,
- [[(0, 1), x |--> 1/3*x^3], [(1, 2), x |--> -1/3*x^3 + 5*x - 13/3]]
- sage: f.integral(definite=True)
- 3
+ sage: f = piecewise([[[0,1], f1], [RealSet.open_closed(1,2), f2]])
+ sage: t = f.trapezoid(2); t
+ piecewise(x|-->1/2*x on (0, 1/2), x|-->3/2*x - 1/2 on (1/2, 1), x|-->7/2*x - 5/2 on (1, 3/2), x|-->-7/2*x + 8 on (3/2, 2); x)
+ sage: t.integral()
+ piecewise(x|-->1/4*x^2 on (0, 1/2), x|-->3/4*x^2 - 1/2*x + 1/8 on (1/2, 1), x|-->7/4*x^2 - 5/2*x + 9/8 on (1, 3/2), x|-->-7/4*x^2 + 8*x - 27/4 on (3/2, 2); x)
+ sage: t.integral(definite=True)
+ 9/4
.. index: Laplace transform
@@ -242,7 +238,7 @@ computation.
(x, s)
sage: f1(x) = 1
sage: f2(x) = 1-x
- sage: f = Piecewise([[(0,1),f1],[(1,2),f2]])
+ sage: f = piecewise([((0,1),f1), ((1,2),f2)])
sage: f.laplace(x, s)
-e^(-s)/s + (s + 1)*e^(-2*s)/s^2 + 1/s - e^(-s)/s^2
@@ -382,7 +378,7 @@ illustrating how the Gibbs phenomenon is mollified).
sage: f1 = lambda x: -1
sage: f2 = lambda x: 2
- sage: f = Piecewise([[(0,pi/2),f1],[(pi/2,pi),f2]])
+ sage: f = piecewise([((0,pi/2),f1), ((pi/2,pi),f2)])
sage: f.fourier_series_cosine_coefficient(5,pi)
-3/5/pi
sage: f.fourier_series_sine_coefficient(2,pi)
diff --git a/src/doc/en/constructions/plotting.rst b/src/doc/en/constructions/plotting.rst
index f46f3b3..1be93b6 100644
--- a/src/doc/en/constructions/plotting.rst
+++ b/src/doc/en/constructions/plotting.rst
@@ -34,13 +34,13 @@ You can plot piecewise-defined functions:
::
- sage: f1 = lambda x:1
- sage: f2 = lambda x:1-x
- sage: f3 = lambda x:exp(x)
- sage: f4 = lambda x:sin(2*x)
- sage: f = Piecewise([[(0,1),f1],[(1,2),f2],[(2,3),f3],[(3,10),f4]])
- sage: f.plot()
- Graphics object consisting of 4 graphics primitives
+ sage: f1 = 1
+ sage: f2 = 1-x
+ sage: f3 = exp(x)
+ sage: f4 = sin(2*x)
+ sage: f = piecewise([((0,1),f1), ((1,2),f2), ((2,3),f3), ((3,10),f4)])
+ sage: f.plot(x,0,10)
+ Graphics object consisting of 1 graphics primitive
Other function plots can be produced as well:
diff --git a/src/doc/en/developer/coding_basics.rst b/src/doc/en/developer/coding_basics.rst
index 6b039c7..d94118f 100644
--- a/src/doc/en/developer/coding_basics.rst
+++ b/src/doc/en/developer/coding_basics.rst
@@ -308,7 +308,7 @@ information. You can use the existing functions of Sage as templates.
REFERENCES:
- .. [Nat2000] M.B. Nathanson. Elementary Methods in Number Theory.
+ .. [Nat2000] \M. B. Nathanson. Elementary Methods in Number Theory.
Springer, 2000.
- A **NOTE** block for tips/tricks (optional). ::
@@ -370,6 +370,13 @@ information. You can use the existing functions of Sage as templates.
.. [SC] Conventions for coding in sage.
http://www.sagemath.org/doc/developer/conventions.html.
+ When abbreviating the first name of an author, be sure to put a
+ backslash in front of it. This ensures that the letter (``C.``
+ in the example below) will not be interpreted as a list
+ enumerator::
+
+ .. [Gauss] \C. F. Gauss, Disquisitiones Arithmeticae, 1801.
+
See the `Sphinx/ReST markup for citations <http://sphinx.pocoo.org/rest.html#citations>`_. For links toward trac tickets or wikipedia, see :ref:`chapter-sage_manuals_links`.
- A **TESTS** block (optional)
diff --git a/src/doc/en/developer/doctesting.rst b/src/doc/en/developer/doctesting.rst
index 60ae52a..dbe87f4 100644
--- a/src/doc/en/developer/doctesting.rst
+++ b/src/doc/en/developer/doctesting.rst
@@ -830,6 +830,25 @@ In order to just run the tests that are marked as requiring magma, omit ``sage``
cpu time: 0.1 seconds
cumulative wall time: 2.0 seconds
+If you want Sage to detect external software or other capabilities
+(such as magma, latex, internet) automatically and run all of the
+relevant tests, then add ``external``::
+
+ $ sage -t --optional=external src/sage/rings/real_mpfr.pyx
+ Running doctests with ID 2016-03-16-14-10-21-af2ebb67.
+ Using --optional=external
+ External software to be detected: cplex,gurobi,internet,latex,macaulay2,magma,maple,mathematica,matlab,octave,scilab
+ Doctesting 1 file.
+ sage -t --warn-long 28.0 src/sage/rings/real_mpfr.pyx
+ [5 tests, 0.04 s]
+ ----------------------------------------------------------------------
+ All tests passed!
+ ----------------------------------------------------------------------
+ Total time for all tests: 0.5 seconds
+ cpu time: 0.0 seconds
+ cumulative wall time: 0.0 seconds
+ External software detected for doctesting: magma
+
To run all tests, regardless of whether they are marked optional, pass ``all`` as the ``optional`` tag::
[roed@sage sage-6.0]$ sage -t --optional=all src/sage/rings/real_mpfr.pyx
diff --git a/src/doc/en/reference/categories/index.rst b/src/doc/en/reference/categories/index.rst
index 5ce3350..b7deab4 100644
--- a/src/doc/en/reference/categories/index.rst
+++ b/src/doc/en/reference/categories/index.rst
@@ -55,6 +55,7 @@ Individual Categories
sage/categories/commutative_ring_ideals
sage/categories/commutative_rings
sage/categories/complete_discrete_valuation
+ sage/categories/complex_reflection_groups
sage/categories/coxeter_group_algebras
sage/categories/coxeter_groups
sage/categories/crystals
@@ -70,6 +71,7 @@ Individual Categories
sage/categories/filtered_algebras_with_basis
sage/categories/filtered_modules
sage/categories/filtered_modules_with_basis
+ sage/categories/finite_complex_reflection_groups
sage/categories/finite_coxeter_groups
sage/categories/finite_crystals
sage/categories/finite_dimensional_algebras_with_basis
@@ -93,6 +95,7 @@ Individual Categories
sage/categories/function_fields
sage/categories/g_sets
sage/categories/gcd_domains
+ sage/categories/generalized_coxeter_groups
sage/categories/graded_algebras
sage/categories/graded_algebras_with_basis
sage/categories/graded_bialgebras
@@ -148,6 +151,7 @@ Individual Categories
sage/categories/sets_cat
sage/categories/sets_with_grading
sage/categories/sets_with_partial_maps
+ sage/categories/shephard_groups
sage/categories/simplicial_complexes
sage/categories/super_algebras
sage/categories/super_algebras_with_basis
diff --git a/src/doc/en/reference/combinat/module_list.rst b/src/doc/en/reference/combinat/module_list.rst
index 4456ff7..16c87d0 100644
--- a/src/doc/en/reference/combinat/module_list.rst
+++ b/src/doc/en/reference/combinat/module_list.rst
@@ -221,6 +221,8 @@ Comprehensive Module list
sage/combinat/root_system/non_symmetric_macdonald_polynomials
sage/combinat/root_system/pieri_factors
sage/combinat/root_system/plot
+ sage/combinat/root_system/reflection_group_complex
+ sage/combinat/root_system/reflection_group_real
sage/combinat/root_system/root_lattice_realization_algebras
sage/combinat/root_system/root_lattice_realizations
sage/combinat/root_system/root_space
diff --git a/src/doc/en/reference/conf.py b/src/doc/en/reference/conf.py
index 261ded5..9e55717 100644
--- a/src/doc/en/reference/conf.py
+++ b/src/doc/en/reference/conf.py
@@ -53,7 +53,7 @@ latex_elements['preamble'] += r'''
'''
#Ignore all .rst in the _sage subdirectory
-exclude_trees = exclude_trees + ['_sage']
+exclude_patterns = exclude_patterns + ['_sage']
multidocs_is_master = True
@@ -67,6 +67,6 @@ multidocs_subdoc_list = sorted([x for x in os.listdir(ref_src)
# List of directories, relative to source directory, that shouldn't be
# searched for source files.
-exclude_trees += multidocs_subdoc_list + [
+exclude_patterns += multidocs_subdoc_list + [
'sage', 'sagenb', 'options'
]
diff --git a/src/doc/en/reference/conf_sub.py b/src/doc/en/reference/conf_sub.py
index 15cc055..078e0dc 100644
--- a/src/doc/en/reference/conf_sub.py
+++ b/src/doc/en/reference/conf_sub.py
@@ -62,6 +62,6 @@ latex_documents = [
]
#Ignore all .rst in the _sage subdirectory
-exclude_trees = exclude_trees + ['_sage']
+exclude_patterns = exclude_patterns + ['_sage']
multidocs_is_master = False
diff --git a/src/doc/en/reference/doctest/index.rst b/src/doc/en/reference/doctest/index.rst
index a537ed8..88ec7a5 100644
--- a/src/doc/en/reference/doctest/index.rst
+++ b/src/doc/en/reference/doctest/index.rst
@@ -9,6 +9,7 @@ Sage's Doctesting Framework
sage/doctest/forker
sage/doctest/parsing
sage/doctest/reporting
+ sage/doctest/external
sage/doctest/test
sage/doctest/util
sage/doctest/fixtures
diff --git a/src/doc/en/reference/numerical/index.rst b/src/doc/en/reference/numerical/index.rst
index 68eb094..383db1a 100644
--- a/src/doc/en/reference/numerical/index.rst
+++ b/src/doc/en/reference/numerical/index.rst
@@ -14,14 +14,16 @@ Numerical Optimization
sage/numerical/optimize
sage/numerical/interactive_simplex_method
-Linear Optimization (LP) Solver backends
-----------------------------------------
+Linear Optimization (LP) and Mixed Integer Linear Optimization (MIP) Solver backends
+------------------------------------------------------------------------------------
.. toctree::
:maxdepth: 1
sage/numerical/backends/generic_backend
+ sage/numerical/backends/interactivelp_backend
sage/numerical/backends/glpk_backend
+ sage/numerical/backends/glpk_exact_backend
sage/numerical/backends/glpk_graph_backend
sage/numerical/backends/ppl_backend
sage/numerical/backends/cvxopt_backend
diff --git a/src/doc/en/reference/rings_standard/index.rst b/src/doc/en/reference/rings_standard/index.rst
index 4e8cb50..6485769 100644
--- a/src/doc/en/reference/rings_standard/index.rst
+++ b/src/doc/en/reference/rings_standard/index.rst
@@ -14,7 +14,7 @@ Integers
sage/rings/factorint
sage/rings/fast_arith
sage/rings/sum_of_squares
- sage/ext/multi_modular
+ sage/arith/multi_modular
sage/arith/misc
.. SEEALSO::
diff --git a/src/doc/en/thematic_tutorials/lie/bibliography.rst b/src/doc/en/thematic_tutorials/lie/bibliography.rst
index 6ffef9e..7d9f183 100644
--- a/src/doc/en/thematic_tutorials/lie/bibliography.rst
+++ b/src/doc/en/thematic_tutorials/lie/bibliography.rst
@@ -5,75 +5,75 @@ Bibliography
.. [Bourbaki46] Nicolas Bourbaki. *Lie Groups and Lie Algebras: Chapters 4-6*.
Springer, reprint edition, 1998.
-.. [BumpNakasuji2010] D. Bump and M. Nakasuji. Casselman's basis of
+.. [BumpNakasuji2010] \D. Bump and M. Nakasuji. Casselman's basis of
Iwahori vectors and the Bruhat order. arXiv:1002.2996,
http://arxiv.org/abs/1002.2996.
-.. [Carrell1994] J. B. Carrell. The Bruhat graph of a Coxeter group, a
+.. [Carrell1994] \J. B. Carrell. The Bruhat graph of a Coxeter group, a
conjecture of Deodhar, and rational smoothness of Schubert varieties. In
*Algebraic Groups and Their Generalizations: Classical Methods*,
AMS Proceedings of Symposia in Pure Mathematics, 56, 53--61, 1994.
-.. [Deodhar1977] V. V. Deodhar. Some characterizations of Bruhat
+.. [Deodhar1977] \V. V. Deodhar. Some characterizations of Bruhat
ordering on a Coxeter group and determination of the relative
Moebius function. Inventiones Mathematicae, 39(2):187--198, 1977.
-.. [Dyer1993] M. J. Dyer. The nil Hecke ring and Deodhar's conjecture
+.. [Dyer1993] \M. J. Dyer. The nil Hecke ring and Deodhar's conjecture
on Bruhat intervals. Inventiones Mathematicae, 111(1):571--574, 1993.
-.. [Dynkin1952] E. B. Dynkin,
+.. [Dynkin1952] \E. B. Dynkin,
Semisimple subalgebras of semisimple Lie algebras. (Russian)
Mat. Sbornik N.S. 30(72):349–462, 1952.
-.. [FauserEtAl2006] B. Fauser, P. D. Jarvis, R. C. King, and
+.. [FauserEtAl2006] \B. Fauser, P. D. Jarvis, R. C. King, and
B. G. Wybourne. New branching rules induced by plethysm. *Journal of
Physics A*. 39(11):2611--2655, 2006.
-.. [Fulton1997] W. Fulton. *Young Tableaux*. Cambridge University
+.. [Fulton1997] \W. Fulton. *Young Tableaux*. Cambridge University
Press, 1997.
-.. [FourierEtAl2009] G. Fourier, M. Okado, A. Schilling.
+.. [FourierEtAl2009] \G. Fourier, M. Okado, A. Schilling.
Kirillov--Reshetikhin crystal for nonexceptional types.
*Advances in Mathematics*, 222:1080--1116, 2009.
-.. [FourierEtAl2010] G. Fourier, M. Okado, A. Schilling.
+.. [FourierEtAl2010] \G. Fourier, M. Okado, A. Schilling.
Perfectness of Kirillov-Reshetikhin crystals for nonexceptional types.
*Contemp. Math.*, 506:127--143, 2010.
-.. [HatayamaEtAl2001] G. Hatayama, A. Kuniba, M. Okado, T. Takagi, Z. Tsuboi.
+.. [HatayamaEtAl2001] \G. Hatayama, A. Kuniba, M. Okado, T. Takagi, Z. Tsuboi.
Paths, crystals and fermionic formulae.
in MathPhys Odyssey 2001, in : Prog. Math. Phys., vol 23, Birkhauser Boston,
Boston, MA 2002, pp. 205--272.
-.. [HainesEtAl2009] T. J. Haines, R. E. Kottwitz, and
+.. [HainesEtAl2009] \T. J. Haines, R. E. Kottwitz, and
A. Prasad. Iwahori-Hecke Algebras. arXiv:math/0309168,
http://arxiv.org/abs/math/0309168.
-.. [HongKang2002] J. Hong and S.-J. Kang. *Introduction to Quantum
+.. [HongKang2002] \J. Hong and S.-J. Kang. *Introduction to Quantum
Groups and Crystal Bases*. AMS Graduate Studies in Mathematics,
American Mathematical Society, 2002.
-.. [HongLee2008] J. Hong and H. Lee. Young tableaux and crystal
+.. [HongLee2008] \J. Hong and H. Lee. Young tableaux and crystal
`B(\infty)` for finite simple Lie algebras. *J. Algebra*,
320:3680--3693, 2008.
-.. [HoweEtAl2005] R. Howe, E.-C.Tan, and J. F. Willenbring. Stable
+.. [HoweEtAl2005] \R. Howe, E.-C.Tan, and J. F. Willenbring. Stable
branching rules for classical symmetric pairs. *Transactions of the
American Mathematical Society*, 357(4):1601--1626, 2005.
-.. [Iwahori1964] N. Iwahori. On the structure of a Hecke ring of a
+.. [Iwahori1964] \N. Iwahori. On the structure of a Hecke ring of a
Chevalley group over a finite field. *J. Fac. Sci. Univ. Tokyo
Sect. I*, 10:215--236, 1964.
-.. [Jimbo1986] M. A. Jimbo. `q`-analogue of `U(\mathfrak{gl}(N+1))`,
+.. [Jimbo1986] \M. A. Jimbo. `q`-analogue of `U(\mathfrak{gl}(N+1))`,
Hecke algebra, and the Yang-Baxter equation.
*Lett. Math. Phys*, 11(3):247--252, 1986.
-.. [JonesEtAl2010] B. Jones, A. Schilling.
+.. [JonesEtAl2010] \B. Jones, A. Schilling.
Affine structures and a tableau model for E_6 crystals
*J. Algebra*, 324:2512-2542, 2010.
-.. [Joseph1995] A. Joseph. *Quantum Groups and Their Primitive Ideals*.
+.. [Joseph1995] \A. Joseph. *Quantum Groups and Their Primitive Ideals*.
Springer-Verlag, 1995.
.. [Kac] Victor G. Kac. *Infinite Dimensional Lie algebras*
@@ -84,75 +84,75 @@ Bibliography
Affine crystals and vertex models.
*Int. J. Mod. Phys.* A 7 (suppl. 1A): 449--484, 1992.
-.. [KKS2007] S.-J. Kang, J.-A. Kim, and D.-U. Shin.
+.. [KKS2007] \S.-J. Kang, J.-A. Kim, and D.-U. Shin.
Modified Nakajima monomials and the crystal `B(\infty)`.
*J. Algebra*, **308** (2007), 524-535.
-.. [Kashiwara1993] M. Kashiwara. The crystal base and Littelmann's refined
+.. [Kashiwara1993] \M. Kashiwara. The crystal base and Littelmann's refined
Demazure character formula. *Duke Math. J.*, 71(3):839--858, 1993.
-.. [Kashiwara1995] M. Kashiwara. On crystal bases. Representations of
+.. [Kashiwara1995] \M. Kashiwara. On crystal bases. Representations of
groups (Banff, AB, 1994), 155--197, CMS Conference Proceedings, 16,
American Mathematical Society, Providence, RI, 1995.
-.. [KashiwaraNakashima1994] M. Kashiwara and T. Nakashima. Crystal
+.. [KashiwaraNakashima1994] \M. Kashiwara and T. Nakashima. Crystal
graphs for representations of the `q`-analogue of classical Lie
algebras. *Journal Algebra*, 165(2):295--345, 1994.
-.. [KimShin2010] J.-A. Kim and D.-U. Shin. Generalized Young walls and
+.. [KimShin2010] \J.-A. Kim and D.-U. Shin. Generalized Young walls and
crystal bases for quantum affine algebra of type `A`. *Proc. Amer.
Math. Soc.*, 138(11):3877--3889, 2010.
-.. [King1975] R. C. King. Branching rules for classical Lie groups
+.. [King1975] \R. C. King. Branching rules for classical Lie groups
using tensor and spinor methods. *Journal of Physics A*,
8:429--449, 1975.
-.. [Knuth1970] D. Knuth. Permutations, matrices, and generalized Young
+.. [Knuth1970] \D. Knuth. Permutations, matrices, and generalized Young
tableaux. *Pacific Journal of Mathematics*, 34(3):709--727, 1970.
-.. [Knuth1998] D. Knuth. *The Art of Computer
+.. [Knuth1998] \D. Knuth. *The Art of Computer
Programming. Volume 3. Sorting and Searching*. Addison Wesley
Longman, 1998.
-.. [LNSSS14I] C. Lenart, S. Naito, D. Sagaki, A. Schilling, and M. Shimozono.
+.. [LNSSS14I] \C. Lenart, S. Naito, D. Sagaki, A. Schilling, and M. Shimozono.
A uniform model for for Kirillov-Reshetikhin crystals I: Lifting the
parabolic quantum Bruhat graph. (2014) :arxiv:`1211.2042`
-.. [LNSSS14II] C. Lenart, S. Naito, D. Sagaki, A. Schilling, and M. Shimozono.
+.. [LNSSS14II] \C. Lenart, S. Naito, D. Sagaki, A. Schilling, and M. Shimozono.
A uniform model for for Kirillov-Reshetikhin crystals II: Alcove model,
path model, and `P = X`. (2014) :arxiv:`1402.2203`
-.. [L1995] P. Littelmann. *Paths and root operators in representation theory*.
+.. [L1995] \P. Littelmann. *Paths and root operators in representation theory*.
Ann. of Math. (2) 142 (1995), no. 3, 499-525.
-.. [McKayPatera1981] W. G. McKay and J. Patera. *Tables of Dimensions,
+.. [McKayPatera1981] \W. G. McKay and J. Patera. *Tables of Dimensions,
Indices and Branching Rules for Representations of Simple Lie
Algebras*. Marcel Dekker, 1981.
-.. [OkadoSchilling2008] M. Okado, A.Schilling. Existence of crystal bases for
+.. [OkadoSchilling2008] \M. Okado, A.Schilling. Existence of crystal bases for
Kirillov--Reshetikhin crystals for nonexceptional types.
*Representation Theory* 12:186--207, 2008.
-.. [Seitz1991] G. Seitz,
+.. [Seitz1991] \G. Seitz,
Maximal subgroups of exceptional algebraic groups.
Mem. Amer. Math. Soc. 90 (1991), no. 441.
-.. [Rubenthaler2008] H. Rubenthaler,
+.. [Rubenthaler2008] \H. Rubenthaler,
The (A2,G2) duality in E6, octonions and the triality principle.
Trans. Amer. Math. Soc. 360 (2008), no. 1, 347–367.
-.. [SalisburyScrimshaw2015] B. Salisbury and T. Scrimshaw. A rigged
+.. [SalisburyScrimshaw2015] \B. Salisbury and T. Scrimshaw. A rigged
configuration model for `B(\infty)`. *J. Combin. Theory Ser. A*,
133:29--57, 2015.
-.. [Schilling2006] A. Schilling. Crystal structure on rigged configurations.
+.. [Schilling2006] \A. Schilling. Crystal structure on rigged configurations.
*Int. Math. Res. Not.*, Volume 2006. (2006) Article ID 97376. Pages 1-27.
-.. [SchillingTingley2011] A. Schilling, P. Tingley.
+.. [SchillingTingley2011] \A. Schilling, P. Tingley.
Demazure crystals, Kirillov-Reshetikhin crystals, and the energy function.
preprint arXiv:1104.2359
-.. [Stanley1999] R. P. Stanley. *Enumerative Combinatorics, Volume
+.. [Stanley1999] \R. P. Stanley. *Enumerative Combinatorics, Volume
2*. Cambridge University Press, 1999.
.. [Testerman1989] Testerman, Donna M.
diff --git a/src/doc/en/thematic_tutorials/numtheory_rsa.rst b/src/doc/en/thematic_tutorials/numtheory_rsa.rst
index edacce0..7595ff7 100644
--- a/src/doc/en/thematic_tutorials/numtheory_rsa.rst
+++ b/src/doc/en/thematic_tutorials/numtheory_rsa.rst
@@ -475,17 +475,17 @@ Acknowledgements
Bibliography
============
-.. [CormenEtAl2001] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and
+.. [CormenEtAl2001] \T. H. Cormen, C. E. Leiserson, R. L. Rivest, and
C. Stein. *Introduction to Algorithms*. The MIT Press, USA, 2nd
edition, 2001.
-.. [MenezesEtAl1996] A. J. Menezes, P. C. van Oorschot, and
+.. [MenezesEtAl1996] \A. J. Menezes, P. C. van Oorschot, and
S. A. Vanstone. *Handbook of Applied Cryptography*. CRC Press, Boca
Raton, FL, USA, 1996.
-.. [Stinson2006] D. R. Stinson. *Cryptography: Theory and Practice*.
+.. [Stinson2006] \D. R. Stinson. *Cryptography: Theory and Practice*.
Chapman & Hall/CRC, Boca Raton, USA, 3rd edition, 2006.
-.. [TrappeWashington2006] W. Trappe and L. C. Washington. *Introduction
+.. [TrappeWashington2006] \W. Trappe and L. C. Washington. *Introduction
to Cryptography with Coding Theory*. Pearson Prentice Hall, Upper
Saddle River, New Jersey, USA, 2nd edition, 2006.
diff --git a/src/doc/en/thematic_tutorials/sandpile.rst b/src/doc/en/thematic_tutorials/sandpile.rst
index 737121d..f5a4196 100644
--- a/src/doc/en/thematic_tutorials/sandpile.rst
+++ b/src/doc/en/thematic_tutorials/sandpile.rst
@@ -4938,7 +4938,9 @@ Help
Documentation for each method is available through the Sage online help system:
-.. code-block:: python
+.. skip
+
+::
sage: SandpileConfig.fire_vertex?
Base Class: <type 'instancemethod'>
diff --git a/src/doc/en/tutorial/bibliography.rst b/src/doc/en/tutorial/bibliography.rst
index 46311a5..930735b 100644
--- a/src/doc/en/tutorial/bibliography.rst
+++ b/src/doc/en/tutorial/bibliography.rst
@@ -42,7 +42,7 @@ Bibliography
.. [SA] Sage web site http://www.sagemath.org/.
-.. [Si] G.-M. Greuel, G. Pfister, and H. Schönemann. Singular
+.. [Si] \G.-M. Greuel, G. Pfister, and H. Schönemann. Singular
3.0. A Computer Algebra System for Polynomial Computations. Center
for Computer Algebra, University of Kaiserslautern (2005).
http://www.singular.uni-kl.de.
diff --git a/src/doc/fr/tutorial/bibliography.rst b/src/doc/fr/tutorial/bibliography.rst
index b0dcb1b..0450e9b 100644
--- a/src/doc/fr/tutorial/bibliography.rst
+++ b/src/doc/fr/tutorial/bibliography.rst
@@ -42,7 +42,7 @@ Bibliographie
.. [SA] Sage web site http://www.sagemath.org/.
-.. [Si] G.-M. Greuel, G. Pfister, and H. Schönemann. Singular
+.. [Si] \G.-M. Greuel, G. Pfister, and H. Schönemann. Singular
3.0. A Computer Algebra System for Polynomial Computations. Center
for Computer Algebra, University of Kaiserslautern (2005).
http://www.singular.uni-kl.de.
diff --git a/src/doc/ja/tutorial/bibliography.rst b/src/doc/ja/tutorial/bibliography.rst
index db09256..a772b47 100644
--- a/src/doc/ja/tutorial/bibliography.rst
+++ b/src/doc/ja/tutorial/bibliography.rst
@@ -42,7 +42,7 @@ Bibliography
.. [SA] Sage web site http://www.sagemath.org/.
-.. [Si] G.-M. Greuel, G. Pfister, and H. Schönemann. Singular
+.. [Si] \G.-M. Greuel, G. Pfister, and H. Schönemann. Singular
3.0. A Computer Algebra System for Polynomial Computations. Center
for Computer Algebra, University of Kaiserslautern (2005).
http://www.singular.uni-kl.de.
diff --git a/src/doc/pt/tutorial/bibliography.rst b/src/doc/pt/tutorial/bibliography.rst
index 9bced06..6a6f5d2 100644
--- a/src/doc/pt/tutorial/bibliography.rst
+++ b/src/doc/pt/tutorial/bibliography.rst
@@ -41,7 +41,7 @@ Bibliografia
.. [SA] Sage web site http://www.sagemath.org/
-.. [Si] G.-M. Greuel, G. Pfister, and H. Schönemann. Singular
+.. [Si] \G.-M. Greuel, G. Pfister, and H. Schönemann. Singular
3.0. A Computer Algebra System for Polynomial Computations. Center
for Computer Algebra, University of Kaiserslautern (2005).
http://www.singular.uni-kl.de/
diff --git a/src/doc/ru/tutorial/bibliography.rst b/src/doc/ru/tutorial/bibliography.rst
index f3af67b..e4b6b22 100644
--- a/src/doc/ru/tutorial/bibliography.rst
+++ b/src/doc/ru/tutorial/bibliography.rst
@@ -42,7 +42,7 @@
.. [SA] Sage web site http://www.sagemath.org/.
-.. [Si] G.-M. Greuel, G. Pfister, and H. Schönemann. Singular
+.. [Si] \G.-M. Greuel, G. Pfister, and H. Schönemann. Singular
3.0. A Computer Algebra System for Polynomial Computations. Center
for Computer Algebra, University of Kaiserslautern (2005).
http://www.singular.uni-kl.de.
diff --git a/src/module_list.py b/src/module_list.py
index 9a3a6d0..a49ed36 100644
--- a/src/module_list.py
+++ b/src/module_list.py
@@ -19,7 +19,7 @@ cblas_include_dirs = list(cblas_pc['include_dirs'])
# TODO: Remove Cygwin hack by installing a suitable cblas.pc
if os.path.exists('/usr/lib/libblas.dll.a'):
- cblas_libs = 'gslcblas'
+ cblas_libs = ['gslcblas']
# LAPACK can be one of multiple implementations
lapack_pc = pkgconfig.parse('lapack')
@@ -1128,6 +1128,9 @@ ext_modules = [
Extension("sage.numerical.backends.glpk_backend",
["sage/numerical/backends/glpk_backend.pyx"]),
+ Extension("sage.numerical.backends.glpk_exact_backend",
+ ["sage/numerical/backends/glpk_exact_backend.pyx"]),
+
Extension("sage.numerical.backends.ppl_backend",
["sage/numerical/backends/ppl_backend.pyx"],
libraries=["stdc++"]),
diff --git a/src/sage/algebras/affine_nil_temperley_lieb.py b/src/sage/algebras/affine_nil_temperley_lieb.py
index 4bc0cde..92d3a90 100644
--- a/src/sage/algebras/affine_nil_temperley_lieb.py
+++ b/src/sage/algebras/affine_nil_temperley_lieb.py
@@ -21,7 +21,7 @@ class AffineNilTemperleyLiebTypeA(CombinatorialFreeModule):
REFERENCES:
- .. [P2005] A. Postnikov, Affine approach to quantum Schubert calculus, Duke Math. J. 128 (2005) 473-509
+ .. [P2005] \A. Postnikov, Affine approach to quantum Schubert calculus, Duke Math. J. 128 (2005) 473-509
INPUT:
diff --git a/src/sage/algebras/hall_algebra.py b/src/sage/algebras/hall_algebra.py
index c890ff6..461619d 100644
--- a/src/sage/algebras/hall_algebra.py
+++ b/src/sage/algebras/hall_algebra.py
@@ -5,13 +5,14 @@ AUTHORS:
- Travis Scrimshaw (2013-10-17): Initial version
"""
-
#*****************************************************************************
# Copyright (C) 2013 Travis Scrimshaw <tscrim at ucdavis.edu>
#
# Distributed under the terms of the GNU General Public License (GPL)
# http://www.gnu.org/licenses/
#*****************************************************************************
+# python3
+from __future__ import division
from sage.misc.misc_c import prod
from sage.misc.cachefunc import cached_method
@@ -379,7 +380,7 @@ class HallAlgebra(CombinatorialFreeModule):
"""
if all(x == 1 for x in la):
r = len(la)
- q = (-1)**r * self._q**(-r*(r-1)/2)
+ q = (-1) ** r * self._q ** (-(r * (r - 1)) // 2)
return self._from_dict({p: q for p in Partitions(r)})
I = HallAlgebraMonomials(self.base_ring(), self._q)
@@ -598,7 +599,7 @@ class HallAlgebraMonomials(CombinatorialFreeModule):
# Coercions
if hopf_structure:
e = SymmetricFunctions(base_ring).e()
- f = lambda la: q**sum(-(r*(r-1)/2) for r in la)
+ f = lambda la: q ** sum(-((r * (r - 1)) // 2) for r in la)
M = self.module_morphism(diagonal=f, codomain=e)
M.register_as_coercion()
(~M).register_as_coercion()
@@ -713,7 +714,7 @@ class HallAlgebraMonomials(CombinatorialFreeModule):
H = HallAlgebra(self.base_ring(), self._q)
cur = self.one()
for r in a:
- q = (-1)**r * self._q**(-r*(r-1)/2)
+ q = (-1) ** r * self._q ** (-(r * (r - 1)) // 2)
cur *= self(H._from_dict({p: q for p in Partitions(r)}))
return cur
diff --git a/src/sage/algebras/iwahori_hecke_algebra.py b/src/sage/algebras/iwahori_hecke_algebra.py
index 81d71c9..553268f 100644
--- a/src/sage/algebras/iwahori_hecke_algebra.py
+++ b/src/sage/algebras/iwahori_hecke_algebra.py
@@ -281,15 +281,15 @@ class IwahoriHeckeAlgebra(Parent, UniqueRepresentation):
REFERENCES:
- .. [I64] N. Iwahori, On the structure of a Hecke ring of a
+ .. [I64] \N. Iwahori, On the structure of a Hecke ring of a
Chevalley group over a finite field, J. Fac. Sci. Univ. Tokyo Sect.
I, 10 (1964), 215--236 (1964). :mathscinet:`MR0165016`
- .. [HKP] T. J. Haines, R. E. Kottwitz, A. Prasad,
+ .. [HKP] \T. J. Haines, R. E. Kottwitz, A. Prasad,
Iwahori-Hecke Algebras, J. Ramanujan Math. Soc., 25 (2010), 113--145.
:arxiv:`0309168v3` :mathscinet:`MR2642451`
- .. [J87] V. Jones, Hecke algebra representations of braid groups and
+ .. [J87] \V. Jones, Hecke algebra representations of braid groups and
link polynomials. Ann. of Math. (2) 126 (1987), no. 2, 335--388.
:doi:`10.2307/1971403` :mathscinet:`MR0908150`
diff --git a/src/sage/algebras/jordan_algebra.py b/src/sage/algebras/jordan_algebra.py
index c2fe212..9dd4552 100644
--- a/src/sage/algebras/jordan_algebra.py
+++ b/src/sage/algebras/jordan_algebra.py
@@ -144,16 +144,16 @@ class JordanAlgebra(Parent, UniqueRepresentation):
- :wikipedia:`Jordan_algebra`
- .. [Jacobson71] N. Jacobson. *Exceptional Lie Algebras*.
+ .. [Jacobson71] \N. Jacobson. *Exceptional Lie Algebras*.
Marcel Dekker, Inc. New York. 1971. IBSN No. 0-8247-1326-5.
.. [Chu2012] Cho-Ho Chu. *Jordan Structures in Geometry and Analysis*.
Cambridge University Press, New York. 2012. IBSN 978-1-107-01617-0.
- .. [McCrimmon78] K. McCrimmon. *Jordan algebras and their applications*.
+ .. [McCrimmon78] \K. McCrimmon. *Jordan algebras and their applications*.
Bull. Amer. Math. Soc. **84** 1978.
- .. [Albert47] A. A. Albert, *A Structure Theory for Jordan Algebras*.
+ .. [Albert47] \A. A. Albert, *A Structure Theory for Jordan Algebras*.
Annals of Mathematics, Second Series, Vol. 48, No. 3
(Jul., 1947), pp. 546--567.
"""
diff --git a/src/sage/algebras/nil_coxeter_algebra.py b/src/sage/algebras/nil_coxeter_algebra.py
index b84bae2..545d873 100644
--- a/src/sage/algebras/nil_coxeter_algebra.py
+++ b/src/sage/algebras/nil_coxeter_algebra.py
@@ -147,7 +147,7 @@ class NilCoxeterAlgebra(IwahoriHeckeAlgebra.T):
REFERENCES:
- .. [Lam2005] T. Lam, Affine Stanley symmetric functions, Amer. J. Math. 128 (2006), no. 6, 1553--1586.
+ .. [Lam2005] \T. Lam, Affine Stanley symmetric functions, Amer. J. Math. 128 (2006), no. 6, 1553--1586.
This function is currently only defined in type `A^{(1)}`.
diff --git a/src/sage/algebras/quatalg/quaternion_algebra.py b/src/sage/algebras/quatalg/quaternion_algebra.py
index 4729da6..84ec903 100644
--- a/src/sage/algebras/quatalg/quaternion_algebra.py
+++ b/src/sage/algebras/quatalg/quaternion_algebra.py
@@ -704,10 +704,10 @@ class QuaternionAlgebra_ab(QuaternionAlgebra_abstract):
REFERENCES:
- .. [Piz1980] A. Pizer. An Algorithm for Computing Modular Forms
+ .. [Piz1980] \A. Pizer. An Algorithm for Computing Modular Forms
on `\Gamma_0(N)`, J. Algebra 64 (1980), 340-390.
- .. [Voi2012] J. Voight. Identifying the matrix ring: algorithms
+ .. [Voi2012] \J. Voight. Identifying the matrix ring: algorithms
for quaternion algebras and quadratic forms, to appear.
"""
try: return self.__maximal_order
diff --git a/src/sage/algebras/schur_algebra.py b/src/sage/algebras/schur_algebra.py
index f3092e9..53d0763 100644
--- a/src/sage/algebras/schur_algebra.py
+++ b/src/sage/algebras/schur_algebra.py
@@ -19,7 +19,7 @@ AUTHORS:
REFERENCES:
-.. [GreenPoly] J. Green, Polynomial representations of `GL_n`, Springer Verlag.
+.. [GreenPoly] \J. Green, Polynomial representations of `GL_n`, Springer Verlag.
"""
#*****************************************************************************
diff --git a/src/sage/algebras/shuffle_algebra.py b/src/sage/algebras/shuffle_algebra.py
index 734ab9e..6a9eb4c 100644
--- a/src/sage/algebras/shuffle_algebra.py
+++ b/src/sage/algebras/shuffle_algebra.py
@@ -610,7 +610,7 @@ class DualPBWBasis(CombinatorialFreeModule):
REFERENCES:
- .. [Reuten1993] C. Reutenauer. *Free Lie Algebras*. Number 7 in
+ .. [Reuten1993] \C. Reutenauer. *Free Lie Algebras*. Number 7 in
London Math. Soc. Monogr. (N.S.). Oxford University Press. (1993).
EXAMPLES::
diff --git a/src/sage/algebras/yokonuma_hecke_algebra.py b/src/sage/algebras/yokonuma_hecke_algebra.py
index 06f9cf4..7560133 100644
--- a/src/sage/algebras/yokonuma_hecke_algebra.py
+++ b/src/sage/algebras/yokonuma_hecke_algebra.py
@@ -119,7 +119,7 @@ class YokonumaHeckeAlgebra(CombinatorialFreeModule):
*Cell structures for the Yokonuma-Hecke algebra and the algebra
of braids and ties*. (2015) :arxiv:`1506.00715`.
- .. [JPdA15] N. Jacon and L. Poulain d'Andecy.
+ .. [JPdA15] \N. Jacon and L. Poulain d'Andecy.
*An isomorphism theorem for Yokonuma-Hecke algebras and
applications to link invariants*. (2015) :arxiv:`1501.06389v3`.
"""
diff --git a/src/sage/arith/misc.py b/src/sage/arith/misc.py
index d14f241..a7d38ed 100644
--- a/src/sage/arith/misc.py
+++ b/src/sage/arith/misc.py
@@ -5316,7 +5316,7 @@ def dedekind_sum(p, q, algorithm='default'):
REFERENCES:
- .. [Apostol] T. Apostol, Modular functions and Dirichlet series
+ .. [Apostol] \T. Apostol, Modular functions and Dirichlet series
in number theory, Springer, 1997 (2nd ed), section 3.7--3.9.
- :wikipedia:`Dedekind\_sum`
diff --git a/src/sage/ext/multi_modular.pxd b/src/sage/arith/multi_modular.pxd
index b027394..292a6cf 100644
--- a/src/sage/ext/multi_modular.pxd
+++ b/src/sage/arith/multi_modular.pxd
@@ -2,9 +2,8 @@
from sage.ext.mod_int cimport *
from sage.libs.gmp.types cimport mpz_t
-from sage.rings.integer cimport Integer
-cdef class MultiModularBasis_base:
+cdef class MultiModularBasis_base(object):
cdef int n
cdef mod_int* moduli
cdef mpz_t* partial_products
@@ -37,6 +36,5 @@ cdef class MultiModularBasis(MultiModularBasis_base):
cdef class MutableMultiModularBasis(MultiModularBasis):
cdef mod_int __last_prime
- cdef mod_int next_prime_c(self) except -1
- cdef mod_int replace_prime_c(self, int i) except -1
-
+ cpdef mod_int next_prime(self) except -1
+ cpdef mod_int replace_prime(self, int ix) except -1
diff --git a/src/sage/ext/multi_modular.pyx b/src/sage/arith/multi_modular.pyx
index f14b0c1..33b80ae 100644
--- a/src/sage/ext/multi_modular.pyx
+++ b/src/sage/arith/multi_modular.pyx
@@ -2,22 +2,23 @@
Utility classes for multi-modular algorithms
"""
-######################################################################
+#*****************************************************************************
# Copyright (C) 2006 William Stein
#
-# Distributed under the terms of the GNU General Public License (GPL)
-#
-# The full text of the GPL is available at:
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
# http://www.gnu.org/licenses/
-######################################################################
-
+#*****************************************************************************
-include "sage/ext/stdsage.pxi"
+include "cysignals/memory.pxi"
from sage.libs.gmp.mpz cimport *
-from sage.rings.integer_ring import ZZ
+from sage.rings.integer cimport Integer, smallInteger
from sage.arith.all import random_prime
from types import GeneratorType
+from sage.ext.stdsage cimport PY_NEW
# should I have mod_int versions of these functions?
# c_inverse_mod_longlong modular inverse used exactly once in _refresh_precomputations
@@ -31,23 +32,23 @@ ai = arith_llong()
MAX_MODULUS = MOD_INT_MAX
-cdef class MultiModularBasis_base:
+cdef class MultiModularBasis_base(object):
r"""
This class stores a list of machine-sized prime numbers,
and can do reduction and Chinese Remainder Theorem lifting
modulo these primes.
Lifting implemented via Garner's algorithm, which has the advantage
- that all reductions are word-sized. For each $i$ precompute
-
- $\prod_j=1^{i-1} m_j$ and $\prod_j=1^{i-1} m_j^{-1} (mod m_i)$
-
+ that all reductions are word-sized. For each `i`, precompute
+ `\prod_j=1^{i-1} m_j` and `\prod_j=1^{i-1} m_j^{-1} (mod m_i)`.
This class can be initialized in two ways, either with a list of prime
moduli or an upper bound for the product of the prime moduli. The prime
- moduli is generated automatically in the second case::
+ moduli are generated automatically in the second case.
+
+ EXAMPLES::
- sage: from sage.ext.multi_modular import MultiModularBasis_base
+ sage: from sage.arith.multi_modular import MultiModularBasis_base
sage: mm = MultiModularBasis_base([3, 5, 7]); mm
MultiModularBasis with moduli [3, 5, 7]
@@ -69,9 +70,9 @@ cdef class MultiModularBasis_base:
sage: mm = MultiModularBasis_base(primes(10,20)); mm
MultiModularBasis with moduli [11, 13, 17, 19]
- There is no overflow if the modulus is below ``MAX_MODULUS`` ::
+ There is no overflow if the modulus is below ``MAX_MODULUS``::
- sage: from sage.ext.multi_modular import MAX_MODULUS
+ sage: from sage.arith.multi_modular import MAX_MODULUS
sage: p0 = previous_prime(MAX_MODULUS)
sage: p1 = previous_prime(p0)
sage: MultiModularBasis_base([p0, p1]).crt([p0-1, p1-1])
@@ -85,9 +86,8 @@ cdef class MultiModularBasis_base:
sage: MultiModularBasis_base([p0, p1]).crt([p0-1, p1-1])
Traceback (most recent call last):
...
- ValueError: given modulus cannot be manipulated in a single machine word
+ OverflowError: given modulus 6074000981 is larger than 3037000498
"""
-
def __cinit__(self):
r"""
Allocate the space for the moduli and precomputation lists
@@ -95,62 +95,56 @@ cdef class MultiModularBasis_base:
EXAMPLES::
- sage: from sage.ext.multi_modular import MultiModularBasis_base
+ sage: from sage.arith.multi_modular import MultiModularBasis_base
sage: mm = MultiModularBasis_base([1099511627791])
Traceback (most recent call last):
...
- ValueError: given modulus cannot be manipulated in a single machine word
+ OverflowError: given modulus 1099511627791 is larger than 3037000498
"""
mpz_init(self.product)
mpz_init(self.half_product)
cdef _realloc_to_new_count(self, new_count):
- self.moduli = <mod_int*>sig_realloc(self.moduli, sizeof(mod_int)*new_count)
- self.partial_products = <mpz_t*>sig_realloc(self.partial_products, sizeof(mpz_t)*new_count)
- self.C = <mod_int*>sig_realloc(self.C, sizeof(mod_int)*new_count)
- if self.moduli == NULL or self.partial_products == NULL or self.C == NULL:
- raise MemoryError, "out of memory allocating multi-modular prime list"
+ self.moduli = <mod_int*>check_reallocarray(self.moduli, new_count, sizeof(mod_int))
+ self.partial_products = <mpz_t*>check_reallocarray(self.partial_products, new_count, sizeof(mpz_t))
+ self.C = <mod_int*>check_reallocarray(self.C, new_count, sizeof(mod_int))
def __dealloc__(self):
"""
- sage: from sage.ext.multi_modular import MultiModularBasis_base
- sage: mm = MultiModularBasis_base([1099511627791])
- Traceback (most recent call last):
- ...
- ValueError: given modulus cannot be manipulated in a single machine word
+ TESTS::
+ sage: from sage.arith.multi_modular import MultiModularBasis_base
sage: mm = MultiModularBasis_base(1099511627791); mm
MultiModularBasis with moduli [4561, 17351, 28499]
sage: del mm
"""
sig_free(self.moduli)
- for i from 0 <= i < self.n:
+ for i in range(self.n):
mpz_clear(self.partial_products[i])
sig_free(self.partial_products)
sig_free(self.C)
mpz_clear(self.product)
mpz_clear(self.half_product)
- def __init__(self, val, l_bound=0, u_bound=0):
+ def __init__(self, val, unsigned long l_bound=2**10, unsigned long u_bound=2**15):
r"""
Initialize a multi-modular basis and perform precomputations.
INPUT:
- - ``val`` - as integer
+ - ``val`` -- as integer
determines how many primes are computed
(their product will be at least 2*val)
as list, tuple or generator
a list of prime moduli to start with
- - ``l_bound`` - an integer
- lower bound for the random primes (default: 2^10)
- - ``u_bound`` - an integer
- upper bound for the random primes (default: 2^15)
-
+ - ``l_bound`` -- an integer: lower bound for the random primes
+ (default: 2^10)
+ - ``u_bound`` -- an integer: upper bound for the random primes
+ (default: 2^15)
EXAMPLES::
- sage: from sage.ext.multi_modular import MultiModularBasis_base
+ sage: from sage.arith.multi_modular import MultiModularBasis_base
sage: mm = MultiModularBasis_base([1009, 10007]); mm
MultiModularBasis with moduli [1009, 10007]
sage: mm.prod()
@@ -166,7 +160,7 @@ cdef class MultiModularBasis_base:
sage: mm = MultiModularBasis_base([1000000000000000000000000000057])
Traceback (most recent call last):
...
- ValueError: given modulus cannot be manipulated in a single machine word
+ OverflowError: given modulus 1000000000000000000000000000057 is larger than 3037000498
sage: mm = MultiModularBasis_base(0); mm
MultiModularBasis with moduli [28499]
@@ -174,74 +168,62 @@ cdef class MultiModularBasis_base:
sage: mm = MultiModularBasis_base([6, 10])
Traceback (most recent call last):
...
- ValueError: the values provided are not relatively prime
+ ArithmeticError: The inverse of 6 modulo 10 is not defined.
"""
- if l_bound == 0:
- self._l_bound = 2**10
- elif l_bound < 2:
- raise ValueError("minimum value for lower bound is 2, given: %s"%(l_bound))
- else:
- self._l_bound = l_bound
+ if l_bound < 2:
+ raise ValueError(f"minimum value for lower bound is 2, given: {l_bound}")
+ if u_bound > MAX_MODULUS:
+ raise ValueError(f"upper bound cannot be greater than {MAX_MODULUS}, given: {u_bound}")
- if u_bound == 0:
- self._u_bound = 2**15
- elif u_bound > MAX_MODULUS:
- raise ValueError("upper bound cannot be greater than MAX_MODULUS: %s, given: %s"%(MAX_MODULUS, u_bound))
- else:
- self._u_bound = u_bound
+ self._l_bound = l_bound
+ self._u_bound = u_bound
from sage.functions.prime_pi import prime_pi # must be here to avoid circular import
self._num_primes = prime_pi(self._u_bound) - prime_pi(self._l_bound-1)
- cdef int i
if isinstance(val, (list, tuple, GeneratorType)):
- try:
- self.extend_with_primes(val, check=True)
- except ArithmeticError:
- # See trac #10217
- raise ValueError("the values provided are not relatively prime")
+ self.extend_with_primes(val, check=True)
else:
self._extend_moduli_to_height(val)
cdef mod_int _new_random_prime(self, set known_primes) except 1:
"""
Choose a new random prime for inclusion in the list of moduli,
- or raise a RuntimeError if there are no more primes.
+ or raise a ``RuntimeError`` if there are no more primes.
INPUT:
- - `known_primes` -- Python set of already known primes in
- the allowed interval; we will not return a prime in
- known_primes.
+ - ``known_primes`` -- Python set of already known primes in
+ the allowed interval; we will not return a prime in
+ known_primes.
"""
cdef Py_ssize_t i
cdef mod_int p
while True:
if len(known_primes) >= self._num_primes:
- raise RuntimeError, "there are not enough primes in the interval [%s, %s] to complete this multimodular computation"%(self._l_bound, self._u_bound)
+ raise RuntimeError("there are not enough primes in the interval [%s, %s] to complete this multimodular computation"%(self._l_bound, self._u_bound))
p = random_prime(self._u_bound, lbound =self._l_bound)
if p not in known_primes:
return p
def extend_with_primes(self, plist, partial_products = None, check=True):
"""
- Extend the stored list of moduli with the given primes in `plist`.
+ Extend the stored list of moduli with the given primes in ``plist``.
EXAMPLES::
- sage: from sage.ext.multi_modular import MultiModularBasis_base
+ sage: from sage.arith.multi_modular import MultiModularBasis_base
sage: mm = MultiModularBasis_base([1009, 10007]); mm
MultiModularBasis with moduli [1009, 10007]
sage: mm.extend_with_primes([10037, 10039])
4
sage: mm
MultiModularBasis with moduli [1009, 10007, 10037, 10039]
-
"""
if isinstance(plist, GeneratorType):
plist = list(plist)
elif not isinstance(plist, (tuple, list)):
- raise ValueError, "plist should be a list, tuple or a generator, got: %s"%(str(type(plist)))
+ raise TypeError("plist should be a list, tuple or a generator, got: %s"%(str(type(plist))))
cdef Py_ssize_t len_plist = len(plist)
@@ -250,7 +232,7 @@ cdef class MultiModularBasis_base:
if check:
for p in plist:
if p > MAX_MODULUS:
- raise ValueError, "given modulus cannot be manipulated in a single machine word"
+ raise OverflowError(f"given modulus {p} is larger than {MAX_MODULUS}")
self._realloc_to_new_count(self.n + len_plist)
cdef Py_ssize_t i
@@ -274,7 +256,7 @@ cdef class MultiModularBasis_base:
"""
EXAMPLES::
- sage: from sage.ext.multi_modular import MultiModularBasis_base
+ sage: from sage.arith.multi_modular import MultiModularBasis_base
sage: mm = MultiModularBasis_base([10007])
sage: nn = MultiModularBasis_base([10007])
sage: mm == nn
@@ -291,12 +273,12 @@ cdef class MultiModularBasis_base:
def __setstate__(self, state):
"""
- Initialize a new MultiModularBasis_base object from a state stored
- in a pickle.
+ Initialize a new :class:`MultiModularBasis_base` object from a
+ state stored in a pickle.
TESTS::
- sage: from sage.ext.multi_modular import MultiModularBasis_base
+ sage: from sage.arith.multi_modular import MultiModularBasis_base
sage: mm = MultiModularBasis_base([10007, 10009])
sage: mm == loads(dumps(mm))
True
@@ -306,10 +288,7 @@ cdef class MultiModularBasis_base:
sage: mm
MultiModularBasis with moduli [10007, 10009]
-
"""
- if len(state) != 3:
- raise ValueError, "cannot read state tuple"
nmoduli, lbound, ubound = state
self._realloc_to_new_count(len(nmoduli))
self._l_bound = lbound
@@ -322,7 +301,7 @@ cdef class MultiModularBasis_base:
TESTS::
- sage: from sage.ext.multi_modular import MultiModularBasis_base
+ sage: from sage.arith.multi_modular import MultiModularBasis_base
sage: mm = MultiModularBasis_base([10007, 10009])
sage: mm.__getstate__()
([10007, 10009], 1024L, 32768L)
@@ -331,10 +310,9 @@ cdef class MultiModularBasis_base:
def _extend_moduli_to_height(self, height):
"""
-
EXAMPLES::
- sage: from sage.ext.multi_modular import MultiModularBasis_base
+ sage: from sage.arith.multi_modular import MultiModularBasis_base
sage: mm = MultiModularBasis_base(0); mm
MultiModularBasis with moduli [4561]
@@ -352,9 +330,9 @@ cdef class MultiModularBasis_base:
Verify that :trac:`11358` is fixed::
- sage: set_random_seed(0); m = sage.ext.multi_modular.MultiModularBasis_base(0)
+ sage: set_random_seed(0); m = sage.arith.multi_modular.MultiModularBasis_base(0)
sage: m._extend_moduli_to_height(prod(prime_range(50)))
- sage: m = sage.ext.multi_modular.MultiModularBasis_base([],2,100)
+ sage: m = sage.arith.multi_modular.MultiModularBasis_base([],2,100)
sage: m._extend_moduli_to_height(prod(prime_range(90)))
sage: m._extend_moduli_to_height(prod(prime_range(150)))
Traceback (most recent call last):
@@ -363,16 +341,15 @@ cdef class MultiModularBasis_base:
Another check (which fails horribly before :trac:`11358` is fixed)::
- sage: set_random_seed(0); m = sage.ext.multi_modular.MultiModularBasis_base(0); m._extend_moduli_to_height(10**10000)
+ sage: set_random_seed(0); m = sage.arith.multi_modular.MultiModularBasis_base(0); m._extend_moduli_to_height(10**10000)
sage: len(set(m)) == len(m)
True
sage: len(m)
2438
"""
- cdef Integer h
- h = ZZ(height)
+ cdef Integer h = Integer(height)
if h < self._l_bound:
- h = ZZ(self._l_bound)
+ h = Integer(self._l_bound)
self._extend_moduli_to_height_c(h.value)
cdef int _extend_moduli_to_height_c(self, mpz_t height0) except -1:
@@ -381,7 +358,7 @@ cdef class MultiModularBasis_base:
INPUT:
- - ``height`` - determines how many primes are computed
+ - ``height`` -- determines how many primes are computed
(their product must be at least 2*height)
"""
# real height we use is twice the given, set height to 2*height0
@@ -401,7 +378,7 @@ cdef class MultiModularBasis_base:
cdef mod_int p # keeps current prime moduli
if self.n == 0:
- M = ZZ(1)
+ M = smallInteger(1)
else:
M = PY_NEW(Integer)
mpz_set(M.value, self.partial_products[self.n-1])
@@ -423,11 +400,11 @@ cdef class MultiModularBasis_base:
INPUT:
- - ``count`` - the minimum number of moduli in the resulting list
+ - ``count`` -- the minimum number of moduli in the resulting list
EXAMPLES::
- sage: from sage.ext.multi_modular import MultiModularBasis_base
+ sage: from sage.arith.multi_modular import MultiModularBasis_base